Loading repository data…
Loading repository data…
matheussiqueira-dev / repository
Sistema de reconhecimento de emoções em vídeo contínuo, capaz de identificar alegria, tristeza, raiva, surpresa e neutralidade a partir da webcam. Realiza detecção facial com Haar Cascades ou MediaPipe Face Detection e aplica um classificador baseado em modelos consolidados como FER+, AffectNet ou uma CNN customizada.
Plataforma de reconhecimento de emoções faciais em tempo real com backend FastAPI, pipeline de visão computacional em Python e dashboard web responsivo para operação contínua.
O sistema foi estruturado para cenários de monitoramento em tempo real (laboratórios, protótipos de atendimento, pesquisa comportamental e observabilidade operacional), com foco em:
app/core: domínio e processamento (configuração, detecção, tracking, análise, métricas de sessão).app/backend: interface de entrega (REST + WebSocket), autenticação/autorização e orquestração de stream.app/frontend: dashboard operacional, visualização ao vivo, analytics e controles de runtime.core) desacoplado da camada HTTP (backend) e da UI (frontend)./api/v1) com contratos tipados e documentação OpenAPI.read e admin).PATCH /api/v1/config) sem reiniciar servidor..
├── app
│ ├── backend
│ │ ├── api.py
│ │ ├── schemas.py
│ │ ├── security.py
│ │ └── services.py
│ ├── core
│ │ ├── analyzer.py
│ │ ├── config.py
│ │ ├── detector.py
│ │ ├── metrics.py
│ │ ├── processor.py
│ │ └── tracker.py
│ └── frontend
│ ├── app.js
│ ├── index.html
│ └── style.css
├── tests
│ ├── test_api.py
│ ├── test_config.py
│ └── test_metrics.py
├── main.py
├── run_api.py
├── run.bat
└── requirements.txt
git clone https://github.com/matheussiqueira-dev/face-emotion-recognition-realtime.git
cd face-emotion-recognition-realtime
python -m venv .venv
Linux/macOS:
source .venv/bin/activate
pip install -r requirements.txt
Windows (PowerShell):
.venv\Scripts\Activate.ps1
pip install -r requirements.txt
python run_api.py --host 127.0.0.1 --port 8000
Ou no Windows:
run.bat
http://127.0.0.1:8000http://127.0.0.1:8000/api/v1/docs| Variável | Descrição | Padrão |
|---|---|---|
EMOTION_VIDEO_SOURCE | Câmera (0) ou caminho de vídeo | 0 |
EMOTION_WIDTH | Largura da captura | 1280 |
EMOTION_HEIGHT | Altura da captura | 720 |
EMOTION_MAX_FPS | Limite de FPS do pipeline | 30 |
EMOTION_INTERVAL | Intervalo de inferência por face (s) | 0.5 |
EMOTION_MIN_SCORE | Confiança mínima da emoção (%) | 0 |
EMOTION_JPEG_QUALITY | Qualidade do frame no WebSocket | 80 |
EMOTION_API_READ_TOKEN | Token para leitura (config/metrics/ws) | vazio |
EMOTION_API_ADMIN_TOKEN | Token para operações administrativas | vazio |
EMOTION_CORS_ORIGINS | Lista de origens CORS (csv) | * |
Compatibilidade:
EMOTION_API_TOKENtambém é aceito como token legado.
GET /api/v1/health - healthcheck.GET /api/v1/config - configuração atual (perm. read).PATCH /api/v1/config - atualização de configuração (perm. admin).GET /api/v1/metrics - métricas da sessão ativa (perm. read).WS /api/v1/ws/stream - stream de frames e detecções (perm. read).Executar suíte:
pytest -q
Cobertura atual:
Recomendado:
uvicorn atrás de proxy reverso (Nginx/Caddy);Exemplo:
uvicorn app.backend.api:app --host 0.0.0.0 --port 8000 --workers 1
Autoria: Matheus Siqueira
Website: https://www.matheussiqueira.dev/