跳過到頁腳內容
與其他組件的比較

Tesseract vs Microsoft OCR:面對面比較

在 C# 中進行光學字元辨識 (OCR) 時,開發人員經常需要在 Tesseract OCR 工具和 Microsoft OCR 引擎之間做出選擇。 儘管功能、效率、整合性和易用性各不相同,但它們都是有效的 OCR 工具,可以從照片或掃描文件中提取文字。 本文將在 C# 開發框架內,深入探討 Tesseract 與 Microsoft OCR 等不同 OCR 工具的優點、缺點與適用性。

什麼是OCR?

光學字元辨識簡稱OCR。 這項技術可以將各種文件格式(如掃描影像文件、PDF 文件或數位相機照片)轉換為可編輯和可搜尋的資料。 為了將圖像的形狀和圖案轉換為機器可讀的文本,不同的 OCR 工具(例如 Google Cloud Vision 或 Google Vision OCR)會對圖像進行分析。 透過使用這種技術,使用者可以從照片中提取文本,並像編輯數位文件一樣編輯、搜尋和更改內容。

Tesseract OCR

Tesseract OCR是一個開源的光學字元辨識 (OCR) 引擎,有時簡稱為 Tesseract。 Tesseract 最初由惠普實驗室在 20 世紀 80 年代創建,現在由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 工具。

安裝適用於.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# 專案。

在 Visual Studio 中開啟 C# 專案後,導覽至"工具"-> "NuGet套件管理器"->"管理解決方案的 NuGet套件"。 您可以透過在NuGet套件管理員中搜尋"Tesseract"來找到名為"Tesseract"或"Tesseract .NET "的套件。 若要將該軟體包新增至您的專案中,請選擇它並按一下"安裝"。

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

Tesseract OCR using C

請依照以下步驟在 C# 專案中使用 Tesseract:

using Tesseract;

class Program
{
    static void Main(string[] args)
    {
        // Initialize the Tesseract engine with the path to your Tesseract installation and the desired language(s)
        using (var engine = new TesseractEngine(@"path_to_tesseract_folder", "eng", EngineMode.Default))
        {
            // Load the image from which to extract text
            using (var img = Pix.LoadFromFile("image.png"))
            {
                // Process the image and extract the text
                using (var page = engine.Process(img))
                {
                    // Get the extracted text
                    var text = page.GetText();
                    Console.WriteLine(text); // Print the extracted text
                }
            }
        }
    }
}
using Tesseract;

class Program
{
    static void Main(string[] args)
    {
        // Initialize the Tesseract engine with the path to your Tesseract installation and the desired language(s)
        using (var engine = new TesseractEngine(@"path_to_tesseract_folder", "eng", EngineMode.Default))
        {
            // Load the image from which to extract text
            using (var img = Pix.LoadFromFile("image.png"))
            {
                // Process the image and extract the text
                using (var page = engine.Process(img))
                {
                    // Get the extracted text
                    var text = page.GetText();
                    Console.WriteLine(text); // Print the extracted text
                }
            }
        }
    }
}
$vbLabelText   $csharpLabel

為此,請在 TesseractEngine 建構函式選項中提供 Tesseract 安裝目錄的位置以及您希望使用的語言。 將 "eng" 替換為您希望使用的語言的語言代碼(例如,"eng" 表示英語),並將 "path_to_tesseract_folder" 替換為 Tesseract 安裝目錄的實際路徑。

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

什麼是微軟OCR?

微軟的認知服務套件包含Microsoft OCR ,有時也稱為 Microsoft 光學字元辨識。 Microsoft Azure 提供基於雲端的光學字元辨識 (OCR) 解決方案,能夠從文件和照片中提取文本,並具有增強的文本識別功能。 微軟 OCR 使用深度神經網路和機器學習技術,能夠以極高的準確率識別來自各種來源的文字。

主要特點

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

要在 C# 專案中使用 Microsoft OCR,必須將其與 Azure 認知服務(更具體地說是電腦視覺 API)結合使用。 以下是開始的方法:

建立 Azure 帳戶

如果您還沒有 Azure 帳戶,則必須建立一個。 您可以建立一個免費的 Azure 帳戶,並在試用期內存取多項服務。

配置 Azure 認知服務

如果您擁有 Azure 帳戶,則必須設定 Azure 認知服務中的電腦視覺服務。

  • 開啟Azure 入口網站
  • 點選"建立資源"尋找"電腦視覺"。
  • 選擇電腦視覺服務後,按一下"建立"。
  • 若要設定服務,請依照指示選擇訂閱和價格等級。
  • 服務建置完成後,前往資源並儲存訂閱金鑰和端點 URL; 你需要它們來驗證你的查詢的真實性。

