Pular para o conteúdo
FileTinker

Como extrair texto de uma imagem ou de um arquivo PDF digitalizado usando OCR, diretamente no seu navegador

Pela equipe FileTinker7 min de leitura

Você tem uma foto de um documento, uma captura de tela ou um arquivo PDF digitalizado e precisa que o texto contido nele seja convertido em texto editável, para que você possa pesquisar ou copiar e colar em outro lugar. Essa tarefa é chamada de OCR, ou reconhecimento óptico de caracteres, e você não precisa mais de um software para computador ou de um site para enviar o arquivo para realizar essa conversão: os navegadores modernos podem executar um motor de OCR completo localmente. No entanto, o OCR não é mágica. Em uma digitalização de boa qualidade, ele reconhece quase todos os caracteres corretamente; em uma foto borrada tirada com um celular, ele produz resultados ruins, e a diferença está quase inteiramente relacionada à qualidade da imagem de entrada. Este guia explica o que o OCR realmente faz, como identificar quando você nem precisa usá-lo, o que pode prejudicar o processo, por que a configuração do idioma é mais importante do que as pessoas imaginam e exatamente o que uma ferramenta integrada ao navegador faz e o que não envia pela rede.

OCR em um parágrafo: pixels entram, chutes saem

Uma página digitalizada não contém texto. Para um computador, é apenas uma grade de pixels coloridos, assim como uma foto de uma praia. O OCR é um software que digitaliza essa grade, identifica formas que se assemelham a letras e gera a melhor aproximação possível para representar os caracteres reais. A palavra "aproximação" é importante: o programa compara os padrões de pixels com o que aprendeu sobre a aparência do texto impresso, portanto, o resultado é uma reconstrução estatística, e não uma cópia.

É por isso que a mesma ferramenta pode funcionar quase perfeitamente em um arquivo e ser completamente inútil em outro. Forneça a ela uma imagem digitalizada de alta qualidade, nítida e com bom contraste de um texto impresso, e um bom motor de OCR a processará com apenas alguns erros ocasionais. Forneça a ela uma foto de celular distorcida e de baixa qualidade de um texto pequeno, e cada etapa do processo de reconhecimento óptico de caracteres será prejudicada: ela identificará linhas onde não existem, dividirá os caracteres nos lugares errados e produzirá com confiança as letras incorretas. Considere a saída do OCR como um rascunho rápido que precisa ser revisado, e não como a verdade absoluta, especialmente no caso de números.

Primeiro, verifique se você realmente precisa usar o OCR.

Existem dois tipos de arquivos PDF, e eles parecem idênticos na tela. Um PDF criado digitalmente, ou seja, exportado do Word, Google Docs ou de um site, armazena seu texto como caracteres. Abra-o em qualquer visualizador de PDF e você poderá selecionar o texto com o cursor, pesquisá-lo e copiá-lo. Essa cópia é instantânea e 100% precisa, algo que nenhum software de OCR conseguirá igualar. Um PDF digitalizado é diferente: cada página é uma fotografia do papel, e não há caracteres dentro para selecionar.

Portanto, antes de aplicar o OCR a um arquivo PDF, tente selecionar uma palavra no documento ou pesquisar por uma. Se isso funcionar, basta copiar o texto diretamente e pular a etapa do OCR. Aplicar o OCR a um PDF originalmente digital significa transformar um texto perfeitamente legível em uma imagem e, em seguida, tentar reconstruí-lo, o que é mais lento e menos preciso do que o texto que já estava lá. O OCR é útil nos casos em que a seleção falha: em documentos digitalizados, faxes, fotos de documentos em papel e capturas de tela.

O que garante a precisão do OCR e o que pode comprometer seu funcionamento?

Os mecanismos de OCR são treinados com textos impressos de alta qualidade, portanto, a precisão diminui à medida que se afasta desse ideal: uma página plana, foco nítido, texto escuro sobre um fundo claro, uma fonte normal. O fator mais importante é a resolução. A regra geral, que tem sido utilizada há muito tempo, é digitalizar com 300 DPI, o que, no caso de uma foto ou captura de tela, corresponde a letras com aproximadamente 20 pixels de altura ou mais. Abaixo disso, os traços que distinguem um 8 de um B ou um e de um c têm apenas um ou dois pixels de largura, e a informação de que o mecanismo precisa simplesmente não está presente na imagem. Ampliar uma imagem de baixa resolução posteriormente não a restaura.

Vale a pena conhecer os vilões mais comuns pelo nome, porque cada um deles pode ser evitado na hora da captura:

  • Desfoque e trepidação da câmera: bordas suaves tornam as formas das letras ambíguas.
  • Desvio: quando o texto é fotografado ou digitalizado em um ângulo, a detecção de linhas é prejudicada.
  • Texto muito pequeno: capturas de tela de textos pequenos na interface do usuário ou textos de rodapé são consideradas como tendo um tamanho mínimo de aproximadamente 20 pixels.
  • Baixo contraste: texto cinza sobre fundo cinza, ou texto sobre fotos e fundos coloridos.
  • Reflexos e sombras: uma foto tirada com o celular, na qual a sua própria sombra aparece na imagem, pode fazer com que partes inteiras da foto fiquem ilegíveis.
  • Caligrafia: os mecanismos de OCR padrão são projetados para textos impressos; a caligrafia cursiva é interpretada como ruído.
  • Fontes decorativas: fontes excessivamente estilizadas ou condensadas se desviam demais dos dados de treinamento.
  • Layouts complexos: páginas e tabelas com várias colunas podem ser exibidas com a ordem de leitura alterada.

