OCR

Instalando Tesseract OCR no Linux

Instalando Tesseract OCR no Linux
O Tesseract OCR (Optical Character Recognition) é um motor e programa de linha de comando gratuito e de código aberto para extrair texto de imagens usando algoritmos e tecnologia de reconhecimento óptico de caracteres. O projeto é apoiado pelo Google e, a partir de hoje, é considerado o melhor mecanismo de OCR de código aberto disponível. Ele pode detectar e extrair texto em vários idiomas com alta precisão.

Instalando Tesseract OCR no Linux

O Tesseract OCR está disponível por padrão na maioria das distribuições Linux. Você pode instalá-lo no Ubuntu usando o comando abaixo:

$ sudo apt install tesseract-ocr

Instruções detalhadas para outras distribuições estão disponíveis aqui. Mesmo que o Tesseract OCR esteja disponível em repositórios de muitas distribuições Linux por padrão, é recomendado instalar a versão mais recente do link mencionado acima para melhor precisão e análise.

Instalando suporte para idiomas adicionais no Tesseract OCR

Tesseract OCR inclui suporte para detecção de texto em mais de 100 idiomas. No entanto, você só obtém suporte para detecção de texto no idioma inglês com a instalação padrão no Ubuntu. Para adicionar suporte para análise de idiomas adicionais no Ubuntu, execute um comando no seguinte formato:

$ sudo apt install tesseract-ocr-hin

O comando acima adicionará suporte para o idioma hindi ao Tesseract OCR. Às vezes, você pode obter melhor precisão e resultados instalando o suporte para scripts de linguagem. Por exemplo, instalar e usar o pacote tesseract para o script Devanagari “tesseract-ocr-script-deva” me deu resultados muito mais precisos do que usar o pacote “tesseract-ocr-hin”.

No Ubuntu, você pode encontrar nomes de pacotes corretos para todos os idiomas e scripts executando o comando abaixo:

$ apt-cache search tesseract-

Depois de identificar o nome do pacote correto a ser instalado, substitua a string “tesseract-ocr-hin” por ela no primeiro comando especificado acima.

Usando Tesseract OCR para extrair texto de imagens

Vamos dar um exemplo de uma imagem mostrada abaixo (tirada da página da Wikipedia para Linux):

Para extrair o texto da imagem acima, você deve executar um comando no seguinte formato:

captura de $ tesseract.saída png -l eng

Executar o comando acima fornece a seguinte saída:

No comando acima, “capture.png ”refere-se à imagem da qual você deseja extrair o texto. A saída capturada é então armazenada na “saída.txt ”arquivo. Você pode alterar o idioma substituindo o argumento "eng" por sua própria escolha. Para ver todos os idiomas válidos, execute o comando abaixo:

$ tesseract --list-langs

Ele mostrará códigos de abreviatura para todos os idiomas suportados pelo Tesseract OCR em seu sistema. Por padrão, ele mostrará apenas "eng" como saída. No entanto, se você instalar pacotes para idiomas adicionais conforme explicado acima, este comando listará mais idiomas que você pode usar para detectar texto (como códigos de idioma ISO 639 de 3 letras).

Se a imagem contiver texto em vários idiomas, defina primeiro o idioma principal, seguido por idiomas adicionais separados por sinais de mais.

captura de $ tesseract.saída png -l eng + fra

Se você deseja armazenar a saída como um arquivo PDF pesquisável, execute um comando no seguinte formato:

captura de $ tesseract.saída png -l eng pdf

Observe que o arquivo PDF pesquisável não conterá nenhum texto editável. Inclui a imagem original, com uma camada adicional contendo o texto reconhecido sobreposto à imagem. Portanto, embora você possa pesquisar com precisão o texto no arquivo PDF usando qualquer leitor de PDF, não será capaz de editar o texto.

Outro ponto que você deve notar é que a precisão da detecção de texto aumenta muito se o arquivo de imagem for de alta qualidade. Se puder escolher, sempre use formatos de arquivo sem perdas ou arquivos PNG. Usar arquivos JPG pode não dar os melhores resultados.

Extração de texto de um arquivo PDF de várias páginas

O Tesseract OCR nativamente não suporta a extração de texto de arquivos PDF. No entanto, é possível extrair texto de um arquivo PDF de várias páginas convertendo cada página em um arquivo de imagem. Execute o comando abaixo para converter um arquivo PDF em um conjunto de imagens:

$ pdftoppm -png file.saída de pdf

Para cada página do arquivo PDF, você obterá um "output-1" correspondente.png ”,“ output-2.arquivo png ”, e assim por diante.

Agora, para extrair o texto dessas imagens usando um único comando, você terá que usar um “for loop” em um comando bash:

$ para i em *.png; faça tesseract "$ i" "output- $ i" -l eng; feito;

Executar o comando acima irá extrair o texto de todos os “.png ”arquivos encontrados no diretório de trabalho e armazenam o texto reconhecido em“ output-original_filename.txt ”arquivos. Você pode modificar a parte do meio do comando de acordo com suas necessidades.

Se você deseja combinar todos os arquivos de texto contendo o texto reconhecido, execute o comando abaixo:

$ cat *.txt> entrou.TXT

O processo de extração de texto de um arquivo PDF de várias páginas em arquivos PDF pesquisáveis ​​é quase o mesmo. Você deve fornecer um argumento “pdf” extra para o comando:

$ para i em *.png; faça tesseract "$ i" "output- $ i" -l eng pdf; feito;

Se você deseja combinar todos os arquivos PDF pesquisáveis ​​contendo o texto reconhecido, execute o comando abaixo:

$ pdfunite *.pdf juntou.pdf

Tanto “pdftoppm” quanto “pdfunite” são instalados por padrão na última versão estável do Ubuntu.

Vantagens e desvantagens de extrair texto em arquivos TXT e PDF pesquisáveis

Se você extrair texto reconhecido em arquivos TXT, obterá saída de texto editável. No entanto, qualquer formatação de documento será perdida (caracteres em negrito, itálico e assim por diante). Arquivos PDF pesquisáveis ​​preservarão a formatação original, mas você perderá os recursos de edição de texto (você ainda pode copiar texto bruto). Se você abrir o arquivo PDF pesquisável em qualquer editor de PDF, obterá imagens incorporadas ao arquivo e não a saída de texto bruto. Converter os arquivos PDF pesquisáveis ​​em HTML ou EPUB também fornecerá imagens incorporadas.

Conclusão

O Tesseract OCR é um dos motores de OCR mais usados ​​atualmente. É gratuito, de código aberto e oferece suporte a mais de uma centena de idiomas. Ao usar o Tesseract OCR, certifique-se de usar imagens de alta resolução e códigos de idioma corretos em argumentos de linha de comando para melhorar a precisão da detecção de texto.

Melhores aplicativos de mapeamento de gamepad para Linux
Se você gosta de jogar no Linux com um gamepad em vez de um teclado típico e sistema de entrada de mouse, existem alguns aplicativos úteis para você. ...
Ferramentas úteis para jogadores de Linux
Se você gosta de jogar no Linux, é provável que tenha usado aplicativos e utilitários como Wine, Lutris e OBS Studio para melhorar a experiência de jo...
Jogos HD Remasterizados para Linux que nunca tiveram uma versão Linux anterior
Muitos desenvolvedores e editores de jogos estão apresentando remasterização em HD de jogos antigos para estender a vida da franquia, por favor, os fã...