Tesseractを使用して画像からテキストを取得する方法
IronOCRやTesseractのようなライブラリを活用することで、開発者は画像やスキャンされたドキュメントからテキスト情報を抽出するための高度なアルゴリズムと機械学習技術にアクセスできます。 このチュートリアルでは、Tesseractライブラリを使用して画像からテキスト抽出を行う方法を読者に示し、最後にIronOCRの独自のアプローチを紹介します。
1. Tesseractを使用したOCR
1.1. Tesseractのインストール
NuGetパッケージマネージャーコンソールを使用し、次のコマンドを入力します。
Install-Package Tesseract
または、NuGetパッケージマネージャーからパッケージをダウンロードしてください。
NuGetパッケージ マネージャーで Tesseract パッケージをインストールします。
NuGetパッケージをインストールした後、言語ファイルを手動でインストールし、プロジェクトフォルダに保存する必要があります。 これはこの特定のライブラリの欠点と考えられます。
言語ファイルをダウンロードするには、次のウェブサイトを訪問してください。 ダウンロードしたら、ファイルを解凍し、"tessdata"フォルダをプロジェクトのデバッグフォルダに追加します。
1.2. Tesseractの使用 (クイックスタート)
与えられた画像でOCRを実行するには、以下のソースコードを使用します。
using Tesseract;
class Program
{
static void Main()
{
// Initialize Tesseract engine with English language data
using var ocrEngine = new TesseractEngine(@"tessdata", "eng", EngineMode.Default);
// Load the image to be processed
using var img = Pix.LoadFromFile("Demo.png");
// Process the image to extract text
using var res = ocrEngine.Process(img);
// Output the recognized text
Console.WriteLine(res.GetText());
Console.ReadKey();
}
}
using Tesseract;
class Program
{
static void Main()
{
// Initialize Tesseract engine with English language data
using var ocrEngine = new TesseractEngine(@"tessdata", "eng", EngineMode.Default);
// Load the image to be processed
using var img = Pix.LoadFromFile("Demo.png");
// Process the image to extract text
using var res = ocrEngine.Process(img);
// Output the recognized text
Console.WriteLine(res.GetText());
Console.ReadKey();
}
}
Imports Tesseract
Friend Class Program
Shared Sub Main()
' Initialize Tesseract engine with English language data
Dim ocrEngine = New TesseractEngine("tessdata", "eng", EngineMode.Default)
' Load the image to be processed
Dim img = Pix.LoadFromFile("Demo.png")
' Process the image to extract text
Dim res = ocrEngine.Process(img)
' Output the recognized text
Console.WriteLine(res.GetText())
Console.ReadKey()
End Sub
End Class
- まず、
TesseractEngineオブジェクトを作成し、言語データをエンジンにロードする必要があります。 - 次に、
Pix.LoadFromFileの助けを借りて、目的の画像ファイルが読み込まれます。 - 画像は
TesseractEngineに渡され、Processメソッドを使用してテキストが抽出されます。 - 認識されたテキストは、
GetTextメソッドで取得され、コンソールに表示されます。
画像から抽出されたテキスト
1.3 Tesseractの考慮事項
- Tesseractはバージョン3.00以降、出力テキストのフォーマット、OCRの位置データ、ページレイアウト解析をサポートしています。
- TesseractはWindows、Linux、MacOSで利用可能ですが、主にWindowsとUbuntuで意図通りに動作することが確認されています。
- Tesseractは等幅テキストと比例間隔テキストを区別できます。
- OCRopusのようなフロントエンドを利用して、Tesseractはバックエンドとして使用するのに理想的であり、レイアウト解析などのより複雑なOCRジョブに利用できます。
- Tesseractのいくつかの欠点:
- 最新のビルドはWindows上でコンパイルするように設計されていません
- TesseractのC# APIラッパーは頻繁には更新されておらず、Tesseractの新しいリリースに数年遅れています
C#でのTesseractに関する詳細情報はTesseractチュートリアルをご覧ください。
2. IronOCRを使用したOCR
2.1. IronOCRのインストール
NuGetパッケージマネージャーコンソールに次のコマンドを入力します。
Install-Package IronOcr
または、他の言語用の追加パッケージとともにNuGetパッケージマネージャーからIronOCRライブラリをインストールします。これらは簡単かつ便利に使用できます。
NuGetパッケージマネージャーでIronOcrおよび言語パッケージをインストール
2.2. IronOCRの使用
以下は、与えられた画像からテキストを認識するサンプルコードです。
using IronOcr;
class Program
{
static void Main()
{
// Create an IronTesseract instance with predefined settings
var ocr = new IronTesseract()
{
Language = OcrLanguage.EnglishBest,
Configuration = { TesseractVersion = TesseractVersion.Tesseract5 }
};
// Create an OcrInput instance for image processing
using var input = new OcrInput();
// Load the image to be processed
input.AddImage("Demo.png");
// Process the image and extract text
var result = ocr.Read(input);
// Output the recognized text
Console.WriteLine(result.Text);
Console.ReadKey();
}
}
using IronOcr;
class Program
{
static void Main()
{
// Create an IronTesseract instance with predefined settings
var ocr = new IronTesseract()
{
Language = OcrLanguage.EnglishBest,
Configuration = { TesseractVersion = TesseractVersion.Tesseract5 }
};
// Create an OcrInput instance for image processing
using var input = new OcrInput();
// Load the image to be processed
input.AddImage("Demo.png");
// Process the image and extract text
var result = ocr.Read(input);
// Output the recognized text
Console.WriteLine(result.Text);
Console.ReadKey();
}
}
Imports IronOcr
Friend Class Program
Shared Sub Main()
' Create an IronTesseract instance with predefined settings
Dim ocr = New IronTesseract() With {
.Language = OcrLanguage.EnglishBest,
.Configuration = { TesseractVersion = TesseractVersion.Tesseract5 }
}
' Create an OcrInput instance for image processing
Dim input = New OcrInput()
' Load the image to be processed
input.AddImage("Demo.png")
' Process the image and extract text
Dim result = ocr.Read(input)
' Output the recognized text
Console.WriteLine(result.Text)
Console.ReadKey()
End Sub
End Class
- このコードは、言語と Tesseract のバージョンを設定して、
IronTesseractオブジェクトを初期化します。 - 次に、
AddImageメソッドを使用して画像ファイルを読み込むためのOcrInputオブジェクトが作成されます。 IronTesseractのReadメソッドは画像を処理し、テキストを抽出してコンソールに出力します。
IronOCRライブラリを使用した抽出テキスト出力
2.3 IronOCRの考慮事項
- IronOCRはTesseractライブラリの拡張版であり、より安定性が高く、高精度を提供します。
- IronOCRは、PDFや写真からテキストコンテンツを読み取ることができます。 さらに、20を超える種類のバーコードやQRコードも読み取ることができます。
- 出力はプレーンテキスト、構造化データ、バーコード、QRコードとしてレンダリングできます。
- このライブラリは、世界中の125言語を認識します。
- IronOCRはすべての.NET環境で柔軟に動作し(コンソール、Web、デスクトップなど)、Mono、Xamarin、Azure、MAUIなどの最新のモバイルフレームワークもサポートしています。
- IronOCRは無料の試用版を提供しており、開発エディションはより低価格です。 ライセンスについて詳しくはこちらをご覧ください。
詳細なIronOCRチュートリアルについては、この記事を参照して画像からC#でテキストを読み取る方法を学んでください。




