Reconhecimento de texto para Android usando o Google Mobile Vision

Para a escrita desta semana vamos criar um aplicativo simples para Android que usa as API’s do Google Mobile Vision para reconhecimento óptico de caracteres (OCR). A API de texto do Mobile Vision dá aos desenvolvedores do Android um poderoso e confiável recurso de OCR que funciona com a maioria dos dispositivos Android.

Esta é uma API muito poderosa que também pode ser usada para detecção e rastreamento de rosto ao vivo, juntamente com recursos de leitura de código de barras.Para saber mais sobre esta maravilhosa biblioteca, siga o link abaixo

Como sempre, o projeto de exemplo está disponível aqui

Vamos começar criando primeiro um novo projeto no Android Studio.

  1. Vá ao Arquivo ⇒ Novo Projeto. Quando ele solicitar que você selecione a atividade padrão, selecione Empty Activity e prossiga.
  2. Abrir build.gradle in (Module:app) e adicione dependências do Mobile Vision como esta.

3. Para usar esta biblioteca, você pode precisar atualizar sua versão instalada do Google Repository em ferramentas SDK. Deve ser pelo menos a versão 26.

4. Não esqueça de adicionar permissões para acessar a CAMERA e também meta-dados para usar OCR no arquivo AndroidManifest.xml como este

5. Em seguida, vamos criar um layout simples para nossa atividade que será parecido com este

Dentro do método onCreate() do MainActivity.java, vamos chamar um método startCameraSource().

Então o que está acontecendo no código acima? Aqui estão as partes importantes.

TextRecognizer: Este objeto processa imagens e determina que texto aparece dentro delas. Uma vez inicializado, ele pode ser usado para detectar texto em todos os tipos de imagens. Note que antes de começarmos a usá-lo para reconhecer o texto, devemos verificar se ele está pronto. Isto é feito usando o método textRecognizer.isOperational().

CameraSource: Este é um gerenciador de câmera pré-configurado para o processamento do Vision. Aqui vamos definir a resolução para 1280*1024 e focar automaticamente, pois isso ajudará no reconhecimento de textos menores muito mais rápido. Também configuramos a cameraSource para usar a câmera traseira por padrão.

Detector.Processor<TextBlock> : Para que o TextRecognizer leia o texto diretamente da câmera, temos que implementar um Detector Processor, que irá lidar com as detecções tantas vezes quanto elas estiverem disponíveis.

Existem dois métodos a serem implementados aqui. O primeiro, receberDetections(), irá receber TextBlock do Detector à medida que forem ficando disponíveis. O segundo, release(), pode ser usado para limpar os recursos.

7. Passo final

Pegamos os valores do TextBlock e criamos o objeto StringBuilder e adicionamos os valores ao textView, que será atualizado toda vez que houver um texto na visualização da câmera.

>

Agenda a aplicação

Finalmente, você pode acionar a aplicação e ver uma visualização ao vivo do texto a partir da visão da câmera

>

E é isso. Agora temos um simples aplicativo de OCR pronto com poucas linhas de código!

Próxima vez 🙂 Feliz Aprendizagem e Feliz Ano Novo para todos.