与其他组件比较

发票 OCR 开源比较:找到最佳工具

Kannaopat Udonpant
坎那帕·乌东攀
2024年二月18日
分享:

介绍

光学字符识别(OCR)现在是处理文档(如发票)最重要的技术。 从教育到行业层面,它在业务的方方面面都得到了发展。 在任何地方,您都可以看到 OCR 软件的使用,因为它可以减少人工数据录入的使用。 开发人员可以使用多种类型的发票 OCR API 构建 OCR 软件应用程序来处理发票。

在本文中,我们将探讨用于发票处理和其他 OCR 流程的三款 C# Invoice OCR 开源软件和库。 我们还将讨论IronOCR(与它们分开),这是开发人员在C#项目中集成高级OCR功能的最佳付费选项。 让我们从开源选项开始。

魔方 OCR

Tesseract OCR 最初由惠普公司开发,现在由谷歌负责维护,是一款功能强大的开源 OCR 引擎。它能够读取多种文档类型,并将其转换为可用数据。 它支持多种语言,是全球企业的宝贵资源。

C# 开发人员发现 Tesseract OCR 因其多功能性和提取准确性而异常有用。 通过将 Tesseract 纳入其软件应用程序,开发人员可以高效地处理新发票并提取数据和相关信息,如采购订单和税额。 我们可以使用提取的数据从 PDF 发票中提取发票号码和项目。

C# 中 Tesseract OCR 的能力和功能;

在.NET应用程序中集成:在C#项目中,集成Tesseract OCR涉及利用Tesseract .NET SDK或包装器,这为整合OCR功能提供了一种简化的方法。 整合后,开发人员可以在他们熟悉的 .NET 环境中工作,确保开发过程顺利进行。

文本识别:Tesseract OCR 在识别和提取各种图像格式中的文本方面表现优异。 它善于处理各种文档类型,从扫描文档和 PDF 文件到在不同光线条件或角度下拍摄的图像。

支持多种语言:Tesseract 的一个重要优势是支持超过 100 种语言。 因此,对于需要处理和分析来自不同语言源的文本数据的全球应用程序来说,它是一个非常通用的工具。

定制和培训:Tesseract允许开发人员通过新的字体和语言来训练引擎,提供一个定制的OCR解决方案,以满足特定的业务需求或文档类型。此功能对于识别专业文档或不常见字体中的文本特别有益。

Emgu 简历

发票 OCR 开源(免费与付费工具比较):图 1 - Emgu CV 网页

Emgu CV C# 是一个 OpenCV 库的 .NET 包装器。 它可以帮助开发人员在其 C# 项目中轻松使用 OpenCV 的功能。 它为图像处理、计算机视觉及其他相关领域提供了丰富的工具包。 它对于处理发票以提取结构化数据非常有用。

它利用 Tesseract OCR 引擎从图像和文档中提取文本。 这个步骤要求准确性,因为它是从任何发票中提取数据的主要步骤。这个包装器的主要方法是 Tesseract.Recognize(),因为它将图像中的文字转换为可编辑和可搜索的数据。 开发人员可以提高发票处理工作流程的效率。

Emgu 简历的优势

跨平台: Emgu CV 可以在任何支持 .NET 的平台上运行,包括 iOS、Android、Mac OS、Linux 和 Windows。

跨语言:除了 C#,Emgu CV 还可在多种语言中使用,包括 VB.NET、C++ 和 IronPython。 它通过文档提供了大量示例代码和强大的支持。

At9T

发票OCR开源(免费和付费工具比较):图2 - At9T网页

At9T,也称为 (a9t9),提供免费的OCR(光学字符识别)软件应用程序。 该软件可以使用美观的图形用户界面 (GUI) 从PDF和图像中提取数据。 它完全用 C# 语言编写。 它提供了一种非常简单易用的方法,可利用其智能文档处理功能将 PDF 转换为可搜索文档。

其图形用户界面有助于将市场扩展到那些希望一键获得解决方案的非开发人员。 该软件非常易于安装和使用。 可用于个人和专业用途。 它可以高效地执行许多 OCR 任务。 我们可以上传 PDF 发票并提取发票数据,如发票日期、明细项目、总额等。您只需上传并按下按钮启动 OCR,它就会开始处理发票。

At9T 的功能

用户友好的界面:其用户界面易于使用。 设计时要考虑到简洁性。 任何没有经验的人都可以轻松使用。

多语言支持:支持多种语言,如英语、荷兰语、日语、韩语等。

批量处理:此软件可以同时对多文件进行OCR。如果您想从大量文件中提取数据,这将节省时间。

介绍 IronOCR:高级 OCR 解决方案

发票 OCR 开源(免费和付费工具比较):图 3 - IronOCR 网页

如上文所述,开源方案存在很多困难。 要将 Tesseract 整合到我们的项目中并不容易; 它需要一个包装器才能使用。 要使用 Emgu CV,您必须了解 OpenCV。否则,这将是一次艰苦的学习经历,而且它也没有丰富的文档。 同时,At9T 不适合复杂的文档。

