如何通过 Aspose.OCR 提高低质量图像的 OCR 准确性

如何通过 Aspose.OCR 提高低质量图像的 OCR 准确性

许多商业关键图像是低质量的 - 黑暗扫描,智能手机照片,滑动录像或噪音传真. 这些挑战减少了OCR的准确性. .NET 的Aspose。

现实世界问题

当扫描是模糊、黑暗、低对比或背景噪音时,标准OCR可能会错过词语或误识字符,这会导致下流系统或手动重新编辑中的数据不良。

解决方案概述

通过应用预处理(分解、拒绝、对比调整)和调整 Aspose.OCR 设置,您可以显著改善文本提取 - 即使是从模板图像中。

原則

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

步骤实施

步骤 1: 安装和设置 Aspose.OCR

using Aspose.OCR;

步骤2:评估图像质量

检查一下:

  • Blurriness
  • Skew / 旋转
  • 背景噪音
  • 低对比
  • 光 / 阴影

步骤3:应用图像预处理和改进

ASPOSE.OCR 有过滤器,用于否认、分解、二进制、对比等:

RecognitionSettings settings = new RecognitionSettings();
settings.AutoContrast = true; // Improve contrast automatically
settings.Denoising = true;    // Remove background noise
settings.Deskew = true;       // Correct rotated images
settings.Binarization = true; // Convert to black/white for clarity

步骤4:对困难图像进行识别设置

您可以通过 tuning 获得更好的结果:

  • Language 房产(选择最接近的比赛)
  • DetectAreasMode (图片与图片)
settings.Language = Language.English;
settings.DetectAreasMode = DetectAreasMode.PHOTO; // If image is a photo

步骤5:提取文本和验证

OcrInput input = new OcrInput(InputType.SingleImage);
input.Add("blurry_invoice.jpg");
AsposeOcr ocr = new AsposeOcr();
List<RecognitionResult> results = ocr.Recognize(input, settings);
foreach (RecognitionResult result in results)
{
    Console.WriteLine(result.RecognitionText);
}

步骤6:用不同的设置进行测试和测试

尝试多种预处理过滤器和设置的组合,然后检查输出以获得最佳准确性。

步骤7:自动预处理大规模工作

在一个目录中处理所有图像,以最佳设置:

foreach (string file in Directory.GetFiles("./problem_images", "*.png"))
{
    input.Add(file);
}

步骤8:完整的例子

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);
            input.Add("blurry_invoice.jpg");

            RecognitionSettings settings = new RecognitionSettings();
            settings.AutoContrast = true;
            settings.Denoising = true;
            settings.Deskew = true;
            settings.Binarization = true;
            settings.Language = Language.English;
            settings.DetectAreasMode = DetectAreasMode.PHOTO;

            AsposeOcr ocr = new AsposeOcr();
            List<RecognitionResult> results = ocr.Recognize(input, settings);

            foreach (RecognitionResult result in results)
            {
                Console.WriteLine(result.RecognitionText);
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error: {ex.Message}");
        }
    }
}

使用案例和应用程序

数字化接收和传真

将数据从折磨、传真或破碎的收件和账单中提取。

自动化可用低扫描的账户

减少重复处理,甚至从坏来源加速AP处理。

存档遗产论文

保存可用的文本,从旧的,破坏的档案和手写的笔记。

共同挑战与解决方案

挑战1:图像仍然不可读

** 解决方案:** 请求救援或按需要使用先进的增强工具。

挑战2:包装加工瓶子

** 解决方案:** 自动预处理和时间表工作。

挑战3:非常变化的输入

** 解决方案:** 按文档类型存储最佳设置;定期验证。

绩效考虑

  • Preprocessing 增加 CPU 时间,但可加倍 OCR 准确度
  • 测试您的硬件尺寸
  • 跑步后使用OCR物品

最佳实践

  • 存储对审计的原始图像
  • 融入前验证产量
  • 使用质量控制检查关键工作流
  • 定期更新 Aspose.OCR 为改进

先进的场景

场景1:使用外部工具的预处理(可选)

使用 ImageMagick 或 OpenCV 等工具在 OCR 之前改进图像,用于极端情况。

场景2:根据文件类型的自定义过滤

存储和重新使用源或工作流的设置,以获得最大准确度。

结论

通过适当的预处理和设置,Aspose.OCR for .NET 可以从质量不佳的图像中拯救有价值的数据,增强自动化和遵守。

对于先进的提示和最新过滤器,请检查 ASPOSE.OCR 为 .NET API 参考 .

 中文