與其他組件比較

Paddle OCR 與 Tesseract:詳細的 OCR 比較

Kannaopat Udonpant
坎納帕特·烏頓潘
2024年4月29日
分享:

選擇合適的光學字符識別 (OCR) 工具對於任何希望將文字圖像轉換為可編輯和可搜尋數據的人來說都至關重要。 該領域中的兩個熱門選擇是Paddle OCRTesseract。 兩者都利用不同的OCR技術,滿足不同的需求。 本比較著重於評估不同的OCR引擎,以幫助您找到最適合您需求的選項。

無論您正在處理簡單的任務或是面對複雜的文件,了解Paddle OCR和Tesseract的功能可能是邁向更高效數據處理的第一步。 我們還將從一系列 OCR 函式庫中介紹一個函式庫,IronOCR,提供更廣泛的比較,以幫助您瞭解哪個工具最適合您的需求。

Paddle OCR

Paddle OCR 作為一個顯著的解決方案,具有先進的文字識別模型,專為多語言文字識別設計,利用 PaddlePaddle 深度學習框架的能力。 PaddlePaddle 開發的 OCR 系統專為高效性能和廣泛的語言支持而設計。 該系統的特點在於支持超過50種語言,並提供一套用於數據標注、合成和模型部署的工具,可在包括伺服器、移動設備、嵌入式系統以及物聯網設備在內的各種平台上使用。

主要功能

Paddle OCR 擁有多種 OCR 功能,並提供用戶友好的 API,適用於各種應用。 以下是其顯著特點:

  1. 多語言支援:Paddle OCR 可以處理多種語言的文本,支援超過 50 種語言。

  2. 進階演算法:它結合了進階的OCR方法和算法,用於文本檢測、識別和分類。 其中包括深度學習研究中的最新技術,例如聯結主義時間分類(CTC)損失,這在精確預測和對齊文本序列中起著至關重要的作用。

  3. 效率和速度:Paddle OCR 經過優化,兼具速度和準確性,能快速處理大量圖像,非常適合高吞吐量的應用。

許可證

Paddle OCR 根據 Apache License 2.0 發布,確保使用、修改和分發皆為免費。 安裝過程簡單,通常涉及使用像 pip 這樣的 Python 套件管理器。 使用者可以通過幾個指令快速安裝 Paddle OCR 及其相依項目,從而輕鬆整合到專案中。

安裝 PaddleSharp

將 PaddleOCR 整合到 Visual Studio 的 C# 專案中,可以藉由使用 PaddleSharp 來簡化,這是一個用於 Paddle Inference C# API 的 .NET 包裝器。 這允許在 .NET 環境中直接使用 PaddlePaddle 的深度學習功能。 以下是將 PaddleSharp 設置到您的項目中的逐步指南:

先決條件

  • 確保您的系統已安裝 Visual Studio,並根據您的專案需求支援 .NET Framework 或 .NET Core。
  • 了解 C# 並熟悉 Visual Studio 中的 NuGet 套件管理也是必不可少的。

    安裝 PaddleSharp 套件

  • 在 Visual Studio 中打開您的專案。
  • 在方案總管中右鍵點擊您的專案,然後選擇「管理 NuGet 套件」選項。

    • 搜索 Sdcb.PaddleInference 並安裝該套件。 這是允許 .NET 應用程式利用 Paddle Inference 引擎的核心綁定。

    Paddle OCR vs Tesseract(OCR功能比較):圖1 - 在NuGet套件管理器中瀏覽Sdcb.PaddleInference

    • 然後安裝以下套件:

      • Scdb.PaddleOCR

      • OpenCvSharp4

      • Scdb.PaddleOCR.Models.Online
    • OpenCvSharp4.runtime.win

    新增本機和基礎設施套件

  • 根據您的目標平台(Windows/Linux)和需求(CPU/GPU),可能需要額外的套件。 對於 Windows,您可能需要像 Sdcb.PaddleInference.runtime.win64.mkl 這樣的套件以支持 MKL,或者 **Sdcb.PaddleInference.runtime.win64.cuda*** 以支持 GPU。
  • 通過 NuGet 套件管理器安裝這些程式,確保與您的開發和目標執行環境相容。

