フッターコンテンツにスキップ
他のコンポーネントと比較する

Paddle OCR対Tesseract:詳細なOCR比較

適切な光学文字認識 (OCR) ツールを選択することは、テキスト画像を編集可能で検索可能なデータに変換したいと考えている人にとって非常に重要です。 Two popular options in the field are Paddle OCR and Tesseract. どちらも異なるOCR技術を活用し、異なるニーズに対応しています。 この比較では、あなたのニーズに最適なオプションを見つけるために、さまざまなOCRエンジンを評価することに焦点を当てています。

簡単な作業を行っている場合でも、複雑な文書を扱っている場合でも、Paddle OCRおよびTesseractの能力を理解することは、より効率的なデータ処理への第一歩となる可能性があります。 また、IronOCR ライブラリを複数のOCRライブラリの一つとして導入し、より広範な比較を提供し、どのツールがあなたのニーズに最も適しているかを理解するのを手助けします。

Paddle OCR

Paddle OCR は、多言語テキスト認識のために設計された高度なテキスト認識モデルを備えた注目すべきソリューションとして登場しました。PaddlePaddle深層学習フレームワークの機能を活用しています。 PaddlePaddleによって開発されたOCRシステムは、優れたパフォーマンスと広範な言語サポートのために調整されています。 このシステムは50以上の言語をサポートすることにより、データ注釈、合成、およびモデルデプロイのための一連のツールを提供し、サーバー、モバイルデバイス、組み込みシステム、およびIoTデバイスを含むさまざまなプラットフォームにわたって機能します。

主要機能

Paddle OCRはさまざまなアプリケーション向けにユーザーフレンドリーなAPIを備え、多くのOCR機能を提供します。 以下はその際立った特徴です:

  1. 多言語サポート:Paddle OCRは複数の言語でテキストを処理でき、50以上の言語をサポートしています。
  2. 高度なアルゴリズム:テキスト検出、認識、および分類のための高度なOCRメソッドとアルゴリズムを取り入れています。 これには、コネクショニスト時間領域分類(CTC)損失など、最新の深層学習研究が含まれており、テキストシーケンスを正確に予測し整合する上で重要な役割を果たします。
  3. 効率と速度:速度と正確性の両方で最適化されたPaddle OCRは、大量の画像を迅速に処理する能力を持ち、高スループットアプリケーションに適しています。

ライセンス

Paddle OCRはApache License 2.0の下でリリースされており、使用、修正、配布が無料で行えます。 インストールは簡単で、通常PythonのPyPIのようなパッケージマネージャを使用します。 ユーザーは数コマンドでPaddle OCRとその依存関係を迅速にインストールし、プロジェクトへの簡単な組み込みを促進できます。

PaddleSharpのインストール

Visual StudioでPaddleOCRをC#プロジェクトに統合することは、Paddle Inference C# APIの.NETラッパーであるPaddleSharpを使用することで合理化できます。 これにより、.NET環境内でPaddlePaddleの深層学習機能を直接利用できます。 ここでは、プロジェクトでPaddleSharpをセットアップするためのステップバイステップガイドを示します:

前提条件

  • プロジェクトの要件に応じて、.NET Frameworkまたは.NET Coreのサポートを備えたVisual Studioがシステムにインストールされていること。
  • C#の理解とVisual StudioでのNuGetパッケージ管理に慣れていることも重要です。

PaddleSharpパッケージのインストール

  1. Visual Studioでプロジェクトを開きます。
  2. ソリューションエクスプローラーでプロジェクトを右クリックし、「NuGetパッケージ管理」オプションに移動します。
    • Sdcb.PaddleInferenceを検索し、パッケージをインストールします。 これは.NETアプリケーションがPaddle推論エンジンを利用できるようにするコアバインディングです。

Paddle OCR vs Tesseract (OCR 機能の比較): 図1 - NuGetパッケージマネージャでのSdcb.PaddleInferenceの検索

  1. 次のパッケージをインストールします:
    • Scdb.PaddleOCR
    • OpenCvSharp4
    • Scdb.PaddleOCR.Models.Online
    • OpenCvSharp4.runtime.win

ネイティブおよびインフラストラクチャパッケージを追加

  • 対象プラットフォーム(Windows/Linux)および要件(CPU/GPU)に応じて、追加のパッケージが必要になる場合があります。 Windowsの場合、MKLサポートのためのSdcb.PaddleInference.runtime.win64.mklやGPUサポートのためのSdcb.PaddleInference.runtime.win64.cudaなどのパッケージが必要になる場合があります。
  • NuGetパッケージマネージャを通じてこれらをインストールし、開発および対象実行環境との互換性を確保してください。

