在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
光學字符識別 (光學字符識別) 提供將圖像文件轉換為機器編碼文本的能力。這在當前非常有用,因為掃描文件通常保存為圖像文件,而這些圖像文件中的數據無法通過普通的文本編輯器甚至文字處理應用程序來搜索、編輯或保存為文本格式。OCR處理有助於將這些圖像轉換為機器可讀的文本,供用戶進一步處理。
在這個現代時代,通過互聯網共享的文件通常是數字格式的,大多數是PDF或圖像。有許多在線資源可以將圖像轉換為文本。然而,大多數業務需求這種功能嵌入在他們的軟件應用程序中。考慮到這一點,有許多庫提供可嵌入軟件應用程序中的OCR處理技術。
在本文中,我們將討論兩個最流行的用於C#的OCR庫。这兩個是:
IronOCR .NET 是一個 C# 庫,讓用戶能夠掃描、搜尋和讀取圖像及 PDF 文件。它以圖像或 PDF 文件作為輸入,並使用最新的 Tesseract 5 為 .NET 客製化的 OCR 引擎來輸出文本、結構化數據或可搜尋的 PDF 文件。Tesseract 支持超過 125 種語言,並且 IronOCR 提供跨平台支持於 .NET Core 和 Standard,自 2.0 至 7。
IronOCR 是一個用戶友好的 API,允許 C# 開發者使用 IronTesseract
類自動將圖像轉換為文本。該庫優先考量速度、精確度和易用性。
IronOCR 的另一個強大功能是能夠從所有圖像文件中掃描條碼和 QR 碼並讀取其文本。以下列出 IronOCR 的其他重要功能。
System.Drawing Objects
、流、PDF文件等。現在,讓我們來看看Nanonets OCR API。
Nanonets OCR API 是一個 REST API,提供即時數據提取,針對您的業務需求進行自動化工作流程。OCR API 由 AI 驅動,能夠在幾秒鐘內安全地捕獲、分類和提取非結構化文檔中的數據。通過使用 Nanonets,您可以自動化手動數據輸入,減少所需的手動工作量。
Nanonets 使用機器學習來理解文檔,即使那些不遵循標準模板的文檔也是如此。您可以上傳任何非結構化文檔,並根據不同的字段捕獲所需的資訊。與傳統 OCR 不同,Nanonets OCR 模型可以進行培訓以獲得更好的結果。隨著您的業務增長,Nanonets 智能文檔處理 OCR 模型也會隨著每一個新文檔增長和學習,提供快速和準確的結果。
此外,Nanonets 提供了一個 Python 套件,使您可以輕鬆地在 Python 應用程序中進行整合和數據捕獲,而不需要 API 請求。其他功能包括:
文章的其餘部分如下:
在本教程中,我們將使用最新版的 Visual Studio 2022。如果您尚未下載並安裝,可以從 Visual Studio 網站現在,我們需要建立一個控制台專案來開始使用這兩個庫。請按照以下步驟創建一個專案:
點擊建立新專案。
從給定的選項中選擇 C# Console Application。
點擊下一步。
在附加信息中,選擇 .NET 6.0 Framework,因為它是最穩定的版本。
接下來,我們將在專案中安裝庫以進行比較。
有多種方式可以安裝 IronOCR 庫。我們來逐一查看這些方法。
NuGet 是用於在您的項目中下載和安裝依賴項的套件管理器。其套件包含已編譯的代碼和 (DLLs) 並訪問清單檔案。使用以下方法存取:
點擊管理解決方案的NuGet套件。
或者:
點擊管理 NuGet 套件。
現在,NuGet 套件管理器視窗將會打開。瀏覽 IronOCR 並點擊安裝。
IronOCR 也可以直接從 NuGet 官方網站下載。請按照以下步驟操作:
只需訪問Iron Software網站並導航到IronOCR for .NET網頁。滾動到頁面底部並點擊下載DLL或下載Windows安裝程式。
將會下載一個zip檔案。解壓縮專案文件或執行Windows安裝程式。請遵循以下步驟將其新增到您的專案中。
在解決方案管理器中,在Visual Studio的專案相依性上右鍵點擊。
然後,選擇“新增專案參考”選項。
瀏覽下載的DLL檔案位置。
Install-Package IronOcr
這將自動下載並安裝 IronOCR 到您的項目中。
現在,我們準備好在項目中使用 IronOCR。
只需添加一個命名空間,即可在需要訪問 IronOCR 功能的源代碼文件頂部進行添加。
using IronOcr;
using IronOcr;
Imports IronOcr
現在,讓我們安裝Nanonets OCR API。
以下是修改後的段落:
Nanonets 可以通過多種方式來捕獲數據。它提供了一個線上 OCR 功能,可以用於即時數據提取,從而縮短周轉時間。作為一個 REST API,它可以集成到多種編程語言中。在此,我們將演示如何將其集成到 C# 編程語言中。
要使用 Nanonets OCR API 在 C# 中自動捕獲數據,您需要以下內容:
註冊 Nanonets - 您可以使用 Gmail 帳戶或已註冊的電子郵件在 Nanonets 上註冊免費試用。
創建一個 OCR 模型 - 這將生成一個模型 ID,該 ID 將在稍後進行 API 調用時使用。
RestSharp 是一個簡單的適用於 .NET 的 Rest 和 HTTP 客戶端庫。它用於發送和接收 API 請求並處理響應。由於 Nanonets API 也是一個 REST API,因此需要該庫來執行 Nanonets API 代碼。
要安裝 RestSharp,打開解決方案的 NuGet 套件管理器,搜索 RestSharp 並安裝它。或者,你可以打開套件管理器控制台並鍵入以下命令:
PM> Install-Package RestSharp
現在,一切都設置完畢,可以使用了。
從圖像中讀取數據可能是相當繁瑣的工作。圖像的解析度和質量在提取內容時起著重要作用。IronOCR 和 Nanonets 都提供光學字符識別功能,從圖像中提取文本。
IronOCR 讓開發者能夠非常輕鬆地 讀取圖像文件的內容 使用強大的 IronTessaract
類。我們將使用以下代碼從 PNG 圖像文件中讀取文本:
var Ocr = new IronTesseract();
using (var Input = new OcrInput()){
Input.AddImage("test-files/employmentapp.png");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
var Ocr = new IronTesseract();
using (var Input = new OcrInput()){
Input.AddImage("test-files/employmentapp.png");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
Dim Ocr = New IronTesseract()
Using Input = New OcrInput()
Input.AddImage("test-files/employmentapp.png")
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End Using
IronOCR 的輸出與提供給它的原始圖像相匹配。代碼簡潔且易於理解,沒有任何技術性問題。
Nanonets還提供從圖像中提取文字的功能。為此,需要使用認證密鑰進行API調用,然後將圖像上傳到Nanonets伺服器。快速的OCR工具將提取的文字作為回應返回給應用程式。以下是代碼示例:
var client = new RestClient("https://app.nanonets.com/api/v2/OCR/FullText");
client.Timeout = -1;
var request = new RestRequest(Method.Post.ToString());
request.AddHeader("Authorization", "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes("REPLACE_YOUR_API_KEY:")));
request.AddFile("file", "FILE_PATH");
RestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
var client = new RestClient("https://app.nanonets.com/api/v2/OCR/FullText");
client.Timeout = -1;
var request = new RestRequest(Method.Post.ToString());
request.AddHeader("Authorization", "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes("REPLACE_YOUR_API_KEY:")));
request.AddFile("file", "FILE_PATH");
RestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
Dim client = New RestClient("https://app.nanonets.com/api/v2/OCR/FullText")
client.Timeout = -1
Dim request = New RestRequest(Method.Post.ToString())
request.AddHeader("Authorization", "Basic " & Convert.ToBase64String(Encoding.Default.GetBytes("REPLACE_YOUR_API_KEY:")))
request.AddFile("file", "FILE_PATH")
Dim response As RestResponse = client.Execute(request)
Console.WriteLine(response.Content)
輸出不是完美的。圖像包含結構化數據,只有部分數據正確提取。對於另一個簡單的文本圖像,輸出是正常的。請注意,該模型可以進行訓練以獲得更準確的結果。
IronOCR 提供一個讀取影像的實用功能,包括檢測和讀取條碼和 QR 碼的能力。要啟用此功能,請在處理影像之前將 ReadBarcodes
配置屬性設置為 true。OCR 處理完成後,遍歷 OCR 結果以提取每個檢測到的條碼的值。以下是使用 IronOCR 讀取條碼的範例代碼片段:
var Ocr = new IronTesseract();
Ocr.Configuration.ReadBarCodes = true;
using (var input = new OcrInput()) {
input.AddImage("test-files/Barcode.png");
var Result = Ocr.Read(input);
foreach (var Barcode in Result.Barcodes){
Console.WriteLine(Barcode.Value);
}
}
var Ocr = new IronTesseract();
Ocr.Configuration.ReadBarCodes = true;
using (var input = new OcrInput()) {
input.AddImage("test-files/Barcode.png");
var Result = Ocr.Read(input);
foreach (var Barcode in Result.Barcodes){
Console.WriteLine(Barcode.Value);
}
}
Dim Ocr = New IronTesseract()
Ocr.Configuration.ReadBarCodes = True
Using input = New OcrInput()
input.AddImage("test-files/Barcode.png")
Dim Result = Ocr.Read(input)
For Each Barcode In Result.Barcodes
Console.WriteLine(Barcode.Value)
Next Barcode
End Using
輸入圖像中的三個條碼都被成功讀取,並顯示其隱藏的文字。
Nanonets OCR API 提供檢測 QR 碼的功能。但是,此功能僅在企業方案中提供,您需要聯絡銷售部門才能使用。此外,Nanonets 還允許您檢測文件或收據的特定部分。它還提供應付賬款、發票處理和會計自動化等其他功能。
使用 IronOCR 閱讀 PDF 文件與閱讀圖像文件一樣簡單。唯一需要改變的是在閱讀圖像的程式碼中使用 AddPDF
方法,而不是 AddImage
方法。程式碼如下:
var Ocr = new IronTesseract();
using (var Input = new OcrInput()) {
Input.AddPdf("test-files/example.pdf");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
var Ocr = new IronTesseract();
using (var Input = new OcrInput()) {
Input.AddPdf("test-files/example.pdf");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
Dim Ocr = New IronTesseract()
Using Input = New OcrInput()
Input.AddPdf("test-files/example.pdf")
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End Using
提取的文本格式與 PDF 文件相同。
從 PDF 文件中讀取數據也可以使用 Nanonets OCR API。該代碼與圖像文字檢測代碼幾乎相同,只是請求中使用的 URL 不同。我們來看看代碼:
var client = new RestClient("https://app.nanonets.com/api/v2/OCR/Model/{{model_id}}/LabelFile/?async=false");
var request = new RestRequest(Method.Post.ToString());
request.AddHeader("authorization", "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes("REPLACE_YOUR_API_KEY:")));
request.AddHeader("accept", "Multipart/form-data");
request.AddFile("file", "test-files/example.pdf");
RestResponse response = client.Execute(request);
Console
var client = new RestClient("https://app.nanonets.com/api/v2/OCR/Model/{{model_id}}/LabelFile/?async=false");
var request = new RestRequest(Method.Post.ToString());
request.AddHeader("authorization", "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes("REPLACE_YOUR_API_KEY:")));
request.AddHeader("accept", "Multipart/form-data");
request.AddFile("file", "test-files/example.pdf");
RestResponse response = client.Execute(request);
Console
Dim client = New RestClient("https://app.nanonets.com/api/v2/OCR/Model/{{model_id}}/LabelFile/?async=false")
Dim request = New RestRequest(Method.Post.ToString())
request.AddHeader("authorization", "Basic " & Convert.ToBase64String(Encoding.Default.GetBytes("REPLACE_YOUR_API_KEY:")))
request.AddHeader("accept", "Multipart/form-data")
request.AddFile("file", "test-files/example.pdf")
Dim response As RestResponse = client.Execute(request)
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Console
在上述代碼中,用您的 OCR 模型 ID 替換 model_id。此外,將 API 金鑰替換為您自己的 API 金鑰。然後,將 PDF 文件路徑替換為您自己的文件路徑。
輸出類似於IronOCR,但Nanonets OCR的輸出會包含額外的空格和換行。
IronOCR 可免費用於開發用途,但商業用途需要授權。它還提供免費試用版,讓您測試所有潛在功能以符合您的需求。輕量套餐起價為 $749,並提供30天退款保證。IronOCR 提供一年免費的產品支持和更新服務,之後每年 $399。所有授權均為永久授權,意味著只需一次性購買,沒有隱藏費用。您還可以選擇無版稅的重新分發授權,適用於 SaaS 和 OEM 產品,只需一次性購買 $1999。欲了解更多有關授權套餐和價格計劃的信息,請訪問以下網站 連結.
Nanonets OCR API 提供三種不同的套件。您可以免費註冊其入門套件。前 500 頁免費,之後每頁收費 $0.3。您只需支付您使用的金額。欲了解更詳細的定價信息,您可以訪問此網站 連結.
IronOCR 為 C# 開發者提供了可在大多數平台上使用的高級 Tesseract API。它可以部署於 Windows、Linux、Mac、Azure、AWS 和 Lambda,並支援 .NET Framework 專案以及 .NET Standard 和 .NET Core。IronOCR 還可以在 OCR 掃描中讀取條碼,甚至可以將 OCR 導出為 HTML 和可搜索的 PDF。 有關 C# Tesseract OCR 的更多資訊,請點擊 這裡Nanonets OCR API 提供多種 OCR 工具。它為發票、收據、帳單、表格和身份證等多種文件類型提供現成的 OCR 解決方案,以自動化資料擷取。無需模板設置,沒有隱藏費用,使用 Nanonets OCR API 可節省 90% 的時間並提高 10 倍的生產力。
IronOCR 授權是基於開發者的,這意味著您應該根據將使用該產品的開發者數量來購買授權。Nanonets 的定價計畫是基於要提取信息和分析數據的圖像或 PDF 頁數。專業和企業計劃是按月按模型計算,當模型和頁數增多時,價格會上升,相比於 IronOCR 授權。此外,IronOCR 授權是一次性購買,可終身使用,並且支持 OEM 和 SaaS 分發。
總體比較而言,兩種 API 都提供基於 AI 和 ML 的 OCR 功能。IronOCR 在 Nanonets 之上有輕微的優勢,因為它可以離線使用,甚至對於非結構化文件也能提供更可靠的結果。IronOCR 提供使用自訂訓練數據的功能,並可快速整合以獲得更精確的結果。Nanonets OCR 提供基於關鍵字段訓練模型的功能,如果沒有正確訓練可能難以檢測。此外,IronOCR 提供多語言支持,支持多達 127 種國際語言。
現在,您可以以兩款產品的價格獲得五款 Iron 產品,作為完整的 Iron Suite 的一部分。請訪問此處 連結 探索更多。