安裝 Azure 認知服務 SDK

利用微軟 Azure 是可行的。 若要在 C# 專案中與電腦視覺 API 通信,請使用 CognitiveServices.Vision.ComputerVision NuGet套件。

在 Visual Studio 中開啟 C# 專案後,依序選擇"工具"-> "NuGet套件管理員"->"管理解決方案的NuGet套件"。

透過搜尋"Microsoft.Azure.CognitiveServices.Vision.ComputerVision"來安裝此軟體套件。

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

Microsoft OCR Using C

安裝 SDK 後,您可以使用電腦視覺 API 進行 OCR 操作。 下面提供了一個使用電腦視覺 API 對影像進行 OCR 識別的入門範例:

using System;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        // Set your endpoint and subscription key for authentication
        var endpoint = "YOUR_ENDPOINT";
        var subscriptionKey = "YOUR_SUBSCRIPTION_KEY";

        // Create a new instance of the ComputerVisionClient
        var client = new ComputerVisionClient(new ApiKeyServiceClientCredentials(subscriptionKey))
        {
            Endpoint = endpoint
        };

        // Perform OCR on the specified image
        var result = await client.RecognizePrintedTextInStreamAsync(true, "image.png");

        // Iterate over the results and print the recognized text
        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;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        // Set your endpoint and subscription key for authentication
        var endpoint = "YOUR_ENDPOINT";
        var subscriptionKey = "YOUR_SUBSCRIPTION_KEY";

        // Create a new instance of the ComputerVisionClient
        var client = new ComputerVisionClient(new ApiKeyServiceClientCredentials(subscriptionKey))
        {
            Endpoint = endpoint
        };

        // Perform OCR on the specified image
        var result = await client.RecognizePrintedTextInStreamAsync(true, "image.png");

        // Iterate over the results and print the recognized text
        foreach (var region in result.Regions)
        {
            foreach (var line in region.Lines)
            {
                foreach (var word in line.Words)
                {
                    Console.WriteLine(word.Text);
                }
            }
        }
    }
}
$vbLabelText   $csharpLabel

若要對影像檔案執行 OCR 識別,請將上述程式碼範例中的 "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。 -精準的文字辨識: IronOCR利用先進的 OCR 演算法實現了出色的文字辨識準確率。 使用此方法可以可靠地提取不同解析度、字體和背景的照片中的文字。 -支援多種語言: IronOCR適用於多語言應用程序,因為它能夠識別多種語言。 它支援客製化語言培訓,並內建了常用語言的語言包。

  • PDF 文字擷取: IronOCR可以擷取掃描的 PDF 和基於影像的 PDF 中的文字。 從 PDF 文件中刪除文字時,可以保持內容的原始格式和佈局。 -影像預處理:在 OCR 處理之前, IronOCR可以透過影像預處理功能提高輸入影像的品質。 這包括諸如傾斜校正、對比度調整和降噪等任務。

IronOCR Using C

以下是一個使用IronOCR 的基本 C# 範例:

// Create an instance of IronTesseract
var Ocr = new IronTesseract(); // nothing to configure
// Set the language and Tesseract version to be used for OCR
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;

// Prepare the image input and perform OCR
using (var Input = new OcrInput())
{
    // Add the image for OCR processing
    Input.AddImage(@"Demo.png");
    // Read the text from the image
    var Result = Ocr.Read(Input);
    // Print the recognized text
    Console.WriteLine(Result.Text);
    Console.ReadKey(); // Wait for user input before closing
}
// Create an instance of IronTesseract
var Ocr = new IronTesseract(); // nothing to configure
// Set the language and Tesseract version to be used for OCR
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;

// Prepare the image input and perform OCR
using (var Input = new OcrInput())
{
    // Add the image for OCR processing
    Input.AddImage(@"Demo.png");
    // Read the text from the image
    var Result = Ocr.Read(Input);
    // Print the recognized text
    Console.WriteLine(Result.Text);
    Console.ReadKey(); // Wait for user input before closing
}
$vbLabelText   $csharpLabel

我們可以使用上述程式碼從影像中提取數據,並獲得最高的 OCR 準確率。 此外, IronOCR還有助於將從文件中提取的文字轉換為可編輯的文件格式,包括 Word 文件。 我們也可以將掃描文件轉換為可搜尋的PDF文件。 使用IronOCR,結果可以儲存為各種 OCR 輸出格式。 要了解更多代碼信息,請參考這裡

圖片來源:

Tesseract 與 Microsoft OCR(OCR 功能比較):圖 3 - 輸入影像

