Aplicativo iOS de reconhecimento em tempo real do alfabeto em Libras (Língua Brasileira de Sinais), desenvolvido em Swift com CoreML, Vision e AVFoundation.
O app detecta 21 letras do alfabeto de Libras utilizando a câmera frontal do dispositivo, exibindo a letra reconhecida na tela junto a uma visualização do esqueleto da mão.
- Detecção em tempo real de 21 letras do alfabeto de Libras
- Estimativa de pose da mão com 21 pontos articulares via Vision framework
- Classificação das letras com modelo CoreML treinado com ~97% de acurácia
- Visualização do esqueleto da mão com dedos coloridos individualmente
- Filtragem de detecções com baixa confiança (threshold: 0.3)
| Framework | Uso |
|---|---|
| AVFoundation | Captura de vídeo em tempo real via câmera frontal |
| Vision | Detecção de pose da mão (VNDetectHumanHandPoseRequest) |
| CoreML | Inferência do modelo de classificação (LibrasClassifier.mlmodel) |
| UIKit | Interface e visualização |
| CreateML | Treinamento do modelo de ML |
O projeto segue o padrão MVC:
LibrasAlphabetDetector/
├── CameraViewController.swift # Controller — sessão de câmera, Vision e CoreML
├── CameraView.swift # View — preview da câmera + overlay do esqueleto
├── Model/
│ └── LibrasClassifier.mlmodel # Modelo CoreML (4MB, ~97% de acurácia)
├── Extensions/
│ └── CGImagePropertyOrientation+UIImageOrientation.swift
├── AppDelegate.swift
└── SceneDelegate.swift
Frame de vídeo
→ VNDetectHumanHandPoseRequest (Vision)
→ 21 keypoints articulares
→ Filtragem por confiança (> 0.3)
→ MLMultiArray
→ LibrasClassifier (CoreML)
→ Letra exibida na tela
O modelo LibrasClassifier.mlmodel foi treinado com o CreateML da Apple usando um dataset público de Libras do Kaggle.
| Parâmetro | Valor |
|---|---|
| Split treino/teste | 75% / 25% |
| Acurácia | ~97% |
| Entrada | 21 keypoints articulares (MLMultiArray) |
| Saída | Letra predita (string) |
| Tamanho | 4 MB |
- Xcode 14+
- iOS 16.2+
- Dispositivo físico com câmera frontal (recomendado para melhor desempenho)
-
Clone o repositório:
git clone https://github.com/gsquevedo/libras-alphabet-detector.git
-
Abra o arquivo
LibrasAlphabetDetector.xcodeprojno Xcode -
Selecione um dispositivo iOS físico como destino
-
Execute com
Cmd + R
O app solicita permissão de acesso à câmera ao ser iniciado pela primeira vez.
Pull requests com melhorias ou correções são bem-vindos. Abra uma issue para discutir mudanças relevantes antes de implementá-las.