为了解决这些问题并推进 OCR 解决方案,IronOCR 是最佳选择。 IronOCR 是一个 .NET OCR 库,它扩展了 Tesseract 5 Engine 的功能,并为 OCR 增加了更多高级选项。 与 Tesseract 和其他库不同,它很容易集成到 .NET 项目中。

IronOCR 支持多种文档格式,包括 PDF、PNG、JPG、BMP 等。 它支持各种 .NET Framework 和平台,包括 Windows、macOS 等。 您可以使用超过 127 种语言执行 OCR 操作,这使其成为一款全球性的 OCR 产品。 您可以使用其惊人的发票 OCR 技术从所有发票格式中提取数据。 IronOCR 使用机器学习实现最佳文本识别。 让我们来看看 IronOCR 的主要功能。

IronOCR 的主要功能

以下是对其主要功能的有序总结:

输入灵活性:可以读取多种格式,包括图像(JPG、PNG、BMP)、多页/帧文件(TIFF、GIF)以及 System.Drawing 对象、流和优化 DPI 的 PDF。

高级过滤器: 提供一系列过滤器,如过滤向导、图像校正(锐化、分辨率增强、去噪、膨胀、腐蚀)、图像方向校正(旋转、去倾斜、缩放)和颜色校正(二值化、灰度化、反转、替换颜色、选择文本颜色),以确保在进行OCR之前达到最佳图像质量。

区域选择:允许通过 CropRectangle 选择文档的特定区域进行 OCR。

数据输出:提供简单的数据输出,包括.NET文本字符串、条形码、二维码数据和图像。

结构化数据:提供以页面、块、段落、行、单词和字符形式的结构化数据输出。

文档导出:支持将文档导出为可搜索的PDF、HTML,或将页面、文本、条形码或二维码导出为图像。

文本高亮和保存:功能包括高亮和保存字符、单词、行和段落。

语言与框架:支持 C#、VB.NET、F#,兼容 .NET 8、7、6、5、Core 2x & 3x、Standard 2 和 Framework 4.6.2+。

操作系统: 与 Microsoft Windows、macOS、Linux、Docker、Azure 和 AWS 的多功能兼容性。

IDE 支持: 完全支持 Microsoft Visual Studio 和 JetBrains ReSharper & Rider。

示例

以下是使用 IronOCR 从发票中提取数据的示例代码:

// Create IronOCR Tesseract Instance
IronTesseract tesseract = new IronTesseract();
// Create an OcrInput object
using (OcrInput input = new OcrInput("sample_invoice.png")) // You can directly pass the image path to the constructor
{
    // Read and store OcrResults object
    OcrResult result = tesseract.Read(input);
    // Get all text from the OCR result
    string allText = result.Text;
    // Print to console
    Console.WriteLine(allText);
}
// Create IronOCR Tesseract Instance
IronTesseract tesseract = new IronTesseract();
// Create an OcrInput object
using (OcrInput input = new OcrInput("sample_invoice.png")) // You can directly pass the image path to the constructor
{
    // Read and store OcrResults object
    OcrResult result = tesseract.Read(input);
    // Get all text from the OCR result
    string allText = result.Text;
    // Print to console
    Console.WriteLine(allText);
}
' Create IronOCR Tesseract Instance
Dim tesseract As New IronTesseract()
' Create an OcrInput object
Using input As New OcrInput("sample_invoice.png") ' You can directly pass the image path to the constructor
	' Read and store OcrResults object
	Dim result As OcrResult = tesseract.Read(input)
	' Get all text from the OCR result
	Dim allText As String = result.Text
	' Print to console
	Console.WriteLine(allText)
End Using
$vbLabelText   $csharpLabel

以下是我们从发票图像中提取的输出数据:

发票 OCR 开源(免费和付费工具比较):图 4 - 使用前面的代码从样本发票中提取文本的输出

我们可以使用数据识别进行数据分析,并将其导出为 CSV 文件。

结论

总之,当我们谈论从图像或文档中读取文本(OCR技术)时,我们有很多选择。 Tesseract OCR、Emgu CV 和 At9T 都是人们可以使用的免费工具。 各有各的好。

但如果您需要更高级的发票OCR,如果它适合您的需求,您可以从$749开始购买许可证。

因此,无论您是希望在项目中添加文本阅读功能的程序员,还是希望更好地处理文档的企业,都有很多选择。 Tesseract、Emgu CV 和 At9T 等免费工具是很好的起点。 但如果想要更专业,IronOCR 提供了很多高级功能。 关键是要根据您的具体需求选择合适的工具。

Kannaopat Udonpant
坎那帕·乌东攀
软件工程师
在成为软件工程师之前,Kannapat 从日本北海道大学完成了环境资源博士学位。在攻读学位期间,Kannapat 还成为了生物生产工程系车辆机器人实验室的成员。2022年,他利用自己的 C# 技能加入了 Iron Software 的工程团队,专注于 IronPDF。Kannapat 珍视他的工作,因为他能直接向编写 IronPDF 大部分代码的开发者学习。除了同伴学习,Kannapat 还享受在 Iron Software 工作的社交方面。不写代码或文档时,Kannapat 通常在 PS5 上玩游戏或重看《最后生还者》。
< 前一页
Tesseract 与 Microsoft OCR:正面比较
下一步 >
OCR 软件试用:探索最佳选择