Más juegos en WuGames.ioPatrocinadoDescubre juegos de navegador gratis — juega al instante, sin descargas ni registro.Jugar

Medidor de Similitud Facial

Compara dos fotos de rostros en tu dispositivo con un embedding FaceNet de 128-d. Distancia L2/coseno bruta, umbral ajustable y exportación JSON. Sin subidas.

Sube 2 fotos de rostros para comparar: haz clic en cada recuadro de abajo para elegir una foto, o arrastra y suelta. El botón Comparar se activa cuando ambos rostros están cargados.
Upload
Arrastra y suelta la imagen aquí
Imagen 1
Upload
Arrastra y suelta la imagen aquí
Imagen 2

Sobre el Medidor de Similitud Facial

El Medidor de Similitud Facial compara dos fotos y reporta cuánto se parecen visualmente los rostros como un porcentaje del 0% al 100%. Funciona enteramente en tu navegador vía @vladmandic/face-api (un fork mantenido de face-api.js). Ambas imágenes se decodifican localmente, los rostros se detectan con un detector estilo MobileNet, cada rostro se codifica como un descriptor de 128 dimensiones por una red inspirada en FaceNet, y la distancia euclidiana (L2) entre los dos descriptores se convierte en un porcentaje de similitud. Ningún byte de imagen sale de tu dispositivo: no hay procesamiento del lado del servidor, ni subida, ni registro.

Úsalo para exploración casual: '¿mis dos primos realmente se parecen?', '¿esa selfie todavía se parece a mí cinco años después?', '¿estas dos celebridades no relacionadas se ven similares?'. Es divertido, rápido y te da un número. Hemos elegido intencionalmente un modo de operación permisivo (un solo rostro mejor por imagen, sin verificación de vivacidad, sin filtrado de calidad) para que las fotos pequeñas o de baja calidad sigan produciendo un resultado en lugar de un error. Eso lo hace amigable pero también significa que los porcentajes no están calibrados para autenticación biométrica. Trata el puntaje como un indicador relativo de similitud visual, no como prueba de identidad.

Los mejores resultados requieren fotos frontales, bien iluminadas, a resolución decente donde el rostro ocupe una parte significativa del encuadre. Fotos con gafas de sol, mascarillas, maquillaje pesado, sombreros que cubran las cejas, ángulos laterales o baja resolución distorsionarán el descriptor y bajarán el puntaje, incluso cuando la misma persona aparezca en ambas fotos. A la inversa, gemelos idénticos, padres e hijos, e incluso personas no relacionadas de edad, etnia y peinado similares pueden producir puntajes sorprendentemente altos. Cirugía plástica, cambio de peso significativo, envejecimiento de diez o más años, o filtros fuertes / software face-tune también importan — el modelo no fue entrenado para ser invariante a esos.

Hemos diseñado deliberadamente esta herramienta como una curiosidad y no como un sistema de verificación. No es adecuada para verificación de identidad biométrica, KYC (know-your-customer), control fronterizo, vigilancia, selección laboral, verificación en apps de citas, o cualquier situación donde el resultado se use para permitir o denegar algo a una persona. Para esos casos de uso necesitas un sistema de proveedor que haya sido evaluado bajo NIST FRVT 1:1, que admita detección de vivacidad (anti-spoofing), evaluación de equidad demográfica, inscripción segura y revocación. Una demo gratuita en navegador no puede satisfacer esos requisitos operativos, legales o de auditoría.

La privacidad es por diseño. Los pesos del modelo se descargan a tu navegador una vez (unos 6 MB, en caché para futuras visitas) y toda la comparación corre localmente como JavaScript. No hay paso de subida, no hay caché temporal del lado del servidor, no hay llamada a API. La página usa analítica estándar solo para conteos de tráfico. Cerrar la pestaña limpia todo el estado. No almacenamos, registramos, vendemos ni compartimos las fotos que comparas.

Cómo funciona la comparación

