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?
Porque é que a primeira análise é lenta?
Que línguas são suportadas?
Consegue ler escrita à mão?
Porque é que o texto extraído está cheio de disparates?
O que significa a pontuação de confiança?
Que formatos de imagem posso usar?
Consegue ler um PDF digitalizado?
Mantém a disposição, as tabelas e as colunas?
Quantas imagens posso processar de uma vez?
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.