範例程式碼

using System;
FullOcrModel model = await OnlineFullModels.EnglishV3.DownloadAsync();
using (PaddleOcrAll all = new(model)
{
    AllowRotateDetection = true,
    Enable180Classification = false,
})
using (Mat imgSrc = Cv2.ImRead(@"read.jpg"))
{
    Stopwatch stopWatch = Stopwatch.StartNew();
    PaddleOcrResult result = all.Run(imgSrc);
    Console.WriteLine($"lapsed={sw.ElapsedMilliseconds} ms");
    Console.WriteLine(result.Text);
}
using System;
FullOcrModel model = await OnlineFullModels.EnglishV3.DownloadAsync();
using (PaddleOcrAll all = new(model)
{
    AllowRotateDetection = true,
    Enable180Classification = false,
})
using (Mat imgSrc = Cv2.ImRead(@"read.jpg"))
{
    Stopwatch stopWatch = Stopwatch.StartNew();
    PaddleOcrResult result = all.Run(imgSrc);
    Console.WriteLine($"lapsed={sw.ElapsedMilliseconds} ms");
    Console.WriteLine(result.Text);
}
Imports System
Private model As FullOcrModel = await OnlineFullModels.EnglishV3.DownloadAsync()
Using all As New PaddleOcrAll(model) With {
	.AllowRotateDetection = True,
	.Enable180Classification = False
}
Using imgSrc As Mat = Cv2.ImRead("read.jpg")
	Dim stopWatch As Stopwatch = Stopwatch.StartNew()
	Dim result As PaddleOcrResult = all.Run(imgSrc)
	Console.WriteLine($"lapsed={sw.ElapsedMilliseconds} ms")
	Console.WriteLine(result.Text)
End Using
End Using
$vbLabelText   $csharpLabel

Paddle OCR vs Tesseract(OCR 功能比較):圖 2 - 從前面代碼的控制台輸出。

Tesseract OCR

Tesseract 是一個廣受認可的開源 OCR 引擎,並遵循 Apache 2.0 許可證。 它的開發歷程始於惠普實驗室,並在 Google 的管理下持續到 2018 年,之後被開源。 現在由貢獻者社群維護。 這個引擎以其能夠閱讀超過 100 種語言以及支持多種圖像格式(包括 PNG、JPEG 和 TIFF)而聞名。 它能輸出多種格式,如純文字、hOCR(HTML)、PDF等。

主要功能

以下是其主要功能概述:

  1. 廣泛的語言支援:具備識別超過100種語言的能力,Tesseract滿足全球用戶的需求。 該引擎支持 Unicode (UTF-8),可以處理多語言文件。

  2. 基於神經網絡的識別:從第4版及以上的 Tesseract 開始,引入了基於神經網絡(LSTM)的 OCR 引擎,提升了其對文本行識別的準確性,相較於傳統的字符模式識別方法。

  3. 多功能輸出格式:Tesseract 支援多種輸出格式,包括純文字、hOCR(HTML)、PDF 和 TSV,能夠適應不同的使用案例。

許可證

Tesseract OCR 在 Apache License 2.0 許可下發布。此許可證是最寬松和開放的許可之一,允許在幾乎無限制的情況下使用、修改和分發軟體,即使在專有軟體項目中也是如此。

安裝 Tesseract

若要在 Visual Studio 專案中使用 NuGet 安裝 Tesseract OCR,請按照以下步驟操作:

  1. 開啟 Visual Studio:啟動 Visual Studio 並打開您的專案或創建一個新專案。

  2. 在方案總管中右鍵點擊您的專案,然後選擇管理 NuGet 套件...。3. 在 NuGet 套件管理器中,切換到瀏覽標籤並搜尋Tesseract

    1. 安裝 Tesseract NuGet 套件管理器。

    Paddle OCR與Tesseract (OCR功能比較):圖3 - 使用NuGet封裝管理器安裝Tesseract

  3. 從這個連結下載Tessdata。 使用 Tesseract OCR 是很重要的。

範例程式碼

