The repository stores the back-end for the Flask application, which serves the request coming from the detector of 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:
- Written 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 the Issues.
Download the YOLOv3 weights
bash ./weights/download_weights_yolov3.shInstall the conda environment
conda env create -f ./conda_env.yml
conda activate detector