This project is a result of the WirVsVirus Hackathon. Our objective was to assist doctors in diagnosing COVID-19 patients by training a convolutional network to discriminate between patients with and without the disease, based on an X-ray image. We use a DenseNet121 pretrained on the CheXpert dataset and finetune it to the covid-chestxray-dataset. Furthermore, we implemented a simple prediction service that displays the diagnosis based on an X-ray image uploaded by the user.
- We first trained the COVID-19 classifier on Google Colab. See the notebook file
covid_19.ipynb
. - We then implemented a simple backend server in Flask, that loads the classifier and performs inference on the X-ray image uploaded by the user.
- Finally, we developed a simple frontend server that allows user to upload an X-ray image and see the results of diagnosis: the predicted probability of patient having COVID-19 and the heatmap of critical regions on the X-ray that contributed to the diagnosis.
Requirements:
- python >=3.7.6
- NPM >=6.13.4
Running the application
cd ai4covid
-- Enter project root directorychmod +x setup.sh run.sh
-- Add execute permission to the scripts./setup.sh
-- Install dependencies./run.sh
-- Run the backend and the frontend servers