Como obter uma imagem de qualidade que o software de OCR consiga ler.

Cinco minutos de atenção no momento da captura economizam trinta minutos de correção de resultados distorcidos. Se você tiver um scanner, digitalize documentos de texto em 300 DPI; o modo de escala de cinza é adequado e mantém os arquivos menores do que em cores. Se estiver usando o celular, coloque a página em uma superfície plana, sob luz uniforme, segure a câmera diretamente acima dela, em vez de em um ângulo, preencha a tela com a página e certifique-se de que sua própria sombra não esteja sobre o texto. Toque para focar no texto antes de tirar a foto.

Em seguida, faça o recorte. Se o texto que você deseja incluir estiver no mesmo enquadramento que a borda de uma tabela, uma mão ou um fundo confuso, recorte a imagem para que apenas a região do texto seja exibida antes de executar o OCR. Tudo o mais no enquadramento pode ser interpretado incorretamente pelo mecanismo como texto. Cada uma dessas etapas corresponde diretamente a um dos modos de falha mencionados acima: resolução, inclinação, contraste e elementos de distração.

Idiomas: o aspecto que as pessoas costumam ignorar

Os mecanismos de OCR utilizam um modelo treinado específico para cada idioma, pois o modelo codifica tanto as formas das letras quanto as estatísticas do idioma, ou seja, quais sequências de caracteres formam palavras plausíveis. Se você selecionar o idioma errado, não obterá resultados ligeiramente piores, mas sim um resultado incoerente: um modelo em inglês, ao analisar um texto em chinês, produzirá diligentemente as letras latinas que mais se assemelham aos traços do texto chinês. Se a saída do seu OCR parecer um conjunto de caracteres aleatórios, a primeira coisa a verificar é a configuração do idioma, antes de culpar a qualidade da imagem.

O recurso de OCR do FileTinker oferece suporte a 17 idiomas: inglês, chinês tradicional e simplificado, francês, alemão, espanhol, italiano, português, holandês, russo, japonês, coreano, árabe, hindi, polonês, turco e vietnamita, além de um modo combinado inglês + chinês para documentos que realmente misturam os dois idiomas, o que é comum em recibos e formulários de Taiwan e Hong Kong. Os dados de cada idioma são baixados apenas quando você o utiliza pela primeira vez. Use o modo combinado apenas para páginas que realmente misturam os dois idiomas: fornecer ao mecanismo dois alfabetos para analisar em uma página de idioma único apenas aumenta as chances de erro.

O que uma ferramenta de OCR integrada ao navegador realmente faz com seu arquivo?

A ferramenta de conversão de imagem em texto do FileTinker utiliza o mecanismo Tesseract, de código aberto, compilado para WebAssembly, dentro de um processo em segundo plano na guia do seu navegador. Você seleciona um idioma, insere um arquivo e acompanha a barra de progresso enquanto o processo é executado. A ferramenta aceita formatos de imagem comuns, como JPG, PNG, WebP e outros, além de arquivos PDF. As imagens são enviadas diretamente para o mecanismo.

Os arquivos PDF digitalizados passam por um processo adicional: a ferramenta primeiro converte cada página em uma imagem com o dobro da resolução original, utilizando o pdf.js, e, em seguida, envia as páginas para o mecanismo de processamento, uma por vez, exibindo uma barra de progresso no estilo "página 2 de 5". As páginas reconhecidas são unidas com uma linha em branco entre elas, formando um único resultado. Observe que isso acontece com todos os arquivos PDF, incluindo os que já foram criados em formato digital, e é exatamente por isso que vale a pena realizar a verificação de seleção e cópia mencionada anteriormente antes de prosseguir.

O resultado é exibido em uma caixa de texto editável, para que você possa corrigir erros de reconhecimento imediatamente e, em seguida, copiar ou baixar o texto como um arquivo .txt. Se o mecanismo não encontrar nada, ele informa isso em vez de inventar texto. E, se você precisar do texto corrigido novamente como um documento, a ferramenta de conversão de texto para PDF do FileTinker transformará o arquivo .txt em um PDF com texto real e selecionável, que geralmente é o objetivo final da digitalização.

Os termos e condições relativos à privacidade, apresentados de forma clara e direta

