como funciona o ocr
Como o OCR transforma uma digitalização em texto
OCR não é uma operação. É um encadeamento de cinco, e quase todo resultado decepcionante pode ser rastreado até qual estágio deu errado.
01
Estágio um: limpar a imagem
O reconhecimento trabalha sobre formas, então tudo o que distorce formas precisa sair primeiro. A página é desinclinada — uma digitalização raramente sai reta, e uma rotação de dois graus basta para borrar a busca de linhas que vem em seguida. Depois ela é binarizada: cada pixel vira preto ou branco, com o limiar escolhido de forma adaptativa para que uma página mais clara numa borda que na outra não perca metade do texto.
Depois a remoção de manchas tira os pontinhos isolados de ruído, que de outro modo seriam reconhecidos como pontos finais e vírgulas.
Esse estágio é a razão de a qualidade da digitalização dominar a precisão do OCR muito mais que o reconhecedor. Uma sombra atravessando a página derrota a limiarização, e uma página curva de um livro encadernado não pode ser desinclinada porque a distorção não é uma rotação.
02
Estágio dois: descobrir o leiaute
O motor encontra componentes conexos — trechos contíguos de pixels pretos — e os agrupa. Componentes próximos sobre uma linha de base compartilhada viram uma palavra; palavras numa fileira viram uma linha; linhas empilhadas com espaçamento consistente viram um bloco de texto. Grandes medianizes brancas dividem a página em colunas.
É aqui também que imagens, filetes e tabelas são identificados e postos de lado, para que não se peça ao reconhecedor que leia uma fotografia como se fosse tipografia.
A análise de leiaute decide a ordem de leitura, e a ordem de leitura é o que a maioria das pessoas nota quando falha. Um boletim com uma citação destacada no meio de uma coluna, ou uma nota fiscal em que os totais ficam numa caixa flutuante, é onde um motor afinado para uma página de prosa começa a produzir texto numa ordem que ninguém escreveu.
03
Estágio três: reconhecer os caracteres
O OCR mais antigo comparava a forma de cada caractere com uma biblioteca de moldes, característica por característica: contar os buracos, achar as junções dos traços, medir a proporção. Era rápido, frágil e precisava de um conjunto de moldes separado para cada família tipográfica.
Os motores modernos rodam uma rede neural sobre a linha inteira — tipicamente uma LSTM, que lê uma sequência de fatias verticais estreitas da esquerda para a direita e emite uma sequência de caracteres. Isso importa porque elimina a necessidade de segmentar os caracteres antes de reconhecê-los. Decidir onde uma letra termina e a seguinte começa é difícil por si só: `rn` e `m` são quase idênticos em baixa resolução, e letras que se tocam numa fonte apertada não têm folga onde cortar. Um modelo de sequência contorna o problema simplesmente nunca fazendo esse corte.
Cada caractere sai com uma pontuação de confiança, que é o que uma boa ferramenta de OCR expõe e o que o estágio seguinte usa.
04
Estágio quatro: usar a língua para corrigir o que a visão errou
O reconhecedor vê formas e nada mais, então vai devolver com toda a confiança `l\/lanager`, `0ffice` ou `rnoderno`. Um dicionário e um modelo de sequência de caracteres pegam isso: o motor sabe que em português `rn` no começo de uma palavra é raríssimo enquanto `m` é comum, e sabe que `Gerente` é uma palavra e `l\/lanager` não é.
É por isso que definir a língua certa importa tanto, e por que é o ajuste isolado mais eficaz disponível. Um motor definido para inglês lendo uma página em português tem um dicionário que briga com cada acento. É também por isso que nomes próprios, códigos de peça, números de série e endereços são as coisas menos precisas de qualquer página — são exatamente as cadeias com que o modelo de língua não pode ajudar, e às vezes ele ativamente as corrige para algo errado.
05
Estágio cinco: escrever de volta, invisivelmente
Aqui está a parte que faz um PDF pesquisável funcionar, e é um truque genuinamente elegante.
O PDF tem um operador de modo de renderização de texto, `Tr`. O modo 0 preenche os glifos normalmente. O modo 3 não desenha nada — o texto é colocado na página, ocupa sua posição e fica completamente invisível.
Então a saída do OCR é escrita na página como texto de verdade no modo 3, posicionada de forma que cada palavra reconhecida fique exatamente sobre os pixels de onde veio, com a imagem digitalizada original ainda desenhada por baixo. A página fica precisamente como estava antes. Mas a busca encontra as palavras, a seleção as destaca nos lugares certos, copiar devolve caracteres de verdade, e um leitor de tela pode ler o documento em voz alta.
É por isso que uma digitalização pesquisável é pouquíssimo maior que a digitalização de origem: a camada de texto acrescentada são alguns kilobytes contra megabytes de imagem. E é por isso que selecionar texto numa digitalização com OCR às vezes destaca um retângulo ligeiramente errado — a palavra invisível é posicionada a partir da estimativa do reconhecedor de onde os pixels estavam.
- A imagem fica
- Você mantém a aparência exata da digitalização original. Nada é redesenhado.
- O texto é real
- Busca, cópia, seleção e leitores de tela funcionam todos sobre ele.
- Os erros ficam escondidos
- Uma palavra mal reconhecida é invisível, então a página nunca parece errada — ela só deixa de ser encontrada pela busca.
- O tamanho quase não muda
- Kilobytes de texto contra megabytes de imagem.