Bem-vindo(a) à etapa prática do processo seletivo para o Intensivo Maker.
Esta atividade tem como objetivo avaliar competências técnicas relacionadas a Machine Learning, Visão Computacional e Otimização de modelos para sistemas embarcados (Edge AI), a partir da aplicação prática dos conhecimentos adquiridos nos cursos EAD da etapa anterior.
🎯 Importante
O foco deste desafio é avaliar sua capacidade de projetar, treinar e otimizar um modelo de IA.
- 🏁 Passo 0 – Antes de Tudo
- ⚙ Passo 1 – Preparando o Ambiente
- 💻 Passo 2 – O Desafio Técnico
- 📤 Passo 3 – Instruções de Entrega
Caso você nunca tenha utilizado Git ou GitHub, não se preocupe.
Siga atentamente as etapas abaixo.
- Acesse: https://github.com
- Clique em Sign up
- Crie sua conta gratuita seguindo as instruções da plataforma
(O GitHub será utilizado para envio, versionamento e correção automática do seu projeto.)
O Git é a ferramenta que permite versionar e enviar seu código para o GitHub.
-
Windows
Baixe e instale o Git Bash:
https://git-scm.com/downloads -
Linux / macOS
Verifique se o Git já está instalado:git --version
Para desenvolver o desafio, você deverá criar uma cópia deste repositório.
- No canto superior direito desta página, clique em Fork
- Uma cópia deste repositório será criada no seu perfil do GitHub (O Fork permite que você trabalhe de forma independente sem alterar o repositório original.)
No repositório do seu Fork, clique em <> Code, copie a URL e execute:
git clone https://github.com/SEU_USUARIO/nome-do-repositorio.git
cd nome-do-repositorio(O comando git clone cria uma cópia do repositório.)
Você pode executar o projeto de Três formas. Escolha apenas uma.
Requisitos:
- Python 3.10 ou 3.11
- pip
Instale as dependências com:
pip install -r requirements.txtEste repositório inclui um Dev Container para facilitar a criação de um ambiente Python padronizado.
Requisitos
- VS Code
- Docker instalado
- Extensão Dev Containers
Passos
- Abra o repositório no VS Code
- Selecione “Reopen in Container”
- Aguarde a criação automática do ambiente
➡️ As dependências serão instaladas automaticamente.
Você também pode abrir o container via github codespace
- Clique em <> Code
- Clique em Codespaces
- Clique em Create codespace on image
Será aberto uma instância do VS Code no seu navegador com o container configurado
O desafio consiste em desenvolver um modelo de Visão Computacional capaz de classificar dígitos manuscritos, e posteriormente otimizá-lo para execução em dispositivos Edge, como sistemas embarcados e IoT.
O foco não é apenas obter alta acurácia, mas também compreender o fluxo completo:
treinamento → salvamento → conversão → otimização
Será utilizado o dataset MNIST, composto por imagens de dígitos manuscritos de 0 a 9.

