OCR 工具

發票OCR機器學習(逐步教程)

發佈 2023年9月26日
分享:

在當今快節奏的商業環境中,自動化任務和非結構化資料已成為提高效率和減少人工錯誤的關鍵策略。其中一個這樣的任務是從發票或採購訂單中提取信息,這一過程傳統上需要大量的人工努力。然而,得益於機器學習、深度學習模型和光學字符識別技術的進步, (光學字符識別) 透過軟體技術,企業現在可以使用像 IronOCR 這樣的工具來簡化發票資訊提取過程。在本文中,我們將探討如何利用機器學習和 IronOCR 改變發票處理的方式。

理解發票OCR工具

OCR技術已經存在一段時間了,但隨著機器學習的出現,其在發票處理和數據提取方面的應用有了顯著增長。OCR,即光學字符識別的縮寫,是一種技術,它將不同類型的文件,如掃描的含有發票信息的紙質文件、PDF文件、財務文件或由數字相機拍攝的輸入圖像,轉換為可編輯和可搜索的數據。本質上,它使用圖像預處理將圖像中的文本轉換為機器可讀的文本。

IronOCR 是一個強大的OCR庫,基於機器學習演算法構建,可以集成到各種應用程序和編程語言中,使其成為處理發票的多功能工具。使用IronOCR,企業可以自動提取發票數據,例如發票號碼、日期、供應商詳情和商品明細,精確度非常高。

使用 IronOCR 進行發票 OCR 的好處

使用 用於發票處理的IronOCR 提供了許多好處,可以大幅提高您的組織在財務運營(如應付帳款)中的效率和準確性。讓我們更詳細地探討這些好處:

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 表單或任何 .NET Framework。

發票光學字符識別 (逐步教程): 圖 1 - C# 專案

步驟2:通過NuGet包管理器安裝IronOCR

要在您的專案中使用IronOCR,您需要安裝IronOCR NuGet包。以下是如何執行的方法:

  1. 打開NuGet包管理器控制台。在Visual Studio中,您可以在「工具」>「NuGet包管理器」>「包管理器控制台」中找到它。

    發票 OCR 機器學習(逐步教程):圖 2 - 套件管理器控制台

  2. 運行以下命令來安裝IronOCR套件:
    :PackageInstall

發票OCR機器學習(逐步教程):圖3 - IronOCR安裝

  1. 等待程式包安裝完成。一旦完成,您就可以開始在您的專案中使用IronOCR。

第三步:在您的C#中實現OCR

現在,我們撰寫C#代碼以使用IronOCR對發票進行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#

上述程式碼是一個簡潔的 C# 範例,使用 IronOCR 對單張發票圖片進行光學字符識別 (OCR)。 (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 可搜索的 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 如下所示:

發票光學字符識別機器學習(逐步教程):圖 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:\發票\") 使用IronOCR。它檢索檔案路徑,將每個PDF添加到OCR處理中,合併提取的文本,並將結果打印到控制台。這種方法簡化了處理大量發票的組織的發票數據提取,提高了效率並減少了手動工作量。

發票 OCR 機器學習(分步教程):圖9 - 提取輸出

結論

總而言之,機器學習與先進的OCR技術(如IronOCR)的融合,正在改變發票處理的方式。這篇文章介紹了使用IronOCR的過程,展示了其顯著的優勢。通過採用IronOCR,企業可以實現更高的準確性,節省時間和金錢,並毫不費力地處理各種格式和語言的發票。消除手動數據輸入不僅提高了效率,還減少了財務交易中成本高昂的錯誤的可能性。IronOCR簡化並改善了發票處理工作流程,對於旨在提升其財務運營的企業來說,是一個明智的選擇。此外,IronOCR提供了一套強大的功能,包括支援超過125種語言、可定制的數據提取以及與基於圖像和文字的PDF的兼容性。

IronOCR的功能集合令人印象深刻,同時也值得注意的是 IronOCR 的定價模式 旨在滿足各種業務需求,提供靈活的選項 免費試用 對於小型企業和大型公司而言,無論您是處理少量發票還是管理大量的財務文件,IronOCR 都是一個可靠且具成本效益的解決方案。

< 上一頁
如何掃描頁面為文本(初學者教程)
下一個 >
機器學習軟體(供開發人員使用的更新列表)

準備開始了嗎? 版本: 2024.10 剛剛發布

免費 NuGet 下載 總下載次數: 2,433,305 查看許可證 >