BioMovie: Protótipo Funcional de Reconhecimento Facial em Vídeos com Flask e DeepFace
Recentemente desenvolvi o BioMovie, um protótipo funcional de aplicação web leve, capaz de identificar e comparar rostos em vídeos com base em uma imagem de referência, além disso, no mesmo processo é realizada uma validação de restrição de uma pessoa, para os casos que a pessoa identificada seja um desaparecido, ou um foragido por exemplo. O protótipo utiliza o bom e leve Flask, o OpenCV e o poderoso modelo ArcFace, via DeepFace, o sistema oferece uma base prática para experimentação e validação de ideias.
👉 Acesse a demonstração ao vivo
📦 Veja o repositório no GitHub
🔍 O que o BioMovie faz?
O BioMovie é um protótipo funcional que simula uma rotina de identificação biométrica a partir de vídeos. A aplicação:
- Detecta rostos automaticamente em vídeos.
- Compara os rostos com uma imagem de referência.
- Verifica similaridade e exibe a pontuação.
- Destaca visualmente as pessoas que têm notações registradas previamente (como alertas sobre desaparecidos, restrições, etc).


🧪 Como funciona?
A aplicação recebe dois arquivos via formulário:
- 📸 Uma foto de referência da pessoa.
- 🎥 Um vídeo no formato
.mp4
com as cenas a serem analisadas.
Em seguida:
- O vídeo é dividido em frames com saltos configurados (para eficiência).
- Cada frame passa por uma detecção de rosto (via modelo DNN do OpenCV).
- As faces extraídas são comparadas com a imagem de referência utilizando ArcFace, via DeepFace.
- Para cada correspondência, é exibido:
- O frame onde a face foi localizada.
- A similaridade e a distância.
- Um aviso caso a pessoa tenha uma notação registrada ( Observação, restrição, desaparecida, procurada).
🧬 Tecnologias utilizadas
- Python + Flask: servidor leve e rápido.
- OpenCV: leitura de vídeo e detecção facial.
- DeepFace (ArcFace): embeddings para verificação facial.
- PIL, NumPy, dotenv, Werkzeug: bibliotecas auxiliares.
📂 Estrutura do Projeto
bashCopiarEditarbiomovie/├── app6.py # Código Flask principal
├── templates/index.html # Interface web
├── models/ # DNN de detecção facial
├── Uploads/videos/ # Vídeos enviados
├── temp/ # Frames temporários
└── requirements.txt
🚀 Como Testar
Você pode testar com arquivos de exemplo:
Passo a passo:
1️⃣ Baixe os arquivos de exemplo.
2️⃣ Acesse a live demo.
3️⃣ Faça upload da foto de referência.
4️⃣ Faça upload do vídeo.
5️⃣ Clique em Comparar Faces.
A interface retornará:
- As pessoas detectadas no vídeo.
- O frame onde foram localizadas.
- A pontuação de similaridade.
- ⚠️ Um alerta visual se a pessoa for reconhecida e tiver notação.
Nos arquivos de exemplo, três pessoas possuem notações previamente cadastradas.
✅ Executando localmente
bashCopiarEditargit clone
https://github.com/algodas/biomovie.gitcd
biomovie
pip install -r requirements.txt
python app6.py
Acesse http://localhost:5060
no navegador.
🛠️ Aviso
Este projeto é um protótipo funcional, desenvolvido com fins educacionais e demonstrativos.
Não se destina ao uso real em ambientes produtivos, sensíveis ou comerciais sem validação e segurança adicional.
🛡️ Aviso Legal
Os vídeos usados são públicos e foram obtidos do YouTube com permissão de reprodução curta para uso educacional. Nenhum dado pessoal ou sensível é processado ou armazenado.
Esse projeto é um excelente ponto de partida para quem deseja experimentar tecnologias de reconhecimento facial, análise de vídeo e prototipagem com Flask.
Contribuições são bem-vindas!
Member discussion