✔️ O dataset já está disponível na biblioteca TensorFlow/Keras, não sendo necessário download manual.
📌 O MNIST é amplamente utilizado para introdução à Visão Computacional e Redes Neurais.
Etapa 1: Treinamento do Modelo (train_model.py)
Implemente no arquivo train_model.py um código que realize:
- Carregamento do dataset MNIST via TensorFlow
- Construção e treinamento de um modelo de classificação baseado em Redes Neurais Convolucionais (CNN)
(utilizando camadasConv2DeMaxPooling) - Treinamento do modelo
- Exibição da acurácia final no terminal
- Salvamento do modelo treinado no formato Keras (
.h5)
(O modelo salvo será utilizado na etapa de otimização.)
Etapa 2: Otimização do Modelo (optimize_model.py)
No arquivo optimize_model.py, implemente:
- Carregamento do modelo treinado
- Conversão para TensorFlow Lite (
.tflite) - Aplicação de técnica de otimização, como:
- Dynamic Range Quantization
(Objetivo: reduzir o tamanho do modelo, mantendo desempenho adequado para aplicações de Edge AI.)
A estrutura e os nomes dos arquivos não devem ser alterados.
seu-repositorio/
├── .github/
│ └── workflows/
│ └── ci.yml # 🤖 Pipeline de correção automática (NÃO ALTERAR)
├── .devcontainer/ # 🐳 Dev Container (opcional)
│ └── devcontainer.json
├── train_model.py # ✏️ Treinamento do modelo
├── optimize_model.py # ✏️ Conversão e otimização
├── requirements.txt # 📄 Dependências do projeto
├── model.h5 # 🤖 Modelo treinado (gerado)
├── model.tflite # ⚡ Modelo otimizado (gerado)
└── README.md # 📝 Relatório final do candidato
Este desafio é avaliado automaticamente por meio de um pipeline de integração contínua (CI), executado em um ambiente controlado e com restrições de recursos computacionais.
Você não precisa conhecer GitHub Actions para realizar o desafio. No entanto, é importante respeitar as diretrizes abaixo.
Diretrizes para o Modelo
- O modelo deve ser uma CNN simples, adequada para Edge AI
- Evite arquiteturas muito profundas ou complexas
- Recomenda-se utilizar até 3 camadas convolucionais
- Não utilize modelos pré-treinados
- Número de épocas limitado (ex: até 5)
- Treinamento apenas em CPU
- Tempo total reduzido (compatível com CI)
- Código deve executar do início ao fim sem intervenção manual
Importante:
O objetivo não é obter a maior acurácia possível, mas sim demonstrar engenharia eficiente, compatível com ambientes automatizados e restrições típicas de aplicações reais de Edge AI.
Os cursos realizados na etapa anterior devem ser utilizados como referência.
- 📘 Fundamentos de Inteligência Artificial para Sistemas Embarcados
- 👁️ Sistemas de Visão Computacional Embarcada
- ⚙️ Otimização de Modelos em Sistemas Embarcados
(Os exemplos apresentados nesses cursos podem ser adaptados e reutilizados neste desafio.)
A avaliação considerará:
-
Funcionalidade
Execução correta dos scripts e geração dos arquivos.h5e.tflite -
Edge AI
Conversão correta para.tflitee aplicação de técnica de otimização -
Documentação
Preenchimento adequado do relatório (README.md)
Antes do envio, execute os scripts e confirme a geração dos arquivos:
model.h5model.tflite
git add .
git commit -m "Entrega do desafio técnico - Seu Nome"
git push origin main- Acesse a aba Actions no GitHub
- Verifique se o workflow foi executado com sucesso (✅)
- Em caso de erro (❌), consulte os logs, corrija e envie novamente
Copie o link do seu repositório e envie conforme orientações do processo seletivo no Moodle.
O arquivo (README.md) deve ser utilizado como relatório final do desafio.
Preencha todas as seções de forma clara e objetiva.
💡 Dica: não é necessário um relatório extenso.
O mais importante é demonstrar clareza nas decisões técnicas.
Exemplo:
👤 Identificação: Nome Completo:
Descreva, em palavras, a arquitetura da CNN implementada no arquivo
train_model.py.
Liste as principais bibliotecas utilizadas no projeto, preferencialmente com suas versões.
Explique qual técnica foi utilizada para otimizar o modelo no arquivo
optimize_model.py.
Informe o principal resultado obtido após o treinamento do modelo.
Utilize este espaço para comentar:
- Dificuldades encontradas
- Decisões técnicas importantes
- Limitações do modelo
- Aprendizados durante o desafio
Em caso de dúvidas:
- Consulte o material dos cursos EAD
- Leia atentamente este README
- Analise os logs das GitHub Actions
- Utilize os canais oficiais para contato com os instrutores
Boa sorte no processo seletivo.