El pipeline tiene tres etapas — detección, alineamiento + codificación, y puntuación de distancia — y cada etapa usa una red neuronal de código abierto establecida. El detector es un SSD MobileNetV1 entrenado en WIDER FACE. Devuelve uno o más cuadros delimitadores por imagen con puntajes de confianza; conservamos el rostro más confiable por foto para la comparación. Para flujos de trabajo con varios rostros, ver el Predictor de Edad y Género que itera sobre cada detección.

Cada rostro detectado se alinea. Un detector de 68 landmarks (una ConvNet pequeña entrenada en iBUG 300-W) predice coordenadas de landmarks: comisuras externas e internas de los ojos, puente y punta de la nariz, comisuras de la boca y línea de la mandíbula. El rostro se rota y recorta para que los ojos queden horizontales y la distancia interpupilar se normalice. La alineación importa: la red de codificación fue entrenada en rostros alineados y producirá descriptores inconsistentes con entrada no alineada.

El recorte alineado pasa por una red de codificación facial — en face-api.js esto es una arquitectura ResNet-34 inspirada en FaceNet (Schroff, Kalenichenko & Philbin, 2015) y entrenada con triplet loss para producir vectores unitarios de 128 dimensiones que se agrupen estrechamente dentro de la misma identidad y se dispersen entre identidades. ArcFace (Deng et al., 2019) es una mejora más reciente que usa pérdida de margen angular aditivo; el fork de vladmandic admite backbones más nuevos de estilo ArcFace para mayor precisión cuando se necesite. Usamos el modelo ResNet-34 por defecto por compatibilidad con navegador y huella.

Los dos descriptores de 128 dimensiones se comparan con la distancia euclidiana (L2) que face-api calcula directamente: distance = sqrt(Σ (aᵢ − bᵢ)²). Menor distancia = más similar. El umbral estándar de face-api.js para 'misma persona' es aproximadamente 0,6. Mapeamos esa distancia L2 a un porcentaje de similitud con una curva suave anclada: 0,0 → 100%, 0,4 → ~70%, 0,6 → ~50%, 1,0 → 0%, de modo que el umbral de 0,6 cae en la banda 'misma persona probable' y no en 'coincidencia parcial'. Para profesionales también exponemos la distancia L2 bruta, la distancia de coseno (1 − dot(a,b)/(|a||b|)) y las normas de los descriptores en el panel de Detalles técnicos, además de un umbral ajustable y una exportación JSON. El porcentaje es empírico y amigable, no calibrado contra un estándar biométrico, así que un 85% debe leerse como 'muy similar', no como una probabilidad de ser la misma persona.

Todos los pesos se almacenan como flotante de 32 bits para el runtime de TensorFlow.js en el navegador; la descarga total es ~6 MB, y en la vía común solo se descarga el detector que realmente se usa. La inferencia usa el primer backend que se inicializa en el orden WebGL → WebAssembly → CPU (puedes ver el backend activo en la consola del navegador); esta versión no tiene WebGPU. La comparación de extremo a extremo de dos rostros suele tomar 200 ms a 1 s en un portátil moderno, más en móvil. La UI muestra una barra estilo confianza y una de cinco bandas cualitativas (muy similar, similar, algo similar, no similar, muy diferente) elegidas por amabilidad, no por rigor biométrico.

Precisión, umbrales y dónde falla esta herramienta

En el benchmark académico LFW (Labelled Faces in the Wild), los codificadores faciales de 128 dimensiones bien entrenados alcanzan ~99% de precisión de verificación en pares emparejados. Ese número no es la precisión que debes esperar en fotos arbitrarias de internet. Los pares LFW están preseleccionados por calidad de imagen y pose frontal; el rendimiento in-the-wild es mucho más ruidoso. NIST FRVT 1:1 — que evalúa decenas de proveedores comerciales sobre cientos de miles de fotos operativas — muestra que incluso los sistemas líderes tienen valores de FAR (False Acceptance Rate) y FRR (False Rejection Rate) que varían en un orden de magnitud con demografía, edad y calidad de imagen. Nuestro backbone open-source es más antiguo y más pequeño que los líderes en FRVT.

