與其他組件比較

Tesseract 與 Microsoft OCR (OCR 功能比較)

發佈 2024年3月26日
分享:

介紹

開發人員在進行光學字符識別時,經常需要在 Tesseract OCR 工具和 Microsoft OCR 引擎之間做出選擇。 (光學字符識別) 在 C# 中。儘管在能力、效率、整合性和易用性上有所不同,但兩者都是從照片或掃描文件中提取文本的有效 OCR 工具。 在 C# 開發框架中,我們將在本文中徹底檢視不同 OCR 工具(如 Tesseract 與 Microsoft OCR)的優點、缺點和適用性。

什麼是OCR?

光學字符識別被稱為OCR。這是一種技術,可以將各種文件格式(例如掃描的圖像文件、PDF文件或數碼相機照片)轉換為可編輯和可搜索的數據。為了將圖像的形式和圖案轉換為機器可讀的文本,各種OCR工具(如Google Cloud Vision或Google Vision OCR)會分析這些圖像。通過使用這種技術,使用者可以從照片中提取文本並像處理數字文件一樣編輯、搜索和更改內容。

Tesseract OCR

Tesseract OCR 是一個開源的光學字符識別 (光學字符識別) 引擎,有時也被稱為 Tesseract。Tesseract 最初是由惠普實驗室在 1980 年代創建的,現在由 Google 維護,是當今使用最廣泛的 OCR 引擎之一。

Tesseract 的主要功能是識別圖片中包含的文字或處理掃描文件,並將其轉換為機器可讀文本。這使得文本可以編輯、搜索和操作,允許用戶從各種來源(包括掃描文件分析、照片和 PDF 文件)中提取文本。

Tesseract OCR 的主要功能

  • 開源:Tesseract 根據 Apache 許可證 2.0 的條款可由任何人自由使用、修改和分發。其開源設計大大有助於它的廣泛採用和持續增強,這要歸功於社群的貢獻。
  • 語言支持:Tesseract 除了這些語言外,還能識別 100 多種不同的腳本和字符集。憑藉其多語言功能,它適用於各種語言和地區的廣泛 OCR 應用。
  • 準確性:Tesseract 以其優秀的文字識別準確性而聞名,特別是當正確設置和用相關數據訓練時。它能夠可靠地從各種問題的照片中提取文本,包括扭曲角度、低質量和光線不足。
  • 選項:Tesseract 提供大量的配置和自定義選項。用戶可以調整多個參數以優化 OCR 性能用於特定使用情況。此外,Tesseract 可以與 Java、C++、Python 和 C# 等多種平台和計算機語言結合,讓開發者能在廣泛的應用中利用其功能。
  • Tesseract 持續開發和維護,定期新增功能以提升其準確性、性能和語言支持。Tesseract 的開源社群支持其持續發展,保證它不斷作為最尖端的 OCR 工具。

為 .NET 安裝 Tesseract OCR

在您的電腦上安裝 Tesseract OCR 是第一步。您可以在官方的 Tesseract GitHub 儲存庫中獲取 Tesseract 安裝程式:https://github.com/tesseract-ocr/tesseract

要在您的電腦上安裝 Tesseract OCR,請按照針對您的操作系統的設置說明進行操作。 (Windows、macOS 或 Linux). 安裝Tesseract OCR之後,使用Visual Studio的NuGet套件管理器將Tesseract.NET包裝程式新增到您的C#專案中。

打開您的C#專案後,導航到工具 -> NuGet套件管理器 -> 為解決方案管理NuGet套件。在NuGet套件管理器中搜索「Tesseract」,您應該能夠找到名為「Tesseract」或「Tesseract.NET」的套件。為了將套件包含在您的專案中,選擇它並點擊安裝。

Tesseract vs Microsoft OCR(OCR功能比較):圖1 - Tesseract

使用 C# 進行 Tesseract OCR

在安裝 Tesseract.NET 包裝器後,您必須在 C# 專案中設置 Tesseract,以指定 Tesseract OCR 可執行文件和語言數據文件的位置。這裡是一個示例:

using Tesseract;
class Program
{
    static void Main(string [] args)
    {
        using (var engine = new TesseractEngine(@"path_to_tesseract_folder", "eng", EngineMode.Default))
        {
            using (var img = Pix.LoadFromFile("image.png"))
            {
                using (var page = engine.Process(img))
                {
                    var text = page.GetText();
                    Console.WriteLine(text);
                }
            }
        }
    }
}
using Tesseract;
class Program
{
    static void Main(string [] args)
    {
        using (var engine = new TesseractEngine(@"path_to_tesseract_folder", "eng", EngineMode.Default))
        {
            using (var img = Pix.LoadFromFile("image.png"))
            {
                using (var page = engine.Process(img))
                {
                    var text = page.GetText();
                    Console.WriteLine(text);
                }
            }
        }
    }
}
Imports Tesseract
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Using engine = New TesseractEngine("path_to_tesseract_folder", "eng", EngineMode.Default)
			Using img = Pix.LoadFromFile("image.png")
				Using page = engine.Process(img)
					Dim text = page.GetText()
					Console.WriteLine(text)
				End Using
			End Using
		End Using
	End Sub
End Class
VB   C#

為了完成此操作,請提供 Tesseract 安裝目錄的位置,並在 TesseractEngine 構造函數選項中指定您希望使用的語言或語言。將 "eng" 替換為您希望使用的語言代碼。 (例如,「eng」 表示英文) 並將 "path_to_tesseract_folder" 替換為 Tesseract 安裝目錄的實際路徑。

在您的 C# 專案中設定 Tesseract 後,現在可以使用其 OCR 功能從圖片中提取文字。一旦使用 Pix 類別加載圖片後,可以使用 TesseractEngine 實例來處理圖片,提取文字或對圖像文件進行 OCR,將 "image.png" 替換為圖像文件的路徑。

什麼是 Microsoft OCR?

Microsoft 的認知服務套件包括 Microsoft OCR,有時被稱為 Microsoft 光學字符識別。Microsoft Azure 提供基於雲的光學字符識別 (光學字符識別) 可以從文件和照片中提取文本並具有增強的文本識別能力的解決方案。Microsoft OCR 使用深度神經網絡和機器學習技術,能夠從各種來源精確識別文本。

主要功能

  • 與 Azure 認知服務整合:Microsoft OCR 與 Azure 認知服務——一套由 AI 驅動的 Microsoft Azure API 和服務——協同運作。通過這種連接,開發人員可以輕鬆地利用 REST API、SDK 和客戶端庫,將 Microsoft OCR 功能整合到應用程式和工作流中。
  • 高準確性和性能:Microsoft OCR 利用其在龐大數據集上訓練的先進機器學習模型,提供高準確性和性能的文本識別。它可以精確地從具有複雜佈局、不同字體和手寫文本的照片中提取文本,適用於廣泛的 OCR 應用場景。
  • 擴展性和可靠性:作為 Azure 認知服務的一部分,Microsoft OCR 提供了擴展性和可靠性,適合具有不同處理需求的應用程式。它能夠有效管理大量文檔和多個同時請求,保證正常運行時間和穩定性能。
  • 多語言支持:與其他 OCR 程式一樣,Microsoft OCR 支持多語言識別,使用戶能夠從不同語言和字符集的照片中提取文本。憑藉其多語言支持,它適用於具有多種語言需求的全球應用程式。

您必須將 Microsoft OCR 與 Azure 認知服務——更具體地說,是與 Computer Vision API 結合使用,以便在 C# 專案中使用它。以下是您可以開始的方法:

建立Azure帳戶

如果您還沒有Azure帳戶,您必須先建立一個Azure帳戶。您可以建立一個免費的Azure帳戶,並在試用期間使用多種服務。

配置 Azure 語言認知服務

當您擁有 Azure 帳戶時,必須配置 Azure 語言認知服務中的計算機視覺服務。

  • 開啟 Azure 入口網站。
  • 點擊“創建資源”查找“電腦視覺”。
  • 選擇電腦視覺服務後,點擊“創建”。
  • 要配置服務,請按照提示選擇訂閱和價格等級。
  • 服務建立後,進入資源並保存訂閱金鑰和端點URL;您將需要它們來驗證查詢的真實性。

