Um classificador de expressões faciais baseado em Deep Learning capaz de distinguir entre Sorrindo e Neutro/Sério com alta precisão. Desenvolvido e otimizado para execução no Google Colab.
Este projeto foi desenvolvido durante uma aula experimental prática do curso de Inteligência Artificial do Senac RS (Unidade Santa Rosa). O objetivo foi aplicar conceitos de Redes Neurais Convolucionais (CNNs) em um problema real de Visão Computacional.
Este projeto consiste em uma Rede Neural Convolucional (CNN) construída do zero. O sistema processa imagens faciais, extrai características complexas e classifica a emoção.
O projeto foi estruturado inteiramente em Notebook (.ipynb), facilitando a reprodução do experimento na nuvem sem necessidade de configurações locais complexas ou GPUs dedicadas.
- Ambiente Cloud: Configurado para rodar no Google Colab com acesso direto ao Google Drive.
- Download Automático: Script integrado que baixa o dataset CelebA do Kaggle diretamente para a sessão.
- Pipeline de ETL: Organiza automaticamente as imagens descompactadas em pastas de treino/teste.
- Data Augmentation: Aplicação de transformações nas imagens para evitar overfitting.
- Teste Interativo: Célula de inferência com botão de Upload para testar fotos da sua própria webcam ou computador.
O modelo utiliza uma arquitetura sequencial (Sequential) otimizada:
- Entrada: Imagens (64x64 pixels).
- Convoluções: 3 camadas (
Conv2D) com filtros progressivos (32 -> 64 -> 128) eMaxPooling. - Classificador:
Flattenpara vetorização.Dense(128 neurônios) +ReLU.Dropout(0.5) para regularização.- Saída:
Sigmoid(Probabilidade Binária: Sorrindo vs Neutro).
O modelo foi treinado por 15 épocas no ambiente do Colab:
| Métrica | Performance |
|---|---|
| Acurácia (Validação) | ~89.0% |
| Tempo de Treino | ~10 min (com GPU T4) |
A maneira mais fácil de rodar este projeto é clicando no botão "Open in Colab" no topo deste arquivo.
Caso queira fazer manualmente:
- Baixe o arquivo
.ipynbdeste repositório. - Acesse Google Colab.
- Faça upload do arquivo.
- Configuração do Dataset:
- Você precisará do seu arquivo
kaggle.json(Token de API) para baixar os dados automaticamente. - Ou, altere a célula de download para carregar um dataset local.
- Você precisará do seu arquivo
- Vá no menu Ambiente de Execução > Executar tudo (Run All).
O código está dividido em células lógicas:
- Configuração: Montagem do Drive e Download de dependências.
- Engenharia de Dados: Script que separa as fotos em pastas.
- Treinamento: Construção e fit do modelo.
- Inferência: Upload de imagem para teste real.
- Google Colab (IDE Nuvem)
- Python 3
- TensorFlow & Keras
- Pandas & NumPy
Desenvolvido por Leandro Perius Heck
Projeto realizado no curso de IA do Senac RS Santa Rosa.