如何通过 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 参考 .