安裝 Azure 認知服務 SDK

可以使用 Microsoft Azure。在您的 C# 項目中,使用 CognitiveServices.Vision.ComputerVision NuGet 包來與 Computer Vision API 進行通訊。

在 Visual Studio 中打開您的 C# 項目後,導航到 工具 -> NuGet 套件管理器,然後選擇為解決方案管理 NuGet 套件。

通過搜索 "Microsoft.Azure.CognitiveServices.Vision.ComputerVision" 安裝該包。

Tesseract 與 Microsoft OCR 功能比較:圖 2 - Microsoft.Azure.CognitiveServices.Vision.ComputerVision

使用 C# 的 Microsoft OCR

安裝 SDK 後,您可以使用 Computer Vision API 進行 OCR。使用 Computer Vision API 對圖像進行 OCR 的入門示例如下所示:

using System;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models;
class Program
{
    static async System.Threading.Tasks.Task Main(string [] args)
    {
        var endpoint = "YOUR_ENDPOINT";
        var subscriptionKey = "YOUR_SUBSCRIPTION_KEY";
        var client = new ComputerVisionClient(new ApiKeyServiceClientCredentials(subscriptionKey))
        {
            Endpoint = endpoint
        };
        var result = await client.RecognizeTextAsync("image.png", TextRecognitionMode.Printed);
        foreach (var region in result.Regions)
        {
            foreach (var line in region.Lines)
            {
                foreach (var word in line.Words)
                {
                    Console.WriteLine(word.Text);
                }
            }
        }
    }
}
using System;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models;
class Program
{
    static async System.Threading.Tasks.Task Main(string [] args)
    {
        var endpoint = "YOUR_ENDPOINT";
        var subscriptionKey = "YOUR_SUBSCRIPTION_KEY";
        var client = new ComputerVisionClient(new ApiKeyServiceClientCredentials(subscriptionKey))
        {
            Endpoint = endpoint
        };
        var result = await client.RecognizeTextAsync("image.png", TextRecognitionMode.Printed);
        foreach (var region in result.Regions)
        {
            foreach (var line in region.Lines)
            {
                foreach (var word in line.Words)
                {
                    Console.WriteLine(word.Text);
                }
            }
        }
    }
}
Imports System
Imports Microsoft.Azure.CognitiveServices.Vision.ComputerVision
Imports Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models
Friend Class Program
	Shared Async Function Main(ByVal args() As String) As System.Threading.Tasks.Task
		Dim endpoint = "YOUR_ENDPOINT"
		Dim subscriptionKey = "YOUR_SUBSCRIPTION_KEY"
		Dim client = New ComputerVisionClient(New ApiKeyServiceClientCredentials(subscriptionKey)) With {.Endpoint = endpoint}
		Dim result = Await client.RecognizeTextAsync("image.png", TextRecognitionMode.Printed)
		For Each region In result.Regions
			For Each line In region.Lines
				For Each word In line.Words
					Console.WriteLine(word.Text)
				Next word
			Next line
		Next region
	End Function
End Class
VB   C#

要對圖片檔案進行光學字符識別,請將上面範例代碼中的「image.png」替換為圖片檔案的路徑。這段代碼會將圖片發送到計算機視覺 API 來獲取識別出的文本。您在 Azure 認知服務中配置計算機視覺服務後獲得的端點 URL 和訂閱金鑰應該替換為「YOUR_ENDPOINT」和「YOUR_SUBSCRIPTION_KEY」。

IronOCR 是什麼?

開發人員可以使用 IronOCR(一個 .NET OCR 庫)將文字識別功能整合到他們的 C# 或 VB.NET 應用程式中。它提供了一個用戶友好的 API,用於從 PDF、圖片和其他媒體中提取文字。Iron Software 是一家專門從事 .NET 元件和庫的軟體開發公司,他們創建並維護 IronOCR。

IronOCR 的主要特點

  • 簡單整合:您可以通過利用 NuGet 套件或直接在您的專案中訪問庫,輕鬆地將 IronOCR 整合到您的 C# 或 VB.NET 專案中。
  • 多功能 OCR:IronOCR 可以識別來自各種來源的文字,例如截圖、掃描文件、PDF 文件和照片。它能夠處理多種圖像類型,包括 BMP、TIFF、PNG 和 JPEG。
  • 精確的文字識別:通過利用先進的 OCR 演算法,IronOCR 能夠實現卓越的文字識別準確性。可以可靠地擷取不同解析度、字體和背景的照片中的文字。
  • 支援多語言:IronOCR 能夠識別多種語言,適用於多語言應用程式。它提供了內建的流行語言包,並可自訂語言訓練。
  • PDF 文字擷取:IronOCR 可以從掃描的和基於圖像的 PDF 中擷取文字。在從 PDF 文件中移除文字時,它可以保持內容的原始格式和佈局。
  • 圖像預處理:在 OCR 處理之前,IronOCR 可以通過圖像預處理功能來提高輸入圖像的質量。這包括桌面校正、對比度調整和噪點消除等任務。

IronOCR 使用 C#

這是一個基本的 C#範例:

var Ocr = new IronTesseract(); // nothing to configure            
Ocr.Language = OcrLanguage.EnglishBest;                                     
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;            
using (var Input = new OcrInput())      
{          
    Input.AddImage(@"Demo.png");         
    var Result = Ocr.Read(Input);       
    Console.WriteLine(Result.Text);        
    Console.ReadKey();          
}
var Ocr = new IronTesseract(); // nothing to configure            
Ocr.Language = OcrLanguage.EnglishBest;                                     
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;            
using (var Input = new OcrInput())      
{          
    Input.AddImage(@"Demo.png");         
    var Result = Ocr.Read(Input);       
    Console.WriteLine(Result.Text);        
    Console.ReadKey();          
}
Dim Ocr = New IronTesseract() ' nothing to configure
Ocr.Language = OcrLanguage.EnglishBest
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5
Using Input = New OcrInput()
	Input.AddImage("Demo.png")
	Dim Result = Ocr.Read(Input)
	Console.WriteLine(Result.Text)
	Console.ReadKey()
End Using
VB   C#

我們可以使用上述代碼從圖像中提取具有最高 OCR 準確率的數據。此外,IronOCR 還能將從手寫文件提取的文本轉換為可編輯的文件格式,包括 Word。我們還可以將掃描的文件轉換為可搜索的 PDF。有了 IronOCR,結果可以存儲在各種 OCR 輸出格式中。要了解更多關於代碼的信息,请參阅 這裡.

來源圖片:

Tesseract vs Microsoft OCR(OCR功能比較):圖 3 - 輸入圖片

結果:

Tesseract vs Microsoft OCR(OCR功能比較):圖4 - 控制台輸出

結論

總之,Tesseract 和 Microsoft OCR 各自擁有獨特的優勢和缺點,為 C# 開發者提供強大的 OCR 能力。由於 Tesseract 提供自訂和彈性功能,它是需要大量微調應用程式的理想選擇。然而,由於 Microsoft OCR 擁有高精度、可擴展性以及與 Azure 服務的無縫連接,對於需要高端文字識別能力的 C# 應用程式來說,它是最好的選擇。開發者在為其 C# 專案選擇 Tesseract 或 Microsoft OCR 前,應考量其個別需求、修改要求和財務限制。

最後,IronOCR 是一個出色的 OCR 解決方案,提供卓越的整合性、靈活性和準確性。由於其無與倫比的準確度、先進的算法以及識別各類文件(包括手寫文件)的能力,IronOCR 是目前市場上最好的 OCR 解決方案。IronOCR 可以在多種文件和常見計算機語言中提供無縫整合,確保開發者的易用性,同時保持直觀的界面。

您可以免費試用價格實惠的 IronOCR 開發版,如果您購買 IronOCR 套裝,將獲得終身許可證。IronOCR 套裝的起價為 $749,它為多台設備提供單一價格的極佳價值。要了解更多關於費用的資訊,請訪問 IronOCR。 網站. 點擊這個 連結 了解更多關於 Iron Software 產品的資訊。

< 上一頁
Abbyy Finereader與Tesseract(OCR功能比較)
下一個 >
發票OCR開源(免費和付費工具比較)

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

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