This repository stores the back-end for the Flask application, which serves requests coming from the detector at my website.
To put it simply, the back-end receives an image from a user and runs an object detection algorithm on the image (YOLO v3). Once the predictions are obtained, they are drawn on the image, which is, then, sent back to the user (to the front-end). In this README I provided the environment setup for the computing machine, which runs the detection algorithm. However, setting up the back-end machine is just the tip of an iceberg. The whole engineering pipeline includes many other steps full of caveats. Specifically, I have undertaken the following steps to build this project:
- wrote the front-end for the website (v-iashin/v-iashin.github.io)
- reserved a domain name (Freenom — I wouldn't recommend it though!)
- rented an instance and reserved an IP for it (GoogleCloud)
- added DNS entries mapping my domain to the instance IP (Freenom again)
- signed instance-side digital certificates for HTTPs for my domain (Let's Encrypt)
- set up the back-end environment on my instance + detector implementation (THIS repo)
If you are interested in the details of each step, let me know in Issues.
Download the YOLOv3 weights
bash ./weights/download_weights_yolov3.sh
Install the conda environment
conda env create -f ./conda_env.yml
conda activate detector