This repository contains an API for face detection and matching. The algorithm backend used for the computer vision is pluggable and customizable. Currently the following algorithms are supported:
More information on customizing and implementing new face detection algorithms can be found here.
- Install Docker, Docker-Compose and GNU Make.
- Clone this repo.
- Review the default configuration values in
.env
. - To run tests type
make test
from within the top level directory. - To initialize the database, type
make createdb
. This only needs to be executed once. - To start the server, run
make server
.
-
Register your user by making a POST request to
/api/v1/register_user
with ausername
andpassword
. -
Optionally retrieve a token by making a GET request to
/api/v1/token
with your username:password in the Authentication header. Access all other resources by passing your_token:any_value in the Authentication header (using Basic Auth) or by passing username:password for each request -
Upload an image by making a POST request to
/api/v1/upload_image
. -
Process an image by making a POST request to
/api/v1/process_image
. This will extract face vectors for the image and match it against all other images in the database. This is an asynchronous process. -
Check the status of the image to see if it is finished processing by making a GET request to
/api/v1/process_image/<image_id>
. Once the image is finished processing, it will be removed from the system's storage and only the face vectors and matches are persisted in the system's database. -
See which other images are matches for a given image by making a GET request to
/api/v1/image_matches/<image_id>
.