Modos de fallo concretos que encontrarás: gemelos idénticos casi siempre puntúan por encima del 80% — el codificador no puede distinguirlos de manera confiable. Padres e hijos adultos, hermanos, o personas no relacionadas de la misma etnia y edad y peinado similares pueden puntuar 70–85%. La misma persona fotografiada con diez años de diferencia puede caer al 50% si las características faciales han cambiado. Filtros fuertes (FaceTune, Snapchat, beauty filters) editan efectivamente otro rostro en la foto y bajarán el puntaje significativamente. Gafas, mascarillas, barbas, hijabs, sombreros y oclusión parcial reducen la precisión porque ocultan landmarks informativos.

La equidad demográfica es una limitación conocida. Buolamwini & Gebru (2018), NIST FRVT (2019, 2024) y muchas otras auditorías han mostrado que los modelos de reconocimiento facial entrenados predominantemente con sujetos de piel más clara producen tasas de error más altas para rostros de piel más oscura, mujeres y niños. El descriptor de face-api.js usado aquí hereda esos sesgos. Trata cualquier comparación individual con cautela, especialmente cuando uno o ambos sujetos pertenecen a grupos sub-representados en sets de entrenamiento públicos estándar.

No uses esta herramienta como autenticador biométrico, sistema de prueba de identidad, verificación anti-fraude, coincidencia de vigilancia, filtro de selección laboral o verificador de apps de citas. Para esos usos necesitas un sistema comercial auditado con detección de vivacidad (para que una foto impresa o un video deepfake no pase), un pipeline de revocación y una evaluación de sesgo documentada. No tenemos esas garantías y te decimos explícitamente que no despliegues esto en producción. Es una herramienta de curiosidad, y el puntaje es una guía, no un veredicto.

  • Los gemelos idénticos puntúan típicamente 85–95% — el modelo no puede distinguirlos de manera confiable.
  • La misma persona con 10+ años de diferencia puede bajar a 50–70% de similitud por envejecimiento natural.
  • Gafas de sol, mascarillas, barbas, sombreros u otras oclusiones bloquean landmarks y reducen el puntaje.
  • Filtros fuertes (FaceTune, beauty filters, lentes Snapchat) editan efectivamente el rostro y distorsionan el descriptor.
  • La equidad demográfica es desigual: tonos de piel oscuros, mujeres y niños tienen tasas de error más altas por desbalance del set de entrenamiento.
  • La herramienta reporta el rostro más confiable por imagen; las fotos de grupo deben recortarse a un solo rostro primero.
  • No hay detección de vivacidad — una foto impresa de un rostro produce el mismo descriptor que una captura en vivo.
  • No es adecuada para verificación de identidad biométrica, KYC, control fronterizo, empleo o chequeos de seguridad de apps de citas.
  • El mapeo de distancia coseno a porcentaje es amigable y no está calibrado contra un estándar biométrico.

Glosario

