ENGINE

Face Match Engine

Reconhecimento facial plug-and-play para a sua stack. O Cams Face Match Engine transforma uma foto em uma identidade, executando um pipeline completo de detecção, alinhamento, embedding e comparação com ArcFace em ONNX e antifraude (anti-spoofing) passivo — tudo por trás de três endpoints HTTPS simples. Envie uma imagem do rosto ou um embedding pré-calculado.

Visão geral

Cadastro facial, verificação 1:1 e identificação 1:N no servidor via REST — com embedding ArcFace, detecção SCRFD, alinhamento e antifraude (anti-spoofing) integrados.

Um serviço independente de reconhecimento facial que expõe cadastro, verificação (1:1) e identificação (1:N) em /api/biometric/v1/face/. Cada imagem passa por detecção SCRFD, alinhamento de 5 pontos por transformação de similaridade, detecção de ataques de apresentação da classe MiniFASNet e embedding de 512 dimensões do ArcFace (insightface w600k_r50), com pontuação por similaridade de cosseno exata de 0 a 100. As galerias são multitenant, com escopo por tenant e usuário, com cache decodificado já carregado e um thread pool compartilhado para um 1:N rápido. É pronto para GPU por meio de uma única troca de provider do ONNX (CPU, CUDA, TensorRT ou OpenVINO), sem alterar código.

ENGINERESTHTTPSJSONC++
⚡
Teste ao vivo — FaceUp. Frequência por reconhecimento facial direto no navegador — cadastre um rosto e registre a presença com liveness, sem instalar app. Sem necessidade de login — comece com o número de série do seu dispositivo.
POST /api/biometric/v1/face/identify (1:N)
curl .../api/biometric/v1/face/identify \
  -H "sn: $SN" -H "auth-token: $TOKEN" \
  -d '{ "image": "<base64 jpeg>" }'
# -> detect -> PAD anti-spoof -> align -> ArcFace -> cosine
{ "ok":true, "match":true, "score":87,
  "candidates":5312, "user_id":"1042" }

Veja em ação

Face Match Engine — demonstração ao vivo

Face Match Engine► Assistir à demonstração

Recursos

O que ele faz

Cadastrar um rosto

Armazene um ou mais rostos por usuário a partir de uma imagem em base64 ou de um embedding de 512 dimensões pré-calculado.

Verificar (1:1)

Confirme que um rosto capturado corresponde a um usuário informado, retornando uma flag de correspondência e uma pontuação de 0 a 100.

Identificar (1:N)

Busque um rosto capturado em toda a galeria do tenant e retorne a melhor correspondência acima do limiar.

Antifraude (PAD)

O PAD MiniFASNet rejeita reproduções de fotos e de telas em toda verificação e identificação, antes de qualquer embedding ser calculado.

Controle de qualidade

Rejeita no cadastro rostos pequenos demais, borrados, escuros, claros demais ou fora de ângulo, para que apenas templates limpos entrem na galeria.

Correspondência 1:N em escala

Um cache em memória já carregado e um thread pool limitado mantêm o cosseno por força bruta rápido até a faixa de ~1 milhão de templates.

Funcionalidades

Tudo incluído

  • Três endpoints — cadastro, verificação (1:1) e identificação (1:N) — que aceitam uma imagem em base64 ou um embedding de 512 dimensões pré-calculado
  • Embeddings de 512 dimensões normalizados em L2 do ArcFace R50 (insightface w600k_r50), com correspondência por cosseno pontuada de 0 a 100
  • Detecção facial SCRFD det_10g integrada, mais alinhamento de 5 pontos em forma fechada para o ArcFace 112x112
  • Antifraude passivo de quadro único (MiniFASNet PAD) rejeita reproduções impressas e em tela antes do embedding
  • Controle de qualidade no cadastro: verificações de tamanho do rosto, nitidez, brilho e frontalidade com limiares ajustáveis
  • Galerias multitenant com escopo por tenant e usuário, com filtragem por versão do modelo entre atualizações de modelo
  • Cache de galeria por tenant já carregado mais um thread pool compartilhado para o 1:N (ganho medido de ~5,3x, ~104 ms em uma galeria de 1 milhão de templates)
  • Troca de provider do ONNX pronta para GPU (cpu/cuda/tensorrt/openvino) com fallback para CPU e sem alterar código
  • Limiar de correspondência configurável (padrão 60) e uma política de entrada que pode exigir apenas imagem em edges não confiáveis

Crie com o Face Match Engine

Pegue uma chave, leia a documentação e publique. Nossa equipe ajuda na sua primeira integração.

FAQ

Perguntas frequentes

Posso enviar um embedding pré-calculado em vez de uma imagem?

Sim. As requisições aceitam um array JSON de embedding ou uma imagem em base64. A entrada por embedding é comparada totalmente ao vivo dentro da engine; a entrada por imagem executa o pipeline completo de detecção, alinhamento, PAD e embedding. A entrada por embedding pode ser desativada por política em edges não confiáveis.

O Face Match Engine detecta fraudes de apresentação (spoofing)?

Sim. Toda verificação e identificação executa uma checagem antifraude passiva (PAD) MiniFASNet no recorte do rosto detectado antes do embedding, rejeitando reproduções impressas e em tela. É um PAD RGB de quadro único; máscaras 3D e reproduções de vídeo de alta qualidade exigem hardware de profundidade ou IR.

Qual modelo de reconhecimento facial ele usa?

ArcFace R50 (insightface w600k_r50), que produz embeddings de 512 dimensões normalizados em L2, com SCRFD det_10g para detecção e um alinhador de 5 pontos por transformação de similaridade.

Ele pode rodar em GPU?

Sim. Defina o provider do ONNX como cuda (ou tensorrt/openvino); o detector, o gerador de embeddings e o PAD usam o provider configurado, com fallback para CPU e sem alterar código.

Qual o tamanho de galeria que a identificação 1:N suporta?

Ele usa um cache decodificado já carregado e um thread pool compartilhado para correspondência por cosseno de força bruta, medido em cerca de 104 ms em uma galeria de 1 milhão de templates; um índice de vizinhos mais próximos aproximado é o caminho para ir além disso.

Relacionados

Explore mais da plataforma