Slides: https://www.canva.com/design/DAGsDqHQnBM/Ze-me39VlngDIezqmkOolA/view?utm_content=DAGsDqHQnBM&utm_campaign=designshare&utm_medium=link2&utm_source=uniquelinks&utlId=h3f3eecfcab
Você vai precisar de dois terminais: um pro backend e outro pro frontend.
- Abre um terminal
- Vai até a raiz do projeto
- Cria e ativa um ambiente virtual:
python -m venv venv source venv/bin/activate # No Windows: venv\Scripts\activate
- Instala as dependências:
pip install -r requirements.txt
- Roda o backend:
python main.py
- Abre um segundo terminal
- Vai até a pasta do frontend:
cd frontend/neymoji
- Instala as dependências:
npm install
- Inicia o frontend:
npm start
Vai em: http://localhost:3000
Garante que você tá com uma webcam funcionando!
Divirta-se usando o Neymoji! 😁
Curso: Engenharia de Software
Disciplina: Inteligência Artificial
Alunos: Ícaro Caldeira Botelho, Gustavo Henrique Martins, Maruan Biasi El Achkar, Ricardo Falcão Schlieper
Imitador de Emojis: Classificação de Expressões Faciais com Visão Computacional
- Desenvolver uma aplicação interativa que utiliza visão computacional para reconhecer expressões faciais humanas.
- Permitir ao usuário treinar seu próprio classificador com imagens personalizadas.
- Proporcionar uma experiência gamificada de imitação de emojis.
- Aplicar técnicas de aprendizado profundo (CNN) com TensorFlow para classificação de expressões faciais.
A visão computacional é uma área da inteligência artificial que busca capacitar máquinas a interpretar e compreender imagens e vídeo, simulando a percepção visual humana (SZELISKI, 2010). O projeto “imitador de Emoji” explora essa tecnologia ao empregar redes neurais convolucionais (CNNs) para treinar um modelo capaz de reconhecer expressões faciais personalizadas do usuário.
Segundo Gonzalez e Woods (2018),, o processamento de imagens é fundamental para a preparação e análise de dados visuais, e com o avanço do deep learning, técnicas como CNNs tornaram-se indispensáveis. Conforme Goodfellow et al. (2016), as CNNs automatizam a extração de características relevantes das imagens, superando métodos manuais.
Este relatório apresenta os fundamentos, estrutura, implementação e desempenho do projeto, evidenciando sua utilidade como ferramenta lúdica e tecnológica.
- Linguagem: Python 3.9+
- Bibliotecas: OpenCV, TensorFlow, NumPY
- Ambiente de Execução: Google Colab/local
- Hardware: Computador com webcam integrada
emojis/
: Imagens dos emojis (ex:happy.png
,angry.png
)dataset/train/<emoji>/
: Imagens do usuário para cada expressãotreino_persobalizado.py
: Captura de imagens e treinamento do modelomain_game.py
: Execução do jogo interativomodel.h5
/best_model.h5
: Arquivos com pesos da CANN treinada
a) Modo de Treinamento (treio_personalizado.py
)
- O usuário é guiado a capturar múltiplas imagens por emoji.
- Imagens são salvas organizadamente.
- Treinamento automático do modelo CNN com aumento de dados.
- Callback aplicados:
EarlyStopping
,ReduceLROnPlateau
eModelCheckpoint
b) Modo Jogo (main_game.py
)
- Utiliza
model.h5
para prever expressões. - Em 5 rodadas, o usuário tenta imitar emojis com tempo limitado.
- Sistema de pontuação avalia a precisão das imitações.
- O sistema treinado com ~100 imagens por classe atingiram acurácia satisfatória (~90%) das partidas.
- O reconhecimento facial via Haar Cascade apresentou bom desempenho em ambientes iluminados.
- O tempo de treinamento médio para um dataset pequeno foi inferior a 5 minutos.
A experiência demonstrou a viabilidade de construir um sistema de reconhecimento facial simples e eficaz com recursos acessíveis. A personalização do dataset permite ao modelo aprenda características específicas do usuário, aumentando a precisão.
Desafios enfrentados:
- Ambientes com baixa iluminação afetaram a detecção facial.
- Poucas imagens por classe geram overfitting.
Melhorias futuras:
- Uso de modelos pré-treinados com MobileNet (transfer learning)
- Coleta automática de dados em diferentes condições de luz e ângulo.
- Aplicação em dispositivos móveis com TensorFlow Lite.
O Projeto Imitador de Emojis alia conceitos de visão computacional, aprendizado profundo e interatividade para criar uma aplicação educacional e divertida. A personalização do modelo e o uso de ferramentas livres como OpenCV e TensorFlow tornaram possível a construção de um classificador eficiente, com potencial para aplicações mais amplas em jogos, educação e acessibilidade.
- SZELISKI, Richard. Computer Vision: Algorithms and Applications. Springer, 2010.
- GONZALEZ, Rafael C.; WOODS, Richard E. Digital Image Processing. Pearson, 2018.
- GOODFELLOW, Ian; BENGIO, Yoshua; COURVILLE, Aaron. Deep Learning. MIT Press, 2016.
- KASSANI, Shahrokh et al. Real-time Quality Inspection of Fruits using Deep CNNs. Cleaner and Responsible Consumption, 2, 2021.