- Introduction
- Dataset Description
- Problem Statement
- Evaluation Matrix
- Installation
- Usage
- Performance
- Accuracy & Loss Graphs
The "Diagnosis of Retinal Diseases from OCT Images" project aims to develop a deep learning-based approach for classifying retinal OCT images into one of the four categories: CNV, DME, DRUSEN, and NORMAL. Optical Coherence Tomography (OCT) is an imaging technique used to capture high-resolution cross-sections of living patents' retinas, enabling ophthalmologists to visualize different layers and diagnose various eye disorders.
OCT has become the standard method for examining and treating most eye problems, and its usage has led to the generation of millions of OCT scans annually. The interpretation of these images is time-consuming, making it essential to develop an automated classification system to aid ophthalmologists in their diagnosis.
The dataset used for this project contains 84,495 X-ray images (JPEG) divided into three folders: train, test, and validation. Each folder consists of subfolders for each image category, namely NORMAL, CNV, DME, and DRUSEN. The image filenames are labeled in the format (disease)-(randomized patient ID)-(image number by this patient).
The main objective of this project is to build a deep learning model that can accurately classify retinal OCT images into one of the four categories: CNV, DME, DRUSEN, or NORMAL. The model will be trained on the training data and evaluated on the test data to assess its performance.
The performance of the classification model will be evaluated using a confusion matrix. The confusion matrix provides a summary of how well the model predicts different categories and helps identify the types of errors made by the classifier. It calculates True Positive (TP), True Negative (TN), False Positive (FP), and False Negative (FN) values for each class.
pip install -r requirements.txt
streamlit run app.py
Model Name | Train Accuracy | Validation Accuracy | Test Accuracy |
---|---|---|---|
3CNN (without Image Augmentation) | 0.9355 | 0.8916 | 0.9277 |
3CNN (with Image Augmentation) | 0.9121 | 0.7046 | 0.6560 |
7CNN (with Image Augmentation) | 0.9636 | 0.8816 | 0.9638 |
VGG16 Transfer Learning (with Image Augmentation) | 0.8886 | 0.8876 | 0.9039 |
ResNet50 Transfer Learning (with Image Augmentation) | 0.9171 | 0.93663 | 0.9618 |
DenseNet121 Transfer Learning (with Image Augmentation) | 0.9479 | 0.9342 | 0.9845 |
Models | Accuracy & Loss Graphs |
---|---|
3 Layers CNN With Image Augmentation | |
3 Layers CNN Without Image Augmentation | |
7 layers CNN with Image Augmentation | |
VGG 16 | |
ResNet50 | |
DenseNet121 |