Embedding facial (descriptor)
Vector numérico de longitud fija — aquí, 128 números flotantes — producido por una red neuronal que codifica la identidad visual de un rostro. Fotos de la misma persona deberían tener embeddings similares; fotos de personas diferentes, embeddings disímiles.
Distancia euclidiana (L2)
La distancia en línea recta entre dos vectores descriptores: sqrt(Σ (aᵢ − bᵢ)²). Es la métrica canónica que reporta esta herramienta y a la que se refiere el umbral de ~0,6 de 'misma persona'. Menor = más similar.
Distancia de coseno
Una medida geométrica alternativa de cuán alineados están dos vectores: distancia de coseno = 1 − dot(a,b)/(|a||b|). Se muestra junto a la distancia L2 en el panel de Detalles técnicos para profesionales que prefieren una métrica basada en el ángulo.
Umbral
La distancia euclidiana (L2) por debajo de la cual dos descriptores se declaran coincidencia. face-api.js usa ~0,6 por defecto; esto corresponde a aproximadamente 50% en nuestra escala amigable. El panel de Detalles técnicos te deja deslizar este umbral y ver el veredicto actualizarse en vivo. Bajarlo hace la herramienta más estricta (menos falsas coincidencias, más coincidencias perdidas).
FAR (False Acceptance Rate)
Tasa con la que un comparador facial dice incorrectamente que dos personas distintas son la misma. Crítica para sistemas de seguridad — una FAR alta significa que los impostores pasan.
FRR (False Rejection Rate)
Tasa con la que un comparador facial dice incorrectamente que fotos de la misma persona son distintas. Una FRR alta significa que usuarios genuinos sufren molestias.
FaceNet
Paper hito de 2015 de Schroff, Kalenichenko & Philbin (Google) que introdujo el esquema de entrenamiento por triplet loss para producir embeddings faciales de 128 dimensiones en una hiperesfera unitaria.
ArcFace
Función de pérdida de reconocimiento facial de 2019 (Deng et al., InsightFace) que usa un margen angular aditivo para separar más las clases de descriptores en la hiperesfera. Estado del arte en benchmarks académicos como LFW e IJB-B.
LFW / NIST FRVT
Benchmarks académicos y gubernamentales para sistemas de reconocimiento facial. LFW (Labelled Faces in the Wild, 2007) es pequeño y de alta calidad. NIST FRVT (Face Recognition Vendor Test) es la evaluación gubernamental estándar de oro, con cientos de miles de fotos operativas y publicación continua.

Preguntas Frecuentes

¿Cómo compara la IA dos rostros?

Detecta un rostro por imagen, alinea cada uno usando 68 landmarks faciales, codifica cada rostro alineado como un vector de 128 dimensiones con un ResNet estilo FaceNet, y calcula la distancia euclidiana (L2) entre los dos vectores. Esa distancia se mapea a un puntaje amigable de 0–100% de similitud. Toda la inferencia es JavaScript en tu navegador vía @vladmandic/face-api sobre TensorFlow.js.

¿Qué significa realmente el porcentaje?

Es un mapeo suave de distancia euclidiana (L2) a una escala de 0–100. En términos generales: 90–100% = visualmente casi idénticos (misma persona, gemelos o un parecido extremo); 70–90% = misma persona probable, o parientes cercanos; 50–70% = algunas características compartidas pero no necesariamente la misma persona; por debajo del 50% = personas distintas. NO es una probabilidad y NO es un resultado de verificación biométrica.

¿Por qué personas no relacionadas puntúan 60%?

Porque el descriptor codifica la forma general del rostro — separación de los ojos, ancho de la nariz, ángulo de la mandíbula, etnia, edad — y muchas personas no relacionadas comparten suficientes de esas características para caer en una región similar del espacio de embeddings. Es una propiedad fundamental de los descriptores faciales de 128 dimensiones, no un fallo.

¿Por qué mi propia foto puntúa solo 75% contra otra foto mía?

Causas comunes: (1) iluminación o ángulo de cámara distintos; (2) edad distinta (más de unos pocos años puede mover los descriptores significativamente); (3) gafas o vello facial solo en una de las fotos; (4) filtros fuertes o FaceTune en una foto; (5) una foto está en mucha menor resolución; (6) llevas maquillaje en una y en la otra no. Prueba otro par de fotos con condiciones similares.

¿Mis fotos se suben?

No. Toda la detección, codificación y comparación facial ocurre localmente en tu navegador vía TensorFlow.js. Los pesos del modelo se descargan una vez (unos 6 MB, en caché) y la inferencia corre sobre los JPEGs que selecciones. Los bytes de las fotos nunca dejan el dispositivo. No almacenamos, registramos ni compartimos fotos.

¿Puedo usarlo para verificación de identidad?

