发票 OCR 开源比较:寻找最佳工具
光学字符识别 (OCR) 现在是文档处理中特别对发票的一项关键技术。 它已经显著发展,影响了从教育到工业的各个行业。 OCR软件减少了手动数据录入的需求,开发人员可以利用各种发票OCR API来构建用于发票处理的软件应用程序。
在本文中,我们将探讨三款开源的C#发票OCR软件和库。 我们还将讨论IronOCR,这是一个为在C#项目中寻求高级OCR功能的开发人员提供的高级选项。
Tesseract OCR
Tesseract OCR最初由惠普开发,现在由谷歌维护,是一个强大的开源OCR引擎。它能够处理各种文档类型并将其转换为可用数据。 它支持多种语言,是全球企业的宝贵资源。
C#开发人员发现Tesseract OCR因其在数据提取中的多功能性和精确性而特别有用。 通过将Tesseract集成到软件应用程序中,开发人员可以高效地处理发票,提取相关信息,如采购订单和税额。 提取的数据可以用于识别PDF发票中的发票编号和项目。
Capabilities and Features of Tesseract OCR in C#
**在.NET应用程序中集成:**将 Tesseract OCR 集成到 C# 项目中需要使用 Tesseract .NET SDK 或包装器。 这提供了一种有效的方法在熟悉的.NET环境中结合OCR功能。
文本识别: Tesseract OCR 擅长识别和提取各种图像格式中的文本。 它善于处理一系列文档类型,从扫描文档和PDF文件到在恶劣光照条件或角度下拍摄的图像。
支持多种语言: Tesseract 支持 100 多种语言,使其能够非常灵活地处理来自不同语言来源的文本的全球应用程序。
定制和培训: Tesseract 允许开发人员使用新的字体和语言来训练引擎,从而提供量身定制的 OCR 解决方案,以满足特定的业务需求或文档类型。
Emgu CV

Emgu CV C# 是一个.NET封装器,用于OpenCV库,使开发人员可以轻松在C#项目中利用OpenCV的功能。 它提供了丰富的图像处理和计算机视觉工具包,证明在处理发票以提取结构化数据方面非常有用。
Emgu CV利用Tesseract OCR引擎从图像和文档中提取文本,这是从发票中准确提取数据的关键步骤。 主要使用的方法是Tesseract.Recognize(),将图像文字转换为可编辑和可搜索的数据。
Emgu CV的优势
跨平台: Emgu CV 可在任何支持.NET 的平台上运行,包括 iOS、Android、Mac OS、Linux 和 Windows。
**跨语言:**除了 C# 之外,Emgu CV 还支持多种语言,包括 VB .NET、C++ 和 IronPython,并提供丰富的示例代码和强大的文档支持。
At9T

At9T,也称为(a9t9),提供了一种免费OCR软件应用,使用用户友好的图形界面从PDF和图像中提取数据。 完全用C#编写,它提供了一种简单的方法将PDF转换为可搜索的文档。
其直观的GUI不仅吸引开发人员,还吸引那些寻求简单一键解决方案的用户。 适用于个人和专业用途,它能有效处理各种OCR任务。 用户可以上传PDF发票,并通过简单的按钮提取数据,例如发票日期、单项和总额。
At9T的功能
**用户友好界面:**该界面设计简洁易用,即使是没有任何经验的用户也能轻松上手。
**支持多种语言:**支持多种语言,包括英语、荷兰语、日语、韩语等。
**批量处理:**能够同时处理多个文件,节省从大量文档中提取数据的时间。
介绍IronOCR:一个高级OCR解决方案

如前所述,像Tesseract和Emgu CV这样的开源选项如果没有额外的组件(如封装器或OpenCV的先验知识)会存在集成上的挑战。此外,At9T可能不适合复杂的文档。
为克服这些挑战,IronOCR提供了一种高级替代方案。作为一个.NET库,它通过额外功能扩展了Tesseract 5引擎的能力,并且易于集成到.NET项目中。
IronOCR支持包括PDF、PNG、JPG、BMP等不同格式的文档。它可以在多个.NET框架和平台上运行,包括Windows和macOS,并支持超过125种语言的OCR,使其成为全球OCR产品。 它利用机器学习实现卓越的文本识别。
IronOCR 的主要功能
**输入灵活性:**处理各种格式,如图像(JPG、PNG、BMP)、多页/帧文件(TIFF、GIF)、System.Drawing对象、流和优化DPI的PDF。
**高级过滤器:**提供用于图像校正(锐化、分辨率增强等)和颜色校正的滤镜,以确保在OCR之前获得最佳质量。
**区域选择:**允许使用CropRectangle选择特定文档区域进行OCR。
**数据输出:**提供以.NET文本字符串、条形码、QR数据和图像形式的数据输出。
**结构化数据:**按页、块、段落、行、词和字符输出结构化数据。
**文档导出:**可以导出为可搜索的PDF、HTML或图像。
**文本突出和保存:**具备在各种粒度上突出和保存文本的功能。
**语言和框架:**支持C#、VB.NET、F#,并与各种.NET框架兼容。
**操作系统:**兼容Windows、macOS、Linux、Docker、Azure和AWS。
**IDE支持:**完全支持Microsoft Visual Studio和JetBrains ReSharper & Rider。
示例
以下是使用IronOCR从发票中提取数据的示例代码片段:
// Create an instance of IronTesseract
var tesseract = new IronTesseract();
// Create an OcrInput object
using (var input = new OcrInput("sample_invoice.png")) // Pass the image path directly to constructor
{
// Read and store OcrResults object
var result = tesseract.Read(input);
// Get all text from the OCR result
string allText = result.Text;
// Print the extracted text to the console
Console.WriteLine(allText);
}' Create an instance of IronTesseract
Dim tesseract = New IronTesseract()
' Create an OcrInput object
Using input = New OcrInput("sample_invoice.png") ' Pass the image path directly to constructor
' Read and store OcrResults object
Dim result = tesseract.Read(input)
' Get all text from the OCR result
Dim allText As String = result.Text
' Print the extracted text to the console
Console.WriteLine(allText)
End Using从发票图像中提取的输出数据如下所示:

后续数据分析可以将这些识别的数据转换为如CSV的格式以便于处理。
结论
总之,在实施OCR技术以从图像或文档中提取文本时,有多种选择。Tesseract OCR、Emgu CV和At9T是可行的开源工具,每种都有其独特的优势。
对于需要更高复杂性的需求,特别是在发票OCR方面,IronOCR提供了强大的解决方案,许可证选择起价为$999。
无论是希望将文本读取功能添加到项目中的程序员还是寻求改善文档管理的企业,工具的选择应与具体需求相匹配,既要考虑免费选项也要考虑像IronOCR这样的更先进的解决方案。
Tesseract OCR、Emgu CV和At9T是其各自所有者的注册商标。 本网站与Tesseract OCR、Emgu CV或At9T没有关联,不得由其认可以及赞助。 所有产品名称、徽标和品牌均为各自所有者的财产。 比较仅供参考,反映撰写时公开可用的信息。)}]
