This is the code for the image classification API that is used by Data Selfie. Its main components are Yolo and Darknet, used via the pyyolo-wrapper for image classification and Gunicorn for reliable server functionality.
Follow the installation instructions of pyyolo. To avoid unexcessary logging of the prediction times for each image, I got rid of this line before the install.
For Data Selfie, we are using weights from the makers of Darknet as described on this page.
wget https://pjreddie.com/media/files/yolo.weights
Finally, clone this repo with
git clone git@github.com:d4t4x/data-selfie-image-classification.git
The folder structure should look like this:
.
├── data-selfie-image-classification
│ ├── ...
├── pyyolo
│ ├── ...
└── weights
└── yolo.weights
Before running the server, we need to install pillow, flask, request, numpy
pip install pillow flask request numpy
and gunicorn, greenlet and gevent
pip install gunicorn greenlet gevent
For Data Selfie we run the API like this, from the directory of this repo:
gunicorn --workers=2 --bind=0.0.0.0:8888 -t 100 -k gevent wsgi
Good luck! File a issue in this repo, contact us or Leon Eckert if you have any questions.