Convolutional neural network created for the purpose of detecting coronavirus disease.
Project was made during the COVID-19 pandemic.
The first part is devoted to show how many people this virus infects and how does it look worldwide.
Second part is attempt to divide people into two categories - healthy people(1) and those infected by SARS-CoV-2 virus(0).
It was accomplished by contructing convolutional neural network with Conv and Dense layers (also Maxpooling, Batchnormalization, etc.).
Unfortunately due to insufficient number of X-rays made on infected people accuracy (and loss) looks like below. Actually it's not that bad, but many uninfected people were classified wrong.
Second attempt was made on the same network, but additionaly I used ImageDataGenerator to incerase number of images (especially COVID-19 X-rays). However even this actions improved hardly anything (actually only repeatability of final results).
As it is shown above the best way to improve accuracy is to get a lot more data. Network doesn't work well on imbalanced data and less than 300 basic photos of infected category.
Python 3.7; libraries:
- pandas
- numpy
- matplotlib
- keras
- sklearn
- h5py
- cv2
- os
- random
- datetime
Dataset taken from:
https://www.kaggle.com/tawsifurrahman/covid19-radiography-database
https://github.com/agchung/Figure1-COVID-chestxray-dataset/tree/master/images