Inspiration
Imagine a world where every person, regardless of their location or economic status, has access to fast and accurate glaucoma screening. Glaucoma is the second leading cause of blindness globally, affecting millions of people worldwide, including three million people in the US alone. The most challenging aspect of glaucoma is that 50% of people with the disease don’t know they have it because it is hard to detect with only visual symptoms of the patient. Early detection is key to preventing irreversible damage to the optic nerve and maintaining healthy vision.
The current process for glaucoma screening involves multiple manual steps, which can lead to long wait times for patients and limit the number of patients that providers can see per day. With the development of an automated system, the risk assessment process can be streamlined, resulting in shorter wait times for patients and increased efficiency for providers.
The impact of this project would be significant, especially in underserved communities where access to glaucoma screening may be limited. By establishing efficiency in care, this automated system could increase the number of patients that providers can see per day, allowing more people to receive the screening they need.
What it does
Our tool enables healthcare professionals to upload multiple fundus images of patients, which the model orders based on confidence levels. This allows the healthcare professional to prioritize reviewing images where the model had low confidence, giving them the opportunity to provide their professional input. Alternatively, they can quickly review images with high confidence classifications to streamline the process.
How we built it
The backend was built using Python and various libraries including Pandas, Numpy and Sci-kit Learn. The frontend was primarily created using Streamlit, an open-source Python library that simplifies building interactive web applications for data science and machine learning projects.
Challenges we ran into
Finding an appropriate dataset. We were selective and chose a larger dataset with a simple structure to prioritize focus on the fundus images themselves, without compromising the model's accuracy.
As novices in machine learning, we had to learn TDA from scratch and apply it to our project. We spent significant time researching and experimenting to find the best approach for our model.
Another challenge we faced was integrating the backend and frontend of our application. As we used different libraries and languages for the two parts, we had to ensure that they communicated smoothly and that the user experience was seamless.
Accomplishments that we're proud of
- Developed a functional tool that can automatically order fundus images based on the confidence level of the model's predictions.
- Trained a Topological Data Analysis (TDA) model using a carefully selected dataset of fundus images, achieving an accuracy rate of over 65% in classifying glaucoma cases.
- Built a user-friendly web interface using Streamlit, allowing healthcare professionals to easily upload and view fundus images.
- Gained practical experience with Python programming and machine learning libraries, as well as data manipulation, visualization, and analysis using various Python packages.
- Worked collaboratively as a team, leveraging each member's strengths and expertise to deliver a high-quality project in a limited timeframe.
What we learned
Since it was the first time for all of us using machine learning, we had to learn a lot of information quickly. We had to deeply understand what Topological Data Analysis (TDA) is and how it works. We also had to familiarize ourselves with the Python programming language and its machine learning libraries, such as scikit-learn and Pandas, to build our model. Additionally, we had to learn how to leverage various Python libraries, such as NumPy, Matplotlib, and Seaborn, to perform data manipulation, visualization, and analysis.
What's next for OptiRisk
- Expand to other diseases which can be detected using fundus photography (diabetic retinopathy is one example).
- Use different imaging modalities (smartphone photography).
- Improve model by adding more topological features which are detected (level 0 only included as proof-of-concept).
Built With
- giotto-tda
- python
- scikit-learn
- streamlit


Log in or sign up for Devpost to join the conversation.