This project provides a docker image which offers a web service to recognize known faces on images. It's based on the great ageitgey/face_recognition project and just add a web service using the Python face_recognition
-library.
Start by building the docker image with a defined name. This can take a while.
docker build -t facerec_service .
Start the image and forward port 8080. Optionally bind a local directory to /root/faces
to provide a location for predefined images which will be registered at start time.
docker run -p8080:8080 facerec_service
or
docker run -p8080:8080 -vfaces:/root/faces facerec_service
or
docker run -d -p8080:8080 -vfaces:/root/faces facerec_service
Simple POST
an image-file to the /faces
endpoint and provide an identifier.
curl -X POST -F "file=@person1.jpg" http://localhost:8080/faces?id=person1
Simple DELETE
an image-file to the /faces
endpoint
curl -X DELETE http://localhost:8080/faces?id=person1
Simple GET
the /fa
endpoint.
curl http://localhost:8080/faces
Simple POST
an image-file to the web service.
curl -X POST -F "file=@person1.jpg" http://localhost:8080/
Simple POST
an image-file to the web service.
curl -X POST -F "file1=@person1.jpg" -F "file1=@person2.jpg" http://localhost:8080/compare
In the examples
-directory there is currently only one example that shows how to use the Raspberry Pi-Camera module to capture an image and POST
it to the Face Recognition - Docker image
to check for known faces.
I'm not a Python expert, so I'm pretty sure you can optimize the Python code further :) Please feel free to send PR's or open issues.