Skip to content

The world’s most accurate facial recognition API. Give it a try

Notifications You must be signed in to change notification settings

biometricvisiondev/facial-recognition-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Logo

Introduction

Recognize and compare faces in minutes with this simple to use cloud based facial recognition API. This model has a match accuracy of 99.9% so it works under extreme conditions (Long distance, pixelation, blurred images and high/low contrast).

(https://biometricvision.com) Has released it's API for free to the community for the next 3 months. We are really excited for everyone to test the technology and let us know what you think.

This tutorial shows you how to compare between two images.

Example

This image below is a demo showing the results of two images matching as the same person: Demo

Results

{
    "Confidence": "Match",
    "Features": {
        "Left Eye": "92.52",
        "Right Eye": "86.04",
        "Left Brow": "91.45",
        "Right Brow": "90.31",
        "Forehead": "90.91",
        "Middle Forehead": "89.70",
        "Nose": "87.82",
        "Philtrum": "93.20",
        "Mouth": "91.65",
        "Jaw": "93.75",
        "Left Cheek": "86.44",
        "Right Cheek": "88.50"
}

You can find a working demo UI here

The 99.9% match accuracy means it will work under extreme conditions: Demo

Getting Started

There are three steps to use the API:

  1. Get your the API Key, Client ID and Secret Key.
  2. Create an OAuth 2.0 Token.
  3. Upload two images to the compare API.

You can use our postman collection to test your API.

Step 1: Get your the API Key, Client ID and Secret Key

You can quickly generate your API Key, Client ID and Secret Key by signing up here. Don't worry it's free for 90 days and you don't need to enter credit card details.

Step 2: Create an OAuth 2.0 Token

To access the compare API you will need an OAuth 2.0 Token. So, you will need your Client ID and Secret Key to create it. Below is an example for creating OAuth 2.0 Token using CURL.

curl -X POST -H "Content-Type: application/json" \
     --data "{\"client_id\": \"CLIENT_ID\",\"client_secret\": \"SECRET_KEY\", \"grant_type\":\"client_credentials\"}" \
     https://bvengine.com/oauth/token

Response:

{
	"token_type": "Bearer",
	"expires_in": 3600,
	"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIyNTQxMTQ1NiIsImp0aSI6IjNiNTg2YzZjMDdkODBhZThjYWYwMGFlYWI3ZDFiN2E2MjZjZjM0YjgxODJiZjlhOWE0MWMyNjI1YWEzN2YxNTYzNWFjYzVjM2JiNWNhODY2IiwiaWF0IjoxNTgzMjg4OTA4LCJuYmYiOjE1ODMyODg5MDgsImV4cCI6MTU4MzI5MjUwOCwic3ViIjoiIiwic2NvcGVzIjpbXX0.NdZyMzYgYt4dtnFa3ph9MiJGhF00tauH3yy7quBPHcUNkY7ZEysQSWt1YOvQXr1L5E5eMMsaidojYLU8Zknc112TYtbUsdiQMJQyNves_dJpE-0kna3TzE4rDwNFqZXdRCul6FGVb5AzYeH2sAmkny03584cnVZC6WsOsOJacccl1kIjKe0zBS2pKi3EqiDka8z_Er3GboXD4qxSUOvkrO4JN0qNXckIhl7q1SgXwX_JwbwU6Sxzd8y_q7tjCptca3JimRf_ad3U4k3Bp-gErhMby_SoTADrexE3uHuOK8gM1aLW8JH-Vg8rX-rX0m78OgFcC8mpLVtm2a4g1NT_o1ZFCIuJNBxa-cpE13uYgjMwyj8LKQ_xeBGJu7eaOeu5wxMqTa26IKp35lwVFcF8bHCcfjIm1JwrPoEowlBDFUd1thBaprKBRJeguHg4foO4RNK08wQrG_S0m34x_jfhpo5ljlZQyrbGb4x0FB3b-IRV5tXNE1rX8h5UnFexQX5zDHTKtr_nSFl8_HtIHAOYOywPfxpMSWHEyzq6-KY1u1rmnhRIJSVC5VledVjW8lvAfKXtAJK6K315nYWvDoDN2aZ-wftpWkPBDYzjMf9NwoA7AvlvS95_mSsiQC0l6rJor6lqMW2ELBYgRCaqwJ5ebQ1xGB_DnNXx_zwsg7Y6vV0"
}

Step 3: Upload two images to the compare API

Once you get access_token now you will be able to use the compare API with your API Key. Below is an example for using the API.

Request:

curl -X POST -H "Content-Type: application/json" \
     -H "Authorization: Bearer ACESS_TOKEN" \
     -H "X-API-KEY: API_KEY" \
     -F "image1=@/home/user/image1.jpg" \
     -F "image2=@/home/user/image2.jpg" \
     https://bvengine.com/api/compare

Response:

{
    "Confidence": "Match",
    "Features": {
        "Left Eye": "92.52",
        "Right Eye": "86.04",
        "Left Brow": "91.45",
        "Right Brow": "90.31",
        "Forehead": "90.91",
        "Middle Forehead": "89.70",
        "Nose": "87.82",
        "Philtrum": "93.20",
        "Mouth": "91.65",
        "Jaw": "93.75",
        "Left Cheek": "86.44",
        "Right Cheek": "88.50"
}

If the two images are not the same person Confidence will be "No Match".

Step 4: Track and monitor the API stats via the dashboard

Can be accessed here (https://app.biometricvision.com/dashboard)

Demo

Swagger Spec

We do have the swagger for those two APIs. You can download it here:

Need Support

If you run into any issues or problems you are welcome to file a github issue or simple talk to me via (https://app.biometricvision.com/dashboard) once you have access. Or you can chat with me directly at (https://biometricvision.com/) via intercom.

Technical Features
Face match time of 130ms
False Accept Rate is 0.1%, False Reject Rate is 0.14%
Proprietary method for storing face templates as an anonymous alphanumeric string of code (binary)
Threshold for ‘Match’ is >=70%
Image formats supported: jpg, jpeg, png, bmp
Built using Python with machine learning
Uses 180 landmarks to create a face template

Release Plan

Feature Release Date
Verification (1:1) Live
Identification (1:N) March 2020
Anti-spoofing April 2020
Liveness detection April 2020

Enjoy!