Sistema de reconhecimento facial que captura vídeo da webcam, detecta rostos em tempo real e reconhece pessoas previamente cadastradas. Interface web servida localmente via Flask.
argus/
├── data/
│ ├── known_faces/ # subpastas por pessoa (ex: known_faces/pedro/)
│ └── encodings/ # ficheiros .pkl com embeddings
├── src/
│ ├── capture.py # gestão da câmera
│ ├── detector.py # detecção de rostos
│ ├── recognizer.py # reconhecimento facial
│ ├── encoder.py # geração de encodings
│ └── display.py # desenho de bounding boxes
├── web/
│ ├── index.html
│ ├── style.css
│ └── app.js
├── server.py # servidor Flask + stream MJPEG
├── main.py # ponto de entrada principal
├── config.py # configurações centralizadas
└── requirements.txt
- Python 3.10+
- Kali Linux (testado) ou qualquer distro Linux
- Webcam funcional (driver uvcvideo)
- cmake, build-essential, libopenblas-dev, liblapack-dev, libx11-dev, libgtk-3-dev
# Dependências do sistema
sudo apt install python3 python3-pip python3-venv cmake build-essential \
libopenblas-dev liblapack-dev libx11-dev libgtk-3-dev v4l-utils ffmpeg
# Criar e activar ambiente virtual
python3 -m venv .venv
source .venv/bin/activate
# Instalar dependências Python
pip install -r requirements.txtsource .venv/bin/activate
python server.pyAbrir no browser: http://localhost:5000
- Criar subpasta em
data/known_faces/com o nome da pessoa (ex:data/known_faces/pedro/) - Colocar 3-5 fotos do rosto da pessoa nessa pasta (JPEG ou PNG)
- Reiniciar o servidor — os encodings serão regenerados automaticamente
Câmera não detectada:
- Verificar se o módulo uvcvideo está carregado:
lsmod | grep uvcvideo - Se não:
sudo modprobe uvcvideo - Verificar dispositivo:
v4l2-ctl --list-devices - Verificar permissões:
groups $USER(deve incluirvideo)
dlib falha a compilar:
- Garantir que cmake e build-essential estão instalados
- Garantir libopenblas-dev e liblapack-dev instalados
- A compilação demora 10-20 minutos — não cancelar