- Este projeto visa detectar emoções humanas em tempo real utilizando uma câmera de vídeo. Ele utiliza técnicas de visão computacional e aprendizado de máquina para identificar rostos e classificar as emoções expressas neles. O modelo é baseado em uma rede neural treinada para classificar 7 emoções principais.
Este projeto utiliza o modelo model_frontalface_emotion.h5
para detectar emoções faciais em tempo real, capturando vídeos da webcam. O projeto é modularizado e pode ser facilmente adaptado para diferentes fontes de vídeo ou modelos de detecção de emoções.
O modelo foi treinado para classificar as seguintes emoções:
- Raiva
- Nojo
- Medo
- Felicidade
- Tristeza
- Surpresa
- Neutro
- Detecção de rostos utilizando o classificador Haar Cascade.
- Classificação de emoções em rostos detectados.
- Exibição do vídeo com a emoção detectada sobre cada rosto.
- Interface simples para exibição e controle do processo (pressione "Q" para sair).
A estrutura do projeto é organizada da seguinte forma:
emotion_detection/
│
├── config.py # Configurações do projeto (caminhos dos modelos e labels)
├── main.py # Ponto de entrada do programa
├── core/
│ ├── video_capture.py # Classe para captura de vídeo
│ ├── model_manager.py # Gerenciador de modelos de detecção
│ └── emotion_processor.py # Processamento das emoções
└── utils/
└── helpers.py # Funções auxiliares
Os modelos necessários para a execução do projeto são:
- Modelo de detecção facial:
frontalface_emotion.xml
- Modelo de classificação de emoções:
model_frontalface_emotion.h5
Esses modelos devem ser colocados na pasta models/
ou em um diretório de sua escolha, e seus caminhos devem ser configurados no arquivo config.py
.
Antes de rodar o projeto, você precisa garantir que tem os seguintes pacotes instalados:
- Python 3.x
- OpenCV
- TensorFlow
- NumPy
Você pode instalar as dependências com o seguinte comando:
pip install opencv-python tensorflow numpy
Além disso, você precisará do arquivo haarcascade_frontalface_default.xml
(classificador Haar para detecção de rostos) e do modelo treinado model_frontalface_emotion.h5
. Ambos podem ser encontrados no repositório ou fornecidos como parte do projeto.
- Clone o repositório ou baixe os arquivos:
git clone https://github.com/raulbatalha/emotion_detection.git
- Navegue até o diretório do projeto:
cd emotion_detection
- Crie um ambiente virtual para o projeto:
python -m venv envemotion
-
Ative o ambiente virtual:
- No Windows:
.\envemotion\Scripts\activate
- No Linux/macOS:
source envemotion/bin/activate
- No Windows:
-
Instale as dependências necessárias:
pip install -r requirements
- Coloque os modelos de rosto e emoções na pasta
models/
.
Para rodar o projeto, basta executar o arquivo main.py
:
python main.py
Isso abrirá a webcam, começará a capturar o vídeo e irá processar cada quadro para detectar e classificar emoções. Pressione a tecla "Q" para sair da aplicação.
Você pode ajustar as configurações no arquivo config.py
, onde é possível definir o caminho para os modelos e as labels de emoções.
Sinta-se à vontade para fazer fork deste repositório e enviar pull requests com melhorias ou correções de bugs.
- Faça um fork do projeto.
- Crie uma nova branch (
git checkout -b feature-nome
). - Faça suas alterações e commit (
git commit -am 'Adiciona nova feature'
). - Envie para o repositório remoto (
git push origin feature-nome
). - Abra um pull request.
Este projeto está licenciado sob a MIT License.