AI for Ophthalmology: Retinal Image Analysis
Module: Healthcare AI | Difficulty: Advanced
Diabetic Retinopathy Grades
Retinal Vessel Width (CRAE)
Ophthalmology AI Performance
| Task | Model | AUC | Sensitivity | Specificity |
|---|---|---|---|---|
| DR Detection | ResNet-50 | 0.98 | 0.95 | 0.93 |
| DR Grading | EfficientNet | 0.95 | 0.90 | 0.92 |
| Glaucoma | DenseNet | 0.94 | 0.88 | 0.90 |
| AMD Detection | U-Net+CLF | 0.96 | 0.92 | 0.91 |
| DME Detection | OCT-Net | 0.93 | 0.87 | 0.89 |
import torch
import torch.nn as nn
import torchvision.models as models
class RetinalClassifier(nn.Module):
def __init__(self, num_classes=5, pretrained=True):
super().__init__()
backbone = models.efficientnet_b4(pretrained=pretrained)
self.features = backbone.features
num_features = backbone.classifier[1].in_features
self.attention_pool = nn.Sequential(
nn.Linear(num_features, 128), nn.Tanh(), nn.Linear(128, 1))
self.classifier = nn.Sequential(
nn.Dropout(0.5), nn.Linear(num_features, 256),
nn.ReLU(), nn.Linear(256, num_classes))
def forward(self, x):
features = self.features(x)
features = nn.functional.adaptive_avg_pool2d(features, (1, 1))
features = features.flatten(1)
attn = torch.softmax(self.attention_pool(features), dim=0)
features = attn * features
return self.classifier(features)
class ImageQualityAssessor(nn.Module):
def __init__(self):
super().__init__()
self.backbone = models.resnet18(pretrained=True)
self.quality_head = nn.Linear(512, 3)
def forward(self, x):
features = self.backbone(x)
quality_scores = torch.sigmoid(self.quality_head(features))
return quality_scores
model = RetinalClassifier(num_classes=5)
x = torch.randn(1, 3, 512, 512)
output = model(x)
print(f'DR grade distribution: {torch.softmax(output, dim=-1).detach().numpy()[0]}')
qa_model = ImageQualityAssessor()
quality = qa_model(x)
print(f'Quality scores: {quality.detach().numpy()[0]}')
Research Insight: AI-based diabetic retinopathy screening has achieved FDA approval and is being deployed in primary care settings. The key clinical challenge is that AI systems must achieve very high sensitivity (>95%) for referable DR to be safe as a screening tool. Calibration across different camera systems and populations remains an active area of research.