Pages

Tuesday, September 05, 2006

Tesseract OCR

Recentemente o Google anuncionou um software opensource de reconhecimento óptico de caracteres (OCR). Originalmente desenvolvido pela HP entre 1985 e 1995 e redescoberto pelo google, o código fonte do "Tesseract OCR" pode ser obtido em: http://sourceforge.net/projects/tesseract-ocr.

Para compilar, basta descompactar o pacote e fazer um ./configure && make
É claro que se esse for o seu primeiro programa compilado dos fontes, podem acontecer inúmeros erros, mas esse software não parece pedir muito mais do que um apt-get install build-essential.

Em todo caso, depois de ter compilado com sucesso o software o normal seria fazer apenas um sudo make install, eu prefiro um sudo checkinstall (instale o checkinstall com um apt-get install checkinstall, o checkinstall cria um pacote .deb do programa e instala, isso facilita muito a remoção do pacote e até a atualização dele)

Mas depois do sudo checkinstall, você deve fazer ainda mais um passo, que é e mover/copiar o diretório tessdata criado no local de compilação para o diretório onde está o aplicativo binário instalado (/usr/local/bin). Esse passo é necessário para ambos os comandos, ou seja, se usar o sudo checkinstall ou sudo make install.

Feito isso, pode-se executar o programa através da linha:

tesseract image.tif arquivo_de_output batch

Infelizmente eu não encontrei nenhum tipo de documentação no projeto. Talvez isto esteja sendo providenciado para logo. A linha acima pode ser encontrada no final do README que acompanha o pacote com os fontes, com algumas informações importantes.

A primeira informação "importante" (entre aspas, por que para mim não é tão importante assim) é sobre fato do programa ser executado da mesma forma tanto no linux quanto no windows.
A segunda informação importante é a nota complementar de instalação (sobre o tessdata), mas que não menciona em qualquer parte que seja que o sudo make install não faz o serviço completo
A terceira é que a imagem deve ser um arquivo .tif.

Uma vez instalado, posso acrescentar que o programa funcionou maravilhosamente bem em todos os testes que fiz até o momento. É evidente que ele reconhece apenas texto, isso devia ser óbvio, mas não custa relembrar: equações matemáticas e imagens são convertidos como se fossem texto baseando-se em analogias de tipográficas.

É interessante observar que esse software tem valor estratégico para google, basta ler o primeiro parágrafo do anúncio. Não sei se consegue captar a sutileza dessa questão, mas o que eu quero dizer é que por ser um software estratégico na indexação de textos contidos em imagens, ele deve ser um software robusto, ou seja, eficiente, rápido e prático, e na minha humilde e simples avaliação ele corresponde muito bem nesses aspectos, mesmo que eu ainda não possa dizer que ele é o melhor software da categoria.

Alguns pontos sobre as limitações do software são muito fáceis de se resolver, criar um interface com o kommander para esse software é algo trivial, assim como utilizar o convert do imagemagick para converter qualquer tipo de imagem em .tif, ou seja, aquelas que eu considero as duas principais limitações desse software, na verdade só existem na minha imaginação. São questões triviais que qualquer usuário médio de linux resolve em alguns segundos.

Outros pontos, mencionados no anúncio do software, estão relacionados a questões de imagens com cores e tonalidades de cinzas, além de textos em múltiplas colunas. Não observei o problema com as cores, mas realmente vi alguns problemas com textos em múltiplas colunas. De qualquer forma é melhor do que nada, sempre é possível transformar uma imagem de duas colunas e duas imagens de uma coluna. Não é nada que um script não possa resolver. Ainda assim, limitações. Não acredito que demorará até termos uma outra release desse projeto.

Technorati Tags:

1 comment: