Melhorando Resultados OCR Insatisfatórios
A qualidade do OCR depende muito da entrada. Uma configuração, filtro ou ajuste que lê um documento claramente pode falhar em outro, deixando você com texto confuso ou incompleto. Quando a leitura padrão decepciona, o pacote IronOcr.Extensions.AdvancedScan geralmente fecha a lacuna de precisão.
A diferença se resume ao motor. IronOCR padrão opera no motor Tesseract, enquanto IronOcr.Extensions.AdvancedScan é alimentado por PaddleOCR e adiciona capacidades de aprendizado de máquina. Isso o torna bem adequado para entradas ruidosas como capturas de tela, e para fontes estruturadas como passaportes e placas de licença.
O pacote expõe métodos de leitura projetados para esses casos:
Solução
1. Comece com ReadDocumentAdvanced() e EnhanceResolution()
Antes de recorrer a qualquer outra configuração, emparelhe o método ReadDocumentAdvanced() com o filtro de pré-processamento EnhanceResolution(). Esta combinação resolve a maioria dos problemas de precisão que os usuários encontram com a leitura padrão.
Aplique o filtro ao OcrInput, depois passe a mesma entrada para ReadDocumentAdvanced():
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadPdf("document.pdf");
// Upscale and sharpen low-resolution input before reading
input.EnhanceResolution();
var result = ocr.ReadDocumentAdvanced(input);
Console.WriteLine(result.Text);
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadPdf("document.pdf");
// Upscale and sharpen low-resolution input before reading
input.EnhanceResolution();
var result = ocr.ReadDocumentAdvanced(input);
Console.WriteLine(result.Text);
Imports IronOcr
Dim ocr As New IronTesseract()
Using input As New OcrInput()
input.LoadPdf("document.pdf")
' Upscale and sharpen low-resolution input before reading
input.EnhanceResolution()
Dim result = ocr.ReadDocumentAdvanced(input)
Console.WriteLine(result.Text)
End Using
ReadDocumentAdvanced() executa o motor de aprendizado de máquina PaddleOCR para analisar documentos pesados em texto, conscientes de layout, enquanto EnhanceResolution() aumenta e aprimora a entrada de baixa resolução antes da leitura. Baixa resolução é uma causa raiz comum de resultados ruins, então este passo de pré-processamento geralmente importa tanto quanto a troca de motor.
2. Alvo x64 no .NET Framework
Configure projetos .NET Framework para compilar como x64. AdvancedScan requer uma quantidade significativa de memória, e executá-lo sob uma arquitetura diferente pode desencadear erros de execução. Consulte o guia Advanced Scan on .NET Framework para o conjunto completo.
Limitações
AdvancedScan oferece forte precisão, mas algumas restrições se aplicam hoje:
- Menos recursos de resultado: Objetos de resultados do AdvancedScan expõem menos propriedades do que o objeto padrão
OcrResult. - Tipos de retorno diferentes: cada método de leitura retorna um tipo de objeto de resultado diferente, então verifique a Referência de API para os detalhes específicos do que você chamar.
- Sem PDFs pesquisáveis: construir PDFs pesquisáveis a partir da saída do AdvancedScan ainda não é suportado, embora o recurso esteja em desenvolvimento.
- Idiomas limitados: o pacote atualmente suporta inglês, chinês, japonês, coreano e alfabetos latinos.

