CodeKitHub
Português
Por que é que as fotografias de páginas de livros não funcionam com o OCR (e como uma inclinação de apenas alguns graus compromete a precisão)

Por que é que as fotografias de páginas de livros não funcionam com o OCR (e como uma inclinação de apenas alguns graus compromete a precisão)

Publicado em 24 de jul. de 2026

Se alguma vez tentou converter online uma fotografia de uma página de um livro em texto e recebeu como resultado um monte de disparates sem sentido, provavelmente culpou a coisa errada. É tentador assumir que o papel velho e amarelado ou a má iluminação são os culpados — mas, nos testes, nenhum desses fatores teve grande influência. A verdadeira causa é quase sempre algo que não se consegue ver apenas olhando para a fotografia: uma ligeira inclinação da câmara.

O teste: a mesma página, quatro condições

Para descobrir o que realmente prejudica o OCR (reconhecimento ótico de caracteres) em fotografias reais de livros, submetemos o mesmo bloco de texto ao Tesseract — o motor de OCR de código aberto — em quatro condições: uma digitalização nítida e plana, uma página amarelada/desbotada, uma fotografia inclinada cerca de 12 graus e uma fotografia inclinada com um reflexo de luz adicionado.

Condição Precisão das palavras
Digitalização nítida e plana 100%
Página amarelada e desbotada (sem inclinação) 100%
Inclinada ~12° (sem descoloração) 67,7%
Inclinada ~8° + reflexo 71,0%

A página amarelada obteve a mesma pontuação que a página em perfeito estado — nota máxima. Assim que foi introduzida uma inclinação, a precisão caiu um terço, produzindo exatamente o tipo de resultado que qualquer pessoa que já tenha experimentado ferramentas do tipo «digitalizar livro didático para o Word» já viu: "brow," em vez de «castanho», "Chapte,." em vez de «Capítulo.», "hidde,," em vez de «oculto».

Por que razão uma inclinação mínima causa tantos danos

Os motores de OCR lêem o texto digitalizando linhas de imagem à procura de faixas horizontais consistentes de tinta — esse é o mecanismo que utilizam para distinguir uma linha de texto da seguinte. Numa digitalização perfeitamente nivelada, cada linha de texto situa-se numa faixa horizontal organizada, e o motor separa claramente a linha 1 da linha 2 e da linha 3.

Basta inclinar a página em apenas 10 graus para que essa faixa horizontal nítida se transforme numa mancha diagonal que abrange dezenas de linhas de píxeis. A lógica de segmentação de linhas do motor começa a fundir caracteres do que deveriam ser duas linhas separadas, ou a dividir um único caractere entre o que considera serem duas linhas diferentes. O resultado não é «ligeiramente menos preciso» — é um resultado categoricamente diferente, porque a unidade fundamental que o motor lê (uma linha) já não corresponde ao que está realmente na imagem.

É também por isso que uma fotografia que parece completamente legível para si pode ainda assim produzir um resultado de OCR ilegível. O seu sistema visual compensa uma inclinação de 10 graus sem qualquer esforço consciente — nem sequer a regista como estando inclinada. Um processo de OCR simplista não tem essa compensação incorporada e lê exatamente os píxeis que lhe são apresentados.

A solução: endireite antes de reconhecer, não depois

A lição prática não é «segurar o celular com mais cuidado» — uma ligeira inclinação ao fotografar um livro aberto é quase inevitável, uma vez que não se está a pressionar a página contra um scanner. A solução é automática: detetar o ângulo de inclinação e corrigi-lo antes de executar o reconhecimento de texto, não depois.

Uma forma fiável de detetar o ângulo sem recorrer a nenhum modelo complexo de aprendizagem automática é o método do perfil de projeção: rodar a imagem através de uma gama de ângulos possíveis e, para cada um deles, medir o quão «picoada» é a distribuição da tinta linha a linha. No ângulo correto, as linhas de texto alinham-se em faixas nítidas (elevada variância entre linhas); em qualquer outro ângulo, a tinta espalha-se pelas linhas (baixa variância). O ângulo que produz a maior variância é o ângulo de correção da inclinação.

Executar esta correção primeiro e depois reconhecer o texto fez com que todos os nossos casos de teste inclinados recuperassem 100% de precisão nas palavras — a mesma página, o mesmo motor de OCR, sendo a única diferença o facto de a ter endireitado primeiro.

O que isto significa se estiver a digitalizar um livro

  • Não se preocupe com o estado do papel. O amarelecimento, o desbotamento ligeiro e a ligeira perda de contraste devido ao envelhecimento do papel mal afetam a precisão por si só. Um livro de bolso antigo digitaliza-se tão bem quanto um novo.
  • Preocupe-se com o ângulo. Mesmo uma inclinação que não notaria a olho nu pode ser a diferença entre texto utilizável e lixo.
  • O brilho do flash é menos importante do que a inclinação, mas ainda assim prejudica. Um ponto de luz intenso em papel brilhante pode ocultar qualquer texto que esteja por baixo — a correção do ângulo não resolve um ponto onde, para começar, não há tinta legível para ler.
  • Uma ferramenta que corrige a inclinação automaticamente resolve o problema real. A nossa ferramenta para converter páginas de livros em texto executa exatamente esta etapa de deteção e correção no seu navegador antes do reconhecimento — sem necessidade de carregar arquivos, sem servidor, e foi concebida especificamente para resolver o problema da inclinação, em vez de partir do princípio de que está a fornecer uma digitalização plana.

Se já tentaste utilizar o OCR numa fotografia de um livro e desististe porque o resultado era ilegível, provavelmente o problema não era a página — era quase certamente a inclinação de alguns graus da câmara.

← Voltar ao blog