Detecção de Emoções em Tempo Real Usando Visão Computacional e Aprendizado de Máquina
Este projeto visa detectar emoções humanas em tempo real usando uma webcam. Aproveitando as técnicas de visão computacional e aprendizado de máquina, ele identifica rostos e classifica as emoções expressas. O modelo é baseado em uma rede neural treinada para classificar sete emoções principais. Se você está interessado em explorar como integrar inteligência emocional em suas aplicações, este projeto é o ponto de partida ideal!
Descrição do Projeto
A detecção de emoções é uma área em expansão, especialmente com o uso de câmeras em tempo real. Este projeto utiliza o modelo model_frontalface_emotion.h5
para identificar e classificar emoções humanas, capturando vídeo da webcam.
As emoções detectadas incluem:
- Raiva
- Nojo
- Medo
- Felicidade
- Tristeza
- Surpresa
- Neutro
O sistema é altamente modular, permitindo fácil adaptação para outras fontes de vídeo ou modelos de detecção de emoções.
Funcionalidades
- Detecção de Rostos: Utilizando o classificador Haar Cascade.
- Classificação de Emoções: Cada rosto detectado é classificado em uma das sete emoções.
- Exibição em Tempo Real: O vídeo capturado é exibido com a emoção detectada sobreposta em cada rosto.
- Interface Simples: A interface gráfica exibe o vídeo com a emoção identificada, e o processo pode ser interrompido a qualquer momento pressionando “Q”.
Estrutura do Projeto
A estrutura do projeto é organizada de forma a garantir modularidade e facilidade de manutenção:
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
Modelos
- 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 à sua escolha, com os caminhos configurados no arquivo config.py
.
Pré-requisitos
Para rodar o projeto, você precisa garantir que as seguintes dependências estão instaladas:
- Python 3.x
- OpenCV
- TensorFlow
- NumPy
Instale as dependências necessárias com o comando:
pip install opencv-python tensorflow numpy
Além disso, baixe os arquivos necessários:
haarcascade_frontalface_default.xml
(para detecção de rostos)model_frontalface_emotion.h5
(para classificação de emoções)
Instalação
Para configurar o projeto em seu ambiente, siga os passos abaixo:
- Clone o repositório:
git clone https://github.com/raulbatalha/emotion_detection.git
- Navegue até o diretório do projeto:
cd emotion_detection
- Crie e ative um ambiente virtual:
python -m venv envemotion
source envemotion/bin/activate # Linux/macOS
.\envemotion\Scripts\activate # Windows
- Instale as dependências:
pip install -r requirements
- Coloque os modelos na pasta
models/
.
Uso
Para rodar o projeto, basta executar o arquivo main.py
:
python main.py
Isso abrirá a webcam e começará a capturar o vídeo, processando cada quadro para detectar e classificar emoções. Pressione a tecla “Q” para sair da aplicação.
Parâmetros de Configuração
Você pode ajustar as configurações no arquivo config.py
, como o caminho para os modelos de detecção facial e as labels de emoções.
Contribuição
Contribuições são bem-vindas! Para colaborar:
- 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.
Licença
Este projeto está licenciado sob a MIT License.MIT © Raul Batalha.
Feel free to fork, adapt, and contribute!