OCR工具

发票OCR库(开发人员列表)

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

在 .NET 开发环境中,简化手工数据录入流程(尤其是收据和发票)一直是企业追求效率和准确性的目标。 随着针对.NET环境量身打造的收据扫描OCR(光学字符识别)库的出现,这一目标比以往任何时候都更容易实现。 这些收据OCR API库使开发人员能够将强大的收据功能无缝集成到他们的.NET应用程序中,以彻底改变数据管理工作流程。

收据数据提取可以使用 Microsoft Azure 的文档智能服务高效执行。 有关更多信息,请参阅收据数据提取 - Microsoft Azure Document Intelligence

了解 .NET 中的收据和 OCR API 库

收据是一份包含交易关键数据的文档,通常以非结构化数据格式呈现,可以使用机器学习算法对其进行处理,以提取结构化数据进行分析。 收据图像包含所有文档文本,便于将非结构化信息转换为结构化数据,同时也会引起人们对数据隐私的关注。

为 .NET Framework 设计的收据 OCR API 库提供了一套全面的工具和功能,可从扫描或拍照的收据中提取数据或相关信息。利用先进的机器学习算法和计算机视觉技术,这些库可以准确识别文本、数字和关键数据点,如日期、商家名称、总金额等。

主要特点和优势

  1. 准确性和速度:.NET 中收据扫描 OCR 库的主要优势之一是其能够以高精度和速度准确提取收据中的数据。 通过实现数据录入过程的自动化,这些库不再需要手工录入或转录数据,从而减少了错误,节省了宝贵的时间。

  2. 集成灵活性:.NET 中的收据 OCR 库旨在与现有的 .NET 应用程序无缝集成,使开发人员可以轻松地将 OCR 技术功能纳入他们的软件解决方案中。 无论是会计应用程序、费用管理系统还是定制的商业软件,都可以无缝集成这些库,以增强数据管理能力。

  3. 语言和货币支持:.NET 中的现代收据 OCR 库能够处理多种语言和货币的收据字段。 这确保了在不同地区运营或与国际客户和供应商打交道的企业的通用性和适应性。

  4. 自定义和可扩展性:在 .NET 中使用收据或发票 OCR API 库的开发人员可以根据其特定要求自定义和扩展功能。 无论是增加对新数据格式的支持,还是提高特定字段的识别准确性,这些库都提供了大量的定制机会。

  5. 安全与合规:领先的.NET OCR凭证库优先考虑数据安全性和符合GDPR和HIPAA等行业法规。 强大的加密协议和严格的数据保护措施可确保从收据中提取的敏感信息得到安全处理,并符合监管要求。

收据 OCR 库--开源

1.魔方

Tesseract 是最著名的开源 OCR 引擎之一,因其普及性和活跃的维护而备受推崇。 它的吸引力在于其灵活性,允许通过在自定义数据集上进行培训来实现定制。 对于收据 OCR 任务,Tesseract 不失为一种可行的选择,尤其是在您拥有大量收据专用训练数据的情况下。不过,值得注意的是,训练过程可能非常复杂和耗时,需要数据注释和模型优化方面的专业知识。 尽管如此,Tesseract 的开源特性促进了一个充满活力的社区,提供了大量的文档和支持资源,帮助开发人员驾驭其复杂性。

2.EasyOCR

作为 Tesseract 的一个用户友好的封装,EasyOCR 是一个更易访问的选项,适合那些在项目中寻求简单集成 OCR 功能的开发者。 EasyOCR 可为包括英语在内的各种语言提供预训练模型,从而简化了实施过程,特别适合基本的收据 OCR 要求。 通过抽象 Tesseract 底层功能的复杂性,EasyOCR 简化了集成过程,使开发人员能够专注于应用程序逻辑,而无需深入研究 OCR 引擎配置的细微差别。

收据 OCR API - 商业图书馆

1.谷歌云视觉 API

作为一种按需付费的云端OCR服务,Google Cloud Vision API为企业在收据OCR工作流中提供高精度和可扩展性的强大解决方案。 通过专门针对收据数据进行优化的预训练模型,该应用程序接口在从图像中提取文本方面提供了令人印象深刻的性能。 然而,依赖云基础设施需要互联网连接,使用成本会根据 OCR 请求的数量而增加。 尽管如此,托管服务的便利性加上谷歌在机器学习方面的专业知识,使谷歌云视觉 API 成为供应链管理等有不同 OCR 需求的企业的一个极具吸引力的选择。

2.微软 Azure 计算机视觉 API

类似于 Google Cloud Vision API,Microsoft Azure Computer Vision API 提供基于云的 OCR 服务,使用经过预训练的模型,专为收据识别而定制。 该 API 采用即用即付的定价模式,可让企业根据使用情况灵活管理 OCR 成本。 利用微软广泛的人工智能功能,Azure Computer Vision API 在从收据照片中提取相关信息方面提供了可靠的性能。 此外,与其他 Azure 服务的无缝集成有助于开发端到端文档处理解决方案,提高工作流程效率和可扩展性。

3.ABBYY FineReader 引擎

被定位为商业OCR引擎,ABBYY FineReader Engine 以其卓越的精确度和专为文档处理任务(包括收据OCR)而量身定制的全面功能而闻名。 虽然 ABBYY FineReader Engine 可能需要商业许可,但它提供了无与伦比的性能和可靠性,使其成为对 OCR 有严格要求的企业的首选。 然而,ABBYY FineReader Engine 的相关费用可能会对小型项目造成障碍,因此有必要仔细考虑预算限制。

4.AnyOCR

AnyOCR 是一款多功能的OCR库,提供了强大的准确性,适用于各种文件类型,包括收据。通过提供本地和云端部署选项,AnyOCR 为企业提供了灵活性,可以选择最符合其需求的部署模式。 虽然 AnyOCR 可能需要商业许可,但它能在不同的使用情况下提供一致的性能和可靠性。 AnyOCR 对收据的支持以及对各种文档格式的适应性,使其成为企业在文档处理工作流程中寻求准确性和多功能性的综合 OCR 解决方案。

实施和集成

在 .NET 环境中实施 OCR 库通常需要将库的 API 或 SDK 集成到现有的应用程序架构中。 开发人员可以利用全面的文档、示例代码片段和开发人员支持来简化集成过程,并优化其应用程序中的 OCR 功能,以提取准确的数据。

.NET中的收据OCR库的一个例子是Tesseract库,这是一个由谷歌维护的开源OCR引擎。 Tesseract 提供强大的 OCR 功能并支持多种语言。 下面是一个如何在 .NET 应用程序中使用 Tesseract OCR 的简单示例:

首先,您需要通过 NuGet 包管理器安装 Tesseract.NET 封装包:

Install-Package Tesseract
Install-Package Tesseract
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package Tesseract
$vbLabelText   $csharpLabel

收据OCR库(开发者列表):图1 - 安装Tesseract

我们还需要从以下存储库中获取特定语言的训练数据:https://github.com/tesseract-ocr/tessdata/。 将此 tessdata 文件夹放在任何目录下,并确保正确引用。

下面的图片将用于演示目的:

收据OCR库(开发人员列表):图2 - 收据输入

然后,您可以使用以下代码片段对收据图像执行 OCR:

using System;
using System.Drawing;
using Tesseract;
namespace ReceiptOCR
{
    class Program
    {
        static void Main(string[] args)
        {
            // Path to the image file
            string imagePath = "path/to/your/receipt/image.jpg";
            // Initialize Tesseract engine
            using (var engine = new TesseractEngine(@"./tessdata", "eng", EngineMode.Default))
            {
                using (var img = Pix.LoadFromFile(imagePath))
                {
                    // Set the image for OCR
                    using (var page = engine.Process(img))
                    {
                        // Get the text recognized by Tesseract
                        string recognizedText = page.GetText();
                        // Output the recognized text
                        Console.WriteLine("Recognized Text:");
                        Console.WriteLine(recognizedText);
                    }
                }
            }
        }
    }
}
using System;
using System.Drawing;
using Tesseract;
namespace ReceiptOCR
{
    class Program
    {
        static void Main(string[] args)
        {
            // Path to the image file
            string imagePath = "path/to/your/receipt/image.jpg";
            // Initialize Tesseract engine
            using (var engine = new TesseractEngine(@"./tessdata", "eng", EngineMode.Default))
            {
                using (var img = Pix.LoadFromFile(imagePath))
                {
                    // Set the image for OCR
                    using (var page = engine.Process(img))
                    {
                        // Get the text recognized by Tesseract
                        string recognizedText = page.GetText();
                        // Output the recognized text
                        Console.WriteLine("Recognized Text:");
                        Console.WriteLine(recognizedText);
                    }
                }
            }
        }
    }
}
Imports System
Imports System.Drawing
Imports Tesseract
Namespace ReceiptOCR
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			' Path to the image file
			Dim imagePath As String = "path/to/your/receipt/image.jpg"
			' Initialize Tesseract engine
			Using engine = New TesseractEngine("./tessdata", "eng", EngineMode.Default)
				Using img = Pix.LoadFromFile(imagePath)
					' Set the image for OCR
					Using page = engine.Process(img)
						' Get the text recognized by Tesseract
						Dim recognizedText As String = page.GetText()
						' Output the recognized text
						Console.WriteLine("Recognized Text:")
						Console.WriteLine(recognizedText)
					End Using
				End Using
			End Using
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

在此代码中

  • “path/to/your/receipt/image.jpg”替换为您的收据图像文件的实际路径。
  • TesseractEngine 初始化时使用语言(在这种情况下为“eng”代表英语)和路径指向您下载了 Tesseract 语言数据文件的 tessdata 目录。
  • Pix.LoadFromFile(imagePath) 从指定的文件路径加载图像。
  • engine.Process(img) 对图像执行 OCR。
  • page.GetText() 从 OCR 结果中检索识别的文本。

    以下是上述代码的输出结果:

    收据OCR库(开发者列表):图3 - OCR输出

    本示例演示了 Tesseract OCR 在.NET 应用程序中的基本用法,用于从收据图像中提取所有文档文本。 根据您的要求,您可能需要进一步处理识别出的文本,以提取收据中的特定收据字段,如日期、商家名称和总金额。

终极收据 OCR 库:IronOCR - C# OCR 库

IronOCR:简要概述

IronOCR 是一款专为 .NET 开发人员设计的综合性 OCR 库,提供从图像和 PDF 文档中提取文本和数据的高级功能。 该库由 Iron Software 开发,利用最新的机器学习算法和计算机视觉技术,在 OCR 任务中提供无与伦比的准确性和性能。

收据OCR库(开发者列表):图 4 - IronOCR

主要特点和优势

IronOCR 包含收据 OCR API 必须具备的所有关键功能。 以下是 IronOCR 的主要功能和优势:

  1. 准确性和可靠性:IronOCR 使用最先进的 OCR 算法,确保在识别收据和发票文本时具有高准确性。 无论是处理印刷文本、失真图像,还是各种字体和语言,IronOCR始终如一地提供可靠的结果,最大限度地减少数据提取中的错误。

  2. 多功能性和适应性: IronOCR 支持广泛的图像格式,包括 JPEG、PNG、TIFF 和 PDF,使其在处理不同文件类型的收据时非常灵活。此外,它提供多语言支持,令企业能够无缝处理来自不同地区和语言的收据。

  3. 轻松集成 .NET:作为原生 .NET 库,IronOCR 可以无缝集成到现有的 .NET 应用程序中,使开发人员的实现过程变得简单。 无论是构建 Web 应用程序、桌面软件还是基于云的解决方案,开发人员都可以在其 .NET 项目中毫不费力地利用 IronOCR 的 API 和 SDK。

  4. 增强的数据提取:IronOCR 不仅仅是简单的文本识别,还提供先进的数据提取功能。 开发人员可以定义收据上的自定义兴趣区域,以提取日期、商户名称、总金额和细列项目等特定字段。 这种细粒度的控制可确保根据业务要求进行精确的数据提取。

  5. 可扩展性和性能:IronOCR 专为可扩展解决方案而设计,能够高效处理大量收据和发票。 无论是实时还是异步处理成批文档,IronOCR 都能在不影响准确性的前提下提供最佳性能,因此适合企业级应用。

安装过程

以下是使用 NuGet 包管理器为您的解决方案安装 IronOCR 的步骤:

  1. 打开 Visual Studio 并打开您的解决方案。

  2. 在解决方案资源管理器中,右键单击您的解决方案(最上面的节点),然后选择“管理解决方案的 NuGet 包...”。

  3. 在 "解决方案的 NuGet 包管理器 "窗口中,确保选择了左侧的 "浏览 "选项卡。

    1. 在右上角的搜索框中输入 "IronOCR",然后按 Enter 键。

    收据OCR库(开发人员列表):图5 - 安装IronOCR

  4. 单击 "安装 "按钮开始安装过程。

  5. 安装完成后,您会看到一条提示安装成功的消息。

使用 IronOCR 的实施示例 - 收据扫描

下面是一个简单的示例,说明了 IronOCR 收据的完整提取过程,并有效地显示了收据数据。

using IronOcr;
namespace ReceiptOCR
{
    class Program
    {
        static void Main(string[] args)
        {
            string text = new IronTesseract().Read(@"assets\receipt.jpg").Text;
            // Output the recognized text
            Console.WriteLine("Recognized Text:");
            Console.WriteLine(text);
        }
    }
}
using IronOcr;
namespace ReceiptOCR
{
    class Program
    {
        static void Main(string[] args)
        {
            string text = new IronTesseract().Read(@"assets\receipt.jpg").Text;
            // Output the recognized text
            Console.WriteLine("Recognized Text:");
            Console.WriteLine(text);
        }
    }
}
Imports IronOcr
Namespace ReceiptOCR
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			Dim text As String = (New IronTesseract()).Read("assets\receipt.jpg").Text
			' Output the recognized text
			Console.WriteLine("Recognized Text:")
			Console.WriteLine(text)
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

有关使用IronOCR进行OCR收据数据提取的详细指南,请访问:使用IronOCR进行收据数据提取。以下是上述示例代码的输出:

收据OCR库(开发者列表):图6 - 收据OCR输出

有关详细信息和更多OCR功能,请访问文档代码示例页面。

结论

为 .NET 量身定做的收据 OCR 库为寻求增强数据管理能力和简化管理工作流程的企业提供了强大的解决方案。 通过自动提取收据和发票中的信息,这些库使开发人员能够构建强大、高效的应用程序,从而提供卓越的准确性和生产率。 凭借与现有 .NET 环境无缝集成的灵活性以及支持多种语言和货币的能力,.NET 中的收据 OCR 库有望彻底改变数据录入流程,并推动各种规模的企业实现卓越运营。

IronOCR 是企业在 .NET 环境中寻求可靠、高效的收据 OCR 库的最终选择。 IronOCR 具有无与伦比的准确性、多功能性以及与 .NET 应用程序的无缝集成,是唯一能让开发人员简化数据录入流程、提高生产率并推动卓越运营的技术。 事实证明,无论是在会计系统、费用管理平台还是定制业务应用程序中实现收据处理自动化,IronOCR 都是优化数据管理工作流程和提高现代企业效率的宝贵资产。

选择 IronOCR,企业就能释放 OCR 技术的全部潜能,推动数字化转型之旅迈向成功。 为此,IronOCR 提供了免费试用以测试其完整功能。 其 Lite License 起价为 $749,无任何重复费用。 从下载页面下载该库并试用。

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