WebApp para detectar faces

Bernardo Caldas
Data Hackers
Published in
3 min readNov 8, 2020

--

Neste post irei mostrar como fazer um webApp para detectar rostos em fotos usando deep learning e streamlit.io

MTCNN sample

Detecção facial é uma técnica de processamento de imagem e visão computacional para determinar a existência, ou não, de faces numa determinada imagem e, caso exista(m), retornar a localização da(s) mesma(s). [1] Apesar de ser uma tarefa trivial para seres-humanos, é um problema desafiador para computadores, visto que rostos podem variar em cor, iluminação, posicionamento e escala, dificultando a detecção automática. [1]

A solução para o problema de detecção facial engloba diversas técnicas, como segmentação, extração, e verificação de faces e de suas características em um plano de fundo não controlado. [2] O processo de detecção facial pode servir como base para muitos sistemas, como por exemplo, sistemas de reconhecimento facial. — https://pt.wikipedia.org/wiki/Detec%C3%A7%C3%A3o_facial

sample gif, reconhecimento facial

O reconhecimento de rosto pode ser dividido em várias etapas. A imagem abaixo mostra um exemplo de pipeline de reconhecimento facial.

1. Detecção de rosto — Detectar um ou mais rostos em uma imagem.
2. Extração de recursos — Extração dos recursos mais importantes de uma imagem do rosto.
3. Classificação de rosto — Classifica o rosto com base nos recursos extraídos.

MTCNN

Implementação do detector facial MTCNN para Keras em Python3.4 +. Ele foi escrito do zero, usando como referência a implementação do MTCNN de David Sandberg (FaceNet’s MTCNN) usando Facenet. Baseado no paper Zhang, K et al. (2016) [ZHANG2016].

fonte = https://pypi.org/project/mtcnn/

>>> from mtcnn import MTCNN
>>> import cv2
>>>
>>> img = cv2.cvtColor(cv2.imread("ivan.jpg"), cv2.COLOR_BGR2RGB)
>>> detector = MTCNN()
>>> detector.detect_faces(img)
[
{
'box': [277, 90, 48, 63],
'keypoints':
{
'nose': (303, 131),
'mouth_right': (313, 141),
'right_eye': (314, 114),
'left_eye': (291, 117),
'mouth_left': (296, 143)
},
'confidence': 0.99851983785629272
}
]
exemplo output usando MTCNN

Usando Heroku realizamos o deploy do projeto para testes;

Link para acessar o webbApp :

Link : https://webapp-facedetect.herokuapp.com/

Youtube video tutorial

captura de tela teste com aplicação
amostra resultados da aplicação

Link : https://webapp-facedetect.herokuapp.com/

código fonte do projeto : https://github.com/bernardcaldas/webapp-face

twitter : https://twitter.com/bernardocalda10

--

--

Bernardo Caldas
Data Hackers

Developer | AI | Driving innovation with development tools and AI. Making technology meaningful