BrowserTools
Início / Imagens / Imagem para texto (OCR)

Imagem para texto (OCR)

Extrai o texto de capturas de ecrã, digitalizações e fotografias no teu navegador. OCR gratuito em cinco línguas, em lote, com cópia, .txt e .zip e sem envios para servidores.

A carregar Imagem para texto (OCR)… Se nada acontecer, ativa o JavaScript.

O reconhecimento ótico de caracteres, OCR na sigla inglesa, é o processo de transformar uma imagem de texto outra vez em texto que podes selecionar, pesquisar e editar. Esta ferramenta fá-lo com o Tesseract, o motor de OCR que a Google mantém como código aberto desde 2006, compilado para WebAssembly para correr dentro do teu navegador em vez de num servidor. Larga uma captura de ecrã, uma página digitalizada, a fotografia de um recibo ou um diapositivo de uma apresentação, escolhe a língua, e recebes texto simples que podes copiar, descarregar como ficheiro .txt ou colar diretamente num documento. Podes pôr várias imagens em fila e são lidas uma após a outra.

Perguntas frequentes

As minhas imagens são enviadas para um servidor?
Não. O motor de OCR corre dentro do teu navegador como WebAssembly, por isso a imagem é processada localmente e nunca sai do teu dispositivo. Nada é guardado e nada é registado. É essa a principal razão para usares isto em vez de um serviço de OCR online se as tuas imagens são recibos, contratos, documentos de identificação ou qualquer coisa que preferias não entregar a ninguém.
Porque é que a primeira análise é lenta?
Na primeira vez que extrais texto, o navegador descarrega o motor de OCR (cerca de 4 MB) e os dados da língua que escolheste (0,7 a 3 MB). Ambos vêm deste site e não de terceiros, e ambos ficam em cache, por isso todas as análises seguintes começam de imediato e funcionam mesmo offline. O reconhecimento em si leva depois alguns segundos por imagem, conforme o tamanho e o teu dispositivo.
Que línguas são suportadas?
Inglês, português, espanhol, francês e alemão. Escolhe a língua do texto que está na imagem, não a da tua interface. Errar aqui é a causa mais comum de maus resultados com texto acentuado, porque o motor usa o modelo de língua para decidir entre caracteres visualmente parecidos.
Consegue ler escrita à mão?
Não de forma fiável. O Tesseract foi treinado com letra impressa, por isso maiúsculas de imprensa bem desenhadas com caneta escura passam às vezes, mas escrita cursiva quase nunca. Se precisas de reconhecimento de escrita manual, isso é outra classe de modelo e esta é a ferramenta errada.
Porque é que o texto extraído está cheio de disparates?
Normalmente os caracteres da imagem são demasiado pequenos: o Tesseract quer texto com cerca de vinte píxeis de altura ou mais. Digitaliza outra vez a 300 ppp, ou recorta e amplia antes de tentar de novo. As outras causas frequentes são uma imagem torta ou rodada, uma sombra ou reflexo sobre a página, texto claro em fundo escuro, e a língua errada. Mudar a disposição para bloco único depois de recortar bem resolve muitas imagens teimosas.
O que significa a pontuação de confiança?
É a certeza média do próprio motor sobre as palavras que reconheceu, de 0 a 100. Acima de cerca de 90 o texto está normalmente limpo, entre 70 e 89 espera alguns caracteres errados e vale a pena revê-los, e abaixo de 70 o problema é a imagem e não o motor. Trata isto como um aviso para verificares o resultado, não como uma garantia num sentido ou noutro.
Que formatos de imagem posso usar?
Qualquer um que o teu navegador saiba descodificar: PNG, JPEG, WebP, BMP, GIF e normalmente AVIF. Capturas de ecrã coladas da área de transferência como PNG são o input ideal, porque não têm perdas e já estão à resolução do ecrã. JPEG muito comprimido perde os contornos finos das letras pequenas, por isso prefere PNG quando puderes escolher.
Consegue ler um PDF digitalizado?
Não diretamente, esta ferramenta recebe imagens. Se o teu PDF tem texto real lá dentro, usa a ferramenta de extrair texto de PDF, que é mais rápida e exata. Se é uma digitalização, exporta ou captura as páginas como imagens primeiro e passa-as aqui em lote.
Mantém a disposição, as tabelas e as colunas?
Só de forma aproximada. A saída é texto simples com quebras de linha mais ou menos onde o motor as viu, e a ordem de leitura segue o que a disposição escolhida espera. Páginas de várias colunas saem normalmente na ordem certa no modo automático, mas as tabelas perdem o alinhamento e passam a linhas de texto. Se a tabela é importante, recorta e lê coluna a coluna.
Quantas imagens posso processar de uma vez?
Tantas quantas quiseres, até 25 MB por ficheiro. São postas em fila e lidas uma a uma, porque o OCR consome CPU e correr várias ao mesmo tempo só tornaria cada uma mais lenta. Cada ficheiro tem a sua caixa de texto, botão de copiar e descarga em .txt, e com dois ou mais resultados podes descarregar tudo num único .zip.

Sobre Imagem para texto (OCR)

