Acessibilidade · iOS · Visão computacional no aparelho
Um ônibus que chega e diz o próprio nome.
Cinco aplicativos de iPhone que devolvem autonomia a quem não enxerga. Leem o letreiro do ônibus e falam a linha em voz alta. Avisam da escada antes do degrau. Descrevem quem está à frente. Tudo dentro do telefone, sem conta e sem nuvem.
- 5aplicativos
- 888linhas de ônibus mapeadas
- 0anúncios errados nos testes
- 0dados coletados
A história
Não começou como projeto de programação.
Sirlene Ferreira de Souza, mãe do Bruno, é deficiente visual. Todo dia ela enfrenta coisas que quem enxerga nem registra como obstáculo: o degrau que aparece sem aviso, a pessoa parada no meio do caminho, e o ônibus que encosta no ponto sem dizer qual é.
Perguntar ao motorista funciona — quando dá tempo. Muitas vezes o ônibus para, ninguém fala nada, e ele vai embora. Uma hora de espera perdida por falta de uma informação de três segundos.
“A única coisa que eu quero é ajudar. Eu não estou cobrando nada. Minha mãe é deficiente visual e eu quero muito facilitar o dia a dia dela.”
O nome do aplicativo vem dela: Sirlene → LENA.
É daí que vem tudo, inclusive as decisões técnicas. O aplicativo fica calado por padrão e só fala quando tem certeza — porque um aviso errado, dito com confiança, é pior do que silêncio. Quem não pode conferir na tela depende inteiramente de o aparelho estar certo.
Os aplicativos
Cada um faz uma coisa e faz bem. Aplicativos separados, e não modos dentro de um só, para ninguém precisar achar um menu antes de resolver o problema.
-
LENA BUS
Transporte público
A câmera olha a rua e avisa quando um ônibus chega. Lê o número e o destino no letreiro e fala em voz alta. Se for a linha escolhida, vibra antes de falar e diz para dar o sinal. Reconhece quando vêm dois ônibus em fila.
-
Caminhada Segura
Obstáculos e desníveis
Avisa de escada subindo, escada descendo, degrau e obstáculo na altura da cabeça. Usa o sensor de profundidade para medir a inclinação do chão — e, sem conseguir medir, admite que não sabe a direção em vez de chutar.
-
Como Eu Estou
Espelho
Olha no espelho e pergunta. Descreve cabelo, roupa e maquiagem — sem elogiar. Um aparelho que diz “você está ótima” para quem não pode conferir não é gentil, é inútil.
-
Descreva a Pessoa
Quem está à frente
Diz altura aproximada, tom de pele, cabelo e roupa. Descreve o que vê, e cala sobre o que não conseguiu ver direito.
-
VisionGuardian
Os quatro juntos
Reúne tudo, com comando por voz pela Siri e uma saudação com a previsão do tempo — uma vez por dia, na primeira vez que o app abre.
Engenharia
Detecção, leitura de texto, confirmação e voz acontecem dentro do telefone. Nenhuma imagem sai do aparelho, e nada depende de internet.
Calar é uma decisão
O aplicativo só fala quando a mesma leitura se repete em vários quadros seguidos. Um número lido uma vez é candidato; repetido, é provável; confirmado, vira voz.
Se o destino não confirmar, ele fala apenas o número. Nunca completa a frase com um destino que não leu.
A regra dos quatro dígitos
Um ônibus meio encoberto fazia a leitura sair cortada:
611.1 virava 11.1, e o app
anunciava com toda a confiança uma linha errada.
A saída não foi ler melhor — foi saber que aquilo não pode existir. As 888 linhas do Distrito Federal têm exatamente quatro dígitos, sem uma exceção. Três dígitos é leitura cortada, e leitura cortada não vira anúncio.
Um ônibus, ou dois?
O detector devolve caixas, não veículos: um único ônibus costuma render duas ou três. Contar caixa faria o app avisar de um segundo ônibus inexistente — e a pessoa deixaria o dela passar.
Um segundo ônibus precisa passar por três provas: não sobrepor o primeiro, estar separado dele na imagem, e repetir em quatro quadros seguidos.
Corrigir sem inventar
A grafia cadastrada conserta o que o OCR leu, palavra por
palavra: RODOVIARIA vira
Rodoviária. Mas nunca cresce para
Rodoviária do Plano Piloto, porque isso o
letreiro não mostrou.
E existe uma faixa de suspeita: NALTINA fica
a 0,70 de semelhança de Planaltina — perto
demais para ser outro lugar, longe demais para ser a
mesma palavra. Isso é pedaço de palavra, e não vira voz.
A fonte da imagem é intercambiável
O detector, o OCR, a votação e a voz não sabem de onde vem a imagem. Câmera do iPhone e óculos Meta entram pela mesma porta.
Cada fonte declara o que sabe sobre si: se tem profundidade, se a cena vem espelhada. É por isso que o aviso de direção da escada some quando a fonte não tem como medir — em vez de o app supor.
Feito para VoiceOver
Os botões principais têm 120 pontos de altura e ocupam a largura toda: o dedo encosta neles sem procurar. Cada um é um elemento para o leitor de tela — antes o foco parava no ícone, depois no texto, e parecia que eram duas coisas.
E o app não fala junto com o VoiceOver. Com ele ligado, os avisos entram na fila dele, em vez de duas vozes disputando o alto-falante.
O que foi medido — e o que não foi
Há uma bancada que roda no computador com as classes reais do aplicativo, para medir se uma mudança melhorou ou piorou, em vez de alguém afirmar que melhorou.
| O que | Resultado |
|---|---|
| Número da linha, em 17 cenas | 16 corretas, zero anúncios errados |
| Destino, testes unitários | 19 passando |
| Um ônibus ou dois | 9 passando, 3 de falso positivo |
| Leitura cortada | nunca vira anúncio |
| Quadro de horários por foto | 29 de 29 horários |
| Detecção do ônibus na imagem | nunca foi medida |
| VoiceOver, vibração e uso na rua | falta testar com pessoas |
| Óculos Meta em hardware real | não comprovado |
A detecção não foi medida por um motivo específico e honesto: o modelo de visão não reconhece cenas desenhadas. Num teste, identificou os faróis de um ônibus desenhado como “frisbee, 81% de confiança”. Só fotografia real mede isso, e ela ainda não existe.
Feito com
-
No aparelho
Swift e SwiftUI, iOS 17.2 ou mais novo. Vision para detecção e leitura de texto, Core ML para o detector de objetos, AVFoundation para a câmera, Core Motion para a inclinação, e a síntese de voz do próprio sistema.
-
Óculos inteligentes
Suporte opcional a óculos Meta, em beta. A imagem passa a vir deles, e o detector, a leitura e a voz continuam os mesmos — só a fonte muda. Se os óculos caem, o app volta sozinho para a câmera do telefone.
-
Sem servidor
Não há conta, login nem nuvem no caminho principal. Câmera, detecção, leitura e decisão acontecem no telefone, e funcionam sem internet.
Quem fez
Bruno Miranda — Estudante de Bacharelado em Engenharia de Software, Western Governors University.
Aprendi a programar para iOS construindo isto. Não era um exercício de faculdade nem um produto para vender — era um problema concreto na vida da minha mãe, e eu queria resolver.
O que mais aprendi não foi Swift. Foi que num aplicativo de acessibilidade a resposta errada é pior que resposta nenhuma, e que quase toda decisão de engenharia aqui saiu dessa frase: confirmar antes de falar, admitir quando não sei, e medir em vez de afirmar que melhorou.