Design Status

This is a prototype.


This web app uses computer vision to detect diabetic retinopathy on fundus (eye) images. It’s a tool to help GP's monitor the eye health of their diabetic patients.

What problem does this solve?

Diabetic Retinopathy is the fastest growing cause of preventable blindness. All people with diabetes are at risk. They need to be screened once a year. This screening involves taking a picture of the back of the eye. The picture is called a fundus photo. An eye specialist then diagnoses this photo. In both the developed and the third world there are many towns and rural communities that don't have access to an eye specialist.

Today fundus photos can be taken with a mobile phone. This web app makes it possible for a local doctor to use that photo to do a preliminary diagnosis.

Image Format

The app accepts images in jpg or png format. The tiff format is not supported.


The Ai brain (model) that powers the app was trained using high quality images taken with professional equipment. Therefore, the model's prediction accuracy could be negatively affected by the lower quality of mobile phone images.

Published Design

The design code and the step-by-step process used to train and test the model has been published on Kaggle. You can find the open source notebook in Kaggle. The test results are also available in the notebook.

Dataset Licence

The model was trained using image data that is licenced for non-commercial, academic research and education use only.

Will I need to wait for the model to download every time I use the app?

No. Once the model downloads it will be cached in memory. The next time you visit this site you won’t need to wait.

That said, I suggest that you always use this tool with your web browser set to incognito mode. The model won’t be saved, but this will ensure that each time you visit this site you will always use latest version of the model and not the old one that's stored in your device's memory.

What about patient data privacy?

Your images are never sent to an external server. Any image you submit stays on your computer or mobile phone. This is because the model is running on your device. This is also why a batch of images can be analyzed in less than two seconds.

In return for a short wait while the model downloads you get data privacy and fast processing. The tech that makes this possible is called Tensorflow.js. It was created by Google.

What do the decimal numbers mean?

They are probability scores between 0 and 1. They show how confident the model is that a particular condition is present on the image.
For example, D-Retinopathy: 0.751 means that the model is 75% sure that diabetic retinopathy is present on the image.

How do I use this app on a computer?

- Go to this site on your computer.
- Click the orange button.
- Select one image or multiple images and click ‘Open’.
- The app will print results for each image.

How do I use this app on a mobile phone?

You can take a new photo or you can submit photos that are stored on your phone. The steps below apply to Android. iOS may be similar but I'm not sure.

[ 1 ] Take a photo

- Go to this site on your phone.
- Tap the orange button.
- Select “Camera”
- Take a photo
- Tap the "tick"
- The photo will be sent to the app for analysis.

[ 2 ] Use images from your photo folder

- Go to this site on your phone.
- Tap the orange button.
- Tap "Files"
- Tap the image name
- To submit a batch of images, tap each image (tick) to select it and then tap "Open".

What would it take to make this tool production-ready?

The training results are excellent. But Ai systems can be brittle. Good training scores don't guarantee that a model will perform well under real-world conditions. This tool first needs to be field tested. Then the model needs to be re-trained to make it more robust.

Where can I send feedback or report bugs?

Please feel free to email your thoughts or ideas to: