The repository stores the back-end for the Flask application, which serves the requests coming from the detector at my website.
To put it simply, it receives a user image and runs an object detection algorithm on it (YOLO v3). Once the predictions are retrieved, the resulting image with bounding boxes is sent back to the front-end. In this README I provide the environment setup for the compute machine. However, setting up the bach-end machine is just the tip of an iceberg. The whole engineering pipeline includes many other steps full of caveats. Just to scratch the surface, I undertook the following steps to build this project:
- writen the website front-end (v-iashin/v-iashin.github.io)
- obtained 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)
- setted 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