Google OCR和IronOCR之間的比較
OCR 代表光學字元識別。 它提供將影像檔轉換為機器編碼文字的功能。 掃描的文件總是由計算機保存為影像檔。 這些影像檔中的資料無法使用一般的文字編輯器或甚至文字處理應用程式以文字格式進行搜索、編輯或保存。 OCR 處理幫助將這些影像轉換為機器可讀的文字,以供其使用者進一步處理。
在這個現代時代,通過互聯網分享的掃描文件是數位格式,大多以 PDF 或影像形式存在。 有許多線上資源可用來將影像轉換為文字。 然而,大多數企業在其軟體應用程式中需要此功能。 考慮到這一點,有許多程式庫提供 OCR 處理技術以嵌入到軟體應用程式中。
在本文中,我們將討論兩個最受歡迎的 C# OCR 程式庫。 這些是:
- IronOCR
- Google Cloud Vision OCR (Vision API)
IronOCR - C# 程式庫
IronOCR for .NET 是一個 C# 程式庫,用於掃描、搜索和閱讀影像與 PDF。 它將影像或 PDF 檔案作為輸入,並使用最新的 Tesseract 5 自訂組建 .NET OCR 引擎以輸出文字、結構化資料或可搜索的 PDF 文件。 Tesseract 提供 125 多種語言的支持,並支援跨平台的 .NET Core 和 .NET Standard,範圍從 2.0 到 7。
IronOCR 是一個使用者友好的 API,允許 C# 開發者自動將圖片轉換為文字,使用 IronTesseract 類別和 API key。 它優先考量速度、準確性和易用性。 它還幫助電腦視覺 API 透過訓練好的模型找到文字。
IronOCR 的另一個強大功能是,它可以掃描所有影像檔中的條碼和 QR 碼並讀取其中的文字。 IronOCR 的其他重要功能如下。
功能
- 國際化語言: 支持 125 多種語言和自訂語言,具有高質量和高速度的效能
- 文字和條碼閱讀: 同時從多種語言中閱讀文字和數字
- 專門文件: 專門從收據、支票、發票中讀取文字
- 從多種格式讀取: 圖片(PNG,JPG,GIF,TIFF,BMP),
System.Drawing Objects,流媒體,PDF 文件(優化的目標 DPI) - 過濾器: 過濾器向導,影像校正,修正影像方向,校正影像顏色
- 簡單的資料輸出: .NET 文字字串,條碼和 QR 資料,影像
現在,讓我們看看 Google Cloud Vision API。
Google Cloud Vision OCR
Google Cloud Vision API 是一個支持 C# 語言的 Google Cloud OCR 客戶端程式庫。 它允許 C# 開發者輕鬆地將電腦視覺檢測功能整合到軟體應用程式中。 它執行 OCR 並從影像檔、影像標籤、面部檢測和地標檢測中檢測文字。
Google Cloud Vision API 使用 REST 和 RPC API 提供強大的預訓練 ML(機器學習)模型。 使用 Cloud Vision API,您可以快速將影像分類到數百萬個已經預定義的類別中。 它還可以檢測物體並從印刷文件和手寫文字中讀取文字。
功能
- 影像文字檢測: 對影像進行文字識別 OCR 並將其轉換為機器語言程式碼
- 文件文字檢測: 對檔(PDF/TIFF)進行 OCR,密集文字
- 地標檢測:返回檢測到的物件坐標
- 標識檢測: 返回文字描述
- 標籤檢測: 返回影像的一般化標籤
文章的其餘部分如下所示:
- 建立一個 Visual Studio 專案
- 安裝 IronOCR
- 安裝 Google OCR
- 影像轉文字
- 條碼和 QR 碼轉文字
- PDF 轉文字
- 授權
- 結論
1. 建立一個 Visual Studio 專案
在這個教程中,我們將使用最新的版本 Visual Studio 2022。 所以,我假設您已經下載並安裝了它用於 C#。 如果沒有,您可以從 Visual Studio 官方網站下載。
現在,我們需要建立一個 Console 專案以開始使用這兩個程式庫。 按照以下步驟建立專案:
- 打開您的 Visual Studio 2022。
-
點擊建立新專案。

-
從給定選項中選擇 C# Console 應用程式。

- 配置您的新專案名稱和位置。 例如 "OCRProject"。
-
點擊下一步。

-
從其他資訊中選擇 .NET 6.0 Framework,因為它是最穩定的版本。

