O que é mito texto pequeno
Quase todo mundo já precisou extrair texto de uma imagem ou foto e se deparou com aquele resultado estranho quando a fonte é miúda. O problema não é o OCR em si — é a forma como os modelos tratam caracteres pequenos e comprimidos na prática. Quando eu disse mito texto pequeno pela primeira vez num fórum técnico, era só pra descrever essa frustração: você passa trinta minutos refazendo a captura, o resultado volta com "rn" virando "m", vírgulas virando ponto, e números que parecem ter sido escolhidos no escuro.
Entendendo mito texto pequeno
O termo que eu uso aqui descreve o fenômeno em que textos rendered em tamanho reduzido — geralmente abaixo de 9px em telas ou cerca de 6pt em impressos — são lidos por engines de reconhecimento óptico com taxa de erro muito acima do aceitável. Não é um software, não é uma ferramenta específica. É um efeito colateral que aparece sempre que alguém baixa a resolução do texto sem ajustar o modelo ou o pré-processamento. Na prática, o que acontece é que os pixel glyphs perdem detalhes finos — serifa, contrações, hastes descendentes — e o modelo tenta preencher lacunas com formas semelhantes. O resultado é um texto que parece correto à primeira vista, mas tem erros sistemáticos. Isso é diferente de ruído de compressão JPEG. Diferente também de fonte personalizada mal mapeada. O mito texto pequeno é mais chato porque é previsível: ele repele certas combinações de letras com quase a mesma constância toda vez.
Como lidar com o problema na prática
A primeira coisa que eu faço antes de qualquer pipeline é verificar a densidade de pixels por caractere. Se estiver abaixo de oito pixels por centímetro na dimensão da altura da letra minúscula, o modelo vai sofrer. O resto do fluxo depende do contexto.
Pré-processamento que realmente ajuda
Eu uso uma sequência simples: conversão para escala de cinza, remoção de ruído com mediana de 2x2, aumento por interpolação bicúbica com fator de 2 a 3, e contraste local com CLAHE. Nada de filtros criativos. Nada de sharpening agressivo que crie halos. A regra é clara: o objetivo é devolver contornos legíveis, não deixar a imagem com cara de livro antigo. Se o documento tiver fundo colorido ou texto sobre imagem, o ideal é segmentar antes de amplificar. Um threshold adaptativo resolve na maioria dos casos. Eu costumo testar com o método de Sauvola, que se ajusta bem a variações de iluminação local. Quando o fundo é irregular demais, uma máscara de ruído com OpenCV evita que o OCR confunda textura com traço de letra.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Modelo e configuração
Engines como Tesseract, EasyOCR e PaddleOCR têm modelos treinados para tamanhos variados, mas a configuração padrão nunca considera o caso de texto realmente pequeno. Eu recomendo ajustar o psb (pixels per segment/bbox) e usar whitelists de características quando possível. No Tesseract, o parâmetro tessedit_char_whitelist pode limitar o vocabulário a conjuntos conhecidos — números, letras maiúsculas, caracteres específicos — o que reduz drasticamente falsos positivos em fontes tiny. Também é útil forçar o modo de layoutem modo lstm apenas para linhas horizontais, ignorando colunas complexas que confundem o segmentador. E se o texto estiver em imagens escaneadas com leve inclinação, um alinhamento automático antes do OCR economiza tempo de correção manual depois.
Um caso real que eu enfrentei
No ano passado, precisei processar recibos de fornecedores menores onde o texto estava impresso em fonte de cerca de 5,5pt em papel couchê fosco. As imagens vinham em 300dpi, mas a densidade real era insuficiente para o OCR padrão. As primeiras tentativas com EasyOCR retornavam taxas de acerto de 61%. Eu tenteiupscale com SuperResolution baseado em GAN, mas o resultado piorou — o modelo criava caracteres fantasmas que pareciam plausíveis mas eram totalmente errados. O workaround que funcionou foi combinar três etapas: upscale com bicúbico, aplicação de CLAHE com clip limit 1.5 e segmentation com threshold de Sauvola, seguida de running o Tesseract 5 com modelo trained_custom para aquele fornecedor específico. O pulo do gato foi treinar um mini modelo com 40 amostras manuais daquele cabeçalho em particular. A taxa de acerto subiu para 94% em linhas críticas e para 88% no corpo do texto. Levei cerca de quatro horas para preparar o dataset e ajustar parâmetros, mas o ganho compensou o esforço porque eu deixei de precisar digitar manualmente mais de duzentos documentos por semana.
Pegadinhas comuns
Uma das armadilhas mais frequentes é confiar em ferramentas online que prometem conversão automática. Elas aplicam pré-processamento genérico e não permitem ajuste de parâmetros. Outra é achar que aumentar a resolução da imagem resolve tudo. Resolução alta com blur óptico ou compressão JPEG pesada só amplifica os artefatos. O correto é melhorar a aquisição original quando possível: fotografia com boa iluminação difusa, foco automático travado, e resolução mínima de 600dpi para documentos que contenham texto miúdo. Existe ainda o erro de usar whitelists muito amplos. Quanto mais caracteres você permite, mais chances o modelo tem de alucinar formas similares. Limitar ao necessário é sempre mais seguro. E cuidado com pós-processamento baseado em dicionário cego — corrigir "rn" para "m" parece inteligente até você precisar manter siglas ou abreviações técnicas que realmente contienen sequências.
Alternativas quando o mito texto pequeno vence
Nem sempre o OCR resolve. Se o documento tiver fonte, tinta desgastada ou suporte enrugado, vale a pena considerar a entrada manual assistida por templates. Também existe a opção de solicitar o arquivo digital diretamente do emissor em formato estruturado — PDF com texto selecionável, CSV, ou até mesmo XML. Quando isso não é viável, ferramentas como Adobe Acrobat Pro com OCR embutido costumam entregar resultados mais consistentes que soluções gratuitas, mas o custo pode não justificar o uso esporádico. Em resumo, o mito texto pequeno é mais uma realidade operativa do que um defeito técnico isolado. Ele aparece sempre que a cadeia de aquisição perde qualidade antes do reconhecimento. Se você tratar o problema desde a captura, ajustar pré-processamento e modelo ao contexto específico, e reconhecer os limites da automação, consegue reduzir drasticamente o retrabalho. O que eu posso garantir é que nenhum modelo genérico vai salvar um texto de 5pt em foto mal iluminada — nesse cenário, o melhor remédio é simplesmente obter um arquivo de melhor qualidade ou aceitar que parte do trabalho precisará ser manual.