他のコンポーネントと比較

パドルOCRとTesseractの比較:OCRの詳細な比較

Kannaopat Udonpant
カンナパット・ウドンパント
2024年4月29日
共有:

テキストの画像を編集可能で検索可能なデータに変換したいと考えている人にとって、最適な光学式文字認識 (OCR) ツールを選ぶことは非常に重要です。 この分野で人気のある2つのオプションは、Paddle OCRTesseract です。 両者は異なるOCR技術を活用しており、異なるニーズに応えています。 この比較は、さまざまなOCRエンジンを評価し、あなたのニーズに最も適したオプションを見つけるための手助けをします。

シンプルなタスクに取り組んでいる場合でも、複雑なドキュメントを処理している場合でも、Paddle OCRとTesseractの機能を理解することが、より効率的なデータ処理への第一歩となるでしょう。 また、一連のOCRライブラリの中からIronOCRを紹介し、あなたのニーズに最も適したツールを理解するのに役立つ、より広範な比較を提供します。

パドル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用のpipなどのパッケージマネージャを使用します。 ユーザーは、いくつかのコマンドでPaddle OCRとその依存関係をすばやくインストールでき、プロジェクトへの統合が簡単にできます。

PaddleSharpをインストール

PaddleOCRをVisual StudioのC#プロジェクトに統合するには、Paddle Inference C# API用の.NETラッパーであるPaddleSharpを使用することで効率化できます。 これは、.NET環境内でPaddlePaddleのディープラーニング機能を直接使用することを可能にします。 以下は、プロジェクトにPaddleSharpをセットアップするためのステップバイステップガイドです:

前提条件

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

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

  • Visual Studioでプロジェクトを開きます。
  • ソリューションエクスプローラーでプロジェクトを右クリックし、「NuGet パッケージの管理」オプションに移動します。

    • Sdcb.PaddleInferenceを検索して、パッケージをインストールします。 これは、.NETアプリケーションがPaddle推論エンジンを利用できるようにするためのコアバインディングです。

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

    • 次に、以下のパッケージをインストールします:

      • 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;
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 - 前述のコードからのコンソール出力。

テッセラクト OCR (Tesseract OCR)

Tesseract は広く認識されているオープンソースのOCRエンジンで、Apache 2.0ライセンスの下でライセンスされています。 開発の経緯はヒューレット・パッカード研究所で始まり、2018年までGoogleの管理の下で続き、その後オープンソース化されました。 現在、コミュニティの貢献者によって維持されています。 このエンジンは、100以上の言語を読み取る能力と、PNG、JPEG、TIFFなどのさまざまな画像形式をサポートすることで評価されています。 それはプレーンテキストやhOCR (HTML)、PDFなどの複数の形式で出力します。

主な機能

主要機能の概要は以下の通りです:

  1. 広範な言語サポート: Tesseractは100以上の言語を認識できるため、世界中のユーザーに対応します。 エンジンはUnicode(UTF-8)をサポートしており、多言語ドキュメントの処理が可能です。

  2. ニューラルネットワークベースの認識:Tesseractのバージョン4以降では、ニューラルネットワーク(LSTM)ベースのOCRエンジンが導入され、従来の文字パターン認識手法に比べて、テキスト行認識の精度が向上しました。

  3. 多様な出力形式: Tesseract はプレーンテキスト、hOCR (HTML)、PDF、TSV を含むさまざまな出力形式をサポートしており、さまざまなユースケースに適応可能です。

ライセンス

Tesseract OCR は Apache License 2.0 の下でリリースされています。このライセンスは最も寛容でオープンなライセンスの一つであり、プロプライエタリソフトウェアプロジェクトにおいても、ソフトウェアの使用、修正、配布がほぼ無制限に許可されています。

Tesseractをインストールする

Visual StudioプロジェクトにTesseract OCRをNuGetを使ってインストールするには、以下の手順に従ってください。

  1. Visual Studio を開く: Visual Studio を起動し、プロジェクトを開くか、新しいプロジェクトを作成します。

  2. ソリューション エクスプローラーでプロジェクトを右クリックし、NuGet パッケージの管理... を選択します。3. NuGet パッケージ マネージャーで、参照 タブに切り替え、Tesseract を検索します。

    1. Tesseract NuGet パッケージマネージャーをインストールする。

    Paddle OCR vs 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対Tesseract(OCR機能の比較):図4 - 前のコード例からのコンソール出力

IronOCR

IronOCR は、高度なOCR(光学文字認識)ライブラリであり、.NET開発者が画像やPDFからテキストを抽出する能力を大幅に強化します。 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年間の製品サポートおよび更新が含まれており、開発、ステージング、およびプロダクション環境に有効です。 ライセンス価格は$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 対 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
カンナパット・ウドンパント
ソフトウェアエンジニア
ソフトウェアエンジニアになる前に、カンナパットは日本の北海道大学から環境資源学の博士号を取得しました。学位を取得する過程で、カンナパットはバイオプロダクション工学部に所属する車両ロボティクス研究所のメンバーにもなりました。2022年には、C#のスキルを活かしてIron Softwareのエンジニアリングチームに参加し、IronPDFに注力しています。カンナパットは、IronPDFで使用されているコードの大部分を作成した開発者から直接学べることに価値を見いだしています。同僚との学び合いに加えて、Iron Softwareで働くことの社会的側面も楽しんでいます。コードやドキュメントを書いていない時には、カンナパットは通常、PS5でゲームをしたり、『The Last of Us』を再視聴したりしています。
< 以前
iOS OCRライブラリ(無料と有料ツールの比較)
次へ >
ABBYY FineReader と Tesseract の OCR 比較