フッターコンテンツにスキップ
OCRツール

Tesseractを使用して画像からテキストを取得する方法

IronOCRやTesseractのようなライブラリを活用することで、開発者は画像やスキャンされたドキュメントからテキスト情報を抽出するための高度なアルゴリズムと機械学習技術にアクセスできます。 このチュートリアルでは、Tesseractライブラリを使用して画像からテキスト抽出を行う方法を読者に示し、最後にIronOCRの独自のアプローチを紹介します。

1. Tesseractを使用したOCR

1.1. Tesseractのインストール

NuGetパッケージマネージャーコンソールを使用し、次のコマンドを入力します。

Install-Package Tesseract

または、NuGetパッケージマネージャーからパッケージをダウンロードしてください。

OCRテキスト認識を取得する方法、図1: NuGetパッケージマネージャーでTesseractパッケージをインストールする 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();
    }
}
$vbLabelText   $csharpLabel
  • まず、TesseractEngine オブジェクトを作成し、言語データをエンジンにロードする必要があります。
  • 次に、Pix.LoadFromFile の助けを借りて、目的の画像ファイルが読み込まれます。
  • 画像は TesseractEngine に渡され、Process メソッドを使用してテキストが抽出されます。
  • 認識されたテキストは、GetText メソッドで取得され、コンソールに表示されます。

OCRテキスト認識の取得方法、図2:画像から抽出されたテキスト 画像から抽出されたテキスト

1.3 Tesseractの考慮事項

  1. Tesseractはバージョン3.00以降、出力テキストのフォーマット、OCRの位置データ、ページレイアウト解析をサポートしています。
  2. TesseractはWindows、Linux、MacOSで利用可能ですが、主にWindowsとUbuntuで意図通りに動作することが確認されています。
  3. Tesseractは等幅テキストと比例間隔テキストを区別できます。
  4. OCRopusのようなフロントエンドを利用して、Tesseractはバックエンドとして使用するのに理想的であり、レイアウト解析などのより複雑なOCRジョブに利用できます。
  5. Tesseractのいくつかの欠点:
    • 最新のビルドはWindows上でコンパイルするように設計されていません
    • TesseractのC# APIラッパーは頻繁には更新されておらず、Tesseractの新しいリリースに数年遅れています

C#でのTesseractに関する詳細情報はTesseractチュートリアルをご覧ください。

2. IronOCRを使用したOCR

2.1. IronOCRのインストール

NuGetパッケージマネージャーコンソールに次のコマンドを入力します。

Install-Package IronOcr

または、他の言語用の追加パッケージとともにNuGetパッケージマネージャーからIronOCRライブラリをインストールします。これらは簡単かつ便利に使用できます。

OCRテキスト認識を取得する方法、図3: 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();
    }
}
$vbLabelText   $csharpLabel
  • このコードは、言語と Tesseract のバージョンを設定して、IronTesseract オブジェクトを初期化します。
  • 次に、AddImage メソッドを使用して画像ファイルを読み込むための OcrInput オブジェクトが作成されます。
  • IronTesseractRead メソッドは画像を処理し、テキストを抽出してコンソールに出力します。

OCRテキスト認識の取得方法、図4: IronOCRライブラリを使用した抽出テキスト出力 IronOCRライブラリを使用した抽出テキスト出力

2.3 IronOCRの考慮事項

  1. IronOCRはTesseractライブラリの拡張版であり、より安定性が高く、高精度を提供します。
  2. IronOCRは、PDFや写真からテキストコンテンツを読み取ることができます。 さらに、20を超える種類のバーコードやQRコードも読み取ることができます。
  3. 出力はプレーンテキスト、構造化データ、バーコード、QRコードとしてレンダリングできます。
  4. このライブラリは、世界中の125言語を認識します。
  5. IronOCRはすべての.NET環境で柔軟に動作し(コンソール、Web、デスクトップなど)、Mono、Xamarin、AzureMAUIなどの最新のモバイルフレームワークもサポートしています。
  6. IronOCRは無料の試用版を提供しており、開発エディションはより低価格です。 ライセンスについて詳しくはこちらをご覧ください。

詳細なIronOCRチュートリアルについては、この記事を参照して画像からC#でテキストを読み取る方法を学んでください。

Kannaopat Udonpant
ソフトウェアエンジニア
ソフトウェアエンジニアになる前に、Kannapatは北海道大学で環境資源の博士号を修了しました。博士号を追求する間に、彼はバイオプロダクションエンジニアリング学科の一部である車両ロボティクスラボラトリーのメンバーになりました。2022年には、C#のスキルを活用してIron Softwareのエンジニアリングチームに参加し、IronPDFに注力しています。Kannapatは、IronPDFの多くのコードを執筆している開発者から直接学んでいるため、この仕事を大切にしています。同僚から学びながら、Iron Softwareでの働く社会的側面も楽しんでいます。コードやドキュメントを書いていない時は、KannapatはPS5でゲームをしたり、『The Last of Us』を再視聴したりしていることが多いです。

アイアンサポートチーム

私たちは週5日、24時間オンラインで対応しています。
チャット
メール
電話してね