如何使用 Aspose.OCR 优化 OCR 准确性和性能

如何使用 Aspose.OCR 优化 OCR 准确性和性能

实现高 OCR 准确性和快速处理对现实世界的采用至关重要,本文提供了可行的提示,以便通过 Aspose.OCR 为 .NET 进行识别结果和输入。

现实世界问题

坏输入图像、错误的语言设置或不有效的代码可能会导致不准确的结果和缓慢的包装工作。

解决方案概述

遵循已验证的最佳做法 - 优化输入图像,设置预处理,选择正确的识别语言,并调整套件设置。

原則

  • Visual Studio 2019 或以后
  • .NET 6.0 或更高版本(或 .Net Framework 4.6.2+)
  • Aspose.OCR 为 .NET 从 NuGet
PM> Install-Package Aspose.OCR

步骤实施

步骤1:提高输入图像质量

  • 使用高分辨率扫描或照片(印刷至少300 DPI,屏幕至少150 DPi)
  • 避免滑雪、泡沫或阴影 种植边界和按需要旋转图像

步骤2:用过滤器提前处理图像

RecognitionSettings settings = new RecognitionSettings();
settings.AutoContrast = true;
settings.AutoSkew = true;
settings.Denoising = true;
settings.Binarization = true; // For black/white documents

步骤3:设置识别语言和模式

settings.Language = Language.English; // or target language
// For photos or tables, set detection mode
settings.DetectAreasMode = DetectAreasMode.PHOTO; // or DetectAreasMode.TABLE

步骤4:包装和平行处理

同时处理多个图像:

OcrInput input = new OcrInput(InputType.SingleImage);
foreach (string file in Directory.GetFiles("./input", "*.jpg"))
{
    input.Add(file);
}

对于重负载,请使用 async 或 Task Parallel Library:

Parallel.ForEach(files, file => {
    // Run OCR on each file
});

步骤5:验证和审查OCR结果

  • 查看已识别的文本,以便错过或错误的词语
  • 使用验证脚本或关键文件的手动审查

步骤6:处理错误和漏洞

try
{
    // OCR processing
}
catch (Exception ex)
{
    // Log error, move file to review folder
}

步骤7:完整的例子

using Aspose.OCR;
using System;
using System.Collections.Generic;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        try
        {
            OcrInput input = new OcrInput(InputType.SingleImage);
            foreach (string file in Directory.GetFiles("./input", "*.jpg"))
            {
                input.Add(file);
            }
            RecognitionSettings settings = new RecognitionSettings();
            settings.Language = Language.English;
            settings.AutoContrast = true;
            settings.AutoSkew = true;
            settings.Denoising = true;
            settings.Binarization = true;
            AsposeOcr ocr = new AsposeOcr();
            List<RecognitionResult> results = ocr.Recognize(input, settings);
            int count = 1;
            foreach (RecognitionResult result in results)
            {
                result.Save($"./output/result_{count}.txt", SaveFormat.Text);
                count++;
            }
        }
        catch (Exception ex)
        {
            File.AppendAllText("ocr_errors.log", ex.Message + Environment.NewLine);
        }
    }
}

使用案例和应用程序

高准确的发票和合同提取

最大限度地提高法律/财务文件自动化的质量和可靠性。

集成图像/文本档案处理

提高交换速度,并尽量减少虚假负面符合性或BI。

R&D 和模型评估

图为研究场景中的新配置、语言或图像类型。

共同挑战与解决方案

挑战1:低输入图像

** 解决方案:** 使用更好的扫描/照片,运行图像改进和旗帜进行审查,如果OCR信任低。

挑战2:在大型工作中低性能

** 解决方案:** 在运行期间将系统资源集成、平行和监控。

挑战3:意想不到的识别错误

** 解决方案:** 验证输出,处理例外,并保持软件的更新。

绩效考虑

  • Tune batch 尺寸、内存使用及大型工作预处理
  • 监控系统资源和输出文件夹健康
  • 使用 async/parallel 模式大分布式

最佳实践

  • 在扩展之前,在样品上验证设置
  • 自动监控和错误警报
  • 存档源图像和输出安全
  • 更新 Aspose.OCR 以提高准确度/通道

先进的场景

场景1:适应混合内容的预处理

动态设置每个输入图像的检测模式。

场景2:不断改进和反馈流动

返回 OCR 输出错误的过程,以便纠正和恢复。

结论

在任何工作流中,Tuning 准确性和透明度确保了 .NET 的 Aspose.OCR 的最佳结果。 ASPOSE.OCR 为 .NET API 参考 .

 中文