OCR no Android

O que é OCR?

O reconhecimento óptico de caracteres (OCR) refere-se ao processo de identificação automática a partir de caracteres ou símbolos de uma imagem pertencentes a um alfabeto especificado. Neste post vamos nos concentrar em explicar como usar OCR no Android.

Após reconhecer o texto da imagem, ele pode ser usado para:

    • Guardar para armazenamento.
    • Processá-lo ou editá-lo.
  • Translate-o para outro idioma.

Popularidade dos smartphones combinada com câmeras cada vez melhores levou a um aumento no uso deste tipo de técnicas de reconhecimento e uma nova categoria de aplicativos móveis que fazem uso deles.

No dispositivo ou na nuvem?

Antes de usar uma biblioteca de OCR, é necessário decidir onde o processo de OCR deve ocorrer, no smartphone ou na nuvem.

Dependente dos requerimentos do aplicativo, cada abordagem tem suas vantagens e desvantagens.

Se o aplicativo requer, por exemplo, realizar o reconhecimento de caracteres sem conexão à Internet, o mecanismo de OCR será lançado no próprio dispositivo. Desta forma, o envio de imagens para um servidor poderia ser evitado porque as câmeras montadas nos dispositivos atuais podem tirar fotos grandes.

Por outro lado, as bibliotecas de OCR tendem a ocupar muito espaço, sendo necessário baixar cada uma das linguagens para reconhecer, como explicaremos abaixo.

Que bibliotecas podem ser usadas?

No link a seguir à Wikipedia há uma tabela comparativa com todas as bibliotecas de OCR, plataformas suportadas, linguagens de programação usadas no seu desenvolvimento e outras informações relevantes.

Link: http://en.wikipedia.org/wiki/ List_of_optical_character_recognition_software

Neste post vamos usar a biblioteca Tesseract, que se destaca acima das demais. Ela é Open Source, tem SDK, foi criada pela HP e é atualmente desenvolvida pelo Google.

OCR no Android usando a biblioteca Tesseract

Althoug Tesseract pode ser executado em um servidor Linux como um serviço em nuvem, neste post vamos implementar a biblioteca Tesseract em um aplicativo Android, lançando o mecanismo de OCR no próprio dispositivo.

O projeto Tesseract original para Android é chamado Tesseract Android Tools e contém ferramentas para compilação das bibliotecas Tesseract e Leptonica para uso na plataforma Android, e uma API Java para acesso a essas bibliotecas nativamente compiladas.

Link: https://github.com/rebbix/tesseract-android-tools/tree/master/tesseract-android-tools

Para nosso exemplo, vamos usar um garfo do Tesseract Android Tools, que adiciona mais funcionalidades.

Link: https://github.com/rmtheis/tess-two

Exemplo de OCR no Android

Precisamos de alguns passos simples para realizar OCR no Android:

Considerações

  • A qualidade de reconhecimento pode variar dependendo das condições de iluminação da imagem, resolução da câmera, fonte de texto, tamanho do texto e outros …
  • Para alcançar a maior qualidade possível, é muito importante centrar o texto na imagem e a imagem está devidamente focada.

Pré-visualização usando OCR em um aplicativo tradutor

O vídeo a seguir mostra parte do aplicativo que estou desenvolvendo para meu projeto final de graduação (TFG), onde uso as técnicas de OCR descritas.

Deixe um comentário