IronOCRとTesseract.NETの比較
光学文字認識は、画像で読み取れるテキストを特定します。 光学文字認識は、さまざまな方法で使用されています。 例えば、古い紙の書類をスキャンしてデジタル化し、検索可能な電子書類に変換することができます。 また、法執行機関が犯罪証拠を特定するために写真やビデオを調査する際にも有用です。 機械やコンピュータが任意の文書の文字を判別できるようにするためには、使用されているフォントとその文字が書かれている書記体系を理解する必要があります。 多くの場合、この理解は、大規模なテキスト画像データセットでトレーニングされた画像認識アルゴリズムと呼ばれる人工知能ソフトウェアから得られます。
OCRは、さまざまな用途を持つ重要な技術です。 スキャンされた紙の文書を読み取り、コンピュータで編集および検索可能なデジタルファイルに変換するためによく使用されます。 しかし、OCRは、看板やラベルの印刷されたテキスト、チェック、フォーム、その他のビジネス記録のテキスト、さらには音声録音からの医療記録の文字起こしなどのさまざまな情報にも適用できます。
この記事では、2つの.NET OCRライブラリを比較します。
- IronOCR
- The Tesseract.NET SDK
IronOCRの機能
IronOCRは.NETのための最新かつ最先端のOCR(光学文字認識)ライブラリです。 IronOCRはすべての画像形式からバーコードとQRコードをスキャンでき、最新のTesseract 5エンジンを使用してテキストを読み取りPDFスキャンを実行します。IronOCRはライブラリを追加せずにわずか数行でデスクトップアプリケーション、コンソール、Webアプリケーションのすべての.NETプロジェクトテンプレートにOCR機能を追加できます。 IronOCRは.NETプロジェクトにおいて最も正確なOCRエンジンの一つです。
IronOCRのユニークな特徴についていくつか話しましょう:
- IronOCRは完全に.NETアプリケーションのために作られています。
- IronOCRは最大125の言語をサポートします。
- IronOCRは傾いた画像の位置を修正し、画像からノイズを除去して正確な出力を提供します。
- IronOCRは低解像度の画像でも非常によく機能します。
- IronOCRは多種類のQRコードとバーコードを読み取ることができます。
- IronOCRはGifとTiff形式もサポートしています。
- IronOCRはマルチスレッディングをサポートしています。 これは他のOCRライブラリにはない素晴らしい機能です。 それはプロセスをスムーズにします。
- IronOCRはPDFファイルで簡単にOCRを実行し、OCRを使用して検索可能なPDF文書としてエクスポートできます。
IronOCRは主要な言語すべてをサポートしており、アラビア語、中国語、英語、フィンランド語、フランス語、ドイツ語、日本語など多くの言語に対応しています。 IronOCRは、バーコードデータ、プレーンテキスト、行、単語、段落、文字を含むOCR結果クラスなど、さまざまな形式で出力を表示する機能を提供します。 IronOCRはTesseractライブラリ技術を使用しています。
IronOCRはMac、Windows、Linuxマシンと互換性があります。 またAzureとDocker for Cloud Solutionsをサポートしています。 IronOCRの最新更新には、.NET core 3.1および.NET 6がサポートリストに含まれており、MacOS用のXamarinもサポートしています。
Tesseract OCRライブラリの機能
Tesseract.net SDKはPatagames製品であり、.NETプロジェクトのための光学文字認識(OCR)ライブラリで、.NETアプリケーションにおいてテキスト認識などのOCR機能を追加する方法を提供します。 Tesseract.NET SDKはさまざまな画像形式を読み取り、画像をテキストに変換できるOCRエンジンです。 60の言語をサポートしています。 またPDFドキュメントの読み取りとスキャンおよび検索可能なPDFファイルへの変換もサポートしています。 基本的にTesseract.NET SDKはTesseract OCRプロジェクトに基づいたクラスライブラリです。 OCRを実行するためのTesseractエンジンを持っています。 Patagames.Ocr.xmlにはAPIのXMLドキュメントが含まれています。
Tesseract.NET SDKは32ビットと64ビットのオペレーティングシステムで.NET Framework 2.0から4.5をサポートしています。 このSDKはWindows XPと、Windows 7、Vista、8、10、11などの他のWindowsバージョンで使用できます。32ビットと64ビットOSに対応しており、任意のCPUで簡単に使用できます。
残念ながら、.NET SDKはmacOSまたはLinuxでは利用できません。
IronOCRとTesseract.NET SDKの使用
プロジェクトでIronOCRとTesseract.NET SDKをどのように使用できるかを見てみましょう。
Visual StudioでのC#プロジェクトの作成
このプロジェクトを作成するためにVisual Studio 2022バージョンを使用しています。 スムーズな進行のために最新バージョンのVisual Studioを推奨します。 次にVisual Studioを開き、"新しいプロジェクトの作成"をクリックします。 その後、テンプレートから"コンソールアプリケーション"をクリックしてプロジェクトを設定します。
プロジェクトの名前を入力します。 "IronOCR vs Tesseract.NET SDK"という名前を割り当てます。 その後、プロジェクトを作成する場所を選択してEnterキーを押します。
その後、.NETバージョンを選択します。 最新の.NETバージョン(.NET 6)を使用し、IronOCRがそれをサポートしています。 プロジェクトに最適なものを使用することができます。
作成ボタンをクリックすると、プロジェクトテンプレートがプロジェクトを作成し、ライブラリのインストール準備が整います。 ライブラリを直接インストールしましょう。
IronOCRとTesseract.NET SDKのインストール
ライブラリをインストールして機能をチェックする時が来ました。 最初にIronOCRライブラリをインストールします。
Google OCRのインストール
IronOCRはさまざまな方法でのインストールをサポートしています。 任意のアプローチを選択できます。 すべての方法は安全です。
- Visual Studio NuGetパッケージマネージャーを使用します。
- NuGet Package manager コマンドラインを使用。
- Direct download from the NuGet website.
- Direct download from the IronOcr website.
Visual Studio NuGet Package Managerを使用して
Visual StudioのNuGet Package manager GUIを使ってIronOCRライブラリをインストールできます。 ナビゲートするには、ツール > NuGet Package manager > SolutionのNuGetパッケージ管理をクリックします。
ブラウズタブに入り、IronOCRを検索します。 検索結果からIronOCRを選択してプロジェクトにインストールします。
今、プロジェクトにIronOCRライブラリをインストールしました。 それは.NETプロジェクトでの使用の準備ができています。
NuGet Package manager コマンドラインの使用
NuGet Package Manager Consoleを使ってIronOCRライブラリをインストールできます。 コードファイルの下に通常配置されているコマンドラインに移動し、以下の行をコマンドラインで入力してEnterを押します。
Install-Package IronOcr
IronOCRライブラリのインストールが始まります。 インストール後、プロジェクトで使用できる準備が整います。
Tesseract.NET SDKのインストール
NuGet Package Managerを使用してTesseract.NET SDKをインストールできます。 Tesseract.NET SDKをインストールするには、ツール > NuGet Package Manager > SolutionのNuGetパッケージ管理に移動します。 ブラウズタブに入り、Tesseract.NET SDKを検索します。 検索結果からTesseract.NET SDKを選択してインストールします。 インストール後、プログラムでTesseract.NET SDKを使用できます。
インストール後、ソリューションエクスプローラーでこれらの3つのフォルダーを見ることができます。
これらのフォルダにはOCRを実行するためにTesseractが必要とする基本データが含まれています。 プロジェクトにOCR機能を埋め込む準備ができました。
OCR画像
IronOCRとTesseract.NET SDKの機能をテストする時が来ました。 両方のライブラリは画像でのOCRを実行できます。 テキストを含む傾いてノイズのある画像を使用してこれらをテストします。
テスト画像
これはテストに使用する画像です。
Tesseract.NET SDKの使用
まず、Tesseract.NET SDKで生成されたテスト画像の出力を見てみましょう。 コードを見てみましょう:
using Patagames.Ocr;
// Use the OcrApi class to create an API instance for OCR
using (var api = OcrApi.Create())
{
// Initialize the OCR API with the English language
api.Init(Patagames.Ocr.Enums.Languages.English);
// Extract text from the image at the specified path
string plainText = api.GetTextFromImage(@"C:\Users\Administrator\Desktop\Input.jpg");
// Print the extracted text to the console
Console.WriteLine(plainText);
}
using Patagames.Ocr;
// Use the OcrApi class to create an API instance for OCR
using (var api = OcrApi.Create())
{
// Initialize the OCR API with the English language
api.Init(Patagames.Ocr.Enums.Languages.English);
// Extract text from the image at the specified path
string plainText = api.GetTextFromImage(@"C:\Users\Administrator\Desktop\Input.jpg");
// Print the extracted text to the console
Console.WriteLine(plainText);
}
Imports Patagames.Ocr
' Use the OcrApi class to create an API instance for OCR
Using api = OcrApi.Create()
' Initialize the OCR API with the English language
api.Init(Patagames.Ocr.Enums.Languages.English)
' Extract text from the image at the specified path
Dim plainText As String = api.GetTextFromImage("C:\Users\Administrator\Desktop\Input.jpg")
' Print the extracted text to the console
Console.WriteLine(plainText)
End Using
まず最初に、Tesseract.NET SDKを使用するためにPatagames.OCRライブラリをインポートします。 その後、Create 関数を使用して OcrApi を作成します。 次に、Init 関数を使用して、デフォルト言語を英語に設定します。 次に、GetTextFromImage メソッドを使用して画像からプレーンテキストを抽出し、パラメータに画像ファイルのパスを指定します。 その後、抽出したテキストをコンソールに書き込みます。
次に、Tesseract.NET SDKが生成した出力を見てみましょう:
これがTesseract.NET SDKから得た出力です。 初めにそれは解像度に基づいたエラーを出しています。 高解像度の画像でしかうまく機能しないことを示しています。 エラーの後、画像から抽出されたテキストを見ることができます。 このテキストを画像と比較すると、完全に異なることがわかります。 抽出されたテキストには、意味のない多くの無関係なテキストがあります。
全体として、Tesseract.NET SDKはこのテストに失敗しています。
IronOCRの使用 次に、IronOCRからの結果を見てみましょう
using IronOcr;
// Initialize the IronTesseract class for performing OCR
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.EnglishBest;
// Use OcrInput to prepare the image for processing
using (var Input = new OcrInput())
{
Input.AddImage(@"C:\Users\Administrator\Desktop\Input.jpg");
// Correct the skew and noise in the image
Input.Deskew();
Input.DeNoise();
// Perform OCR and get the result
var Result = Ocr.Read(Input);
// Print the recognized text to the console
Console.WriteLine(Result.Text);
}
using IronOcr;
// Initialize the IronTesseract class for performing OCR
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.EnglishBest;
// Use OcrInput to prepare the image for processing
using (var Input = new OcrInput())
{
Input.AddImage(@"C:\Users\Administrator\Desktop\Input.jpg");
// Correct the skew and noise in the image
Input.Deskew();
Input.DeNoise();
// Perform OCR and get the result
var Result = Ocr.Read(Input);
// Print the recognized text to the console
Console.WriteLine(Result.Text);
}
Imports IronOcr
' Initialize the IronTesseract class for performing OCR
Private Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.EnglishBest
' Use OcrInput to prepare the image for processing
Using Input = New OcrInput()
Input.AddImage("C:\Users\Administrator\Desktop\Input.jpg")
' Correct the skew and noise in the image
Input.Deskew()
Input.DeNoise()
' Perform OCR and get the result
Dim Result = Ocr.Read(Input)
' Print the recognized text to the console
Console.WriteLine(Result.Text)
End Using
上記のコードでは、 IronOCRライブラリをプログラムにインポートし、IronTesseractのオブジェクトを作成します。これにより、処理が開始されます。 その後、プロセスの言語を英語に設定します。 これで実際の作業を始めることができます。 私たちは OcrInput のオブジェクトを作成します。 AddImage 関数を使用して、画像パスを Input 変数に割り当てます。 Deskew 関数を使用して画像を実際の位置に回転させ、次に DeNoise 関数を使用して画像からノイズを除去します。 これにより、より良い結果が得られます。 その後、Read 関数を使用してテキストを認識し、テスト画像から抽出します。 次に、コンソールに結果を表示します。 出力をプロジェクトファイルにPDFファイルとして保存することもできます。
こちらがIronOCRによって生成された出力です:
出力を比較すると、画像にあるのと同じテキストであることがわかります。 IronOCRはテキストを完璧に抽出し、エラーはありません。 IronOCRは歪んだり回転した画像からもテキストを抽出できます。 低解像度の画像でも機能します。
IronOCRは複数のフレーム画像の追加もサポートしています。 この操作には"AddMultiFrameTiff"メソッドを使用できます。 IronOCRは画像の各フレームを読み取り、各フレームは別のページとして扱われます。 このメソッドを使用する場合、Tiff画像のみがサポートされています。
using IronOcr;
// Initialize the IronTesseract class for performing OCR
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
// Add a multi-frame TIFF image for OCR processing
Input.AddMultiFrameTiff("images/multiframe.tiff");
// Perform OCR and get the result
var Result = Ocr.Read(Input);
// Print the recognized text to the console
Console.WriteLine(Result.Text);
}
using IronOcr;
// Initialize the IronTesseract class for performing OCR
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
// Add a multi-frame TIFF image for OCR processing
Input.AddMultiFrameTiff("images/multiframe.tiff");
// Perform OCR and get the result
var Result = Ocr.Read(Input);
// Print the recognized text to the console
Console.WriteLine(Result.Text);
}
Imports IronOcr
' Initialize the IronTesseract class for performing OCR
Private Ocr = New IronTesseract()
Using Input = New OcrInput()
' Add a multi-frame TIFF image for OCR processing
Input.AddMultiFrameTiff("images/multiframe.tiff")
' Perform OCR and get the result
Dim Result = Ocr.Read(Input)
' Print the recognized text to the console
Console.WriteLine(Result.Text)
End Using
検索可能なPDFを作成するためのコードを見てみましょう:
using IronOcr;
// Initialize the IronTesseract class for performing OCR
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
// Add multiple images for processing
Input.AddImage(@"images\page1.png");
Input.AddImage(@"images\page2.bmp");
Input.AddMultiFrameTiff(@"images\page3.tiff");
// Deskew the images to correct orientation
Input.Deskew();
// Perform OCR and save the result as a searchable PDF
var Result = Ocr.Read(Input);
Result.SaveAsSearchablePdf("searchable.pdf");
}
using IronOcr;
// Initialize the IronTesseract class for performing OCR
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
// Add multiple images for processing
Input.AddImage(@"images\page1.png");
Input.AddImage(@"images\page2.bmp");
Input.AddMultiFrameTiff(@"images\page3.tiff");
// Deskew the images to correct orientation
Input.Deskew();
// Perform OCR and save the result as a searchable PDF
var Result = Ocr.Read(Input);
Result.SaveAsSearchablePdf("searchable.pdf");
}
Imports IronOcr
' Initialize the IronTesseract class for performing OCR
Private Ocr = New IronTesseract()
Using Input = New OcrInput()
' Add multiple images for processing
Input.AddImage("images\page1.png")
Input.AddImage("images\page2.bmp")
Input.AddMultiFrameTiff("images\page3.tiff")
' Deskew the images to correct orientation
Input.Deskew()
' Perform OCR and save the result as a searchable PDF
Dim Result = Ocr.Read(Input)
Result.SaveAsSearchablePdf("searchable.pdf")
End Using
SaveAsSearchablePdf 関数は、ファイルを検索可能な状態で保存するのに役立ちます。
SaveAsSearchablePdf機能は、ファイルを検索可能として保存するのに役立ちます。
その他の機能
- コントラスト: 中間色がないすべてのピクセルを黒または白にします。
- DeepCleanBackgroundNoise: 極端なドキュメント背景ノイズが知られている場合、このフィルターを使用してください。 * 反転: すべての色を反転します。 例:白を黒に、黒を白にします。
- 色置換: ノイズを減らすために色を別の色に置き換えます。
- グレースケール化: すべてのピクセルをグレースケールの色合いに変えます。
IronOCRの機能
IronOCRは125の言語をサポートしています。 IronOCRは20種類以上のQRコードとバーコードの読み取りもサポートしています。 IronOCRは画像をグレースケールに変換して、より良い結果を得ることができます。 IronOCRは手動および自動で画像の解像度を向上させることができます。 自動コントラスト機能もサポートしており、最高の結果が得られます。 また、最高の結果を得るためのオートコントラスト機能もサポートしています。 IronOCRは、検索可能PDF、HTMLエクスポート、および任意のページの画像など、複数の言語と形式でドキュメントをエクスポートできます。
[29] 画像(JPG、PNG、GIF、Tiff、BMP) [30] マルチページGifおよびTiff
- System.Drawing オブジェクト
- ストリーム
ライセンス
IronOCR
- PDF IronOCRは開発のために無料です。 IronOCR には、製品向けのさまざまな価格プランがあります。 ニーズに最も合ったプランを購入できます。 個人、開発者チーム、および組織レベルの価格プランがあります。 価格は、開発者1名とプロジェクト1件向けのLiteプランの場合、$799からとなります。 すべてのプランは一回限りの支払いです。 ユーザーは1年間の無料アップデートが得られます。 SaaSおよびOEMのカバレッジもサポートしています。 SaaSとOEMのカバーもサポートされています。 プロフェッショナルプランは$999で利用可能で、無制限プランは$2,999で販売されています。
You can learn more about the pricing plans by following this link. さらに、Iron Softwareは現在、5つのソフトウェアパッケージを2つの価格で購入できる特別オファーを提供しています。 また、Iron Softwareは現在、2つのソフトウェアパッケージの価格で5つのパッケージを購入できる特別なオファーを提供しています。
Tesseract.NET SDK
Tesseract.NET SDKにも価格プランがあります。 Tesseract.NET SDKにも料金プランがあります。 ここで知っておくべき重要なことは、価格プランには更新プランが含まれているということです。 したがって、Tesseract.NET SDKがプロジェクト内で動作していることを確認するために、年間または月額で支払う必要があります。 You can learn more about the pricing plan for the Tesseract.NET SDK at this link.
結論
IronOCRは、現行のタスクに最適なライブラリです。 IronOCRは125言語をサポートしており、グローバルに受け入れられています。 また、IronOCRは125の言語をサポートしているため、世界中で広く受け入れられています。 画像の前処理を行い、最高の結果を得るために最適化されています。 IronOCRは魅力的な.NETライブラリです。 特定の画像エリアからテキストを認識できます。 IronOCRは精度に重点を置いており、この点において出力結果は確かに素晴らしいです。 開発者はOCRを実行するために、追加のファイルやライブラリを必要としません。 全体として、これは完璧なライブラリです。
Tesseract.NET SDKも.NETプロジェクト向けの優れたライブラリです。 60の言語でOCRサービスを提供しています。 これはTesseract OCRプロジェクトに基づいています。 これにより、スキャンした画像を検索可能なPDFに変換する機能を持っています。 Tesseract.NET SDKは、入力処理のために広範な画像形式を受け入れます。 それは.NETプロジェクトにおけるOCR機能をサポートするための高レベルのサービスを提供します。
IronOCRとTesseract.NET SDKの両方に価格プランがあります。 しかし、IronOCRは価格プランのバリエーションがやや多く、Tesseract.NET SDKよりも安価です。 これは、IronOCRが一度の支払いのみを受け入れ、Tesseract.NET SDKは月額または年額の更新が必要であるためです。 これは、IronOCRが一度だけの支払いを受け入れるだけでなく、Tesseract.NET SDKには月次または年次の更新が含まれているためです。
したがって、長期的にはTesseract.NET SDKの初期価格がIronOCRよりも低くても、より多く支払わなければならないわけです。 全体のシナリオを分析し、両方のライブラリの機能をテストすることで、ぼやけた回転された文書、傾いて多少のノイズがある文書のパフォーマンスにおいては、IronOCRがTesseract.NET SDKよりも良い選択であると結論づけることができます。 両方のライブラリのOCR機能は良好ですが、IronOCRは画像前処理、除去ノイズ、画像の元の位置への回転など、より優れた機能を備えた高機能なライブラリです。 Tesseract.NET SDKは最大60の言語をサポートし、IronOCRは最大125の言語をサポートしています。 さらに、Tesseract.NET SDKはかなり前に最後の更新が行われました。
IronOCR offers a free trial for production tests. IronOCRは、プロダクションテストのための無料試用版を提供しています。 You can get more information about the offer at this link.
よくある質問
IronOCRは、OCRタスクにおいてTesseract.NET SDKをどのように改善しますか?
IronOCRは、高度な画像前処理能力とマルチスレッド対応により、低解像度や傾きのあるノイズのある画像で優れたパフォーマンスを発揮し、Tesseract.NET SDKと比較してより堅牢なソリューションを提供します。
IronOCRでOCRに対応している言語は何ですか?
IronOCRは125の言語をサポートし、多様なOCRプロジェクトに包括的な言語サポートを提供しますが、一方のTesseract.NET SDKは60の言語をサポートします。
IronOCRはクロスプラットフォーム環境で使用できますか?
はい、IronOCRはWindows、Mac、Linuxシステムと互換性があり、AzureやDockerなどのクラウドソリューションに統合できるため、クロスプラットフォーム開発に多用途です。
IronOCRのインストール方法にはどのようなものがありますか?
IronOCR は、Visual Studio のNuGetパッケージ マネージャー、 NuGetパッケージ マネージャー コンソールを使用するか、 NuGetまたはIron Software Web サイトから直接ダウンロードしてインストールできます。
IronOCRは画像前処理をどのように処理しますか?
IronOCRは、デスクューやデノイズなどの高度な画像前処理機能を含んでおり、テキスト抽出前に画像を準備することでOCRの精度を向上させます。
IronOCRのライセンスオプションにはどのようなものがありますか?
IronOCRは、個別および開発者チームのライセンスなどのさまざまなライセンスオプションを提供しており、ライトプランの一回払いと1年間の無料アップデートを提供します。また、プロフェッショナルプランと無制限プランもあります。
IronOCRが処理できるフォーマットは何ですか?
IronOCRは、画像やPDFを含む複数の入力フォーマットを処理でき、これらのフォーマットをテキストや検索可能なPDFファイルに変換することができます。
IronOCRはマルチスレッドをどのようにサポートしていますか?
IronOCRはマルチスレッドをサポートしており、複数のOCRタスクを同時に処理することができ、大規模プロジェクトでの効率と性能を向上させます。
IronOCRが複雑な画像シナリオにおいて好まれる選択肢となる特長は何ですか?
IronOCRは、高度な画像前処理、マルチスレッドサポート、広範な言語互換性などの特徴を持ち、複雑な画像シナリオの処理において、より簡単なOCRライブラリよりも好まれる選択肢となっています。


