The applications of deep learning in the medical field are enormous. Unfortunately, the learning curve and the clunky UX of most autoML platforms make it difficult for doctors to collect data and make predictive models. That's where we believe a platform like D.S.F.H can help them. Most of the AutoML platforms are geared towards software engineers and not to doctors but with DSFH, Doctors can easily collect data, clean them, make predictive models and deploy them very easily.
What it does
- The android app allows them to take pictures of the diseases and store them under its correct label.
- Once they have enough images per label they can train a neural network classifier on the qualified labels using the online dashboard.
- These trained models can be put into use by the inference app by scanning the QR code for the respective model and using the phone's camera to classify diseases of newer patients.
- There is also a clustering tool that helps to make clusters on unlabeled data and visualize them.
How I built it
- The front-end dashboard was built with reactjs and hosted on Redhat application runtime.
- The backend was built with flask. The CNN(deep-learning) models are being built with Fastai and PyTorch and they were managed by Redis-queue. We used 3scale API management from RedHat to secure the backend API links. The backend is hosted on a virtual machine on google cloud.
- We used Java and android studio to make android applications.
NOTE: the training happens on the CPU for the demo, if we switch to a GPU it would take way less time to train but due to the cost of GPU'S we couldn't show it.
Challenges I ran into
- Using a job queue with flask backend to run the training process of the models in an asynchronous manner and send an email when the training process is finished.
- Training the models on the cloud on-demand.
Accomplishments that I'm proud of
- Enabling training on-demand with job queues.
- Quick deployment with QR codes.
What I learned
- Training on demand is complicated.
What's next for D.S.F.H
- Switching to pysyft from fastai to help with security and patient privacy. We could train on data from multiple sources without losing privacy.
- Allowing multiple hospitals to share their models without any data leak.
- Adding support for tabular data.
- Creating a market place where the hospitals can share their APIs.
NOTE: For testing purposes, we have set the training to 1 epoch, thus reducing training time but also making the model weak. This is just so that can test the platform quickly. In practice, we would switch to a GPU and have at least 5 epochs or more depending on the size of the dataset.