No. No uses esta herramienta para verificar la identidad de alguien, controlar acceso a un servicio, prevenir fraude o filtrar empleados / citas. No tiene detección de vivacidad, no tiene umbral calibrado, no tiene auditoría de equidad demográfica y usa un modelo open-source más pequeño que los sistemas comerciales. Para verificación de identidad necesitas un proveedor evaluado bajo NIST FRVT con FAR/FRR documentados y garantías operativas.

¿Por qué los gemelos idénticos no son distinguibles?

El descriptor facial está entrenado para ser invariante a iluminación, expresión y pose, pero no está diseñado para capturar microcaracterísticas que incluso los humanos usan para distinguir gemelos (un lunar pequeño, una asimetría leve). La discriminación de gemelos es un área de investigación activa; los codificadores faciales estándar generalmente fallan en ella.

¿Puede distinguir entre padres e hijos?

A menudo, pero no siempre. Padres e hijos adultos comparten muchas características faciales genéticas y pueden puntuar 60–80%. El modelo está entrenado para acercar la misma identidad, pero no tiene una noción de 'parecido familiar' versus 'identidad', así que puntajes altos entre parientes son comunes y esperables.

¿Soporta múltiples rostros en una foto?

Actualmente toma el rostro más confiable por imagen y compara esos dos. Si tus fotos son de grupo, recorta cada una a un solo rostro primero. Para flujos con múltiples rostros tenemos un Predictor de Edad y Género dedicado que itera sobre cada rostro detectado en una imagen.

¿Y si no se detecta rostro?

La herramienta reporta 'no se detectó rostro' para esa imagen. Causas comunes: rostro demasiado pequeño (por debajo del tamaño mínimo del detector), rostro en ángulo extremo, iluminación demasiado oscura o brillante, imagen muy borrosa o la imagen no es realmente una foto de un rostro. Prueba con una foto más clara, más grande, frontal.

Medidor de Similitud Facial — Compara dos fotos de rostros en tu dispositivo con un embedding FaceNet de 128-d. Distancia L2/coseno bruta, umbral ajus
Medidor de Similitud Facial

¿Cómo veo la distancia bruta y elijo mi propio umbral?

Abre el panel de Detalles técnicos bajo el resultado. Muestra la distancia euclidiana (L2) bruta, la distancia de coseno y las normas de ambos descriptores de 128-d: los números exactos que necesita un flujo de genealogía, deduplicación o limpieza de datos. El control deslizante de umbral te deja fijar tu propio punto de decisión L2 (por defecto 0,6) y el veredicto Coincide / Dudoso / No coincide se actualiza en vivo sin volver a ejecutar la inferencia. Para elegir un umbral en tu propio conjunto de datos, etiqueta unas docenas de pares de misma persona y de personas distintas conocidos, observa dónde se agrupan sus distancias y fija el umbral entre los dos grupos para equilibrar falsas aceptaciones y falsos rechazos.

¿Puedo exportar o copiar el resultado para mis registros?

Sí. El botón Copiar JSON del panel de Detalles técnicos copia un objeto estructurado —métrica, distancia L2 bruta, distancia de coseno, porcentaje de similitud, el umbral que usaste, el veredicto y una marca de tiempo ISO— al portapapeles, con una nota de que es una estimación local y no una prueba de identidad. Como todo se calcula localmente, el JSON nunca toca un servidor, así que es seguro pegarlo en un registro privado de evidencias o por lotes.