コード例

using System;
using System.Diagnostics;
using Sdcb.PaddleOCR;
using Sdcb.PaddleOCR.Online;
using OpenCvSharp;

class PaddleOcrSample
{
    static async Task Main()
    {
        // Download English OCR model
        FullOcrModel model = await OnlineFullModels.EnglishV3.DownloadAsync();

        // Set up PaddleOCR with the downloaded model
        using (PaddleOcrAll ocrEngine = new(model)
        {
            AllowRotateDetection = true,
            Enable180Classification = false, // Optimize for performance
        })
        using (Mat imgSrc = Cv2.ImRead(@"read.jpg")) // Load the image
        {
            // Perform OCR and measure elapsed time
            Stopwatch stopWatch = Stopwatch.StartNew();
            PaddleOcrResult result = ocrEngine.Run(imgSrc);
            Console.WriteLine($"Elapsed={stopWatch.ElapsedMilliseconds} ms");
            Console.WriteLine(result.Text);
        }
    }
}
using System;
using System.Diagnostics;
using Sdcb.PaddleOCR;
using Sdcb.PaddleOCR.Online;
using OpenCvSharp;

class PaddleOcrSample
{
    static async Task Main()
    {
        // Download English OCR model
        FullOcrModel model = await OnlineFullModels.EnglishV3.DownloadAsync();

        // Set up PaddleOCR with the downloaded model
        using (PaddleOcrAll ocrEngine = new(model)
        {
            AllowRotateDetection = true,
            Enable180Classification = false, // Optimize for performance
        })
        using (Mat imgSrc = Cv2.ImRead(@"read.jpg")) // Load the image
        {
            // Perform OCR and measure elapsed time
            Stopwatch stopWatch = Stopwatch.StartNew();
            PaddleOcrResult result = ocrEngine.Run(imgSrc);
            Console.WriteLine($"Elapsed={stopWatch.ElapsedMilliseconds} ms");
            Console.WriteLine(result.Text);
        }
    }
}
Imports System
Imports System.Diagnostics
Imports Sdcb.PaddleOCR
Imports Sdcb.PaddleOCR.Online
Imports OpenCvSharp

Friend Class PaddleOcrSample
	Shared Async Function Main() As Task
		' Download English OCR model
		Dim model As FullOcrModel = Await OnlineFullModels.EnglishV3.DownloadAsync()

		' Set up PaddleOCR with the downloaded model
		Using ocrEngine As New PaddleOcrAll(model) With {
			.AllowRotateDetection = True,
			.Enable180Classification = False
		}
		Using imgSrc As Mat = Cv2.ImRead("read.jpg") ' Load the image
			' Perform OCR and measure elapsed time
			Dim stopWatch As Stopwatch = Stopwatch.StartNew()
			Dim result As PaddleOcrResult = ocrEngine.Run(imgSrc)
			Console.WriteLine($"Elapsed={stopWatch.ElapsedMilliseconds} ms")
			Console.WriteLine(result.Text)
		End Using
		End Using
	End Function
End Class
$vbLabelText   $csharpLabel

Paddle OCR vs Tesseract (OCR 機能の比較): 図 2 - 前のコードからのコンソール出力

Tesseract OCR

Tesseract は、Apache 2.0ライセンスのもとでライセンスされた広く認識されているオープンソースのOCRエンジンです。 その開発は、ヒューレット・パッカード研究所で開始され、2018年までGoogleの監督下で継続され、その後オープンソース化されました。 現在は、コントリビューターのコミュニティによって管理されています。 このエンジンは、100以上の言語を読む能力と、PNG、JPEG、TIFFなどのさまざまな画像フォーマットのサポートで知られています。 それは、プレーンテキスト、hOCR (HTML)、PDF、その他のさまざまなフォーマットでの出力をサポートしています。

主要機能

