A simple deepinsight/insightface implementation with FastAPI for face verification.
- Use a proper db migration package such as alembic
It is recommended to test the available APIs from [GET] /docs
-
[GET] /
- Root- Check API status
-
[POST] /upload-selfie
- Upload Selfie- Upload selfie image file with person name and store it to database
-
[POST] /face-verification
- Face Verification- Upload selfie image file and a person name from the database to verify
-
[POST] /face-search
- Face Search- Upload selfie image file to search for similar faces in database
-
[PUT] /faces
- Update Face- Update face data (name or face data) in the database
-
[GET] /faces
- Get Faces- Get faces from database
-
[DELETE] /faces
- Delete Face- Delete a face from database using name from database
-
[POST] /analyze-image-url
- Analyze Image Url- Send image url to analyze (does not save to database)
-
[POST] /analyze-image-file
- Analyze Image File- Upload image file to analyze (does not save to database)
-
[POST] /compute-selfie-image-files-similarity
- Compute Selfie Image Files Similarity- Compute similarity of 2 selfie image files (does not save to database)
First you must run setup_model.sh
to load the model.
Using docker-compose (RECOMMENDED):
docker-compose up
Using pipenv (you'll need to setup postgresql and .env on your own):
pipenv run uvicorn app.main:app --reload
Using poetry (you'll need to setup postgresql and .env on your own):
poetry run uvicorn app.main:app --reload
You can download the model files and move them into ~/.insightface/models
manually or just use setup_model.sh
Original source:
- arcface_r100_v1 : http://insightface.ai/files/models/arcface_r100_v1.zip
- genderage_v1 : http://insightface.ai/files/models/genderage_v1.zip
- retinaface_r50_v1 : http://insightface.ai/files/models/retinaface_r50_v1.zip
Alternative: