Pular para o conteúdo

Reconhecimento Facial

Todas as operações realizadas no serviço de reconhecimento facial são feitas através do recurso faces. Este recurso abstrai um único indivíduo e pode conter um ou mais templates de face, todos correspondentes ao mesmo indivíduo.

Template de face é o termo utilizado para a informação da biometria facial extraída a partir da imagem da face. Apenas os templates são armazenados pelo serviço de reconhecimento facial da TechTrue®, e é impossível refazer a imagem da face a partir deste template.

O identificador único deste recurso, ext_id, é responsável por identificar este indivíduo na base de dados e faz a agregação dos templates associados ao mesmo.

Ademais, é possível realizar a segregação da base de dados de face utilizando o conceito de aplicações, onde cada aplicação possui uma credencial específica, utilizada para geração do token de autenticação, que, por fim, definirá qual instância da base de dados será utilizada nas operações sobre uma face.

O exemplo mais básico do uso desta aplicação é para segregar as bases de dados utilizadas durante a fase de integração/testes da fase de produção/operação real do serviço. Assim, evita-se que faces utilizadas em testes acabem indo para a base de dados de produção e/ou que desenvolvedores tenham acesso indevido às faces utilizadas na operação do serviço.

Quantidade de faces

Terminal window
curl "https://api.techtrue.com.br/api/v1/services/face/count"
-H "Authorization: Bearer {{token}}"

O comando acima retorna o seguinte JSON:

{
"count": 10234
}

Endpoint que retorna a quantidade de faces cadastradas na aplicação.

HTTP Request

GET /api/v1/services/face/count

Parameters

NameLocated inDescriptionRequiredType
none

HTTP Response

CodeDescription
200OK
401Unauthorized

Listagem de faces

Terminal window
curl "https://api.techtrue.com.br/api/v1/services/face/list"
-H "Authorization: Bearer {{token}}"

O comando acima retorna o seguinte JSON:

{
"faces": [
{
"ExternalID": "<ext_id>",
"CreatedAt": "{{timestamp}}"
}
]
}

Endpoint que retorna uma lista com todas as faces cadastradas na aplicação.

HTTP Request

GET /api/v1/services/face/list

Parameters

NameLocated inDescriptionRequiredType
none

HTTP Response

CodeDescription
200OK
401Unauthorized

Export de faces

Terminal window
curl "https://api.techtrue.com.br/api/v1/services/face/dump"
-H "Authorization: Bearer {{token}}"

O comando acima retorna o seguinte JSON:

