在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
OCR 是光學字符識別的縮寫。它提供將圖像文件轉換為機器編碼文本的功能。電腦總是將掃描的文件保存為圖像文件。這些圖像文件中的數據無法使用普通文本編輯器或甚至使用文字處理應用程式進行搜索、編輯或保存為文本格式。OCR 處理有助於將這些圖像轉換為機器可讀文本,以便用戶進一步處理。
在這個現代時代,共享在網絡上的掃描文件是數位格式的,主要是 PDF 或圖像的形式。有很多在線資源可以將圖像轉換為文本。然而,大多數企業需要這種功能在他們的軟件應用程式中。考慮到這一點,有很多庫提供 OCR 處理技術,可以嵌入到軟件應用程式中。
在本文中,我們將討論兩個最流行的 C# OCR 庫。這些是:
IronOCR for .NET 是 C# 的函式庫,用於掃描、搜索和讀取圖片和 PDF。它將圖片或 PDF 文件作為輸入,並使用最新的 Tesseract 5 自定義建構 .NET OCR 引擎,輸出文字、結構化數據或可搜索的 PDF 文檔。它的 Tesseract 支援超過 125 種語言,並且支援 .NET Core、Standard 的跨平台運行,從 2.0 到 7。
IronOCR 是一個用戶友好的 API,允許 C# 開發人員通過使用 IronTesseract
類和 API 金鑰自動將圖片轉換為文字。它優先考慮速度、準確性和易用性。它還幫助計算機視覺 API 使用訓練過的模型來找到文字。
IronOCR 的另一個強大功能是能夠從所有圖片文件中掃描條碼和 QR 碼並讀取其文字。IronOCR 的其他重要功能如下所示。
System.Drawing Objects
,流,PDF 文件 (最佳化目標DPI)現在來看看 Google Cloud Vision API。
Google Cloud Vision API 是支持 C# 語言的 Google Cloud OCR 客戶端庫。它允許 C# 開發者輕鬆地在軟件應用程式中整合電腦視覺檢測功能。它執行 OCR 並從圖像文件中檢測文本、圖像標籤、人臉檢測、地標檢測。
Google Cloud Vision API 使用 REST 和 RPC API 提供強大的預訓練機器學習模型。 (機器學習) 模型。使用雲端導入視覺API,你可以快速將圖片分類到數百萬個已經預定義的類別中。它還可以檢測物體,從印刷文件和手寫文本中讀取文字。
這篇文章的其餘部分如下:
創建Visual Studio項目
安裝IronOCR
安裝Google OCR
圖像轉文本
條形碼和QR碼轉文本
PDF轉文本
許可
在本教程中,我們將使用最新版本的 Visual Studio 2022。所以,我假設你已經下載並安裝了它來使用 C#。如果沒有,你可以從以下網站下載 Visual Studio 網站現在,我們需要創建一個控制台項目以開始使用這兩個庫。請按照以下步驟創建項目:
點擊創建一個新項目。
從給定選項中選擇 C# 控制台應用程式。
點擊下一步。
![如何在 C# Windows 應用程式中列印條碼
圖 3 - 設定專案](/static-assets/ocr/blog/google-ocr-api-alternatives/google-ocr-api-alternatives-3.webp)
從其他資訊中,選擇 .NET 6.0 Framework,因為它是最穩定的版本。
接下來,我們將在項目中安裝庫進行比較。
有多種方法可以安裝 IronOCR 庫。讓我們逐一看看它們。
NuGet 是用於在您的項目中下載和安裝依賴項的套件管理員。其套件包含已編譯的程式碼 (DLL) 以及清單檔案。使用以下方法進行存取:
點擊為方案管理NuGet套件
![如何在 C# Windows 應用程序中列印條碼
圖 5 - NuGet 套件管理員](/static-assets/ocr/blog/google-ocr-api-alternatives/google-ocr-api-alternatives-5.webp)
點擊「管理 NuGet 套件」
現在,NuGet 套件管理器視窗將會打開。瀏覽 IronOCR 並點擊安裝。
可以直接從 NuGet 官方網站下載。請遵循以下步驟:
點擊連結:“”。
點擊頁面右側的下載套件選項。
打開下載的套件,然後開始安裝。
只需訪問 Iron Software 網站,並導航到 IronOCR for .NET 網頁。滾動到頁面底部,點擊下載 DLL 或下載 Windows 安裝程式。
一個Zip檔案將被下載。解壓縮它並添加到您的項目文件中或運行Windows安裝程式。按照以下步驟將它添加到您的項目中。
右鍵點擊Visual Studio中解決方案資源管理器中的項目依賴項。
然後,選擇“添加項目引用”選項。
瀏覽已下載的DLL文件位置。
在 Visual Studio 中導航到工具選項卡。
展開 NuGet 套件管理器選項。
Install-Package IronOCR
這將自動下載並安裝 IronOCR 到您的項目中。
現在,我們準備好在項目中使用 IronOCR。
在源代碼文件的頂部添加一個命名空間, 這樣我們就可以訪問其功能。
using IronOCR;
using IronOCR;
Imports IronOCR
現在,讓我們安裝 Google Vision OCR。
要在您的 C# 專案中使用 Vision API,您必須滿足以下先決條件
您可以從官方文檔中詳細了解 Google Cloud Vision 的設置和要求 這裡現在,要在 Visual Studio 中安裝用於執行 OCR 處理的 Google Cloud 客戶端庫,我們需要使用 NuGet 套件管理器。
使用以下方法進行訪問:
點擊管理解決方案的 NuGet 套件
點擊「管理 NuGet 套件」
現在,NuGet 套件管理器視窗將會開啟。瀏覽 Google Cloud Vision OCR 並點擊安裝。
![如何在 C# Windows 应用程序中打印条码
圖 11 - Google Cloud Vision OCR](/static-assets/ocr/blog/google-ocr-api-alternatives/google-ocr-api-alternatives-11.webp)
請包含以下命名空間以使用 Google OCR Vision API:
using Google.Cloud.Vision.V1;
using Google.Cloud.Vision.V1;
Imports Google.Cloud.Vision.V1
此外,使用在 JSON 文件中下載的密鑰憑證來設置環境變量。
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json");
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json");
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json")
現在,一切都設置完畢,可以使用了。
從圖像中讀取數據是一項相當繁瑣的任務。影像的解析度和質量在提取內容時起著重要作用。這兩個庫都提供了光學字符識別 (OCR) 功能。 (光學字符識別) 從圖像中提取文本的功能。
IronOCR 透過其強大的 IronTesseract
類別,使開發人員能夠非常輕鬆地讀取圖像文件的內容。這裡我們將使用 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
![如何在 C# Windows 應用程式中列印條碼
圖 12 - 帶邊界框的輸入](/static-assets/ocr/blog/google-ocr-api-alternatives/google-ocr-api-alternatives-12.webp)
IronOCR 的輸出與提供給它的原始圖像相匹配。代碼簡潔且易於理解,沒有任何技術性問題。
Google Cloud Vision OCR 也能將不同字體的圖像轉換成文本。首先,我們需要使用憑證檔案創建一個客戶端。然後使用這個客戶端對象,我們可以調用 DetectText
方法來獲取注釋形式的響應。代碼如下:
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json");
var client = ImageAnnotatorClient.Create();
var image = Image.FromFile("test-files/employmentapp.png");
var response = client.DetectText(image);
foreach (var annotation in response)
{
if (annotation.Description != null)
{
Console.WriteLine(annotation.Description);
}
}
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json");
var client = ImageAnnotatorClient.Create();
var image = Image.FromFile("test-files/employmentapp.png");
var response = client.DetectText(image);
foreach (var annotation in response)
{
if (annotation.Description != null)
{
Console.WriteLine(annotation.Description);
}
}
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json")
Dim client = ImageAnnotatorClient.Create()
Dim image As System.Drawing.Image = System.Drawing.Image.FromFile("test-files/employmentapp.png")
Dim response = client.DetectText(image)
For Each annotation In response
If annotation.Description IsNot Nothing Then
Console.WriteLine(annotation.Description)
End If
Next annotation
相同的圖像被用作輸入,以比較兩個函式庫的輸出。
從上面的輸出中,您可以清楚地看到,IronOCR 保持了圖像輸出格式。儘管 Google OCR 提供了準確的輸出文本,但表格的格式沒有保持。IronOCR 完全保留了給定圖像中的表格格式。
IronOCR 在讀取圖像時提供了一個獨特且有用的功能,即它可以讀取條碼和 QR Code。它能夠檢測條碼並輕鬆顯示其值。首先,將 ReadBarCodes
配置設置為 true,然後迭代 OCR 結果中的每個條碼。讀取條碼的代碼如下所示:
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
輸入的三個條碼都成功讀取,其隱藏文字顯示出來。
Google Vision API 尚不允許此功能。在軟體應用程式中讀取條碼非常方便。然而,Google OCR 允許您提取手寫文本並從作為影像文件的掃描文檔中獲取文本。以下是標籤偵測的程式碼:
var client = ImageAnnotatorClient.Create();
var image = Image.FromUri("gs://cloud-samples-data/vision/using_curl/shanghai.jpeg");
var labels = client.DetectLabels(image);
Console.WriteLine("Labels (and confidence score):");
Console.WriteLine(new String('=', 30));
foreach (var label in labels)
{
Console.WriteLine($"{label.Description} ({(int)(label.Score * 100)}%)");
}
var client = ImageAnnotatorClient.Create();
var image = Image.FromUri("gs://cloud-samples-data/vision/using_curl/shanghai.jpeg");
var labels = client.DetectLabels(image);
Console.WriteLine("Labels (and confidence score):");
Console.WriteLine(new String('=', 30));
foreach (var label in labels)
{
Console.WriteLine($"{label.Description} ({(int)(label.Score * 100)}%)");
}
Imports System
Dim client = ImageAnnotatorClient.Create()
Dim image = System.Drawing.Image.FromUri("gs://cloud-samples-data/vision/using_curl/shanghai.jpeg")
Dim labels = client.DetectLabels(image)
Console.WriteLine("Labels (and confidence score):")
Console.WriteLine(New String("="c, 30))
For Each label In labels
Console.WriteLine($"{label.Description} ({CInt(Math.Truncate(label.Score * 100))}%)")
Next label
在 IronOCR中,讀取 PDF 文件就像讀取圖像文件一樣簡單。您只需將圖像讀取代碼中的 AddImage
方法更改為 AddPdf
。代碼如下:
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 文件的格式相同。
Google OCR 也提供從 PDF/TIFF 文件中提取文字的功能。然而,它只會檢測位於 Google Cloud Storage 的文件中的文字。為此,您需要創建一個 Google Storage 存儲桶。C# 的程式碼並不是那麼簡單,而且在這裡要實現也比較冗長。目前沒有 C# 的範例來檢測文件中的文字。您可以查看 Java 代碼 作為參考來嘗試一下。
IronOCR 可免費用於開發,但商業用途需取得授權。它還提供免費試用版,以便您測試其全部潛力。Lite 套餐從 $749 起開始。 免費試用. IronOCR 提供1年免費的產品支援和更新,之後每年為$399。所有授權都是永久的,意味著只需一次購買,無隱藏費用。您也可以選擇無版稅重發覆蓋範圍的 SaaS 和 OEM 產品,只需$1999一次購買。如需更多授權套餐和定價方案的資訊,請訪問 這裡.
Google Cloud Vision 定價方案是根據應用程序在圖像上執行的操作數量來計算。對於像 PDF 這樣有多個頁面的文件,每個頁面都被視為一張圖像。此外,每個應用於圖像的功能都是單獨計費的單位。例如,如果您對同一張圖像應用文字檢測和標籤檢測,每個功能將分別計費。定價方案如下,欲了解更多信息,請訪問此 連結.
IronOCR 為 C# 開發者提供了我們所知最先進的 Tesseract API,適用於任何平台。IronOCR 可以部署在 Windows、Linux、Mac、Azure、AWS、Lambda 上,並支持 .NET Framework 專案以及 .NET Standard 和 .NET Core。我們還可以在 OCR 掃描中讀取條碼,甚至將我們的 OCR 導出為 HTML 和可搜索的 PDF。
Google Cloud Vision API 是一個先進的 AI 構建的 API。它提供多種圖像分析功能,對於構建機器學習應用程式非常有幫助。它允許開發者使用 API 密鑰直接與 Google Cloud 通信,也就是說不需要在本地存儲文件。
IronOCR 授權是基於用戶的,這意味著您應該根據使用該產品的開發者數量購買授權。Google Cloud Vision 的授權則是根據要提取信息和分析數據的圖片數量計算的。這些授權是按月計費的,對於大批量圖片來說,價格相比 IronOCR 授權會非常高。此外,IronOCR 授權是一次性購買,可以終身使用,而且支持 OEM 和 SaaS 分發。
總而言之,這兩個庫都具有機器學習功能。IronOCR 對於 Google OCR 來說稍微有些優勢,因為它專為 C# .NET 框架而構建,這使得開發快速且省時。它只需幾行代碼即可提供所有功能,將編寫繁瑣代碼的負擔從開發人員身上移走。它基於最流行的 Tesseract 5 API,引入集成和分析圖片及其他文件格式,並能提供準確的輸出。另一方面,Google Vision OCR 基於 AI,更專注於 Java、Python 和 REST,並且僅在連接到 Google Cloud 時運行。這可能會因為響應來自服務器端而耗時。您可以根據您的具體需求選擇庫。
現在,您可以以2個產品的價格獲得5個 Iron 產品。Iron Suite 包含以下工具:
訪問這個 連結 探索更多。
您可以從這裡下載IronOCR 這裡.