“Funciona no seu navegador” é verdade, mas isso não significa que “não há nenhuma atividade de rede”, e é importante ser preciso sobre a diferença. Sua imagem ou PDF nunca é carregada: ela é decodificada, renderizada e reconhecida inteiramente na sua própria máquina, e nenhum servidor a recebe. O que é transmitido pela rede é o software. Na primeira vez que você usa a ferramenta, ela baixa o motor de OCR (o componente principal e seu núcleo WebAssembly, disponibilizados pelo jsDelivr CDN) e os dados treinados para o idioma que você selecionou (disponibilizados pelo servidor de dados padrão do Tesseract). Essa é uma operação de download única — alguns megabytes para o motor, mais o modelo de idioma, que varia de alguns megabytes para o inglês a dezenas de megabytes para idiomas como chinês ou japonês — e seu navegador armazena em cache, para que as execuções posteriores comecem muito mais rapidamente.

Em resumo: o código é baixado, mas o seu arquivo nunca é enviado. Essa distinção é o que torna o OCR executado diretamente no navegador uma opção viável para materiais confidenciais, como contratos, documentos de identificação e laudos médicos, onde o envio do próprio documento para o servidor de um desconhecido é exatamente o que você está tentando evitar. Um observador da rede poderia detectar que você baixou um software de OCR, mas não conseguiria ver em qual documento você o utilizou.

Fazendo a correção do texto gerado pelo OCR

Mesmo um bom resultado precisa ser aprovado. O OCR apresenta erros clássicos: a letra minúscula "l", o algarismo "1" e a letra maiúscula "I"; "O" e "0"; a sequência "'rn'" é lida como "'m'". Revise os números com atenção redobrada, pois um algarismo incorreto em um número de telefone ou no valor total de uma fatura é algo provável e, além disso, não será detectado por um verificador ortográfico. Peculiaridades estruturais também são normais: frequentemente, você verá uma quebra de linha no final de cada linha impressa, em vez de no final de cada parágrafo, e as palavras divididas por hífens entre as linhas permanecerão divididas.

Como a caixa de saída é editável, faça essa correção antes de copiar ou baixar o conteúdo. Para uma carta de uma página, leva cerca de um minuto. Esse minuto, somado a uma boa captura de imagem, é o que diferencia o OCR de ser apenas uma curiosidade e transformá-lo na maneira mais rápida de transformar um documento em papel em um documento digital que você pode realmente usar.

Perguntas frequentes

É possível extrair texto de um arquivo PDF digitalizado sem precisar carregá-lo em nenhum lugar?

Sim. Ferramentas de OCR que funcionam diretamente no navegador, como o Image to Text do FileTinker, utilizam o mecanismo Tesseract como WebAssembly localmente: cada página do PDF é convertida em uma imagem no seu navegador, o texto é reconhecido no seu próprio computador e o arquivo nunca é enviado para um servidor. PDFs digitalizados com várias páginas são processados página por página e o resultado é retornado como um único arquivo de texto.

Por que o resultado do meu OCR está ilegível/incompreensível?

A causa mais comum é uma configuração de idioma incorreta: os modelos de OCR são específicos para cada idioma, portanto, um modelo em inglês que processa texto em chinês (ou vice-versa) produzirá resultados sem sentido, em vez de um texto ligeiramente pior. Em seguida, verifique a qualidade da imagem: texto com altura inferior a cerca de 20 pixels, desfoque, inclinação ou baixo contraste prejudicam o desempenho do mecanismo, fazendo com que ele não consiga distinguir as letras.

O OCR funciona com textos manuscritos?

Em geral, não. Os mecanismos de OCR padrão, incluindo o Tesseract, são treinados para reconhecer textos impressos, portanto, a caligrafia cursiva é interpretada como ruído e até mesmo letras maiúsculas bem definidas geram muitos erros. Para notas manuscritas, é recomendável transcrevê-las manualmente ou usar um serviço especializado em reconhecimento de caligrafia, em vez de um OCR convencional.

Qual resolução é necessária para uma OCR precisa?

Digitalize documentos com resolução de 300 DPI ou certifique-se de que as letras em uma foto ou captura de tela tenham aproximadamente 20 pixels de altura ou mais. Abaixo disso, os traços que distinguem caracteres semelhantes terão apenas um ou dois pixels de largura, e a informação simplesmente não estará presente. Ampliar uma imagem de baixa resolução posteriormente não restabelecerá esse nível de detalhe.

Algum arquivo é baixado quando uso a função de OCR diretamente no navegador?

Sim, mas é o software que é baixado, não o seu arquivo. Na primeira vez que você o utiliza, o mecanismo de OCR e os dados do idioma que você selecionou são baixados de CDNs. O download do mecanismo tem alguns megabytes, mais um modelo de idioma que varia de alguns megabytes (inglês) a dezenas de megabytes (chinês, japonês, coreano), e tudo isso é armazenado em cache pelo seu navegador para usos futuros. Sua imagem ou arquivo PDF em si nunca é carregado; o reconhecimento ocorre inteiramente no seu dispositivo.

Quais idiomas o recurso de OCR do FileTinker oferece suporte?

Dezessete idiomas: inglês, chinês tradicional, chinês simplificado, francês, alemão, espanhol, italiano, português, holandês, russo, japonês, coreano, árabe, hindi, polonês, turco e vietnamita, além de um modo combinado inglês + chinês para documentos mistos. Os dados treinados de cada idioma são baixados na primeira vez que o idioma é usado e, em seguida, armazenados em cache.