- 現在,點擊建立,專案將在您指定的位置建立。
接下來,我們將在我們的專案中安裝程式庫以便進行比較。
2. 安裝 IronOCR
有多種方法可以安裝 IronOCR 程式庫。 讓我們一一看看它們。
2.1. 使用 Visual Studio NuGet 套件管理器
NuGet 是用於在專案中下載和安裝依賴項的套件管理器。 其套件包含編譯好的程式碼(DLL)和 manifest 文件。通過以下方法存取它:
- 點擊工具選項卡
- 展開 NuGet 套件管理器選項
-
點擊管理解決方案的 NuGet 套件

- 或者,右鍵點擊解決方案總管
-
點擊管理 NuGet 套件

現在,NuGet 套件管理器窗口將打開。 瀏覽 IronOCR 並點擊安裝。

2.2. 從 NuGet 網站下載
它可以直接從 NuGet 官方網站下載。按照以下步驟進行:
- 點擊NuGet 網站的連結。
- 點擊頁面右邊的下載套件選項。
- 打開下載的套件,它將開始安裝。
- 最後,重新載入解決方案,完成。
2.3. 使用 IronOCR 網頁下載
只需存取 Iron Software 網站並導航到 IronOCR for .NET 網頁。 滾動到底部並點擊下載 DLL 或下載 Windows 安裝程式。

將下載一個 Zip 文件。 將其解壓縮並新增到您的專案文件中或運行 Windows 安裝程式。 按以下步驟將其新增到您的專案中。
- 在 Visual Studio 的解決方案總管中,右鍵點擊專案的依賴項。
- 然後選擇新增專案引用選項。
- 瀏覽到下载的 DLL 文件位置。
- 最後,點擊確認以新增專案引用。
2.4. 在 Visual Studio 中使用命令提示符
- 在 Visual Studio 裡選擇工具選項卡。
- 展開 NuGet 套件管理器選項。
- 選擇套件管理器控制台並輸入以下命令:
Install-Package IronOcr
這將自動在您的專案中下載並安裝 IronOCR。
現在,我們已經準備好在專案中使用 IronOCR。
2.5. 新增必要的 IronOCR 命名空間
只需一個命名空間,就必須新增在源程式碼文件頂部,我們需要在那裡存取其功能。
using IronOcr;
using IronOcr;
Imports IronOcr
現在,讓我們安裝 Google Vision OCR。
3. 安裝 Google OCR
為了能夠在您的 C# 專案中使用 Vision API,您必須滿足以下先決條件:
- 建立一個 Google 帳號
- 從 Google Cloud 控制台建立一個新專案
- 啟用計費
- 啟用 Vision API
- 建立一個服務帳號並設置憭證
- 下載 JSON 格式的服務帳號密鑰憭證
您可以從官方文件中詳細查看使用 Google Cloud Vision 的設置和要求,請點擊這裡。
現在,為了在 Visual Studio 中進行 OCR 處理,我們需要使用 NuGet 套件管理器來安裝 Google Cloud 客戶端程式庫。
3.1. 使用 NuGet 套件管理器
請使用以下方法存取它:
- 點擊工具選項卡
- 展開 NuGet 套件管理器選項
-
點擊管理解決方案的 NuGet 套件

- 或者,右鍵點擊解決方案總管
-
點擊管理 NuGet 套件

現在,NuGet 套件管理器窗口將打開。 瀏覽 Google Cloud Vision OCR 並點擊安裝。

3.2. 新增 Google Vision API 命名空間
請包含以下命名空間以使用 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")
現在,一切已經設置完畢,可以準備使用。
4. 圖像到文字
從影像中讀取資料是一項繁瑣的工作。 影像解析度和質量在提取內容時發揮著重要作用。 這兩個程式庫均提供光學字元識別 (OCR) 功能以從影像中提取文字。
4.1. 使用 IronOCR
IronOCR 使開發者能夠非常輕鬆地使用其強大的 IronTesseract 類別來讀取影像文件的內容。 在這裡,我們將使用 PNG 圖像來從影像文件中讀取文字,程式碼如下:
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
// Add the image to be processed
input.AddImage("test-files/employmentapp.png");
// Process the image
var result = ocr.Read(input);
// Output the extracted text
Console.WriteLine(result.Text);
}
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
// Add the image to be processed
input.AddImage("test-files/employmentapp.png");
// Process the image
var result = ocr.Read(input);
// Output the extracted text
Console.WriteLine(result.Text);
}
Dim ocr = New IronTesseract()
Using input = New OcrInput()
' Add the image to be processed
input.AddImage("test-files/employmentapp.png")
' Process the image
Dim result = ocr.Read(input)
' Output the extracted text
Console.WriteLine(result.Text)
End Using
輸入影像

