This repo contains a simple app, that combines different tasks in Computer Vision domain. App uses docker containing Flask. Models are written in PyTorch. Test demo available here. May open for a long time also crash, due to Heroku's politics for free accounts.
Digit recognition task represents a simple drawing application with CNN-based prediction model.
For the detection task, I used an SSD model and trained it from scratch. Dataset for this task - Guns and Knives.
- Web part was build with Flask, JQuery, Docker.
- Deep Learning part was developed with PyTorch, NumPy.
- Deployed to Herokku. May open for a long time and also crash due to Herokku's policy for free accounts.
This app is very easy to install and deploy in a Docker container.
By default, the Docker will expose port 80, so change this within the Dockerfile if necessary. When ready, simply use the Dockerfile to build the image. In the root of the project run:
docker build -t cvapp .
This will create the image and pull in the necessary dependencies. Once done, run the Docker image and map the port to whatever you wish on your host. In this example, we simply map port 80 of the host to port 80 of the Docker (or whatever port was exposed in the Dockerfile):
docker run -d -p 80:80 -e FLASK_APP=main.py -e FLASK_DEBUG=1 cvapp:latest flask run --host=0.0.0.0 --port=80
Verify the deployment by navigating to your server address in your preferred browser.
127.0.0.1:80
Here is some steps TODO in near future:
- Super Resolution task with GANs (In progress).
- Improving Guns and Knives detection performance.