與其他組件比較

Tesseract與Microsoft OCR:全面比較

發佈 2024年3月26日
分享:

介紹

在進行光學字元識別時,開發人員經常需要在 Tesseract OCR 工具和 Microsoft OCR 引擎之間進行選擇。(光學字符識別)在 C# 中。 儘管具有不同的能力、效率、整合度和易用性,這兩個都是有效的 OCR 工具,用於從照片或掃描文件中提取文字。 在 C# 開發框架中,我們將在本文中徹底檢視不同 OCR 工具(如 Tesseract 與 Microsoft 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 License 2.0 條款下可以供任何人自由使用、修改和分發。其開放原始碼的設計極大地促進了它的廣泛採用和持續改進,這得益於社群的貢獻。
  • 語言支持:除了這些語言之外,Tesseract 還能識別超過 100 種不同的書寫系統和字符集。 由於其多語種能力,這適用於各種語言和地區的廣泛OCR應用。
  • 準確性:Tesseract 因其卓越的文字識別準確性而知名,特別是在正確設置並使用相關數據訓練的情況下。 它能可靠地從有各種問題的照片中提取文字,包括扭曲角度、低品質和光線不足。
  • 選項:Tesseract 提供大量的配置和自訂選項。 針對特定使用情況,用戶可以調整多個參數以最大化 OCR 性能。 此外,Tesseract 可以與多種平台和計算機語言結合使用,例如 Java、C++、Python 和 C#,使開發人員能夠在廣泛的應用中利用其功能。
  • Tesseract 進行持續的開發和維護,並定期添加新功能以提升其準確度、性能和語言支援。 Tesseract 的開源社群支持其持續開發,保證它將始終是一個最先進的 OCR 工具。

安裝 Tesseract OCR For .NET

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

要在您的電腦上安裝 Tesseract OCR,請按照專為您的操作系統設計的設定指導進行操作。(Windows、macOS 或 Linux). 在安裝 Tesseract OCR 後,使用 Visual Studio 的 NuGet 套件管理器將 Tesseract.NET 包裝器添加到您的 C# 專案中。

在 Visual Studio 中開啟您的 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#

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

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

什麼是 Microsoft OCR?

Microsoft 的 Cognitive Services 套件包括Microsoft OCR,有時也稱為 Microsoft 光學字符識別。 Microsoft Azure 提供基於雲端的光學字符識別(光學字符識別)能以增強的文字識別功能從文件和照片中提取文字的解決方案。 Microsoft OCR 使用深度神經網絡和機器學習技術從各種來源識別文字,準確性極高。

主要功能

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

    您必須將 Microsoft OCR 結合使用 Azure 認知服務,特別是電腦視覺 API,才能在 C# 專案中使用它。 這是您可以開始的方法:

建立 Azure 帳戶

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

配置 Azure 認知服務

在你擁有 Azure 帳戶時,必須配置 Azure 認知服務中的計算機視覺服務。

  • 打開這個Azure 入口網站。
  • 點擊「創建資源」查找「Computer Vision」。
  • 在選擇電腦視覺服務後,點擊「建立」。
  • 若要配置服務,請按照提示選擇訂閱方案和價格等級。
  • 服務建立後,前往資源並保存訂閱金鑰和端點 URL。 您需要它們來驗證查詢的真實性。

安裝 Azure 語音服務 SDK

可以利用 Microsoft Azure。 在您的C#專案中,使用CognitiveServices.Vision.ComputerVision NuGet套件與電腦視覺API進行通信。

在 Visual Studio 中開啟您的 C# 專案後,導航到工具 -> NuGet 套件管理員,然後管理方案的 NuGet 套件。

通過搜尋 "Microsoft.Azure.CognitiveServices.Vision.ComputerVision" 安裝套件。

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

使用 C# 的 Microsoft OCR

安裝 SDK 之後,您可以使用計算機視覺 API 來進行 OCR。 以下是一個使用電腦視覺 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#

要對影像檔執行OCR,請將上面程式碼範例中的「image.png」替換為影像檔的路徑。此程式碼將透過發送至視覺分析 API 從影像中取得識別的文字。 在 Azure 認知服務中配置計算機視覺服務後收到的端點 URL 和訂閱金鑰應替換為 "YOUR_ENDPOINT" 和 "YOUR_SUBSCRIPTION_KEY"。

什麼是IronOCR?

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

IronOCR的主要功能

  • 簡單整合:您可以通過使用NuGet包或直接在您的專案中存取庫,輕鬆將IronOCR整合到您的C#或VB.NET專案中。
  • 多功能光學字符識別:IronOCR 能夠從各種來源識別文本,如截圖、掃描文件、PDF 檔案和照片。它可以處理多種圖像類型,包括 BMP、TIFF、PNG 和 JPEG。
  • 精確的文字識別:IronOCR 透過使用先進的 OCR 算法達成卓越的文字識別準確性。 可以可靠地使用它從不同解析度、字體和背景的照片中提取文字。
  • 支持多語言: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 是需要先進文字識別功能的 C# 應用程式的最佳選擇,因其具有高精確度、可擴展性以及與 Azure 服務的無縫連接。 對於他們的 C# 項目,開發人員在決定使用 Tesseract 還是 Microsoft OCR 之前,應考量各自的需求、修改要求及財務限制。

最後,IronOCR 是一種出色的光學字符識別解決方案,提供卓越的集成性、靈活性和準確性。 由於其無與倫比的準確性、高級算法以及識別各種文件類型(包括手寫文件)的能力,IronOCR 是目前市場上最好的 OCR 解決方案。 由於 IronOCR 能夠在多種文件和常見的計算機語言中順利整合,它在保持直觀界面的同時,確保了開發人員的可及性。

您可以免費試用經濟實惠的 IronOCR 開發版本,如果您購買 IronOCR 套件,您將獲得終身許可。 IronOCR 套裝的起始價格為 $749,由於其提供多設備單一價格,是一個非常划算的選擇。 若要了解更多成本資訊,請造訪 IronOCR。網站. 按一下此 連結了解更多關於 Iron Software 產品的資訊。

< 上一頁
ABBYY FineReader 與 Tesseract:OCR 比較
下一個 >
發票 OCR 開源比較:尋找最佳工具

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

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