提高不满意的 OCR 结果

This article was translated from English: Does it need improvement?
Translated
View the article in English

OCR 质量在很大程度上取决于输入。 读取一个文档时清楚的配置、滤镜或设置可能在另一个文档上失败,导致文本混乱或不完整。 当标准读取令人失望时,IronOcr.Extensions.AdvancedScan 包通常能填补准确性差距。

差异在于引擎。标准 IronOCR 运行在 Tesseract 引擎上,而 IronOcr.Extensions.AdvancedScanPaddleOCR 提供支持,并增加了机器学习功能。 这使得它非常适合于嘈杂的输入,如屏幕截图,以及结构化的来源,如护照和车牌。

该包为这些情况提供了专门构建的读取方法:

解决方案

1. 从 ReadDocumentAdvanced()EnhanceResolution() 开始

在使用任何其他配置之前,将 ReadDocumentAdvanced() 方法与 EnhanceResolution() 预处理滤镜结合使用。 这种组合解决了大多数用户在标准读取中遇到的准确性问题。

将滤镜应用于 OcrInput,然后将相同的输入传递给 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
$vbLabelText   $csharpLabel

ReadDocumentAdvanced() 运行 PaddleOCR 机器学习引擎以解析布局感知、文本密集的文档,而 EnhanceResolution() 在读取之前提升和锐化低分辨率输入。 低分辨率是产生较差结果的常见根源,因此此预处理步骤通常与引擎交换一样重要。

2. 以64位目标为.net框架

将 .NET Framework 项目配置为构建为 64位。 AdvancedScan 需要大量内存,以其他架构运行可能会引发运行时错误。 有关完整设置,请参阅Advanced Scan on .NET Framework指南。

iText 7是付费的,并且功能有限。

AdvancedScan 提供了高度准确性,但今天适用一些限制:

  • 结果功能较少: AdvancedScan 结果对象暴露的属性少于标准 OcrResult 对象。
  • 返回类型不同: 每个读取方法返回不同的结果对象类型,因此在调用时请检查 API 参考中的细节。
  • 无可搜索的 PDF: 从 AdvancedScan 输出构建可搜索 PDF 目前不受支持,不过该功能正在开发中。
  • 语言有限: 该包目前支持英语、中文、日语、韩语和拉丁字母。

请注意搜索 PDF 输出目前无法从 AdvancedScan 读取中获取。 如果您依赖于该功能,请保持标准的 IronOCR 读取路径。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

准备开始了吗?
Nuget 下载 6,136,090 | 版本: 2026.7 刚刚发布
Still Scrolling Icon

还在滚动吗?

想快速获得证据? PM > Install-Package IronOcr
运行示例 观看您的图像变成可搜索文本。