Referencias y fuentes académicas

  1. Schroff, F., Kalenichenko, D., & Philbin, J.. (2015). FaceNet: A Unified Embedding for Face Recognition and Clustering IEEE CVPR.
  2. Deng, J., Guo, J., Xue, N., & Zafeiriou, S.. (2019). ArcFace: Additive Angular Margin Loss for Deep Face Recognition IEEE CVPR (proyecto InsightFace).
  3. Huang, G. B., Ramesh, M., Berg, T., & Learned-Miller, E.. (2007). Labeled Faces in the Wild: A Database for Studying Face Recognition in Unconstrained Environments Universidad de Massachusetts Amherst Technical Report.
  4. Grother, P., Ngan, M., & Hanaoka, K.. (2024). NIST Face Recognition Vendor Test (FRVT) Instituto Nacional de Estándares y Tecnología de EE. UU..
  5. Buolamwini, J., & Gebru, T.. (2018). Gender Shades: Disparidades intersectional de precisión en clasificación de género comercial Proceedings of Machine Learning Research.
  6. Mandic, V.. (2024). @vladmandic/face-api — fork TypeScript mantenido de face-api.js Proyecto open source, licencia MIT.

Last reviewed: · Reviewed by Equipo de Ética e Ingeniería de IA de WuTools

Preguntas Frecuentes

¿La comparación de rostros ocurre en mi navegador o se suben mis fotos?

Todo se ejecuta dentro de tu navegador. Los modelos de detección y embedding facial (ResNet estilo FaceNet vía @vladmandic/face-api sobre TensorFlow.js) se descargan una vez y luego cada comparación se calcula localmente usando WebGL, WebAssembly o CPU simple. Tus fotos faciales nunca salen del dispositivo — sin subidas, sin procesamiento en servidor, sin plantillas biométricas almacenadas fuera del navegador. Esto importa enormemente porque, bajo el RGPD y la BIPA de Illinois, los embeddings faciales cuentan como identificadores biométricos sensibles, y muchas políticas de seguridad empresarial prohíben explícitamente subirlos a APIs de terceros. El único tráfico de red tras la descarga del modelo son los recursos estáticos de la página.

¿Qué formatos y condiciones de imagen dan los mejores resultados?

Formatos aceptados: JPEG, PNG, WebP, AVIF, GIF (primer fotograma), BMP y HEIC en navegadores compatibles. Para una comparación precisa, ambas caras deberían ser: al menos 160x160 píxeles en la región facial recortada, frontales o casi frontales (giro dentro de ±30°), iluminadas uniformemente sin sombras duras, enfocadas y sin obstrucciones de reflejos en gafas, mascarillas o pelo. Tomas de perfil, iluminación extrema, desenfoque por movimiento y caras menores de 80 píxeles degradan la calidad del embedding. Si aparecen varias caras en alguna imagen, la herramienta usa la cara más grande detectada — para retratos con varias personas, recorta manualmente primero.

¿Qué representa realmente el porcentaje de similitud?

Es un remapeo amable de la distancia euclidiana (L2) entre dos embeddings faciales de 128 dimensiones producidos por la red estilo FaceNet. Cada rostro se codifica como un vector en el espacio 128D; la distancia L2 se mapea a una puntuación de similitud de 0-100% sobre una curva con anclas (0,0 → 100%, 0,4 → ~70%, 0,6 → ~50%, 1,0 → 0%). Igual o por encima de ~70% (distancia ≤ 0,4) suele significar "misma persona" con alta confianza en imágenes de buena calidad; ~50-70% (distancia 0,4-0,6) es la región de misma-persona-probable / dudosa, afectada por iluminación, edad o expresión; por debajo de ~50% (distancia > 0,6) tiende a "persona distinta". El porcentaje no es una probabilidad literal. Para usos legales o de seguridad, abre el panel de Detalles técnicos y usa la distancia L2 bruta (también se muestra la distancia de coseno) con un umbral que hayas validado en tu propio conjunto de datos.

¿Por qué el modelo a veces dice que mis fotos antiguas y recientes no son la misma persona?

