MOTOR

Face Match Engine

Reconocimiento facial listo para integrar en tu stack. Cams Face Match Engine convierte una foto en una identidad: ejecuta un pipeline completo de detección, alineación, embedding y comparación con ArcFace en ONNX más antisuplantación pasiva, todo tras tres sencillos endpoints HTTPS. Envía una imagen facial o un embedding precalculado.

Descripción general

Registro facial en el servidor, verificación 1:1 e identificación 1:N mediante REST, con embeddings ArcFace, detección SCRFD, alineación y antisuplantación integrados.

Un servicio de reconocimiento facial independiente que expone registro, verificación (1:1) e identificación (1:N) en /api/biometric/v1/face/. Cada imagen pasa por detección SCRFD, alineación de 5 puntos con transformación de similitud, detección de ataques de presentación de clase MiniFASNet y embedding de 512 dimensiones ArcFace (insightface w600k_r50), y después por una similitud de coseno exacta puntuada de 0 a 100. Las galerías son multitenant, con ámbito por tenant y usuario, con una caché decodificada precargada y un pool de hilos compartido para un 1:N rápido. Está listo para GPU con un único cambio de proveedor ONNX (CPU, CUDA, TensorRT u OpenVINO) sin modificar el código.

MOTORRESTHTTPSJSONC++
⚡
Pruébalo en vivo — FaceUp. Asistencia por reconocimiento facial directamente en tu navegador: registra un rostro y marca la asistencia con prueba de vida, sin instalar ninguna app. No hace falta iniciar sesión: empieza con el número de serie de tu 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" }

Velo en acción

Face Match Engine — demo en vivo

Face Match Engine► Ver demo

Capacidades

Qué hace

Registrar un rostro

Guarda uno o varios rostros por usuario a partir de una imagen en base64 o de un embedding de 512 dimensiones precalculado.

Verificar (1:1)

Confirma que un rostro capturado coincide con un usuario declarado y devuelve un indicador de coincidencia y una puntuación de 0 a 100.

Identificar (1:N)

Busca un rostro capturado en toda la galería del tenant y devuelve la mejor coincidencia por encima del umbral.

Antisuplantación (PAD)

MiniFASNet PAD rechaza reproducciones de fotos y pantallas en cada verificación e identificación, antes de calcular ningún embedding.

Control de calidad

En el registro rechaza rostros demasiado pequeños, borrosos, oscuros, claros o de perfil, de modo que solo entren plantillas limpias en la galería.

Coincidencia 1:N a escala

Una caché en memoria precargada y un pool de hilos acotado mantienen rápido el coseno por fuerza bruta hasta alrededor de 1 millón de plantillas.

Funciones

Todo incluido

  • Tres endpoints (registro, verificación 1:1 e identificación 1:N) que aceptan una imagen en base64 o un embedding de 512 dimensiones precalculado
  • Embeddings de 512 dimensiones normalizados L2 con ArcFace R50 (insightface w600k_r50) y coincidencia por coseno puntuada de 0 a 100
  • Detección facial SCRFD det_10g integrada y alineación de 5 puntos en forma cerrada a ArcFace 112x112
  • Antisuplantación pasiva de un solo fotograma (MiniFASNet PAD) que rechaza reproducciones impresas y de pantalla antes del embedding
  • Control de calidad en el registro: comprobaciones de tamaño del rostro, nitidez, brillo y frontalidad con umbrales ajustables
  • Galerías multitenant con ámbito por tenant y usuario, y filtrado por versión de modelo entre actualizaciones del modelo
  • Caché de galería precargada por tenant y pool de hilos compartido para 1:N (aceleración medida de ~5,3x, ~104 ms sobre una galería de 1 millón de plantillas)
  • Cambio de proveedor ONNX listo para GPU (cpu/cuda/tensorrt/openvino) con respaldo en CPU y sin cambios de código
  • Umbral de coincidencia configurable (60 por defecto) y una política de entrada que puede exigir solo imágenes en bordes no confiables

Desarrolla con Face Match Engine

Consigue una clave, lee la documentación y publica. Nuestro equipo te ayuda con tu primera integración.

Preguntas frecuentes

Preguntas frecuentes

¿Puedo enviar un embedding precalculado en lugar de una imagen?

Sí. Las solicitudes aceptan un array JSON de embedding o una imagen en base64. La entrada de embedding se compara por completo en vivo dentro del motor; la entrada de imagen ejecuta el pipeline completo de detección, alineación, PAD y embedding. La entrada de embedding puede deshabilitarse por política en bordes no confiables.

¿Face Match Engine detecta la suplantación?

Sí. Cada verificación e identificación ejecuta una comprobación antisuplantación pasiva (PAD) MiniFASNet sobre el recorte del rostro detectado antes del embedding, y rechaza reproducciones impresas y de pantalla. Es un PAD RGB de un solo fotograma; las máscaras 3D y las reproducciones de vídeo de alta calidad requieren hardware de profundidad o IR.

¿Qué modelo de reconocimiento facial utiliza?

ArcFace R50 (insightface w600k_r50), que produce embeddings de 512 dimensiones normalizados L2, con SCRFD det_10g para la detección y un alineador de 5 puntos con transformación de similitud.

¿Puede ejecutarse en una GPU?

Sí. Establece el proveedor ONNX en cuda (o tensorrt/openvino); el detector, el generador de embeddings y el PAD usan el proveedor configurado, con respaldo en CPU y sin cambios de código.

¿Qué tamaño de galería puede manejar la identificación 1:N?

Usa una caché decodificada precargada y un pool de hilos compartido para la coincidencia por coseno de fuerza bruta, con una medición de aproximadamente 104 ms sobre una galería de 1 millón de plantillas; un índice de vecino más cercano aproximado es el camino para ir más allá.

Relacionado

Explora más de la plataforma