以下はその主要な特徴の概要です:

  1. 広範な言語サポート:100以上の言語を認識する能力を備えたTesseractは、グローバルなオーディエンスに対応しています。 エンジンはUnicode (UTF-8)をサポートしており、多言語ドキュメントの処理を可能にします。
  2. ニューラルネットワークベースの認識:Tesseractのバージョン4以上では、ニューラルネットワーク(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を検索します。
  4. Tesseract NuGetパッケージマネージャをインストールします。

Paddle OCR vs Tesseract (OCR 機能の比較): 図 3 - NuGetパッケージマネージャを使用したTesseractのインストール

  1. このリンクからTessdataをダウンロードしてください。 Tesseract OCRを使用することは重要です。

コード例

using Tesseract;

class TesseractSample
{
    static void Main()
    {
        // Initialize Tesseract engine with English language support
        using (var engine = new TesseractEngine(@".\tessdata-main", "eng", EngineMode.Default))
        {
            // Load image from file
            using (var img = Pix.LoadFromFile(@"read.jpg"))
            {
                // Process image with Tesseract to extract text
                using (var page = engine.Process(img))
                {
                    var text = page.GetText();
                    Console.WriteLine(text); // Print extracted text to console
                }
            }
        }
    }
}
using Tesseract;

class TesseractSample
{
    static void Main()
    {
        // Initialize Tesseract engine with English language support
        using (var engine = new TesseractEngine(@".\tessdata-main", "eng", EngineMode.Default))
        {
            // Load image from file
            using (var img = Pix.LoadFromFile(@"read.jpg"))
            {
                // Process image with Tesseract to extract text
                using (var page = engine.Process(img))
                {
                    var text = page.GetText();
                    Console.WriteLine(text); // Print extracted text to console
                }
            }
        }
    }
}
Imports Tesseract

Friend Class TesseractSample
	Shared Sub Main()
		' Initialize Tesseract engine with English language support
		Using engine = New TesseractEngine(".\tessdata-main", "eng", EngineMode.Default)
			' Load image from file
			Using img = Pix.LoadFromFile("read.jpg")
				' Process image with Tesseract to extract text
				Using page = engine.Process(img)
					Dim text = page.GetText()
					Console.WriteLine(text) ' Print extracted text to console
				End Using
			End Using
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

Paddle OCR vs Tesseract (OCR 機能の比較): 図 4 - 前述のコード例のコンソール出力

IronOCRの概要

IronOCR is an advanced OCR (Optical Character Recognition) library that significantly enhances the capabilities of .NET developers to テキストを抽出する能力を大幅に向上させます。 Tesseract OCRエンジンの基盤の上に構築されているIronOCRは、大きな安定性とAccuracyという点でネイティブC#体験を提供し、基本的なTesseractライブラリよりも優れています。 これは.NETアプリケーションおよびウェブサイトにシームレスに統合するように設計されており、プレーンテキストまたは構造化データフォーマットのいずれかへのテキスト抽出を可能にし、幅広い外国語を理解する能力を持っています。 深層学習のアルゴリズムを利用して、IronOCRは文字認識タスクにおいて比類のないAccompanyを持っています。

このライブラリは、単純なOCRタスクだけでなく広範なアプリケーションスペクトルにその機能を広げています。 プラットフォームのバリエーションをサポートしており、.NET 5から8、.NET Core 2x & 3x、そして.NET Framework 4.6.2以上を含みます。

主要機能

以下は、IronOCRを際立たせているいくつかの主要な属性や機能です:

  • 高度OCRエンジン:Tesseract 5を利用して、IronOCRは125以上の言語をサポートする高度なOCRエンジンを提供しています。 この機能は、多言語サポートを必要とするグローバルなアプリケーションにとって重要です。 ライブラリはほとんどの言語に対して高・中・速の品質オプションを提供し、カスタム言語やフォントトレーニングも含んでいます。これにより、柔軟性とテキスト認識の精度が向上します。
  • 包括的なドキュメント処理:IronOCRは、イメージ(JPG、PNG、GIF、TIFF、BMP)、System.Drawingオブジェクト、ストリーム、およびPDFなど、さまざまなドキュメントタイプとフォーマットを処理できます。
  • 堅牢な画像処理:ライブラリは、シャープ化、解像度向上、ノイズ削減、および色補正(2値化、グレースケール、反転)などの強力なフィルターと画像処理ツールを含んでいます。
  • 構造化およびシンプルなデータ出力:IronOCRは、構造化データ出力(ページ、ブロック、段落、行、単語、文字)とシンプルなデータ出力(.NETテキスト文字列、バーコードおよびQRデータ、画像)の両方を提供します。
  • 同時処理とコンピュータビジョン:ライブラリは、単一およびマルチスレッド、非同期操作をサポートし、画像内のテキスト領域を識別するコンピュータビジョン機能を提供し、複雑またはノイズのある画像でのテキスト認識の精度と効率を高めます。

IronOCRを.NETプロジェクトにインストールするには、開発環境と好みに応じていくつかの方法があります。 ここでは、あなたを始めるための簡略化されたガイドを示します:

ライセンス

IronOCRはプロジェクトや開発者のニーズに応じてさまざまなライセンシングオプションを提供しており、ユーザーに柔軟性とスケーラビリティを保証しています。 ライセンシング条件は永続的であり、ライセンスを購入する once、再発料金はありません。 さらに、すべてのライセンスには30日間の返金保証、1年間の製品サポートとアップデートが含まれており、開発、ステージング、プロダクション環境での有効です。 ライセンス価格は$799から始まります。 ライセンスを購入する前に無料トライアルを取得できます。

Google OCRのインストール

  1. ツール -> NuGetパッケージマネージャ -> パッケージマネージャコンソールへ移動します。
  2. コマンド Install-Package IronOcr を入力し、実行します。 このコマンドは、IronOCRをプロジェクトにフェッチし、インストールして使用準備を整えます。

Paddle OCR vs Tesseract (OCR 機能の比較): 図 5 - パッケージマネージャコンソールを使用してのIronOCRのインストール

コード例

IronOCRを使用して画像からテキストを抽出する方法のコード例を以下に示します:

using IronOcr;

class IronOcrSample
{
    static void Main()
    {
        // Apply license key once obtained
        IronOcr.License.LicenseKey = "License-Key"; 

        // Initialize IronTesseract for OCR processing
        var ocrEngine = new IronTesseract();

        // Perform OCR on the given image and print the text
        var ocrResult = ocrEngine.Read("read.jpg");
        Console.WriteLine(ocrResult.Text); // Print the extracted text
    }
}
using IronOcr;

class IronOcrSample
{
    static void Main()
    {
        // Apply license key once obtained
        IronOcr.License.LicenseKey = "License-Key"; 

        // Initialize IronTesseract for OCR processing
        var ocrEngine = new IronTesseract();

        // Perform OCR on the given image and print the text
        var ocrResult = ocrEngine.Read("read.jpg");
        Console.WriteLine(ocrResult.Text); // Print the extracted text
    }
}
Imports IronOcr

Friend Class IronOcrSample
	Shared Sub Main()
		' Apply license key once obtained
		IronOcr.License.LicenseKey = "License-Key"

		' Initialize IronTesseract for OCR processing
		Dim ocrEngine = New IronTesseract()

		' Perform OCR on the given image and print the text
		Dim ocrResult = ocrEngine.Read("read.jpg")
		Console.WriteLine(ocrResult.Text) ' Print the extracted text
	End Sub
End Class
$vbLabelText   $csharpLabel

Paddle OCR vs Tesseract (OCR 機能の比較): 図 6 - 前のコード例からのコンソール出力

比較

IronOCR、PaddleOCR、Tesseractを光学文字認識(OCR)アプリケーションにとって重要なさまざまな要素にわたり評価する際には、それぞれのツールが精度、速度、言語サポート、カスタマイズオプション、およびコミュニティサポートの文脈における強みを考慮することが重要です。

精度

PaddleOCRとTesseractはいずれもベンチマークで高い精度を示していますが、IronOCRは前処理手順を微調整し調整できる能力が、さまざまなドキュメントタイプにわたって優れた結果を提供する上でのアドバンテージを提供します。

スピード

処理速度に関しては、IronOCRは.NET環境内でのドキュメント処理の効率的な処理が目立ち、迅速な文字認識のために最適化されたパフォーマンスを提供します。 PaddleOCRやTesseractもリアルタイム処理機能で知られています。

言語サポート

Tesseractは100を超える言語をサポートし、言語カバー率において最も多様なOCRツールの1つです。 PaddleOCRも特にアジア言語に対して印象的な言語サポートを提供しています。 IronOCRは、Tesseractのエンジンを利用し、この膨大な言語サポートを拡張し、追加の拡張と最適化を組み合わせています。 この組み合わせにより、対応する言語の範囲が増えるだけでなく、IronOCRの拡張が直接サポートする言語に対する精度と速度が向上しています。

カスタマイズオプション

IronOCRは、画像前処理、テキストフィルタリング、カスタム辞書を含む幅広いオプションを提供することでこのカスタマイズにおいて際立っています。 デフォルト設定では不十分かもしれない複雑なOCRシナリオでこのレベルのカスタマイズは特に価値があります。PaddleOCRとTesseractはカスタマイズの能力を持っていますが、IronOCRの.NETエコシステム内の開発者ニーズに対する焦点は、より高い柔軟性を保証しています。

コミュニティサポート

Tesseractは、その長い歴史とオープンソースの性質により広大で確立されたコミュニティを享受している一方で、PaddleOCRは急速に成長しているコミュニティを持ち、IronOCRは.NET開発者の焦点を絞ったコミュニティから利益を得ています。

結論

結論として、Tesseractは広範なカスタマイズと幅広いコミュニティサポートを備えたOCRプロジェクトの堅固な基盤を提供しており、PaddleOCRは高い精度と速度を提供する最新の深層学習技術を提供し、IronOCRは.NET開発者や企業のための有望な選択肢として台頭しています。 そのオンプレミス展開、包括的な言語サポート、費用対効果の高いライセンシングモデルへのフォーカスは、データセキュリティ、財務予測性、および.NETアプリケーションとの統合を優先する人々にとってIronOCRを魅力的な選択肢として位置づけています。

IronOCRは、最初の評価のための無料トライアルを含む、柔軟なライセンシングオプションを企業に提供し、$799から始まるライセンスを持ち、パフォーマンスと費用のバランスを求めるすべての規模の組織に対応しています。

ご注意Paddle OCRとTesseractはそれぞれの所有者の登録商標です。 このサイトは、Paddle OCRまたはTesseractと提携しておらず、支持されておらず、またはスポンサーされていません。 すべての製品名、ロゴ、およびブランドは各所有者の所有物です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。

よくある質問

Paddle OCRとTesseractは言語サポートにおいてどのように異なりますか?

Paddle OCRは50以上の言語をサポートしており、特にアジアの言語に強みがありますが、Tesseractは100以上の言語をサポートし、より広範な言語処理能力を提供します。

IronOCRが.NET開発者にとって優れた選択肢とする主要な機能は何ですか?

IronOCRは.NET開発者にとってネイティブのC#体験を提供し、125以上の言語をサポートし、画像処理や構造化データ出力などの高度な機能を提供しており、その精度と統合能力を向上させます。

OCRを使用してテキストの画像を編集可能なデータに変換する方法は?

Paddle OCR、Tesseract、またはIronOCRのようなOCRツールを使用できます。IronOCRは高度な画像処理ツールを提供し、カスタマイズ性が高く、テキストの画像を編集可能なデータに変換するための信頼できる選択肢です。

IronOCRはどのようなカスタマイズオプションを提供しますか?

IronOCRは、画像前処理、テキストフィルタリング、カスタム辞書などの幅広いカスタマイズオプションを提供しており、開発者が特定のニーズに合わせてOCRプロセスを調整することができます。

Paddle OCRは高スループットアプリケーションに適していますか?

はい、Paddle OCRは速度と精度に最適化されており、大量のテキストを迅速に処理する必要がある高スループットアプリケーションに適しています。

Tesseractをリアルタイムのテキスト認識に使用できますか?

はい、Tesseractはリアルタイムのテキスト認識が可能で、ニューラルネットワークベースの認識によって精度と速度が向上しており、多言語文書の処理に役立ちます。

IronOCRのライセンスモデルはどのようになっていますか?

IronOCRは永続的な条件、30日間の返金保証、一年間の製品サポートと更新を含むさまざまなライセンスオプションを提供しており、開発、ステージング、本番環境に適しています。

IronOCRは無料トライアルを提供していますか?

はい、IronOCRは機能を評価できる無料の試用版を提供しており、ライセンスを購入する前に試すことができます。

Kannaopat Udonpant
ソフトウェアエンジニア
ソフトウェアエンジニアになる前に、Kannapatは北海道大学で環境資源の博士号を修了しました。博士号を追求する間に、彼はバイオプロダクションエンジニアリング学科の一部である車両ロボティクスラボラトリーのメンバーになりました。2022年には、C#のスキルを活用してIron Softwareのエンジニアリングチームに参加し、IronPDFに注力しています。Kannapatは、IronPDFの多くのコードを執筆している開発者から直接学んでいるため、この仕事を大切にしています。同僚から学びながら、Iron Softwareでの働く社会的側面も楽しんでいます。コードやドキュメントを書いていない時は、KannapatはPS5でゲームをしたり、『The Last of Us』を再視聴したりしていることが多いです。