Skip to content
On this page

IRIS AI

foo

IRIS, a product from FraudLabs and Verifiedly LLC, is the most advanced facial recognition and liveness detection technology commercially available as an API ( without the need for a hardware). With just a single 2D image, IRIS is able to analyze a facial image in great detail and produce hundreds of data points, all in a matter of seconds.

What's even more impressive is, IRIS continues to study your face as you get older and whenever you are ready to terminate your relationship with IRIS, it is just an API call away.

INFO

Neither we nor IRIS stores raw facial images on our servers. We store received facial images in decentralized servers provided by Storj and then pass on the one-time image reprensation token to IRIS who then uses it to fulfill the request.

Communicating with IRIS

There are two major parts to communicating with IRIS

  • Creating a profile ( with a face )
  • Authenticating against the profile you created

Create a profile

Before you start using IRIS to perform facial recognition, you will need to create a profile with a single face image. This facial image will be referenced whenever there is an authentication request.

Endpoint

{BASE_URL}/face/iris/profile

Method: POST.

ParameterDescriptionRequired
faceA JPG,JPEG,PNG image of the user's face. Uploaded as FormDataTrue

Sample Request

curl --location --request POST 'https://api.stack-ft.com/face/iris/profile' \
--header 'Authorization: API_KEY' \
--form 'face=@"YOUR_IMAGE_LOCATION"'

What just happened?

When we receive the request, we first check to ensure that an image is present , we then store the image in our decentralized image storage servers. Once the image is stored, we proceed to share the one-time image representation token with IRIS to determine if the image actually contains a face, if the face is clear enough and to perform liveness detection and analysis. If there is an issue with any of these, the request will fail and we will return an error stating why. If everything goes well, we will return a 200 success response which includes the liveness detection info and the profile_id

Sample Successful Response

json
{
    "status": "success",
    "request_id": "f49cad8a-ca23-4dca-b337-3e15c152e415",
    "profile_id": "d1f6781c-4c43-4c7d-b170-ae3ef426622b",
    "liveness_info": {
        "angles": {
            "pitch": -0.9373766779899597,
            "roll": -2.113525867462158,
            "yaw": -0.30058854818344116
        },
        "box": {
            "h": 324,
            "w": 243,
            "x": 67,
            "y": 105
        },
        "result": "genuine_selfie",
        "score": 1.6375155448913574
    }
}

INFO

Congratulations! you have created your first profile with IRIS and now, you are ready to start authenticating against that profile.

Authenticate

Now, on to the fun part. You may want to perform face matching ( comapre a selfie to a profile ) or include facial recognition as a part of your app authentication. This is a relatively simple process. All you need to do is pass the profile id and the image you want to use to authenticate against.

Endpoint

{BASE_URL}/face/iris/auth

Method: POST.

ParameterDescriptionRequired
faceA JPG,JPEG,PNG image of the user's face. Uploaded as FormDataTrue
profile_idThe profile_id returned during the profile creationTrue

Sample Request

curl --location --request POST 'https://api.stack-ft.com/face/iris/auth' \
--header 'Authorization: API_KEY' \
--form 'face=@"YOUR_IMAGE_LOCATION"'
--form 'profile_id="YOUR_PROFILE_ID"'

Sample Successful Response

json
{
    "status": "success",
    "request_id": "9665a3d5-3d8b-47a1-a70b-ff550b5c4f53",
    "liveness_info": {
        "angles": {
            "pitch": -0.9373766779899597,
            "roll": -2.113525867462158,
            "yaw": -0.30058854818344116
        },
        "box": {
            "h": 324,
            "w": 243,
            "x": 67,
            "y": 105
        },
        "result": "genuine_selfie",
        "score": 1.6375155448913574
    },
    "match_confidence": 98.22
}

INFO

What you really should be looking for here is the match_confidence. It goes from 0 to 100 ( the closer to 100, the higher the probability of it being the same person). With this info, you are able to decide your own confidence level in your application.