AI-graderingsmodule
AI die netvliesfoto’s analyseert in minder dan twee seconden — en oogartsen helpt diabetische oogziekte te detecteren voordat deze permanente schade veroorzaakt.
De Deneye AI-graderingsmodule analyseert fundusfoto’s en kent een van de vijf internationaal gestandaardiseerde DR-ernstgraden toe. Dit geeft de beoordelende oogarts een direct, op bewijs gebaseerd startpunt — waardoor de werkdruk daalt terwijl de volledige klinische verantwoordelijkheid behouden blijft.
De AI wordt nooit autonoom ingezet. Elke gradering wordt beoordeeld en bevestigd door een gecertificeerde oogarts voordat er een klinische beslissing wordt genomen.
Hoe het werkt
Drie stappen van foto naar graderingsresultaat
Foto vastgelegd
Een screener fotografeert het netvlies van de patiënt met een standaard funduslens. De afbeelding wordt geüpload naar het Deneye-platform — ook vanuit een afgelegen locatie zonder permanente internetverbinding.
AI gradeert in <2 seconden
Het AI-model verwerkt de afbeelding en voorspelt een DR-ernst op de 5-punts internationale klinische DR-schaal. Het resultaat verschijnt direct op de werklijst van de oogarts.
Oogarts bevestigt
Een gecertificeerde oogarts beoordeelt de afbeelding en het AI-voorstel. De oogarts bevestigt, past aan of overschrijft de gradering. Pas na menselijke beoordeling bereikt het resultaat de patiënt.
De vijf DR-ernstniveaus
Gebaseerd op de internationale klinische schaal voor diabetische retinopathie
| Graad | Naam | Wat het betekent | Aanbevolen vervolgstap |
|---|---|---|---|
| 0 | Geen DR | Geen zichtbare tekenen van diabetische schade aan het netvlies | Jaarlijkse routinescreening |
| 1 | Milde NPDR | Vroege veranderingen: micro-aneurysma’s (kleine uitstulpingen in netvliesvaten) | Beoordeling door oogarts |
| 2 | Matige NPDR | Uitgebreidere veranderingen: bloedingen, harde exsudaten, watten-spots | Beoordeling door oogarts |
| 3 | Ernstige NPDR | Significante netvliesschade; hoog risico op achteruitgang zonder behandeling | Spoedige verwijzing naar oogarts |
| 4 | Proliferatieve DR | Abnormale nieuwe bloedvaten op het netvlies; hoog risico op ernstig gezichtsverlies | Urgente verwijzing naar oogarts |
NPDR = Niet-proliferatieve diabetische retinopathie. Het platform kent ook de markering Niet Gradeerbaar toe aan afbeeldingen van onvoldoende kwaliteit, die worden teruggestuurd naar de screener voor een nieuwe opname.
Onafhankelijke validatie op 37.368 afbeeldingen
Getest op vier onafhankelijke datasets uit vier landen — geen ervan gebruikt tijdens de training
De standaardmaat voor prestaties in DR-gradering is de Kwadratisch gewogen kappa (QWK) — een statistiek die de grades van de AI vergelijkt met die van expertoogartsen, met zwaardere straffen voor grotere afwijkingen. De schaal loopt van 0 (niet beter dan toeval) tot 1,0 (perfecte overeenkomst). Een kappa boven de 0,80 wordt in de DR-literatuur doorgaans als “uitstekend” beschouwd.
| Dataset | Afbeeldingen | Land | QW Kappa | Aangrenzende nauwkeurigheid |
|---|---|---|---|---|
| APTOS 2019 (hold-out) | 733 | India | 0,896 | 98,9% |
| IDRiD Training | 413 | India | 0,885 | 98,3% |
| IDRiD Testing | 103 | India | 0,806 | 97,1% |
| Messidor-2 | 1.744 | Frankrijk | 0,771 | 98,9% |
| EyePACS | 35.108 | VS | 0,574 | 91,2% |
| Totaal (extern) | 37.368 | 4 landen | 0,607 | 91,6% |
Voor specialisten
Modelarchitectuur & training
Ontwerpkeuzes, hyperparameters en deploymentspecificaties
Modelspecificaties
| Architectuur | EfficientNet-B0 (timm-bibliotheek, PyTorch) |
| Parameters | 4,6 miljoen |
| Invoer | 224×224 px — RGB, float32 |
| Uitvoer | Regressiescore 0,0–4,0, afgerond naar geheel getal |
| Regressiehoofd | Dropout(0,3) → Linear(1280→512) → ReLU → Dropout(0,15) → Linear(512→1) |
| Verliesfunctie | OrdinalMSELoss (MSE + ordinale grensboete) |
| Backbone-initialisatie | ImageNet voorgetrainde gewichten |
| Deployment | ONNX-formaat, 17,8 MB, CPU-inferentie |
| Inferentietijd | <2 seconden per afbeelding (Intel i7 CPU) |
Trainingsconfiguratie
| Primaire dataset | APTOS 2019 — 3.662 afbeeldingen (Aravind Eye Hospital, India) |
| Validatiesplitsing | 20% hold-out — 733 afbeeldingen |
| Optimizer | Adam |
| Leersnelheid | 1e-3 (hoofd) → 1e-4 (fine-tune) |
| Batchgrootte | 32 |
| Epochs | 20 (3 hoofd-only + 17 volledige fine-tune) |
| LR-planner | CosineAnnealingLR (T_max=20, eta_min=1e-6) |
| Klassenonevenwichtigheid | Gewogen willekeurige sampler (inverse frequentie) |
| Trainingstijd | ~175 minuten op Colab T4 GPU |
Beeldverwerkingspijplijn
Server-side toegepast vóór elke inferentie. Identiek aan de training. Camera-onafhankelijk.
- Zwarte rand bijsnijden — verwijdert camerapadding vóór het aanpassen van de grootte, zodat zwarte pixels de modelinvoer niet beïnvloeden (drempel tol = 7)
- Formaat wijzigen naar 224×224 — standaard invoerresolutie voor EfficientNet-B0
- CLAHE op LAB L-kanaal (clipLimit 2,0, tileGridSize 8×8) — verbetert de zichtbaarheid van laesies door lokaal contrast te egaliseren in uitsluitend het helderheidskanaal, zonder kleurinformatie te wijzigen
- Circulair masker — onderdrukt hoekruis; fundusfoto’s zijn van nature cirkelvormig door de optiek van de funduscamera
- ImageNet-normalisatie — gemiddelde [0,485, 0,456, 0,406], std [0,229, 0,224, 0,225]
Waarom regressie in plaats van classificatie?
DR-graden zijn ordinaal — het verwarren van Graad 3 met Graad 4 is klinisch veel ernstiger dan het verwarren van Graad 1 met Graad 2. Een standaard classificatiemodel behandelt alle fouten gelijk. De regressiebenadering voorspelt een continue ernstsscore (0,0–4,0) die wordt afgerond naar de dichtstbijzijnde gehele graad. Dit maakt het model inherent gevoeliger voor ernstige ziekte en sluit naadloos aan op de kwadratisch gewogen kappa-evaluatiemaatstaf, die grote afwijkingen zwaarder bestraft.
Tweefasige trainingsstrategie
- Fase 1 — Alleen hoofd (3 epochs, lr=1e-3): De EfficientNet-backbone is bevroren. Alleen het regressiehoofd wordt getraind. Dit zorgt voor snelle convergentie zonder catastrofaal vergeten van ImageNet-representaties.
- Fase 2 — Volledige fine-tune (17 epochs, lr=1e-4): Het volledige netwerk wordt ontbevroren en getraind met een lagere leersnelheid. De backbone past zich aan het medische domein aan, terwijl het hoofd een stabiel startsignaal geeft.
Data-augmentatie
Albumentations-bibliotheek: HorizontalFlip (p=0,5), VerticalFlip (p=0,5), RandomRotate90 (p=0,5), ShiftScaleRotate (p=0,7), RandomBrightnessContrast (p=0,5), HueSaturationValue (p=0,3), GaussianBlur (p=0,2), CoarseDropout (p=0,3, max_holes=8). De APTOS-dataset heeft een sterke “Geen DR”-meerderheid (49,5%); een gewogen willekeurige sampler oversampled de minderheidsklassen om vertekening te compenseren.
Benchmark & resultaten
Vergelijking met standaard AI
Deneye EfficientNet-B0 vs. DINOv2 (HuggingFace) op 733 APTOS-validatieafbeeldingen
| Maatstaf | Deneye (EfficientNet-B0) | DINOv2 (HuggingFace) |
|---|---|---|
| Kwadratisch gewogen kappa | 0,896 | 0,654 |
| Exacte nauwkeurigheid | 73,4% | 35,5% |
| Geen DR recall | 96% | 34% |
| DR-detectiegevoeligheid | ~98% | ~66% |
| Modelgrootte | 17,8 MB | ~350 MB |
| Runtime-afhankelijkheid | ONNX Runtime | PyTorch + HuggingFace |
| Licentie | MIT | GPL-3.0 |
DINOv2 rapporteerde 96,8% trainingsnauwkeurigheid, maar toonde bij inferentie sterke voorkeur voor “Geen DR” en miste het merendeel van de ziektegevallen — een klassiek teken van overfitting op de meerderheidsklasse.
Trainingscurves & verwarringsmatrix
APTOS 2019 trainingsset (2.929 afbeeldingen), 20% hold-out validatie (733 afbeeldingen). Beste QWK: 0,896.
Interesse in de AI-graderingsmodule?
Neem contact met ons op voor meer informatie over integratieopties of voor een live demonstratie.