We were inspired to replace expensive medical tools used by optometrists by creating a free, easy to access, and accurate detector that users can use as a reference before scheduling an appointment.
What it does
When provided with a simple image of an eye, like that taken with a webcam or cellphone camera, a SqueezNet model we've trained will determine whether a cataract has developed within the eye.
How we built it
After exploring our options for classification models, such as AlexNet and more, we decided to use SqueezeNet 1.1, as it was lightweight and accurate with training on limited datasets. The images for the dataset were collected by us and included 50 unique images of cataract eyes and 50 unique images of healthy eyes. We hosted the model as an API using PythonAnywhere which we interacted with from our static frontend from Github pages.
Challenges we ran into
The process was rather streamlined once we decided on a framework to use. We initially created our project in a Google Colab environment and then moved it to a hosted environment which did initially provide some difficulty.
Accomplishments that we're proud of
We are proud of the accuracy we were able to achieve in 15 epochs of training, collecting a diverse set of images for our limited dataset. In our testing of the model with further unique images, a false result has never been produced. Images that included light on the lens of the eye showed reduced confidence in the results but were always above 60% with the correct prediction. We were able to remedy this with further diversifying the healthy eye data.
What we learned
We learned how to make a classifier using SqueezeNet and in using Google Colab, how to make such technology easily available to those with little programming experience. We plan to open-source a version of the notebook we made after the hackathon.
What's next for Catatector
Next we plan to add some improvements for real-time eye image capturing as well as identifying the affected areas of the eye. Additionally, we will be able to discern which cataracts are induced by different factors such as age, diabetes, and more by expanding our dataset and classifications.