輸出

IronOCR 的輸出與給它的原始影像相匹配。 程式碼乾淨且易於理解,沒有任何技術性問題。
4.2. 使用 Google OCR
Google Cloud Vision OCR 也以不同的字體將影像轉換為文字。 首先,我們需要使用憭證文件建立一個客戶端。然後使用此客戶端物件,我們可以調用 DetectText 方法來獲取註解形式的響應。 程式碼如下所示:
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json");
var client = ImageAnnotatorClient.Create();
var image = Google.Cloud.Vision.V1.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 = Google.Cloud.Vision.V1.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 = Google.Cloud.Vision.V1.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 完全按照給定圖像中的格式保存了表格的格式。
5. 條碼和 QR 碼轉文字
5.1. 使用 IronOCR
IronOCR 提供了一個獨特且有用的功能,即它可以讀取條碼和 QR 碼。 它可以檢測條碼並輕鬆顯示其值。 首先,將 ReadBarCodes 配置設置為 true,然後遍歷 OCR 結果中的每個條碼。 下面是閱讀條碼的程式碼:
var ocr = new IronTesseract();
ocr.Configuration.ReadBarCodes = true;
using (var input = new OcrInput())
{
// Add the image to be processed
input.AddImage("test-files/Barcode.png");
// Process the image
var result = ocr.Read(input);
// Iterate and output barcode values
foreach (var barcode in result.Barcodes)
{
Console.WriteLine(barcode.Value);
}
}
var ocr = new IronTesseract();
ocr.Configuration.ReadBarCodes = true;
using (var input = new OcrInput())
{
// Add the image to be processed
input.AddImage("test-files/Barcode.png");
// Process the image
var result = ocr.Read(input);
// Iterate and output barcode values
foreach (var barcode in result.Barcodes)
{
Console.WriteLine(barcode.Value);
}
}
Dim ocr = New IronTesseract()
ocr.Configuration.ReadBarCodes = True
Using input = New OcrInput()
' Add the image to be processed
input.AddImage("test-files/Barcode.png")
' Process the image
Dim result = ocr.Read(input)
' Iterate and output barcode values
For Each barcode In result.Barcodes
Console.WriteLine(barcode.Value)
Next barcode
End Using
輸入影像

輸出

輸入中的所有三個條碼均成功讀取,並顯示其隱藏文字。
5.2. 使用 Google OCR
Google Vision API 尚不允許此功能。 在軟체應用程式中讀取條碼可能很方便。 然而,Google OCR 允許您從掃描的文件中獲取文字作為影像文件。標籤檢測的程式碼如下:
var client = ImageAnnotatorClient.Create();
var image = Google.Cloud.Vision.V1.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 = Google.Cloud.Vision.V1.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 = Google.Cloud.Vision.V1.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
輸出

6. PDF 到文字
6.1. 使用 IronOCR
在 IronOCR 中閱讀 PDF 文件就像閱讀影像文件一樣簡單。 您只需要將影像讀取程式碼中的 AddImage 方法更改為 AddPdf。 程式碼如下所示:
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
// Add the PDF to be processed
input.AddPdf("test-files/example.PDF");
// Process the PDF
var result = ocr.Read(input);
// Output the extracted text
Console.WriteLine(result.Text);
}
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
// Add the PDF to be processed
input.AddPdf("test-files/example.PDF");
// Process the PDF
var result = ocr.Read(input);
// Output the extracted text
Console.WriteLine(result.Text);
}
Dim ocr = New IronTesseract()
Using input = New OcrInput()
' Add the PDF to be processed
input.AddPdf("test-files/example.PDF")
' Process the PDF
Dim result = ocr.Read(input)
' Output the extracted text
Console.WriteLine(result.Text)
End Using
輸出
提取的文字與 PDF 文件的格式相同。

6.2. 使用 Google OCR
Google OCR 也提供從 PDF/TIFF 文件中提取文字的功能。 然而,它只有在文件位於 Google Cloud Storage 中時才能檢測文字。 為此,您需要建立一個 Google Storage 儲存桶。 C# 的程式碼並不簡單,實施起來也相當長。 沒有可用的 C# 樣本來檢測文件中的文字。 您可以查看Java 程式碼作為嘗試的參考。
7. 授權
IronOCR 開發用途是免費的,但用於商業用途需要獲得授權。 它還提供免費試用,以測試其所有潛力以滿足您的需求。 Lite 包從一定價格起,有免費試用。 IronOCR 提供 1 年的產品支援和更新,然後每年需要支付 399 美元。所有授權都是永久性的,意味著只需一次性購買,沒有隱藏費用。 您也可以選擇免版稅再分發範圍的 SaaS 和 OEM 產品,只需支付 1999 美元的一次性購買。 欲了解更多有關授權包和定價計劃的資訊,請存取這裡。

