Uma aplicação desktop que monitora sua atenção através da webcam e reproduz um vídeo quando detecta que você não está olhando para a tela ou está usando o celular.
Funcionalidades
- Detecção de olhar: Usa MediaPipe Face Mesh para rastrear a direção do seu olhar
- Detecção de celular: Usa YOLOv8 para identificar celulares no campo de visão da câmera
- Reprodução automática: Toca um vídeo MP4 quando a atenção é perdida
- Pausa inteligente: Pausa o vídeo quando você volta a prestar atenção (continua de onde parou)
- Interface moderna: GUI em PyQt6 com tema escuro
Requisitos
- Python 3.10 ou superior
- Webcam funcional
- macOS, Windows ou Linux
Instalação
-
Clone ou baixe este projeto
-
Crie um ambiente virtual (recomendado):
python -m venv venv
source venv/bin/activate # Linux/macOS
# ou
venv\Scripts\activate # Windows- Instale as dependências:
pip install -r requirements.txtNota: Na primeira execução, o YOLOv8 vai baixar automaticamente o modelo (~6MB).
Uso
- Execute a aplicação:
python main.py-
Na interface:
- Clique em "Select Video (MP4)" para escolher o vídeo que será reproduzido
- Ajuste as opções de detecção se necessário
- Clique em "Start Monitoring" para iniciar
-
O vídeo será reproduzido automaticamente quando:
- Você desviar o olhar da tela, OU
- Um celular for detectado na imagem
-
Pressione ESC para fechar o vídeo manualmente, ou simplesmente olhe de volta para a tela.
Configurações
Opções de Detecção
- Detect gaze direction: Ativa/desativa a detecção de olhar
- Detect phone usage: Ativa/desativa a detecção de celular
Sensibilidade
- Gaze tolerance: Quanto você pode desviar o olhar antes de ser considerado "não olhando"
- Phone detection confidence: Nível de confiança mínimo para considerar que há um celular
Estrutura do Projeto
attwhore/
├── main.py # Ponto de entrada
├── requirements.txt # Dependências
├── README.md # Este arquivo
├── src/
│ ├── __init__.py
│ ├── app.py # Interface principal
│ ├── camera.py # Worker de câmera
│ ├── player.py # Player de vídeo
│ └── detectors/
│ ├── __init__.py
│ ├── gaze.py # Detector de olhar
│ └── phone.py # Detector de celular
└── videos/ # Coloque seus vídeos aqui
Troubleshooting
Câmera não detectada
- Verifique se a webcam está conectada e funcionando
- Em macOS, conceda permissão de câmera para o Terminal/Python
Detecção imprecisa
- Ajuste os sliders de sensibilidade
- Certifique-se de ter boa iluminação
- Posicione-se de frente para a câmera
Performance lenta
- O app processa ~15 FPS por padrão, otimizado para CPU
- Feche outros aplicativos que usam a câmera
Tecnologias Utilizadas
- OpenCV: Captura de vídeo
- MediaPipe: Detecção facial e rastreamento de íris
- YOLOv8: Detecção de objetos (celular)
- PyQt6: Interface gráfica
Licença
MIT License