One of my friends family members recently passed away due to tuberculosis. The issue was that the disease was not properly diagnosed by the doctors, and the doctors said that he was "normal". If he was properly diagnosed he could have gotten the proper medical treatment, and could have been alive. Tuberculosis is a serious infectious disease that mainly affects your lungs. The bacteria that cause tuberculosis are spread from one person to another. Tuberculosis is currently one of the 10 top causes of death and the leading case from a single infectious agent (higher then AIDS/HIV). In 2019 itself, an estimated 10 million people fell ill with tuberculosis worldwide, most of these deaths are caused by poor diagnoses of the disease. If tuberculosis can be identified, it can be easily treated with the use of antibiotics, but without proper diagnosis by medical practitioners there are many unnecessary deaths happening every year due to tuberculosis.
What it does
This world spread issue happening currently is what inspired me to make TumorCast. By using Deep Learning, I created a web application for medical practitioners and doctors to use to diagnose tuberculosis in patients using X RAY images of chests. My web application allows doctors to get a second opinion on X RAY images to determine whether or not the patient has tuberculosis. This will help reduce the number of incorrectly diagnosed patients in the world thus reducing the number of deaths that are caused by tuberculosis. All the medical practitioners need to do is to head over to the TumorCast website and click on get started. And then after that upload an X RAY image of the patients chest, and finally click predict to determine whether the patient has tuberculosis or not. Sample images can be found in the google drive link below.
How I built it
Challenges I ran into
Accomplishments that I'm proud of
I am proud of making a such an accurate model in TensorFlow. I am not very experience with deep learning and TensorFlow, so getting a machine learning model that is accurate is a big accomplishment for me. I am also proud that I created an end to end ML solution that can help save lives of many people in the world. Creating TumorCast was not just a confidence booster because it worked at the end, it was a confidence booster because it was going to help other people around the world.
What I learned
By creating TumorCast, I learned how to use TensorFlow and TensorFlowJS. I learned how to use my model in my websites to create an end to end Machine learning solution that medical practitioners can use. I also improved my skills in web development by creating a web app and also my server side programming skills by using nodeJS.
What's next for TumorCast
My future plan for TumorCast is to make it more scalable. I plan on deploying the model on a cloud service like google cloud and accessing the model from the cloud, this would increase the client side performance. I also plan on making a database of all the images the users upload, and passing those images through a data pipeline for preprocessing the images, and then saving those images from the user into a dataset for the model to train on weekly. This allows the model to be up to date and also constantly improves the accuracy of the model and reduces the bias due to the large variation of unique X RAY images of patients. I also plan on expanding the use case of TumorCast to other medical conditions like heart diseases and brain tumors, by implementing more models.
Test it Out!
You can test out TumorCast by clicking on the netlify link below, and using the sample images from the links below. The first link takes you to a google drive folder that contains images of XRAYS that have tuberculosis, and the second link takes you to images of XRAYS that are from normal patients.