A partir do pacote de API In Car Analytics do BioPass ID, é possível utilizar um serviço especializado na análise de imagens para garantir que os comportamentos das pessoas dentro de veículos estejam de acordo com as normas de trânsito brasileiras. Este serviço permite verificar a quantidade de ocupantes no carro, identificar as coordenadas de cada pessoa no veículo e detectar qualquer situação fora dos padrões exigidos.
As principais certificações de processos realizadas incluem:
- Detecção e contagem de pessoas;
- Reconhecimento de passageiros;
- Verificação do consumo de alimentos ou bebidas;
- Verificação de uso do cinto de segurança;
- Verificação do uso de aparelho celular.
Para utilizar esse serviço o cliente deve realizar a chamada através da API. A documentação completa está disponível no site https://docs.biopassid.com/.
Para obter sucesso na identificação das pessoas dentro do carro, a imagem precisa ser registrada a partir do painel do veículo, de forma a capturar tanto o condutor quanto o passageiro. A seguir, um exemplo de como ficaria o corpo da requisição:
{
"Check": {
"Image": "{{base64}}",
"Coordinates": {{bool}}
}
}
O header da requisição, por sua vez, é onde deve ser inserido o tipo do conteúdo e sua chave de inscrição. Abaixo, é apresentado um exemplo de como o header deve ser representado:
{
'Content-Type': 'application/json'
'Ocp-Apim-Subscription-Key': '<API-KEY>'
}
Por fim, na requisição, devem ser passados como parâmetros a especificação de que é um método POST, a URL ‘https://api.biopassid.com/incaranalytics/check_incar, além do header e do corpo descrito anteriormente. Abaixo, apresentamos um exemplo de código em Python que realiza essa requisição. Exemplos em outras linguagens de programação podem ser encontrados em nossa documentação.
import http.client
import json
conn = http.client.HTTPSConnection("api.biopassid.com")
payload = "{\r\n \"Check\": {\r\n \"Image\": \"{{base64}}\",\r\n \"Coordinates\": {{bool}}\r\n }\r\n}"
headers = {
'Content-Type': 'application/json',
'Ocp-Apim-Subscription-Key': '{{subscription-key}}'
}
conn.request("POST", "/incaranalytics/check_incar", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
A resposta recebida, em caso de uma operação bem-sucedida, incluirá diversos campos, conforme descrito abaixo.
Campos de resposta:
- DetectedPeopleCount: Número de pessoas detectadas pela operação.
-
DetectedPeople: Lista de objetos contendo a coordenada das pessoas. Caso a opção Coordinates for marcada como falsa durante a chamada ou não seja informada, este campo não aparecerá no retorno. Cada objeto da lista possui os seguintes campos, indicando a coordenada de cada pessoa detectada:
- X: Início da coordenada na horizontal.
- Y: Início da coordenada na vertical.
- Width: Largura da coordenada na horizontal.
- Heigth: Altura da coordenada na vertical.
- IsConformed: Resultado da operação de identificação.
A mensagem de resposta para o exemplo fornecido pode ser verificada abaixo:
{
"InCar": {
"DetectedPeopleCount": {int},
"DetectedPeople": [{
"X": {int},
"Y": {int},
"Width": {int},
"Heigth": {int}
}],
"IsConformed": {bool},
}
}
Caso seja retornado um erro, verifique se o conteúdo do corpo e da requisição está corretamente preenchido. Caso receba uma mensagem com o código 200 (OK), significa que sua requisição foi solicitada e realizada com sucesso.