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ラッパーは頻繁にメンテナンスされておらず、新しいリリースとは数年遅れています
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#でテキストを読み取ってください。