Los embeddings faciales son muy sensibles a cambios de edad (>5 años puede bajar la similitud 10-20%), barba, gafas, cambios de peso, peinado, maquillaje y temperatura de color de la iluminación. Un modelo FaceNet entrenado con fotos web aprendió a discriminar cientos de miles de identidades bajo condiciones típicas; cambios significativamente fuera de distribución reducirán la puntuación incluso para la misma persona. Gemelos y parientes cercanos también pueden engañarlo (alta similitud pero técnicamente personas diferentes). Para comparaciones tipo genealogía a través de décadas, espera puntuaciones de 50-70% entre coincidencias genuinas; para aplicaciones de seguridad o desbloqueo normalmente quieres requerir ≥75% con ambas imágenes capturadas bajo condiciones similares.

¿Qué backend de cómputo usa la herramienta y por qué WebGL es el más rápido aquí?

Las pasadas de detección facial (TinyFaceDetector / SSD-MobileNet) y de embedding 128D (ResNet) son redes con muchas convoluciones que se benefician del paralelismo de la GPU. Al iniciar, la herramienta inicializa el primer backend disponible en el orden WebGL → WebAssembly → CPU y registra el activo en la consola del navegador. WebGL está acelerado por GPU y es la vía rápida en la mayoría de equipos (un ciclo completo detectar-alinear-codificar-comparar en unos 100-300 ms por par); WebAssembly es el respaldo en CPU cuando WebGL está bloqueado o no disponible, y la CPU simple es el último recurso. Esta versión no usa WebGPU: el paquete de TensorFlow.js de face-api incluye kernels WebGL y WASM, por lo que WebGL es la opción de GPU.

¿Se puede engañar a la herramienta con una foto impresa, una foto de pantalla o un deepfake?

Esta herramienta es un medidor de similitud de reconocimiento facial, no un detector de ataques de presentación. Felizmente comparará una foto de una foto impresa tuya con una foto real tuya, y el embedding coincidirá. No verifica vivacidad, profundidad, reflejos de pantalla ni artefactos generados por IA. Para verificación de pago, prueba de identidad o aplicaciones de desbloqueo, necesitas una capa separada de detección de vivacidad (desafíos activos como parpadear o girar la cabeza, o análisis pasivo de profundidad desde cámara true-depth) sobre la verificación de similitud. La detección de vivacidad solo en navegador es posible (MediaPipe Face Landmarker puede detectar cambios de pose) pero no forma parte de esta herramienta. Para uso casual o genealogía, la ausencia no importa.

¿Qué arquitectura neuronal hace el trabajo pesado — FaceNet, ArcFace o DeepFace?

La canalización predeterminada usa face-api.js / @vladmandic/face-api, que combina un detector facial SSD-MobileNet v1, un regresor de 68 puntos clave (para alineación) y una red de embedding ResNet-34 estilo FaceNet que produce un descriptor de 128 dimensiones entrenado con pérdida triplet. ArcFace (2019) y CosFace (2018) son arquitecturas más nuevas que usan pérdidas de margen angular y embeddings de 512 dimensiones que alcanzan mayor precisión en LFW (99.83% vs 99.65% de FaceNet) pero requieren modelos más grandes y alineación ligeramente diferente. Están disponibles como opciones avanzadas si necesitas precisión de vanguardia. Para comparación cotidiana, la canalización FaceNet predeterminada es rápida, bien probada y suficiente.

¿Cuál es la diferencia entre FP32 e INT8 para embeddings faciales y afecta la precisión?

FP32 almacena cada peso de red como flotante de 32 bits; INT8 lo almacena como entero de 8 bits, reduciendo el modelo 4x y acelerando la inferencia CPU 2-3x. Para embeddings faciales, INT8 normalmente reduce la precisión LFW en 0.1-0.3% — invisible para un humano comparando puntuaciones pero medible en un benchmark de 6000 imágenes. Más importante, los embeddings INT8 son ligeramente más ruidosos, lo que puede empujar pares fronterizos (alrededor de 70% similitud) al cubo equivocado. La herramienta envía FP32 por defecto para la red de embedding porque los datos faciales merecen la precisión; las redes de detección y de puntos clave usan INT8 porque su salida (caja delimitadora, 68 puntos) es robusta al ruido de cuantización.