Blog / Ingeniería

Un detector de caras restauró una vez el pantalón de un niño

· actualizado el 24 de agosto con las mediciones del suelo de detección · datos: implementación, pruebas unitarias, banco de laboratorio

Durante las primeras pruebas, el detector de caras informó de una detección segura en una instantánea familiar y el pipeline, obediente, la “restauró”, salvo que la detección era el pantalón de pana de un niño pequeño. Los pliegues de la tela le parecieron una cara al detector, y el modelo facial los repintó entonces como tal. El fallo nos enseñó que, en fotografías antiguas, la confianza del detector por sí sola no es una señal utilizable, y produjo el filtro geométrico que ahora debe pasar cada cara candidata. Esta revisión añade la otra mitad de la historia, medida: cuán pequeña es la cara más pequeña que el detector puede encontrar. El suelo está entre 14 y 20 píxeles en el letterbox, y la famosa fotografía de la Conferencia Solvay de 1927, cuyas 29 caras miden 21–27 px, lo supera con todos y cada uno de los asistentes encontrados.

29 / 29caras de Solvay 1927 encontradasa 21–27 px de altura en el letterbox
14–20 pxel suelo de detecciónfalla por debajo, encuentra por encima
27 / 29con teselado ingenuo 2×2las caras en los bordes desaparecen; el solapamiento importa
3reglas geométricas en el filtroconfianza, banda de los ojos, boca bajo los ojos

Cada cifra de esta nota se midió con el código del pipeline de producción: los mismos modelos, las mismas matemáticas. Registros brutos por imagen: e5_detect.json.

1 · Por qué las fotos antiguas rompen los detectores de caras

Los detectores se entrenan sobre todo con imágenes modernas y bien expuestas. Los escaneos antiguos presentan texturas que el conjunto de entrenamiento rara vez contiene: trama de tela, encaje, follaje, daños por agua y grano, todas capaces de producir falsas detecciones con alta confianza. También presentan el problema opuesto: caras reales pequeñas, desvaídas y de bajo contraste. Un umbral de confianza por sí solo no puede separar ambas cosas, porque los falsos positivos a menudo puntúan más alto que las caras pequeñas reales. Nuestro detector es SCRFD-2.5G[1], decodificado 1:1 a partir de la implementación de referencia de FaceFusion[2]: la foto se encaja con bandas (letterbox) en una entrada de 640×640, y cada candidato vuelve con una caja, cinco puntos clave y una puntuación de confianza.

2 · El filtro

En lugar de fiarnos de la puntuación, comprobamos si los puntos clave de la detección están dispuestos como una cara: aritmética barata sobre los puntos de los ojos y la boca:

pasa ⇔ puntuación ≥ 0.55 ∧ 0.25 < deyes/w < 0.75 ∧ ymouth > ȳeyes + 0.2·deyes(1)
caja de detección, ancho wdistancia entre ojos dboca> 0.2 × d bajo los ojosfiltro: 0.25 < d / w < 0.75 · confianza ≥ 0.55
Figura 1. El filtro de plausibilidad. Los puntos clave deben estar dispuestos como una cara (ojos separados una distancia propia de una cara respecto a la caja, boca claramente por debajo de la línea de los ojos) antes de que se ejecute ninguna restauración.
ReglaUmbralQué rechaza
Confianza del detector≥ 0.55Detecciones marginales que no merecen más comprobaciones.
Separación de los ojos respecto al ancho de la caja0.25 – 0.75Grupos de puntos demasiado juntos o demasiado separados para ser dos ojos en una caja del tamaño de una cara: la geometría típica de los falsos positivos por pliegues de tela.
Boca por debajo de los ojosen ≥ 0.2 × la distancia entre ojosDisposiciones de puntos invertidas o desordenadas.

Los umbrales son deliberadamente holgados: describen cualquier cara humana plausible, incluidas las inclinadas y las de tres cuartos, y excluyen disposiciones que ninguna cara puede tener. Desde que se publicó el filtro, la clase de fallo del pantalón no ha vuelto a aparecer en nuestras fotos de prueba.

3 · Nuevo: el suelo de detección, medido

00.250.50.7515204080120200altura de la cara en el letterbox de 640 px (px)confianza de detecciónfiltro ≥ 0.55
Figura 2. Confianza de detección frente a la altura de la cara en el letterbox de 640×640. Cómoda desde ~200 px hasta ~28, se degrada por debajo y muere entre 20 y 14: toda cara de 14 px o menos se perdió por completo. La línea discontinua es el suelo de confianza de 0.55 del filtro.
La fotografía de grupo de la Conferencia Solvay de 1927 con cajas de detección dibujadas alrededor de las veintinueve caras
Figura 3. Los 29 asistentes a la Conferencia Solvay de 1927 detectados a escala de fotograma completo (cajas dibujadas por el script de laboratorio, tras la NMS y el filtro geométrico). Las caras en el letterbox miden 20.9–27.1 px de alto, justo por encima del precipicio de la Figura 2.

El resultado de Solvay cae exactamente donde predice la escalera, del lado bueno: los 29 de 29 asistentes detectados a escala de fotograma completo, confianza 0.734–0.864, y todos superan el filtro geométrico. Y un control que merece publicarse porque es contraintuitivo: teselar ingenuamente la misma foto en 2×2 (más píxeles por cara) encuentra solo 27 de 29. Dos caras quedan a caballo entre teselas y ninguna de las dos las ve enteras; una rejilla de 3×3 corta por otro sitio y recupera las 29. Esa asimetría es la razón por la que la pasada de caras pequeñas del motor del navegador detecta sobre el fotograma completo y sobre cuadrantes solapados, fusionando candidatos por intersección sobre unión: la detección por teselas necesita solapamiento, no solo resolución.

La lectura práctica para las fotos de grupo: una cara menor que aproximadamente el 3% del lado largo de la foto es invisible para el detector. Recorta más ajustado antes de restaurar (los mismos píxeles vuelven a través del letterbox más grandes, del lado seguro del precipicio) y consulta la nota sobre renderizado facial para saber qué ocurre con las caras pequeñas después de la detección.

4 · Limitaciones

Un filtro geométrico solo puede rechazar disposiciones imposibles. Un falso positivo que resulte tener forma de cara (una muñeca, una estatua, un retrato en una pared) pasa, y podría decirse que debe pasar, ya que restaurarlo es inofensivo. La tarea del filtro es estrecha: nunca más repintar la ropa de alguien como una cara. Las mediciones del suelo son un retrato y una foto de grupo: suficiente para situar el precipicio entre 14 y 20 px, no para cartografiar su forma exacta según poses e iluminación; y la confianza entre 20 y 28 px es notablemente más ruidosa que por encima, así que las caras en esa banda deben considerarse en riesgo, no seguras.

Referencias

  1. Guo, J., Deng, J., Lattas, A., & Zafeiriou, S. (2021). Sample and Computation Redistribution for Efficient Face Detection. arXiv:2105.04714. arxiv.org
  2. FaceFusion (open-source face processing platform): the reference implementation our SCRFD decode and model preprocessing are ported from, 1:1. github.com
  3. Couprie, B. (1927). Photograph of the Fifth Solvay International Conference: 29 attendees, the densest concentration of physics Nobel laureates ever photographed. Public domain, via Wikimedia Commons. commons.wikimedia.org
  4. Lange, D. (1936). “Migrant Mother” (Destitute pea pickers in California), Farm Security Administration. Public domain, via Wikimedia Commons. commons.wikimedia.org
  5. ONNX Runtime: the inference engine both our server (CPU) and in-browser (WebGPU/WASM) engines run on. onnxruntime.ai