ClaraVis e um aplicativo Android open-source que transforma o celular em um assistente de navegacao para pessoas com baixa visao ou deficiencia visual. Utiliza IA embarcada (on-device) e na nuvem para detectar obstaculos, ler placas, descrever ambientes e alertar sobre perigos em tempo real por voz.
- Deteccao de 80 classes de objetos (pessoas, veiculos, obstaculos, animais)
- Bounding boxes coloridos por categoria:
- Verde: Pessoas
- Vermelho: Obstaculos (cadeiras, mochilas, hidrantes, etc.)
- Azul: Veiculos
- Amarelo: Animais
- Laranja pulsante: Objetos se aproximando (super destaque)
- Filtros inteligentes contra falsos positivos
- Sistema adaptativo que aprende e melhora com o uso
- Deteccao de movimento: objetos com bounding box crescente recebem prioridade maxima
- InternVL3-1B (primario): Modelo de visao-linguagem com 1B parametros, Q8_0, ~960MB total
- Respostas em portugues brasileiro
- Descreve ambiente, piso, obstaculos, placas, pessoas
- ~66s de inferencia com YOLO pausado (Helio G85)
- SmolVLM-500M (fallback): Mais rapido, menor, ~520MB total
- Ambos executados via llama.cpp multimodal CLI (llama-mtmd-cli)
- YOLO pausa automaticamente durante inferencia VLM para liberar CPU
- Botao de microfone (π€) para fazer perguntas a IA
- Reconhecimento de fala em portugues (Android SpeechRecognizer)
- Exemplos: "Voce esta vendo o controle?", "Qual e a placa do carro?"
- Captura frame da camera + pergunta β VLM analisa β responde por TTS
- Lanterna (π¦): Liga/desliga flash da camera
- Zoom: Botoes +/- na lateral (ate 10x)
- Modo Noturno: Exposicao maxima + ganho digital + contraste
- Brilho e Contraste: Ajustaveis nas configuracoes
O app detecta automaticamente para onde a camera esta apontando:
- Olhando para o CHAO: Foca em escadas, buracos, degraus, obstaculos no piso
- Olhando para FRENTE: Descreve caminho, portas, corredores, placas, pessoas
- Olhando para CIMA: Identifica sinalizacoes, placas (banheiro, saida, elevador)
- Reconhecimento de texto via Google ML Kit (on-device)
- Anuncia automaticamente placas relevantes: banheiro, saida, elevador, perigo, etc.
- Texto detectado e enviado como contexto para a IA
- Aprende padroes de deteccao com o uso
- Aumenta thresholds para classes com alta taxa de falso positivo
- Confirma deteccoes quando objetos relacionados aparecem juntos
- Ajusta confianca baseado na orientacao da camera
- Persiste aprendizado entre sessoes
- Text-to-Speech em portugues brasileiro
- Prioridade de anuncio: objetos se aproximando > obstaculos > pessoas > veiculos > animais
- Posicao relativa: "pessoa a frente", "cadeira a esquerda, perto"
- Descricoes de cena VLM tem prioridade sobre deteccoes YOLO
- Intervalo configuravel
Camera (CameraX) --> Frame --> [Pipeline paralelo]
|
+-------------+-------------+
| | |
YOLOv8s TFLite ML Kit OCR Acelerometro
(deteccao) (placas) (orientacao)
| | |
+------+------+------+------+
| |
Adaptive Filter Context Builder
| |
+------+------+------+
| |
Overlay Engine Scene Analyzer (VLM)
(bounding boxes) (InternVL3-1B / SmolVLM-500M)
| |
Tela + HUD TTS (voz)
|
Movement Detector
(objetos se aproximando)
|
Voice Interaction
(SpeechRecognizer β VLM β TTS)
- Android 7.0+ (API 24)
- Camera traseira
- Acelerometro/giroscopio
- Recomendado: 4GB+ RAM, processador octa-core
- Xiaomi Redmi Note 9 (Helio G85, 4GB RAM, Android 12)
Modelos em /data/local/tmp/claravis/ via ADB:
InternVL3-1B (primario, ~960MB):
InternVL3-1B-Instruct-Q8_0.gguf(~644MB)mmproj-InternVL3-1B-Instruct-Q8_0.gguf(~317MB)- Fonte:
ggml-org/InternVL3-1B-Instruct-GGUFno HuggingFace
SmolVLM-500M (fallback, ~520MB):
SmolVLM-500M-Instruct-Q8_0.gguf(~417MB)mmproj-SmolVLM-500M-Instruct-Q8_0.gguf(~104MB)
- Chave API do Google Gemini (gratuita em https://aistudio.google.com/apikey)
- Salvar em
/sdcard/Download/claravis_api_key.txt
# Clonar o repositorio
git clone https://github.com/dvlexp/ClaraVis-Android.git
cd ClaraVis-Android
# Build debug
./gradlew assembleDebug
# Instalar no dispositivo (MIUI pode exigir workaround)
adb install -r app/build/outputs/apk/debug/app-debug.apk
# Workaround MIUI (se install falhar):
adb push app/build/outputs/apk/debug/app-debug.apk /data/local/tmp/claravis_debug.apk
adb shell pm install -r /data/local/tmp/claravis_debug.apkapp/src/main/java/com/claravis/app/
MainActivity.kt # Activity principal β camera, TTS, voz, controles
ObjectDetector.kt # YOLOv8s/n TFLite β deteccao de objetos
OverlayView.kt # Bounding boxes, HUD, super destaque, status de voz
SceneAnalyzer.kt # Gemini Cloud AI β analise de cena
LocalVLM.kt # InternVL3-1B / SmolVLM local via llama.cpp
CameraAngleDetector.kt # Acelerometro β orientacao da camera
AdaptiveConfidence.kt # Machine learning adaptativo
SettingsSheet.kt # Configuracoes (BottomSheet)
app/src/main/assets/
yolov8s_float32.tflite # Modelo YOLOv8s (43MB, 320x320)
yolov8n_float32.tflite # Modelo YOLOv8n fallback (13MB, 320x320)
app/src/main/jniLibs/arm64-v8a/
libllama_mtmd.so # llama.cpp multimodal (ARM64, static)
| Componente | Tecnologia |
|---|---|
| Linguagem | Kotlin |
| Camera | CameraX 1.3.1 |
| Deteccao | YOLOv8s via TensorFlow Lite 2.14 |
| OCR | Google ML Kit Text Recognition 16.0 |
| VLM Local | InternVL3-1B / SmolVLM-500M via llama.cpp (ARM64) |
| VLM Cloud | Google Gemini 2.5 Flash Lite (desativado) |
| TTS | Android TextToSpeech (pt-BR) |
| Voice Input | Android SpeechRecognizer (pt-BR) |
| Sensores | SensorManager (Rotation Vector / Accelerometer) |
| UI | Material Design + Custom OverlayView |
- Camera com night boost
- YOLOv8n deteccao em tempo real
- YOLOv8s para melhor precisao
- TTS em portugues
- Gemini Cloud AI para analise de cena
- SmolVLM local (offline) via llama.cpp
- InternVL3-1B como VLM primario (melhor qualidade)
- OCR para leitura de placas
- Acelerometro para orientacao contextual
- Sistema adaptativo de confianca
- Lanterna e controle de zoom
- Deteccao de objetos se aproximando (movement tracking)
- Super destaque visual para alertas
- Interacao por voz (perguntar a Clara)
- Pausa inteligente do YOLO durante inferencia VLM
- MiDaS para estimativa de profundidade
- Modelo custom treinado para escadas/degraus
- Modo de gravacao para demo/crowdfunding
- Publicacao na Play Store
ClaraVis e um projeto de tecnologia assistiva que visa criar dispositivos vestiveis para pessoas com deficiencia visual. Este app Android e o pre-MVP que demonstra as capacidades da tecnologia usando apenas um celular comum.
Desenvolvido por: Daniel Valladares β Resultados Exponenciais
MIT License β Veja LICENSE para detalhes.