Para realizar uma checagem da padronização de imagem de face, usa-se o método check_icao, que avalia a qualidade da foto da face de acordo com o padrão ISO/IEC 19794-5, ICAO. Este padrão foi criado com o intuito de permitir que máquinas façam a análise de imagens de face de forma automática mais eficientemente, portanto, verificar se a foto que será enviada para o sistema está de acordo com este padrão aprimorará o seu uso do BioPass ID.
Para o corpo da requisição, será necessário enviar um texto em formato JSON contendo a string base64 da imagem que deseja checar. Um exemplo pode ser visto abaixo:
Já para o header, insira o tipo de conteúdo e sua chave de subscrição, substituindo <API-KEY>, conforme o exemplo abaixo:
Para a requisição, especifique que é um método de tipo POST, a URL https://api.biopassid.com/quality/check_icao , o header e o corpo conforme os exemplos dados. É possível verificar abaixo como ficaria uma requisição desse tipo, escrito em Python, mas que pode ser verificada em diversas outras linguagens de programação em nossa documentação:
Caso receba a mensagem 200 (OK) em sua resposta, isso significa que a requisição foi concluída com sucesso. O conteúdo da resposta será um objeto ICAO que conterá com detalhes o resultado do exame.
Primeiramente, ele conterá uma variável FaceImageConformed, que conterá um código numérico que se refere ao posicionamento da face na foto. O significado de cada valor pode ser observado na tabela abaixo:
Código |
Descrição |
-1 |
Erro no processamento da imagem |
0 |
Nenhum problema foi encontrado |
1 |
Face não detectada |
2 |
Nenhum landmark foi identificado |
3 |
Face está deslocada à esquerda |
4 |
Face está deslocada à direita |
5 |
Face está deslocada para cima |
6 |
Face está deslocada para baixo |
7 |
Face está longe |
Em seguida, a variável IsAllConformed conterá um valor booleano que indica se a foto está completamente de acordo com todos os requerimentos impostos pelo padrão ICAO.
Por fim, haverá um objeto Requirements que mostra para cada requerimento se ele foi cumprido (através da variável booleana IsConformed) e o nível de certeza (de 0 a 100, através da variável Confidence). Uma tabela com cada requerimento e o que ele significa pode ser vista abaixo:
Requisito |
Descrição |
Blurred |
A foto não pode estar embaçada |
LookingAway |
O indivíduo tem que estar olhando diretamente para câmera |
InkMarked |
A foto não pode ter marcas de tinta |
UnnaturalSkin |
A foto deve mostrar o tom de pele natural do indivíduo |
TooDarkLight |
A foto deve possuir brilho adequado |
WashedOut |
A foto de deve possuir nível de contraste adequado |
Pixelation |
A foto não deve apresentar pixelização |
HairAcrossEyes |
Os olhos não podem ser obstruidos pelo cabelo do indivíduo |
EyesClosed |
Os olhos devem estar abertos |
VariedBackground |
A foto deve ser retirada com o fundo uniforme |
Roll_Pitch_Yaw |
A cabeça do indivíduo deve estar voltada para câmera e em posição frontal |
FlashReflectionOnSkin |
A foto não pode apresentar reflexos do flash na pele do indivíduo |
RedEyes |
A foto não pode apresentar olhos vermelhos |
ShadowsBehindHead |
A foto não pode apresentar sombras atrás do indivíduo |
ShadowsAcrossFace |
A foto não pode apresentar sombras na face do indivíduo |
DarkTintedLenses |
O indivíduo não pode estar usando óculos escuros |
FlashReflectionOnLenses |
A foto não pode apresentar reflexos nas lente do óculos do indivíduo |
FramesTooHeavy |
O indivíduo não pode estar usando óculos de armação pesada |
FramesCoveringEyes |
A armação dos óculos do indivíduo não pode cobrir os seus olhos |
Hat_Cap |
O indivíduo não pode utilizar chapéu ou boné na foto |
VeilOverFace |
Caso esteja vestindo véu, este não pode cobrir a face do indivíduo |
MouthOpen |
A boca do indivíduo deve estar fechada |
OtherFaces |
O indivíduo deve estar sozinho na foto |
Por fim, um exemplo de como ficaria a resposta do sistema para a requisição feita no exemplo pode ser observada abaixo: