Convolutional Neural Network model to classify microscope images of blood cells, using Paul Mooney's Blood Cell Images on Kaggle.
A backend API was created using FastAPI
And a client-side web app was created in ReactJS.
The server is configured at localhost:8000 and the web app at localhost:3000.
Once both services are up and running, head over to localhost:3000, upload an image and the API will respond with the classification.
Current classes:
Eosinophil, Monocyte, Lymphocyte, and Neutrophil.
To start the entire application with docker-compose, run:
docker-compose up
To run the server and web app separately with Docker images:
To start the server, run
docker build API --tag <servername>
docker run -it --rm -p 8000:80 <servername>
This will run the server on localhost:8000. You can check the docs at localhost:8000/docs and localhost:8000/redocs
To start the web app, run
docker build frontend --tag <imagename>
docker run -it --rm -p 3000:3000 <imagename>
This will run the web app on localhost:3000.
Python 3+
tensorflow
keras
pillow
numpy
fastapi
python-multipart
NodeJS
React
axios
To install the API and web app locally:
change to /API directory and run
pip install -r requirements.txt
Then change to /frontend and run
npm install
To get the API running, Change to '/API' directory and run:
uvicorn main:app --reload
To start the web app, change to '/frontend' directory and run:
npm start
To recreate or modify the CNN model, upload the blood_cell_type_cnn.ipynb to Google Colab.
Add username and API key to
api_token = {"username":"","key":""}