Inspiration

This project aims to help doctors with the classification of retina scans into the 4 different levels of diabetes retinopathy to aid their prognosis, monitoring and treatment of this disease.

What it does

The machine learning model identifies the level of diabetes retinopathy based on the images from the scan.

How I built it

My CNN model was trained with transfer learning on ~17000 training and ~ 5000 validation data points. Used a pre-trained Xception model trained on the Imagenet dataset, changed the final output layer to 5 different outputs and froze the bottom 1/3 hidden layers of the network during the training process.

Challenges I ran into

The main challenges I faced were the preprocessing of the dataset into the train/val folders, resizing the retina scans to fit the model, hyperparameter optimization and training the model to prevent overfitting.

Accomplishments that I'm proud of

I achieved a model accuracy of close to 75%.

What I learned

I used transfer learning to train my model on a different dataset, which decreased the training time exponentially. I also learned different algorithms/methods for deep learning as well as the hyperparameter tuning to give the best accuracy.

What's next for Diabetes Retinopathy Detection

There is potential to include more models and use ensemble learning to improve the final accuracy. Hyperparameter tuning could be further explored to make the model converge faster. Furthermore, a pipeline could be added to output the final prediction from the machine that scans patients' eyes which links to a database to track the history of their retina scans to monitor their condition.

Built With

  • keras
  • matplotlib
  • python
  • tensorflow
Share this project:

Updates