結果:

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

結論

總之,Tesseract 和 Microsoft OCR 各有優缺點,都能為 C# 開發人員提供強大的 OCR 功能。 由於 Tesseract 提供客製化和靈活性,因此對於需要大量微調的應用來說,它是一個不錯的選擇。 然而,對於需要複雜文字辨識功能的 C# 應用程式而言,Microsoft OCR 是最佳選擇,因為它具有高精度、可擴充性和與 Azure 服務的無縫連接。 對於 C# 項目,開發人員在選擇 Tesseract 還是 Microsoft OCR 之前,應該權衡他們的個人需求、修改要求和財務限制。

最後, IronOCR是一款卓越的 OCR 解決方案,具有出色的整合性、靈活性和準確性。 由於其無與倫比的準確性、先進的演算法以及識別各種文件類型的能力, IronOCR是目前市場上最好的 OCR 解決方案。 由於IronOCR可以無縫整合到眾多文件和常用電腦語言中,因此它既能確保開發人員的可訪問性,又能保持直覺的介面。

您可以免費試用IronOCR的經濟實惠的開發版,如果您購買IronOCR套餐,您將獲得終身授權。 IronOCR套裝起價為 $799,物超所值,因為它以一個價格提供多個設備。 要了解更多費用信息,請訪問IronOCR網站。 點擊此連結了解更多關於Iron Software產品的資訊。

請注意Tesseract 和 Microsoft OCR 是其各自所有者的註冊商標。 本網站與 Tesseract 或 Microsoft OCR 沒有任何關聯,也未獲得其認可或贊助。 所有產品名稱、標誌和品牌均為其各自所有者的財產。 比較僅供參考,反映的是撰寫本文時可公開取得的資訊。

常見問題解答

Tesseract 和 Microsoft OCR 在語言支持方面的比較如何?

Tesseract 支援超過 100 種語言,並提供豐富的語言數據自訂選項,使其高度多樣化。微軟 OCR 通過 Azure 認知服務提供多語言支持,允許通過雲端擴展語言處理能力。

哪種 OCR 工具更適合與 C# 專案整合?

微軟 OCR 通過 Azure 認知服務可以無縫整合到 C# 專案中,提供雲端可擴展性。Tesseract 可以使用 Tesseract.NET 包裝器進行整合。作為替代,IronOCR 提供了與 C# 專案輕鬆整合的功能,並包含針對 .NET 開發者的額外功能。

使用 Microsoft OCR 的主要優勢是什麼?

Microsoft OCR 通過 Azure 認知服務的雲端系統提供高準確性、擴展性和多語言支持,使用深度神經網路進行文本識別。

是什麼讓 Tesseract OCR 適合於自訂化?

Tesseract OCR 是開源軟體,提供豐富的自訂化選項,使開發人員能夠將其適應各種專案需求。它允許進行自訂語言訓練以及識別設置的微調。

與 Tesseract 和 Microsoft OCR 相比,IronOCR 如何增強 C# 專案?

IronOCR 提供輕鬆整合、高準確性和多語言支持,具備高級功能,如圖像預處理與 PDF 文本提取。它旨在無縫用於 .NET 應用程序,為開發者提供直觀接口。

選擇 C# 的 OCR 工具時應考慮哪些因素?

選擇 C# 的 OCR 工具時,應考慮語言支持、整合便捷性、自訂選項、擴展性和特定專案需求等因素。Tesseract 適合自訂化,Microsoft OCR 適合雲端擴展性,而 IronOCR 則適合與 .NET 的輕鬆整合。

IronOCR 能否用於將圖像轉換為 C# 應用程序中的文本?

是的,IronOCR 可以用於在 C# 應用程序中將圖像轉換為文本。它支持多種圖像格式,並在文本識別方面提供高準確性,對開發人員來說是個可靠的選擇。

Kannaopat Udonpant
軟體工程師
在成為軟件工程師之前,Kannapat 從日本北海道大學完成了環境資源博士學位。在追逐學位期间,Kannapat 還成為了生產工程系一部份——汽車机器人實验室的成員。2022 年,他利用他的 C# 技能加入 Iron Software 的工程團隊, 專注於 IronPDF。Kannapat 珍惜他的工作,因為他直接向编写大部分 IronPDF 使用的代碼的開發者学习。除了同行学习,Kannapat 还喜欢在 Iron Software 工作的社交十环。当他不编写代碼或文檔時,Kannapat 通常在他的 PS5 上打游戏或重看《The Last of Us》。

鋼鐵支援團隊

我們每週 5 天,每天 24 小時在線上。
聊天
電子郵件
打電話給我