Dois parâmetros decidem quase todo o resultado. A língua conta mais do que se pensa, porque o Tesseract não se limita a comparar formas, também pesa que sequências de letras são plausíveis na língua que escolheste. Ler texto português ou espanhol com o modelo inglês é a razão mais comum para os caracteres acentuados saírem trocados, por isso escolhe primeiro a língua certa. O parâmetro de disposição da página diz ao motor que tipo de arranjo esperar: o modo automático lida com uma página normal, com parágrafos e colunas, o bloco único é o melhor quando recortaste bem junto a um único pedaço de texto, a linha única serve para um número de série ou um código, a palavra única é para uma etiqueta, e o texto disperso é o modo a usar quando as palavras estão espalhadas pela imagem, como num diagrama, num mapa ou numa captura de um jogo.

A qualidade do input define o limite da precisão, e a resolução é a alavanca principal. O Tesseract gosta de caracteres com cerca de vinte píxeis de altura ou mais, e é por isso que uma captura de ecrã nítida sai normalmente perfeita e uma fotografia do mesmo texto tirada do outro lado da sala não sai. O caso ideal é texto escuro sobre fundo claro, direito, com iluminação uniforme e bom contraste: documentos impressos, capturas de ecrã, legendas, páginas de livros, faturas, formulários e diapositivos funcionam todos bem. A distorção de perspetiva, sombras a atravessar a página, desfocagem de movimento, letras decorativas ou muito estilizadas, tabelas densas e escrita à mão são onde o OCR sofre, e nenhum motor que corra no teu telefone lê escrita cursiva de forma fiável. Se um resultado parecer fraco, recorta mais junto ao texto, roda a imagem para ficar direita, digitaliza outra vez a 300 ppp, e só depois culpa o motor.

Tudo acontece no teu dispositivo. O motor em si, cerca de 4 MB de WebAssembly, e os dados da língua, entre 0,7 e 3 MB conforme a língua, são descarregados deste site na primeira vez que corres o OCR e ficam depois em cache no navegador, por isso as visitas seguintes começam de imediato e funcionam offline. As tuas imagens nunca são enviadas, nada é guardado e nada é registado, que é a diferença prática entre isto e os muitos serviços de OCR online que te pedem para entregares um contrato, a digitalização de um passaporte ou um formulário médico. Cada resultado traz uma pontuação de confiança para saberes de relance se podes confiar nele, e com vários ficheiros carregados podes descarregar todos os textos extraídos num único .zip.

Cem anos de máquinas de ler

A ideia de uma máquina que lê é mais antiga do que o computador. Em 1913 o físico Edmund Fournier d'Albe construiu o Optophone, um aparelho que percorria uma linha impressa e a convertia em tons musicais para que leitores cegos pudessem ouvir a forma das letras. Funcionava, à sua maneira, a cerca de uma palavra por minuto. Em 1929 Gustav Tauschek patenteou uma máquina que comparava caracteres impressos com moldes metálicos usando um fotodetetor, e em 1931 Emanuel Goldberg registou uma máquina estatística para pesquisar arquivos de microfilme por padrão. Nenhuma delas reconhecia texto em sentido geral, mas estabeleceram o truque que todo o OCR ainda usa: lançar luz sobre a página e medir o que volta.

O avanço comercial veio de uma direção inesperada. Em 1974 Ray Kurzweil fundou uma empresa para construir OCR omni-font, software capaz de ler qualquer tipo de letra em vez de apenas uma para a qual tinha sido feito, e o primeiro cliente que tinha em mente não era um escritório, era um leitor cego. A Kurzweil Reading Machine de 1976 juntou um digitalizador de mesa, OCR e um sintetizador de voz num único aparelho do tamanho de uma secretária. Stevie Wonder comprou uma das primeiras unidades e ficou cliente e amigo da empresa durante décadas. Pela mesma altura o serviço postal americano começou a usar OCR para separar correio lendo endereços, e essa continua a ser uma das maiores implantações de OCR jamais construídas.

O Tesseract, o motor por trás desta página, tem uma história que se lê como um pequeno milagre de preservação de software. Foi escrito no laboratório da Hewlett-Packard em Bristol entre 1984 e 1994, foi considerado bom o suficiente para ficar perto do topo dos testes de precisão da UNLV de 1995, e foi depois arquivado quando a HP saiu do mercado. Ficou uma década sem uso. Em 2005 a HP libertou o código como open source, e em 2006 a Google assumiu a manutenção, acabando por reescrever o núcleo de reconhecimento em torno de redes neuronais LSTM na versão 4. O resultado é que um programa originalmente compilado para estações de trabalho HP dos anos 80 é hoje o motor de OCR por defeito do mundo open source e, compilado para WebAssembly, corre dentro de um separador do navegador num telefone.

Um detalhe explica quase toda a frustração com OCR. O motor não lê letra a letra em isolamento, combina as formas que vê com um modelo de que sequências são plausíveis na língua, exactamente como tu fazes ao ler má caligrafia. É por isso que a mesma imagem dá resultados diferentes em línguas diferentes, que nomes próprios e números de série são mais difíceis do que prosa comum, e que o erro clássico de OCR é uma palavra errada mas pronunciável. É também por isso que as letras que enganam as máquinas são as mesmas que enganam as pessoas: 0 contra O, 1 contra l contra I, rn contra m, e cl contra d.

Apoiar