We want to showcase the power of AI in the medical industry. We think there is a lot of room for improvement
What it does
APP demo - https://www.youtube.com/watch?v=xbZUBd_1fSQ Presentation - https://www.youtube.com/watch?v=trTC5IrCSWA A doctor/ patient can make an account on our web app and then he can go to the "scans" page and upload an x-ray/ MRI of a specific organ. Our AI algorithms will detect if a disease is present in that scan.
How I built it
This is a dynamic web app that uses artificial intelligence so this makes it a very complex the app when it comes to the backend part. We used the python programming language as it is very easy to program with it and is probably the best programming language for data science. Python also has some very good web engines. We used the Jinja template engine used by Flask in python. Flask is a very good choice in this case as it is highly customizable has many useful libraries and is very well documented. For the forms, we used - Flask-WTF For the login dynamic - Flask-login For the database, we use a Postgres link connection with Flask-SQLaclhemy We also need a background worker for Artificial Intelligence algorithms as they take a long time and making the user wait is not an option in this case, especially if they have a slow internet connection. As a python client, we used Redis and RQ workers to send background jobs in the queue. For the artificial intelligence algorithms, we used, ( along with popular linear algebra libraries like NumPy ), the TensorFlow library which is the most popular neural network library and it provides powerful algorithms like ResNet50, which we used to train the Brain Tumor and Pneumonia algorithms. The datasets come from Kaggle. Brain tumor dataset: https://www.kaggle.com/navoneel/brain-mri-images-for-brain-tumor-detection Pneumonia dataset: https://www.kaggle.com/c/rsna-pneumonia-detection-challenge We had to show the results in a web page and we did that by making a waiting web page that refreshes every 10 seconds and therefore sends a request every 10 seconds, in that request, we also check if the background job is ready. If it is ready to take the output, ( the image ha to be converted to bytes encoded in utf-8 as this is the safe and sure way of transferring images through workers). We hosted our app with Heroku ( paid for hobby plan so the app won’t sleep) as it is very easy to use workers, postgress, make multiple uploads, etc.
Challenges I ran into
Worker management, algorithm training time.
Accomplishments that I'm proud of
The entire app is fully functional
What I learned
How to use TensorFlow for image classification in a fast way
What's next for MYAID
So much more, many more algorithms should be added, drug discovery algorithms should be added, and many more