Inspiration

With about 10 million people affected by Parkinson's disease (PD) each year, affordable and accessible treatment is a necessity. Parkinson's disease is one of the most common neurodegenerative chronic illnesses and can cause tremors, slow movement, and difficulty with coordination and balance. There is no cure for PD but detecting it early can prove very helpful for treatments. Currently, diagnosis of PD is often late and inaccurate, as doctors must carefully weigh symptoms, family history, and other factors to come to a conclusion. Additionally, many movements that indicate Parkinson's are subtle to the human eye, which can often lead to misclassification. These current methods can take long diagnose and lead to reduced treatment options, high morbidity rates, and a lower quality of life. Furthermore, most patients have difficulty going to the doctors regularly because of age and severe shortage of neurologists, especially in rural areas.

What it does

Our product, EZPD, is an integrated, easy-to-use, and free web application which allows users to check if they have Parkinson's. The user can create an account to save their history and log in at future times. Utilizing machine learning and computer vision, EZPD can diagnose Parkinson's through a simple and accurate 3-step test:

  1. Spiral Drawing analysis: The user can input a drawing of a spiral and our state-of-the-art image recognition machine learning algorithm determines the likelihood of the patient having PD.
  2. Speech Recognition: The user inputs a voice recording from reading aloud which our model processes. This can detect Dysarthria, which is characterized by slurred speech and difficulty with articulation.
  3. Human Gait analysis: Analyzes human gait movement from a 10-20 second input video of a user walking. Twelve face and body key-points, representing joints, are extracted through human pose estimation. Then, various kinematic and spectral features such as speed, acceleration, and jerk, and convex hull are measured from the key-point coordinates.

An overall diagnostic is then provided from the three steps with graphs detailing the user's inputs.

How we built it

EZPD uses a Flask back-end and a HTML front-end and Firebase. The home page provides users with a sign in and log in interface along with information about our tool. Once the user signs in, the three-step test begins and the user can upload images, audio files, or videos into each respective step. These models are trained using Machine Learning, using CNNs, linear regression, and other models, and Computer vision, using libraries such as OpenCV and Mediapipe. Our final dashboard displays our final prediction along with graphs to detail these inputs.

Challenges we ran into

One challenge we ran into was extracting the coordinates of key-points from our pose estimation software over time for human gait analysis. It was difficult to analyze each individual key-point's coordinates and track those over time. We ended up solving this error through adding labels for each key-point along with its coordinates in our dataset. Another challenge was locating datasets which were of good of enough size and quality. It was hard to find datasets for some specific tasks, however we were able to solve this by fitting our input to match datasets that we found, rather than finding datasets which matched our inputs.

Accomplishments that we're proud of

We are proud of successfully integrated all 3 modalities for our data as earlier in the competition we felt that we might not be able to finish all 3.

What we learned

We learned how to extract coordinate data for each keypoint of a human using pose estimation and then train a model on that data for human gait analysis.

What's next for EZPD

We hope to add more modalities so that diagnoses can be even more accurate. Additionally, we would like to elaborate on our diagnostic as we hope to add more specific results for each step of our test which would provide the user with more information about their diagnosis.

Built With

Share this project:

Updates