Pular para o conteúdo
VISIONGUARDIAN

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: SirleneLENA.

É 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 cenas16 corretas, zero anúncios errados
Destino, testes unitários19 passando
Um ônibus ou dois9 passando, 3 de falso positivo
Leitura cortadanunca vira anúncio
Quadro de horários por foto29 de 29 horários
Detecção do ônibus na imagemnunca foi medida
VoiceOver, vibração e uso na ruafalta testar com pessoas
Óculos Meta em hardware realnã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.

metade tapada esperava 611.1 OCR leu 11.1 → o app CALOU anunciou o número certo: 16/17 FALSOS POSITIVOS: 0

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.