2 min read

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:

  1. 📸 Uma foto de referência da pessoa.
  2. 🎥 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:

🔗 Download de exemplos

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.git
cd 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.


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!