{
"result": {
"total_entries": 2,
"faces": [
{
"ExternalID": "teste11",
"Templates": [
{
"Data": "<base64_string>"
}
],
"CreatedAt": "{{timestamp}}",
"UpdatedAt": "{{timestamp}}"
},
{
"ExternalID": "teste1",
"Templates": [
{
"Data": "<base64_string>"
},
{
"Data": "<base64_string>"
}
],
"CreatedAt": "{{timestamp}}",
"UpdatedAt": "{{timestamp}}"
}
}
}

Endpoint que retorna uma lista com todos os templates de faces cadastradas na aplicação. Esses templates podem ser utilizados para a carga de uma base de dados em um device, ou para migração de faces entre aplicações.

HTTP Request

GET /api/v1/services/face/dump

Query Parameters

NameLocated inDescriptionRequiredType
pagequeryNúmero da página a ser requisitadaFalseinteger
limitqueryQuantidade máxima de registros a ser retornado por páginaFalseinteger

HTTP Response

CodeDescription
200OK
401Unauthorized

Quantidade de templates

Terminal window
curl "https://api.techtrue.com.br/api/v1/services/face/templates/count/{ext_id}"
-H "Authorization: Bearer {{token}}"

O comando acima retorna o seguinte JSON:

{
"count": 3
}

Endpoint que retorna a quantidade de templates cadastrados para uma determinada face

HTTP Request

GET /api/v1/services/face/templates/count/{ext_id}

URL Parameters

NameLocated inDescriptionRequiredType
ext_idpathIdentificador único da faceYesstring

HTTP Response

CodeDescription
200OK
401Unauthorized

Cadastrar uma face

Terminal window
curl "https://api.techtrue.com.br/api/v1/services/face/enroll/{ext_id}" \
-X POST --data "@images.json" \
-H "Authorization: Bearer {{token}}"

O comando acima retorna o seguinte JSON:

{
"result": {
"code": 1000,
"message": "ENROLLED_SUCCESSFULLY"
}
}

Endpoint que realiza o cadastro de uma face no serviço.

HTTP Request

POST /api/v1/services/face/enroll/{ext_id}

URL Parameters

NameLocated inDescriptionRequiredType
ext_idpathIdentificador único da faceYesstring

HTTP Response

CodeDescription
200OK
401Unauthorized

Body payload

{
"doLivenessCheck": true,
"ReturnTemplate": false,
"Images": [
{
"imageType": "frontal",
"imageData": "{{base64_string}}"
}
]
}

Body payload

  • Parâmetro doLivenessCheck:

O parâmetro doLivenessCheck, quando passado com valor true, informa o serviço de que este deve executar o processo de avaliação de vivacidade de face sobre as imagens enviadas.

Caso a avaliação de vivacidade indique uma tentativa de ataque de apresentação, a requisição retorna erro no JSON.

Retorno em caso de erro do Liveness Check

{
"result": {
"code": 1013,
"message": "LIVENESS_CHECK_FAILED",
"detail": "liveness check failed"
}
}
  • Parâmetro ReturnTemplate:

Quando o parâmetro ReturnTemplate for true, a resposta da requisição conterá o template biométrico, em base64, das faces enviadas na requisição.

Retorno quando a requisição conter "ReturnTemplate": true

{
"result": {
"code": 1000,
"message": "ENROLLED_SUCCESSFULLY"
},
"b64Templates": [
{{base64_string}}
]
}

Atualizar uma face

Endpoint que atualiza o cadastro de uma face no serviço.

Terminal window
curl "https://api.techtrue.com.br/api/v1/services/face/{ext_id}" \
-X PATCH --data "@images.json" \
-H "Authorization: Bearer {{token}}"

O comando acima retorna o seguinte JSON:

{
"result": {
"code": 1006,
"message": "UPDATED_SUCCESSFULLY"
}
}

HTTP Request

PATCH /api/v1/services/face/{ext_id}

URL Parameters

NameLocated inDescriptionRequiredType
ext_idpathIdentificador único da faceYesstring

HTTP Response

CodeDescription
200OK
401Unauthorized

Body payload

{
"doLivenessCheck": true,
"ReturnTemplate": false,
"Images": [
{
"imageType": "frontal",
"imageData": "{{base64_string}}"
}
]
}

Body payload

  • Parâmetro doLivenessCheck:

O parâmetro doLivenessCheck, quando passado com valor true, informa o serviço de que este deve executar o processo de avaliação de vivacidade de face sobre as imagens enviadas.

Caso a avaliação de vivacidade indique uma tentativa de ataque de apresentação, a requisição retorna erro no JSON.

Retorno em caso de erro do Liveness Check

{
"result": {
"code": 1013,
"message": "LIVENESS_CHECK_FAILED",
"detail": "liveness check failed"
}
}
  • Parâmetro ReturnTemplate:

Quando o parâmetro ReturnTemplate for true, a resposta da requisição conterá o template biométrico, em base64, das faces enviadas na requisição.

Retorno quando a requisição conter "ReturnTemplate": true

{
"result": {
"code": 1000,
"message": "ENROLLED_SUCCESSFULLY"
},
"b64Templates": [
{{base64_string}}
]
}

Consultar os templates de uma face

Endpoint que consulta e retorna todos os templates de uma face do serviço.

Terminal window
curl "https://api.techtrue.com.br/api/v1/services/face/templates/{ext_id}" \
-H "Authorization: Bearer {{token}}"

O comando acima retorna o seguinte JSON:

{
"ExternalID": "{{ext_id}}",
"Templates": [
{
"Data": "{{base64_string}}"
}
],
"CreatedAt": "{{timestamp}}",
"UpdatedAt": "{{timestamp}}"
}

HTTP Request

GET /api/v1/services/face/templates/{ext_id}

Parameters

NameLocated inDescriptionRequiredType
ext_idpathIdentificador único da faceYesstring

HTTP Response

CodeDescription
200OK
401Unauthorized

Remover uma face

Endpoint que remove uma face do serviço.

Terminal window
curl "https://api.techtrue.com.br/api/v1/services/face/{ext_id}" \
-X DELETE \
-H "Authorization: Bearer {{token}}"

O comando acima retorna o seguinte JSON:

{
"result": {
"code": 1004,
"message": "DELETED_SUCCESSFULLY"
}
}

HTTP Request

DELETE /api/v1/services/face/{ext_id}

Parameters

NameLocated inDescriptionRequiredType
ext_idpathIdentificador único da faceYesstring

HTTP Response

CodeDescription
200OK
401Unauthorized

Verificar uma face

Endpoint que realiza a verificação (operação 1:1) de uma face.

Terminal window
curl "https://api.techtrue.com.br/api/v1/services/face/{ext_id}/verify" \
-X POST --data "@images.json" \
-H "Authorization: Bearer {{token}}"

O comando acima retorna o seguinte JSON:

{
"result": {
"code": 1002,
"message": "VERIFIED_SUCCESSFULLY"
}
}

HTTP Request

POST /api/v1/services/face/{ext_id}/verify

Parameters

NameLocated inDescriptionRequiredType
ext_idpathIdentificador único da faceYesstring

HTTP Response

CodeDescription
200OK
401Unauthorized

Body payload

{
"doLivenessCheck": true,
"Images": [
{
"imageType": "frontal",
"imageData": "{{base64_string}}"
}
]
}

Body payload

O parâmetro doLivenessCheck, quando passado com valor true, informa o serviço de que este deve executar o processo de avaliação de vivacidade de face sobre as imagens enviadas.

Caso a avaliação de vivacidade indique uma tentativa de ataque de apresentação, a requisição retorna erro no JSON.

Retorno em caso de erro do Liveness Check

{
"result": {
"code": 1013,
"message": "LIVENESS_CHECK_FAILED",
"detail": "liveness check failed"
}
}

Identificar uma face

Endpoint que realiza a identificação (operação 1

) de uma face.

Terminal window
curl "https://api.techtrue.com.br/api/v1/services/face/identify" \
-X POST --data "@images.json" \
-H "Authorization: Bearer {{token}}"

O comando acima retorna o seguinte JSON:

{
"ExternalID": "chad_smith",
"result": {
"code": 1008,
"message": "IDENTIFIED_SUCCESSFULLY"
}
}

HTTP Request

POST /api/v1/services/face/identify

Parameters

NameLocated inDescriptionRequiredType
none

HTTP Response

CodeDescription
200OK
401Unauthorized

Body payload

{
"doLivenessCheck": true,
"Images": [
{
"imageType": "frontal",
"imageData": "{{base64_string}}"
}
]
}

Body payload

O parâmetro doLivenessCheck, quando passado com valor true, informa o serviço de que este deve executar o processo de avaliação de vivacidade de face sobre as imagens enviadas.

Caso a avaliação de vivacidade indique uma tentativa de ataque de apresentação, a requisição retorna erro no JSON.

Retorno em caso de erro do Liveness Check

{
"result": {
"code": 1013,
"message": "LIVENESS_CHECK_FAILED",
"detail": "liveness check failed"
}
}

Comparar duas faces

Endpoint que realiza a comparação de duas faces (1:1), sem a necessidade de realizar um cadastro prévio.

Terminal window
curl "https://api.techtrue.com.br/api/v1/services/face/match" \
-X POST --data "@images.json" \
-H "Authorization: Bearer {{token}}"

O comando acima retorna o seguinte JSON:

{
"result": {
"code": 1002,
"message": "VERIFIED_SUCCESSFULLY"
}
}

HTTP Request

POST /api/v1/services/face/match

Parameters

NameLocated inDescriptionRequiredType
none

HTTP Response

CodeDescription
200OK
401Unauthorized

Body payload

{
"doLivenessCheck": true,
"Images": [
{
"imageType": "frontal",
"imageData": "<base64>"
},
{
"imageType": "frontal",
"imageData": "<base64>"
}
]
}

Body payload

O parâmetro doLivenessCheck, quando passado com valor true, informa o serviço de que este deve executar o processo de avaliação de vivacidade de face sobre as imagens enviadas.

Caso a avaliação de vivacidade indique uma tentativa de ataque de apresentação, a requisição retorna erro no JSON.

Retorno em caso de erro do Liveness Check

{
"result": {
"code": 1013,
"message": "LIVENESS_CHECK_FAILED",
"detail": "liveness check failed"
}
}