using Tesseract;
using (var engine = new TesseractEngine(@".\tessdata-main", "eng", EngineMode.Default))
{
    using (var img = Pix.LoadFromFile(@"read.jpg"))
    {
        using (var page = engine.Process(img))
        {
            var text = page.GetText();
            Console.WriteLine(text);
        }
    }
}
using Tesseract;
using (var engine = new TesseractEngine(@".\tessdata-main", "eng", EngineMode.Default))
{
    using (var img = Pix.LoadFromFile(@"read.jpg"))
    {
        using (var page = engine.Process(img))
        {
            var text = page.GetText();
            Console.WriteLine(text);
        }
    }
}
Imports Tesseract
Using engine = New TesseractEngine(".\tessdata-main", "eng", EngineMode.Default)
	Using img = Pix.LoadFromFile("read.jpg")
		Using page = engine.Process(img)
			Dim text = page.GetText()
			Console.WriteLine(text)
		End Using
	End Using
End Using
$vbLabelText   $csharpLabel

Paddle OCR vs Tesseract(OCR 功能比較):圖 4 - 來自前面代碼示例的控制台輸出

IronOCR

IronOCR 是一個先進的OCR(光學字符識別)函式庫,可顯著增強 .NET 開發人員從影像和 PDF 提取文本 的能力。 基於 Tesseract OCR 引擎的基礎,IronOCR 提供了原生的 C# 體驗,比基本的Tesseract library具有更高的穩定性和準確性。 它被設計為可以無縫整合到 .NET 應用程式和網站中,允許將文字提取為純文字或結構化數據格式,並且能夠理解多種外語。 利用深度學習算法,IronOCR在文本識別任務中實現了無與倫比的準確性。

這個庫不僅在簡單的OCR任務中表現出色,還將其功能擴展到廣泛的應用範圍。 它支持多種平台,包括從 5 到 8 的 .NET 版本、.NET Core 2x 和 3x,以及 .NET Framework 4.6.2 及以上版本。

主要功能

以下是使IronOCR脫穎而出的主要屬性和功能:

先進的OCR引擎:IronOCR採用Tesseract 5,提供先進的OCR引擎,支持125種以上的語言。 此功能對於需要多語言支持的全球應用程式至關重要。 該庫為大多數語言提供高、中、快速質量選項,包括自訂語言和字體訓練,確保文字識別的靈活性和高準確性。

全面文件處理:IronOCR 可以處理各種文件類型和格式,包括圖片(JPG、PNG、GIF、TIFF、BMP)、System.Drawing 物件、流和 PDF。

強大的影像處理:該函式庫包含一組強大的濾鏡和影像處理工具,例如銳化、解析度增強、降噪和顏色校正(如二值化、灰階、反轉)。

結構化和簡單的數據輸出:IronOCR 提供結構化數據輸出(頁面、區塊、段落、行、單詞、字符)和簡單的數據輸出(.NET 文本字符串、條碼和 QR 數據、圖像)。

並行處理和計算機視覺:該庫支持單線程和多線程、異步操作,並提供計算機視覺功能以識別圖像中的文本區域,提高在複雜或噪聲圖像中進行文本識別的準確性和效率。

要在您的 .NET 專案中安裝 IronOCR,您可以根據您的開發環境和偏好選擇多種方法。 以下是讓您開始使用的簡化指南:

許可證

IronOCR 提供各種授權選項,以滿足不同專案和開發人員的需求,確保為用戶提供靈活性和擴展性。 許可條款是永久的,這表示一旦您購買了許可證,就不會有經常性費用。 此外,每個許可證皆包含30天退款保證、一年的產品支持和更新,並適用於開發、預備和生產環境。 許可證價格從$749開始。 您可以在購買許可證之前獲得免費試用

安裝 IronOCR

  1. 導航至 工具 -> NuGet 套件管理員 -> 套件管理員主控台

    1. 輸入命令Install-Package IronOcr並執行。 此命令將 IronOCR 提取並安裝到您的專案中,使其準備好使用。

    Paddle OCR vs Tesseract(OCR 功能比較):圖 5 - 使用套件管理器控制台安裝 IronOCR

範例程式碼

以下是使用 IronOCR 從圖像中提取文本的程式碼示例:

