Alzheimer’s disease is a very debilitating disease that impairs both the physical and cognitive functions of the people it affects. In order to lessen the detrimental effects and possible damage that may arise as a result of Alzheimer’s disease complications, early diagnosis is crucial. However, current diagnostic methods include standard medical tests (e.g. blood & urine tests) and brain scans (e.g. CT & MRI scans), which are very expensive (cost an average of over $2000!!!) and inefficient. In addition, such tests have great room for error. We knew that something needed to be done about this problem, so during the ideation phase of working on our hack, we read many research papers about alternative Alzheimer’s disease diagnostic biomarkers. We came across one research paper about how pupil dilation can be used as a possible Alzheimer's disease biomarker, and we later came across another research paper about the open-source Webgazer.js software that detailed its use as a practical eye-tracker. After reading both papers, we thought that we could use the Webgazer eye tracking library to track changes in a user’s pupil size over an hour-long time span and create a probabilistic algorithm to calculate the likelihood that the user has Alzheimer’s based on the data collected.

More info about Webgazer:

What it does

We built a web app that utilizes machine learning and computer vision to automate the Alzheimer’s disease diagnostic process. Our app instructs users to take photos over an hour-long time span during each 15-minute interval. The ML algorithms within our app then analyze the pictures and calculate the likelihood of the user having Alzheimer's disease. Our app thus provides a cheap, scalable, and accurate way for physicians to diagnose this disease at an early stage and therefore democratizes Alzheimer’s diagnosis and treatment.

How we built it

The eye tracking library that our app uses compartmentalizes the facial features of users and isolates the eyes from the rest of the face. We thought that supervised machine learning would provide the perfect algorithmic solution to this problem. Thus, we created a univariate regression algorithm that analyzes the eyes of a user in detail and calculates the user’s pupil to eye ratio over time. This algorithm was written in Python and calculations were facilitated using Wolfram Tech. We had to train the algorithm using pre-existing data online. Of course, the accuracy of our algorithm will improve over time as more user input is generated. We also used the JSON scripting language in order to facilitate the data exchange process and data visualization methods to present the data obtained in a graphical form that can be used by healthcare professionals to create patient diagnostic reports in a clinical setting. Lastly, we had to host our app on a web server. We eventually opted to use AWS rather than a local web server since it’s a cloud-based platform and would allow our web app to be accessed from any location.

Challenges we ran into

We had a lot of trouble setting up the web server, but luckily, we were able to get those issues resolved with the help of two very nice mentors! :)

What we learned

We learned how to use an eye tracking library and extract data to input into a ML algorithm. We thought this was a really useful learning experience because we have been learning about machine learning through online open source courses, and this project finally let us apply what we learned in a practical way.

What's next for Alz-EYE-mer

We want to improve the UX/ UI of our app and allow diagnostic test results to be stored in the app database for future accession by physicians. We also want to decrease the amount of time needed to reach an accurate diagnosis. This can be done with continued usage of our web app. One alternative idea we have that would not necessitate any further software improvements is to instruct users to supplement our web app with tropicamide solution (diluted 0.005%) to be placed in users' eyes, as research has shown that Alzheimer’s patients are hypersensitive to it.

Share this project: