OCR工具

发票OCR机器学习(逐步教程)

发布 2023年九月26日
分享:

在当今快节奏的商业环境中,自动化任务和非结构化数据已成为提高效率和减少人工错误的关键策略。 其中一项任务是从发票或采购订单中提取信息,传统上这一过程需要大量的人工操作。 然而,由于机器学习、深度学习模型和光学字符识别技术的进步(光学字符识别)借助软件技术,企业现在可以使用 IronOCR 等工具简化这种发票信息提取过程。 在本文中,我们将探讨如何利用机器学习和 IronOCR 来彻底改变发票的处理方式。

了解发票 OCR 工具

OCR 技术已经存在了一段时间,但随着机器学习技术的出现,它在发票处理和数据提取方面的应用有了显著提升。 OCR 是 "光学字符识别"(Optical Character Recognition)的简称,是一种将不同类型的文档(如带有发票信息的扫描纸质文档、PDF 文件、财务文档或数码相机拍摄的输入图像)转换为可编辑和可搜索数据的技术。 它主要是通过图像预处理将图像文本翻译成机器可读文本。

IronOCR是一个基于机器学习算法的强大 OCR 库,可集成到各种应用程序和编程语言中,是处理发票的通用工具。 通过使用IronOCR,企业可以自动提取发票数据,例如发票号码、日期、供应商详情和商品明细,且具有显著的准确性。

使用 IronOCR 进行发票 OCR 的好处

使用用于发票处理的 IronOCR在翻译过程中,您必须注意到,.NET、Java、Python 或 Node.js 提供了许多好处,可以大大提高贵组织财务运营(如应付账款)的效率和准确性。 让我们来详细了解一下这些优势:

1.准确性和减少错误

IronOCR 利用先进的机器学习算法准确识别和提取发票中的文本。 这样可以最大限度地减少数据录入中的人为错误,确保正确记录关键的财务信息。

2.节省时间和成本

使用 IronOCR 实现发票处理自动化可大大减少人工数据录入所需的时间和资源。 这样可以优化员工时间,减少对人工的需求,从而节省大量成本。

3.提高效率

IronOCR 可以快速高效地处理大量发票。 这样,员工就无需手动输入每张发票上的数据,从而可以专注于更具战略性的任务。

4.可扩展性

IronOCR 具有可扩展性,可以处理随着业务扩展而不断增加的发票量。 您无需担心工作量的增加和边界框会压垮您的发票文档处理系统。

5.全球影响力

IronOCR 支持 125 种以上的语言,使企业能够处理来自世界各地供应商和客户的发票。 无论发票使用哪种语言书写,IronOCR 都能准确提取数据。

6.多格式支持

IronOCR 可以处理各种格式的发票,包括扫描图像、基于图像的 PDF 和基于文本的 PDF。 这种多功能性可确保您轻松处理不同来源和格式的发票。

7.定制和数据提取

您可以自定义 IronOCR,以便从发票中提取特定数据字段,如发票号码、日期、供应商详情和细列项目信息。 这种定制化程度使您可以根据具体业务需求量身定制解决方案。

8.合规性和审计跟踪

使用 IronOCR 自动处理发票有助于保持准确的记录并提供审计跟踪。 这对于遵守财务规定和简化审计流程至关重要。

9.缩短发票处理周期

IronOCR 的精简和自动化特性缩短了处理发票的时间,进而缩短了发票处理周期。 这样可以加快向供应商付款的速度,并改善双方的关系。

10.增强数据分析

通过结构化数字格式的发票数据,您可以进行更深入的数据分析。 这有助于识别趋势、优化支出并做出明智的财务决策。

为发票处理实施 IronOCR

要实施 IronOCR 进行发票处理,请遵循以下一般步骤:

第 1 步:创建一个新 C#;

首先在您喜欢的开发环境中创建一个新的 C# 项目或打开一个现有项目(例如,Visual Studio 或 Visual Studio Code). 我使用 Visual Studio 2022 IDE 和控制台应用程序进行演示。 您可以在任何项目类型中使用相同的实现方式,如 ASP.NET Web API、ASP.NET MVC、ASP.NET Web Forms 或任何 .NET Framework。

发票 OCR 机器学习(分步教程):图 1 - C# 项目

第 2 步:通过 NuGet 软件包管理器安装 IronOCR

要在项目中使用 IronOCR,您需要安装 IronOCR NuGet 软件包。 操作方法如下:

  1. 打开 NuGet 包管理器控制台。 在 Visual Studio 中,您可以在 "Tools" > "NuGet Package Manager" > "Package Manager Console" 下找到它。

    发票 OCR 机器学习(分步教程):图 2 - 软件包管理器控制台

  2. 运行以下命令安装 IronOCR 软件包:
    :PackageInstall

发票 OCR 机器学习(分步教程):图 3 - IronOCR 安装

  1. 等待软件包安装。 完成后,您就可以开始在您的项目中使用 IronOCR 了。

第 3 步:在您的 C# 中实施 OCR;

现在,让我们编写 C# 代码,使用 IronOCR 对发票执行 OCR。 我们将使用以下发票样本作为示例。

发票 OCR 机器学习(分步教程):图 4 - 样本发票模板

以下示例代码将发票图像作为输入,并将从发票中提取数据,如发票号码、采购订单等。

string invoicePath = @"D:\Invoices\SampleInvoice.png";
IronTesseract ocr = new IronTesseract();
using (OcrInput input = new OcrInput())
{
    // Add multiple images
    input.AddImage(invoicePath);
    OcrResult result = ocr.Read(input);
    Console.WriteLine(result.Text);
}
string invoicePath = @"D:\Invoices\SampleInvoice.png";
IronTesseract ocr = new IronTesseract();
using (OcrInput input = new OcrInput())
{
    // Add multiple images
    input.AddImage(invoicePath);
    OcrResult result = ocr.Read(input);
    Console.WriteLine(result.Text);
}
Dim invoicePath As String = "D:\Invoices\SampleInvoice.png"
Dim ocr As New IronTesseract()
Using input As New OcrInput()
	' Add multiple images
	input.AddImage(invoicePath)
	Dim result As OcrResult = ocr.Read(input)
	Console.WriteLine(result.Text)
End Using
VB   C#

以上代码是使用 IronOCR 对单张发票图像执行 OCR 的简明 C# 示例(SampleInvoice.png)然后将提取的发票数据打印到控制台。 确保将 invoicePath 变量替换为特定发票图像文件的路径。

发票 OCR 机器学习(分步教程):图 5 - 发票 OCR 输出

让我们一次输入多张发票并提取其数据。 以下是我们用作输入的发票目录。

发票 OCR 机器学习(分步教程):图 6 - 发票目录

以下示例代码将一次性从多张发票中提取文本。

string [] fileArray = Directory.GetFiles(@"D:\Invoices\", "*.png");
IronTesseract ocr = new IronTesseract();
using (OcrInput input = new OcrInput())
{
    foreach (string file in fileArray)
    {
        input.AddImage(file);
    }
    OcrResult result = ocr.Read(input);
    Console.WriteLine(result.Text);
}
string [] fileArray = Directory.GetFiles(@"D:\Invoices\", "*.png");
IronTesseract ocr = new IronTesseract();
using (OcrInput input = new OcrInput())
{
    foreach (string file in fileArray)
    {
        input.AddImage(file);
    }
    OcrResult result = ocr.Read(input);
    Console.WriteLine(result.Text);
}
Dim fileArray() As String = Directory.GetFiles("D:\Invoices\", "*.png")
Dim ocr As New IronTesseract()
Using input As New OcrInput()
	For Each file As String In fileArray
		input.AddImage(file)
	Next file
	Dim result As OcrResult = ocr.Read(input)
	Console.WriteLine(result.Text)
End Using
VB   C#

上述代码将从文件夹中获取所有 PNG 图像,提取数据,然后将文件夹中所有发票的提取数据打印在控制台上。

发票 OCR 机器学习(分步教程):图 7 - 提取的数据

将提取的数据保存为可搜索的 PDF 发票

以下代码将读取文件夹中的所有图片,执行数据提取,并将其保存为一张可搜索的 PDF 发票。

string [] fileArray = Directory.GetFiles(@"D:\Invoices\", "*.png");
IronTesseract ocr = new IronTesseract();
using (OcrInput input = new OcrInput())
{
    foreach (string file in fileArray)
    {
        input.AddImage(file);
    }
    OcrResult result = ocr.Read(input);
    result.SaveAsSearchablePdf(@"D:\Invoices\Searchable.pdf");
}
string [] fileArray = Directory.GetFiles(@"D:\Invoices\", "*.png");
IronTesseract ocr = new IronTesseract();
using (OcrInput input = new OcrInput())
{
    foreach (string file in fileArray)
    {
        input.AddImage(file);
    }
    OcrResult result = ocr.Read(input);
    result.SaveAsSearchablePdf(@"D:\Invoices\Searchable.pdf");
}
Dim fileArray() As String = Directory.GetFiles("D:\Invoices\", "*.png")
Dim ocr As New IronTesseract()
Using input As New OcrInput()
	For Each file As String In fileArray
		input.AddImage(file)
	Next file
	Dim result As OcrResult = ocr.Read(input)
	result.SaveAsSearchablePdf("D:\Invoices\Searchable.pdf")
End Using
VB   C#

所有示例中的代码几乎相似,我们只是在演示不同用例时稍作改动。 输出的 PDF 文件如下所示:

发票 OCR 机器学习(分步教程):图 8 - PDF 输出

通过这种方式,IronPdf 为发票处理和文档处理自动化提供了最简单的方法。

从 PDF 发票中提取发票数据

要使用 IronOCR 从 PDF 发票中提取数据,可以采用与前面代码示例类似的方法。 IronOCR 既能处理基于图像的 PDF,也能处理基于文本的 PDF。 下面是一个如何从 PDF 发票中提取数据的简短示例:

string [] fileArray = Directory.GetFiles(@"D:\Invoices\", "*.pdf");
IronTesseract ocr = new IronTesseract();
using (OcrInput input = new OcrInput())
{
    foreach (string file in fileArray)
    {
        input.AddPdf(file);
    }
    OcrResult result = ocr.Read(input);
    Console.WriteLine(result.Text);
}
string [] fileArray = Directory.GetFiles(@"D:\Invoices\", "*.pdf");
IronTesseract ocr = new IronTesseract();
using (OcrInput input = new OcrInput())
{
    foreach (string file in fileArray)
    {
        input.AddPdf(file);
    }
    OcrResult result = ocr.Read(input);
    Console.WriteLine(result.Text);
}
Dim fileArray() As String = Directory.GetFiles("D:\Invoices\", "*.pdf")
Dim ocr As New IronTesseract()
Using input As New OcrInput()
	For Each file As String In fileArray
		input.AddPdf(file)
	Next file
	Dim result As OcrResult = ocr.Read(input)
	Console.WriteLine(result.Text)
End Using
VB   C#

上述代码可以高效地批量处理位于一个目录中的多个 PDF 发票(@"D:\Invoices\")使用 IronOCR。 它可以检索文件路径,添加每个 PDF 进行 OCR 处理,合并提取的文本,并将结果打印到控制台。 这种方法简化了处理大量发票的组织的发票数据提取,提高了效率并减少了人工工作量。

发票 OCR 机器学习(分步教程):图 9 - 提取输出

结论

总之,机器学习与 IronOCR 等先进 OCR 技术的融合正在重塑发票的处理方式。 本文带您了解了 IronOCR 的使用过程,展示了它的显著优势。 通过采用 IronOCR,企业可以实现更高的准确性,节省时间和金钱,毫不费力地处理各种格式和语言的发票。 消除人工数据录入不仅能提高效率,还能降低金融交易中出现代价高昂的错误的可能性。 IronOCR 简化并改进了发票处理工作流程,是企业在当今竞争激烈的环境中提升财务运营能力的明智之选。 此外,IronOCR 还提供了一套强大的功能,包括支持 125 种以上语言、可定制的数据提取以及与基于图像和文本的 PDF 兼容。

虽然 IronOCR 的功能集令人印象深刻,但还值得注意的是IronOCR 的定价模式旨在满足广泛的业务需求,提供灵活的选项,包括免费试用该翻译既适用于小型企业,也适用于大型公司。 无论您是处理几张发票,还是管理大量财务文件,IronOCR 都是可靠、经济高效的解决方案。

< 前一页
如何扫描页面到文本 (初学者教程)
下一步 >
机器学习软件(开发者更新列表)

准备开始了吗? 版本: 2024.11 刚刚发布

免费NuGet下载 总下载量: 2,698,613 查看许可证 >