using IronOcr;
IronOcr.License.LicenseKey = "License-Key";
var ocrMode = new IronTesseract();
var resultText = ocrMode.Read("read.jpg");
Console.WriteLine(resultText.Text);
using IronOcr;
IronOcr.License.LicenseKey = "License-Key";
var ocrMode = new IronTesseract();
var resultText = ocrMode.Read("read.jpg");
Console.WriteLine(resultText.Text);
Imports IronOcr
IronOcr.License.LicenseKey = "License-Key"
Dim ocrMode = New IronTesseract()
Dim resultText = ocrMode.Read("read.jpg")
Console.WriteLine(resultText.Text)
$vbLabelText   $csharpLabel

Paddle OCR vs Tesseract(OCR 功能比較):圖 6 - 從先前代碼範例的控制台輸出

比較

在評估 IronOCR、PaddleOCR 和 Tesseract 在光學字符識別 (OCR) 應用中多個重要因素時,必須考慮每個工具在準確性、速度、語言支持、客製化選項和社群支持方面的優勢。

準確性

PaddleOCR 和 Tesseract 都在基準測試中顯示出高準確度,但 IronOCR 能夠微調和調整預處理步驟,使其在各種文檔類型中提供更優異的結果。

速度

在處理速度方面,IronOCR 因其在 .NET 環境中高效處理文檔而脫穎而出,提供經過優化的性能以實現快速文本識別。 PaddleOCR 和 Tesseract 也以其即時處理能力而聞名。

語言支援

Tesseract 支援超過 100 種語言,是語言覆蓋範圍最廣泛的 OCR 工具之一。 PaddleOCR 也為語言支援提供了驚人的功能,特別是針對亞洲語言。 IronOCR 使用 Tesseract 引擎,繼承了這種廣泛的語言支持,並結合了額外的增強和優化。 這種組合不僅擴展了有效處理的語言範圍,還提升了 IronOCR 增強功能直接支持語言的準確性和速度。

自定義選項

IronOCR 在這種自訂化方面表現出色,透過提供多種選項允許開發人員對 OCR 流程進行微調,包括圖像預處理、文字過濾和自訂詞典。 此自定義程度在複雜的OCR場景中特別有價值,因為預設設定可能不夠用。雖然PaddleOCR和Tesseract提供一些自定義功能,但IronOCR著重於.NET生態系統中開發者的需求,確保更高的靈活性。

社群支援

儘管 Tesseract 因其悠久歷史和開源性質擁有廣大且成熟的社群,PaddleOCR 的社群正在快速成長,但 IronOCR 因其專注於 .NET 開發者的社群而受益。

結論

總結來說,儘管 Tesseract 提供了強大的基礎,擁有廣泛的自定義功能和社群支持,使其適合 OCR 項目,而 PaddleOCR 則引入了先進的深度學習技術以達到高精度和速度,但 IronOCR 作為 .NET 開發者和企業的引人注目選擇脫穎而出。 其對本地部署、全面的語言支援以及具成本效益的授權模式的關注,使 IronOCR 成為優先考慮資料安全性、財務可預測性及與 .NET 應用程式整合的人的具吸引力選擇。

IronOCR 對企業特別具有吸引力,因為其靈活的許可選項,其中包括 免費試用 用於初步評估,並且許可證起價為 $749,以迎合尋求性能和成本平衡的各類型組織。

Kannaopat Udonpant
坎納帕特·烏頓潘
軟體工程師
在成為軟體工程師之前,Kannapat 在日本北海道大學完成了環境資源博士學位。在攻讀學位期間,Kannapat 也成為了車輛機器人實驗室的成員,該實驗室隸屬於生物生產工程學系。2022 年,他利用自己的 C# 技能,加入了 Iron Software 的工程團隊,專注於 IronPDF 的開發。Kannapat 珍視這份工作,因為他可以直接向負責撰寫大部分 IronPDF 程式碼的開發人員學習。除了同儕學習外,Kannapat 還享受在 Iron Software 工作的社交方面。當他不在撰寫程式碼或文件時,Kannapat 通常會在 PS5 上玩遊戲或重看《最後生還者》。
< 上一頁
iOS OCR 庫(免費和付費工具比較)
下一個 >
ABBYY FineReader 與 Tesseract:OCR 比較