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

Paddle OCR対Tesseract:詳細なOCR比較

適切な光学文字認識(OCR)ツールの選択は、テキストの画像を編集可能で検索可能なデータに変換しようとしている人にとって重要です。 この分野で人気のある選択肢としては、Paddle OCRTesseractがあります。 どちらも異なるOCR技術を活用し、異なるニーズに対応しています。 この比較は、異なるOCRエンジンを評価し、あなたのニーズに最も適したオプションを見つける手助けをすることに焦点を当てています。

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

Paddle OCR

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

主な機能

Paddle OCRは、多様なアプリケーションのためのユーザーフレンドリーなAPIを備え、多くのOCR能力を提供しています。 以下はその際立った機能です:

  1. 多言語サポート: Paddle OCRは50以上の言語をサポートすることで複数の言語でのテキスト処理が可能です。
  2. 先進的なアルゴリズム: テキスト検出、認識、分類のための先進的なOCRメソッドとアルゴリズムを組み込んでいます。 これらには、接続時間的分類(CTC)損失のような最新の深層学習研究が含まれ、テキストシーケンスの正確な予測と整合に重要な役割を果たしています。
  3. 効率と速度: 高速かつ正確さに最適化されており、大量の画像を迅速に処理することができ、高スループットのアプリケーションに適しています。

ライセンス

Paddle OCRはApache License 2.0の下でリリースされており、自由に使用、変更、配布することができます。 インストールは簡単で、通常はPythonのPyPIのようなパッケージマネージャを使用します。 ユーザーは数個のコマンドでPaddle OCRとその依存関係を迅速にインストールし、簡単にプロジェクトに統合できます。

PaddleSharpのインストール

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

前提条件

  • プロジェクトの要件に応じて、システムに.NET Frameworkまたは.NET CoreサポートがあるVisual Studioがインストールされていることを確認してください。
  • C#の知識とVisual StudioでのNuGetパッケージ管理に精通していることも重要です。

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

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

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の主導のもと進行し、その後オープンソース化されました。 現在、それは貢献者のコミュニティによって維持されています。 このエンジンは、PNG、JPEG、TIFFなどを含むさまざまな画像フォーマットのサポートと100以上の言語の読み取り能力で知られています。 出力はプレーンテキスト、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の下でリリースされています。このライセンスは最も自由でオープンなライセンスの1つであり、ソフトウェアの使用、修正、配布をほぼ制限なく許可し、プロプライエタリソフトウェアプロジェクトにも使用できます。

Tesseractのインストール

NuGetを使用してVisual StudioプロジェクトにTesseract OCRをインストールするには、以下の手順を実行します:

  1. Visual Studioを開く: Visual Studioを起動し、プロジェクトを開くか新しいプロジェクトを作成します。
  2. Solution Explorerでプロジェクトを右クリックし、持ち越しトンNuGetパッケージ...に進みます。
  3. NuGet Package ManagerのBrowseタブに切り替え、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は、画像やPDFからテキストを抽出する能力を.NET開発者に格段に向上させる先進的なOCR(光学文字認識)ライブラリです。 Tesseract OCRエンジンの基盤を活用しつつ、IronOCRはネイティブのC#エクスペリエンスを提供し、Tesseractライブラリの基本よりも優れた安定性と精度を誇ります。 .NETアプリケーションやウェブサイトにシームレスに統合するように設計されており、テキストをプレーンテキストまたは構造化されたデータ形式に抽出することができ、外国語の幅広い分野を理解する能力を備えています。 深層学習アルゴリズムを使用して、IronOCRはテキスト認識タスクにおいて比類のない精度を達成します。

このライブラリは、単純な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を含むさまざまな文書タイプとフォーマットを処理できます。
  • 堅牢な画像処理: このライブラリには、シャープニング、解像度の向上、ノイズ低減、カラー補正(二値化、グレースケール、反転)などの強力なフィルタと画像処理ツールのセットが含まれています。
  • 構造化およびシンプルなデータ出力: IronOCRは、構造化データ出力(ページ、ブロック、段落、行、単語、文字)とシンプルなデータ出力(.NETテキスト文字列、バーコードとQRデータ、画像)の両方を提供します。
  • 同時処理とコンピュータービジョン: ライブラリはシングルおよびマルチスレッド、非同期操作をサポートし、コンピュータービジョンの機能を提供して画像内のテキスト領域を識別し、複雑またはノイズの多い画像でのテキスト認識の精度と効率を向上させます。

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

ライセンス

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

IronOCRのインストール

  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 - 前回のコード例からのコンソール出力

比較

光学文字認識(OCR)アプリケーションにとって重要な様々な要素でIronOCR、PaddleOCR、そしてTesseractを評価する際に、各ツールの精度、速度、言語サポート、カスタマイズオプション、コミュニティサポートの強みを考慮することが重要です。

精度

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開発者と企業にとって魅力的な選択肢として浮上します。 そのオンプレミスデプロイメントへの焦点、包括的な言語サポート、およびコスト効果の高いライセンスモデルは、データセキュリティ、財務的予測可能性、.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』を再視聴したりしていることが多いです。