Google Cloud Vision 的定價計劃是根據應用程式對影像執行的操作次數制定的。 對於像 PDF 這樣的文件,如果有多個頁面,每頁都被視作爲影像。 此外,每個應用於影像的功能都是一個單獨的計費單位。 例如,如果您對相同影像應用了文字檢測和標籤檢測,每個功能將分別收費。 定價計劃如下所示,有關更多資訊,請存取此聯結。

8. 結論
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。 它提供多種影像分析功能,對構建 ML 應用程式非常有幫助。 它允許開發者使用 API key 直接與 Google Cloud 通信,這意味著不需要在本地儲存檔案。
IronOCR 授權是基於使用者的,這意味著您應該根據將使用該產品的開發者人數購買授權。 Google Cloud Vision 授權基於從影像中提取資訊和分析資料的圖片數量。 這些授權是按月計費的,與 IronOCR 授權相比,圖片數量大的價格會非常高。 此外,IronOCR 授權是一次性購買,可以終生使用,支持 OEM 和 SaaS 分發。
總結來說,這兩個library 都具備機器學習的能力。 IronOCR 相較於 Google OCR 稍微有優勢,因為它特別為 C# .NET Framework構建,快速省時。 它以非常少的程式碼行提供所有功能,減輕了開發者書寫冗長程式碼的負擔。 它建立在最受歡迎的 Tesseract 5 API 上,使其易於整合和分析影像及其他文件格式並獲得準確輸出。 另一方面,Google Vision OCR 建立在 AI 上,更專注於 Java, Python 和 REST,並且只能在連接到 Google Cloud 時運行。 這可能會耗時,因為響應來自伺服器端。您可以根據您的特定需求來選擇程式庫。
現在,您可以以 2 款的價格獲得 5 款 Iron 產品。以下工具包含在 Iron Suite 中:
- IronBarcode
- IronXL
- IronOCR
- IronPDF
- IronWebScraper
請存取此連結進一步探索。
您可以從這裡下載 IronOCR。
常見問題
如何使用 C# 將影像轉換為文字?
您可以使用利用Tesseract 5引擎的IronOCR將圖片轉換為機器可讀的文字。它支持超過125種語言,並且能夠相容多種平台,是C#應用進行文字提取的絕佳選擇。
使用IronOCR進行條碼和QR碼掃描有什麼好處?
IronOCR不僅可以將圖片和PDF轉換為文字,還在條碼和QR碼掃描方面表現優異。它提供快捷且準確的資料提取,使其成為需要全面OCR功能的應用程式的多功能工具。
IronOCR如何處理不同語言?
IronOCR支持超過125種語言,並提供自定義語言支持。這種廣泛的語言相容性使其對國際應用高度適應,確保跨各種語言的文字識別。
在C#專案中安裝IronOCR的需求是什麼?
要在C#專案中安裝IronOCR,您可以在Visual Studio中使用NuGet套件管理器。只需在NuGet套件管理器中搜索IronOCR並安裝,即可將OCR功能無縫整合到您的應用中。
IronOCR的授權模型與基於雲的OCR服務相比如何?
IronOCR提供一次性購買並具有永久授權,提供長期價值且無需重複成本。相比之下,基於雲的OCR服務如Google Cloud Vision通常使用按使用付費的定價模式,在高使用情況下可能變得昂貴。
IronOCR支持哪些平台?
IronOCR可以部署於多個平台,包括Windows、Linux、Mac、Azure、AWS和Lambda。它支持.NET Framework、.NET Standard和.NET Core專案,為不同的開發環境提供了靈活性。
IronOCR可以離線運行嗎?
是的,IronOCR可以離線運行,這是一個相對於基於雲的解決方案的重要優勢。此功能確保您的OCR處理不依賴於互聯網連接,提供更大的控制和安全性。
IronOCR如何確保OCR處理的準確性和速度?
IronOCR利用先進的算法和Tesseract 5引擎提供快速且準確的OCR處理。其圖像校正濾鏡進一步提高了文字識別的準確性,使其成為高質量OCR任務的可靠選擇。

