Um detector de rostos uma vez restaurou a calça de uma criança
Durante os primeiros testes, o detector de rostos relatou uma detecção confiante em um instantâneo de família e o pipeline obedientemente a “restaurou”, só que a detecção era a calça de veludo cotelê de uma criança pequena. As dobras do tecido pareceram um rosto para o detector, e o modelo de rostos então as repintou como um. A falha nos ensinou que, em fotografias antigas, a confiança do detector sozinha não é um sinal utilizável, e produziu o crivo geométrico pelo qual todo rosto candidato agora precisa passar. Esta revisão acrescenta a outra metade da história, medida: quão pequeno um rosto pode ser e ainda ser encontrado pelo detector. O piso fica entre 14 e 20 pixels no letterbox, e a famosa fotografia da Conferência de Solvay de 1927, cujos 29 rostos medem 21–27 px, o supera com todos os participantes encontrados, sem exceção.
Cada número desta nota foi medido no código do pipeline de produção: os mesmos modelos, a mesma matemática. Registros brutos por imagem: e5_detect.json.
1 · Por que fotos antigas quebram detectores de rostos
Os detectores são treinados sobretudo em imagens modernas e bem expostas. Digitalizações antigas apresentam texturas que o conjunto de treinamento raramente contém: trama de tecido, renda, folhagem, danos por água e grão, todas capazes de produzir falsas detecções com alta confiança. Elas também apresentam o problema oposto: rostos reais que são pequenos, desbotados e de baixo contraste. Um limiar de confiança sozinho não consegue separar os dois, porque os falsos positivos frequentemente pontuam mais alto que os rostos pequenos reais. Nosso detector é o SCRFD-2.5G[1], decodificado 1:1 a partir da implementação de referência do FaceFusion[2]: a foto é colocada em letterbox numa entrada de 640×640, e cada candidato volta com uma caixa, cinco pontos de referência e uma pontuação de confiança.
2 · O crivo
Em vez de confiar na pontuação, testamos se os pontos de referência da detecção estão dispostos como um rosto: aritmética barata sobre os pontos dos olhos e da boca:
| Regra | Limiar | O que rejeita |
|---|---|---|
| Confiança do detector | ≥ 0.55 | Detecções marginais que não valem mais testes. |
| Distância entre olhos vs. largura da caixa | 0.25 – 0.75 | Aglomerados de pontos apertados ou largos demais para serem dois olhos numa caixa do tamanho de um rosto: a geometria típica dos falsos positivos de dobras de tecido. |
| Boca abaixo dos olhos | em ≥ 0.2 × distância entre olhos | Disposições de pontos invertidas e embaralhadas. |
Os limiares são deliberadamente frouxos: descrevem qualquer rosto humano plausível, incluindo vistas inclinadas e de três quartos, enquanto excluem disposições que nenhum rosto pode ter. Desde que o crivo entrou em produção, a classe de falha da calça não voltou a ocorrer nas nossas fotos de teste.
3 · Novo: o piso de detecção, medido

O resultado de Solvay cai exatamente onde a escada prevê, do lado bom: todos os 29 de 29 participantes detectados na escala do quadro inteiro, confiança 0.734–0.864, cada um sobrevivendo ao crivo geométrico. E um controle que vale publicar por ser contraintuitivo: dividir ingenuamente a mesma foto em 2×2 (mais pixels por rosto) encontra só 27 de 29. Dois rostos ficam a cavalo das fronteiras dos blocos e nenhum bloco os vê inteiros; uma grade 3×3 por acaso corta em outro lugar e recupera todos os 29. Essa assimetria é o motivo de a passagem de rostos pequenos do motor do navegador detectar no quadro inteiro e em quadrantes sobrepostos, fundindo candidatos por interseção sobre união: a detecção em blocos precisa de sobreposição, não só de resolução.
A leitura prática para fotos de grupo: um rosto menor que cerca de 3% do lado maior da foto é invisível para o detector. Recorte mais apertado antes de restaurar (os mesmos pixels voltam maiores pelo letterbox, do lado seguro do penhasco) e veja a nota sobre renderização de rostos para o que acontece com rostos pequenos depois da detecção.
4 · Limitações
Um crivo geométrico só consegue rejeitar disposições impossíveis. Um falso positivo que por acaso tenha forma de rosto (uma boneca, uma estátua, um retrato na parede) passa, e talvez devesse mesmo, já que restaurá-lo é inofensivo. A tarefa do crivo é estreita: nunca mais repintar a roupa de alguém como um rosto. As medições do piso são um retrato e uma foto de grupo: o bastante para localizar o penhasco entre 14 e 20 px, não para mapear sua forma exata entre poses e iluminações; e a confiança entre 20 e 28 px é visivelmente mais ruidosa do que acima, então rostos nessa faixa devem ser considerados em risco, não seguros.
Referências
- Guo, J., Deng, J., Lattas, A., & Zafeiriou, S. (2021). Sample and Computation Redistribution for Efficient Face Detection. arXiv:2105.04714. arxiv.org
- FaceFusion (open-source face processing platform): the reference implementation our SCRFD decode and model preprocessing are ported from, 1:1. github.com
- 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
- Lange, D. (1936). “Migrant Mother” (Destitute pea pickers in California), Farm Security Administration. Public domain, via Wikimedia Commons. commons.wikimedia.org
- ONNX Runtime: the inference engine both our server (CPU) and in-browser (WebGPU/WASM) engines run on. onnxruntime.ai