Como contar rostos em uma imagem: o que realmente funciona
A maioria das pessoas usa detectores genéricos e fica surpresa quando o resultado sai errado. A técnica de quantos rosto tem na imagem depende de fatores que quase ninguém menciona, como iluminação, ângulo e resolução. Vou explicar o processo do jeito que ele funciona na prática, sem romantização.
quantos rosto tem na imagem
O primeiro passo é escolher a ferramenta certa. Bibliotecas como OpenCV com Haar Cascades funcionam para casos simples, mas falham rapidamente com variações de pose ou pele escura. Eu preferi usar o MTCNN (Multi-task Cascaded Convolutional Networks) no meu último projeto porque ele lida melhor com rostos parciais e diferentes ângulos. Aqui vai algo que ninguém conta: detectar rostos em fotos com espelhos ou telas de celular gera falsos positivos que podem inflar o resultado em até 40%. No meu caso, eu filtrava rodando um segundo passo com um classificador baseado em distância euclidiana entre os landmarks detectados. Rostos duplicados por reflexos têm landmarks quase idênticos, então eliminei os que ficavam a menos de 15 pixels um do outro.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Se você precisa de algo mais robusto, o RetinaFace oferece precisão significativamente maior, especialmente com rostos parcialmente ocultos ou em baixa iluminação. O custo? Ele é muito mais lento. Em uma imagem de 4K, o processamento leva cerca de 2 a 3 segundos com GPU, contra 200 milissegundos do Haar Cascade. Para batch processing de milhares de imagens, isso muda completamente a arquitetura que você precisa construir. Outro problema comum é subcontagem em grupos. Quando várias pessoas estão juntas e os rostos se sobrepõem visualmente, alguns detectores tratam o grupo como um único bloco. A solução prática é ajustar o threshold de NMS (Non-Maximum Suppression) para valores mais baixos, como 0.3 em vez do padrão 0.5. Isso reduz detections redundantes sem eliminar rostos legitimately próximos.
Para quem quer começar rápido, existe um script Python que combina OpenCV e DNN com modelos pré-treinados do Caffe. O download do modelo prototext ecaffemodel pode ser feito diretamente dos repositórios oficiais do OpenCV. O código básica leva menos de 50 linhas e já entrega resultados razoáveis para a maioria das situações do dia a dia. O limite real dessas ferramentas é que nenhuma abordagem atual alcança 100% de precisão em condições adversas. Chuva, neve, obstruções graves ou rostos de crianças muito pequenas ainda geram inconsistências. Se o seu cenário envolve esses casos, vale a pena considerar soluções comerciais como AWS Rekognition ou Google Vision API, que aceitam imagens com problemas e ainda assim entregam contagens confiáveis, mesmo que o custo por imagem seja mais alto.
O processo completo, da aquisição da imagem à contagem final, leva normalmente entre 30 segundos e 2 minutos por foto em hardware moderado. O garganto geralmente não é a detecção em si, mas o pré-processamento: redimensionar para a resolução ideal do modelo, normalizar cores e aplicar filtros de ruído antes de passar para a rede neural.