Reconhecimento do alfabeto manual de Libras em tempo real
direto no navegador, usando sua webcam — sem instalação, sem plugins.
- 🎥 Detecção em tempo real via webcam no navegador
- 🤖 Machine Learning treinado com seus próprios gestos
- 🔤 Forma frases letra por letra com estabilização inteligente
- 📊 Top 5 probabilidades exibidas ao vivo
- ⚡ WebSocket para comunicação de baixa latência
- 🐳 Docker pronto para produção
- 🔄 CI/CD automático com GitHub Actions + Render
┌─────────────┐ frames JPEG ┌──────────────────┐
│ Navegador │ ──────────────────▶ │ FastAPI Backend │
│ (Webcam) │ ◀────────────────── │ WebSocket /ws │
└─────────────┘ letra + confiança └────────┬─────────┘
│
┌─────────▼─────────┐
│ MediaPipe │
│ 21 landmarks/mão │
└─────────┬─────────┘
│
┌─────────▼─────────┐
│ Random Forest / │
│ SVM / KNN / │
│ Ensemble │
│ (99.94% acurácia) │
└───────────────────┘
📦 Tradutor LIBRAS
├── 📁 .github/workflows/
│ └── deploy.yml # CI/CD automático
├── 📁 backend/
│ └── main.py # FastAPI + WebSocket
├── 📁 frontend/
│ └── index.html # Interface web
├── 📁 data/
│ └── meus_dados.csv # Dataset coletado
├── 📁 model/
│ ├── asl_classifier.pkl # Modelo treinado
│ └── asl_label_encoder.pkl
├── 🐳 Dockerfile
├── 🐳 docker-compose.yml
├── ☁️ render.yaml
├── 📋 requirements.txt
├── 🎥 collect_data.py # Coleta gestos pela webcam
└── 🏋️ train_asl.py # Treina o modelo
- Python 3.10
- Webcam
git clone https://github.com/SEU_USUARIO/tradutor-libras.git
cd tradutor-libraspip install -r requirements.txtpython collect_data.pyUma janela abre com a câmera. Para cada letra: faça o sinal → pressione ESPAÇO → segure por 3s. S pula a letra, Q salva e sai.
python train_asl.pyTesta automaticamente Random Forest, KNN, SVM e Ensemble — salva o melhor.
python backend/main.pyAcesse http://localhost:8000 🎉
# Sobe tudo com um comando
docker-compose up --build
# Acesse: http://localhost:8000
⚠️ Treine o modelo localmente antes — os arquivosmodel/*.pklsão montados como volume.
O deploy é automático a cada git push na branch main.
- Crie uma conta em render.com
- Conecte seu repositório GitHub
- Adicione os secrets no GitHub (Settings → Secrets → Actions):
| Secret | Onde encontrar |
|---|---|
RENDER_API_KEY |
Render → Account Settings → API Keys |
RENDER_SERVICE_ID |
Render → Serviço → Settings → Service ID |
- Faça um push — o CI/CD cuida do resto! ✅
git push origin main
│
▼
GitHub Actions
│
├── ✅ Testes (imports, estrutura)
│
└── 🚀 Deploy automático no Render
| Modelo | Acurácia |
|---|---|
| Random Forest | ~99% |
| KNN (k=3) | ~98% |
| SVM (RBF) | ~99% |
| Ensemble | 99.94% |
Treinado com 24.000 amostras — 1.000 por letra, 24 letras estáticas do alfabeto.
A B C D E F G H I K L M N O P Q R S T U V W X Y
J e Z são movimentos dinâmicos — não suportados nesta versão.
| Camada | Tecnologia |
|---|---|
| Detecção de mãos | MediaPipe Hands |
| Machine Learning | scikit-learn |
| Backend | FastAPI + WebSocket |
| Frontend | HTML + CSS + JS puro |
| Deploy | Render |
| CI/CD | GitHub Actions |
| Container | Docker |
- Adicionar letras exclusivas do Libras (Ã, Õ, Ç)
- Reconhecimento de palavras completas
- Suporte a J e Z (movimentos dinâmicos)
- App mobile
Feito com 🤟 por Fernando