IRONOCRの使用

Tesseract OCR 多言語対応(開発者向けチュートリアル)

公開済み 2024年9月29日
共有:

イントロダクション

OCRは、さまざまな性質の文書を編集可能で検索可能なデータに変換するための技術です。 スキャンした画像、PDFファイル、デジタルカメラの写真を編集および検索可能なデータに変換します。 この技術は、印刷された文書をデジタル形式に変換して編集、検索、保存するのに広く使われており、文書が占める物理的なスペースを減少させます。 OCR (光学式文字認識)データ入力の自動化において大きな役割を果たし、人材による労働を削減することで、企業や組織の時間を大幅に節約します。

それは、画像から正確にテキストを抽出するために、先進的な機械学習技術とパターン認識を利用するプロセスです。 OCRに関する最新の進展により、その精度が向上し、アラビア文字などの複雑なスクリプトや多くの言語をサポートするようになりました。 金融、健康、立法、教育の分野で非常に必要とされ、OCRは複数の印刷されたドキュメントを迅速に処理するための必須ツールとして登場しました。この記事では、Tesseract を使用して、複数言語のデータを含む画像をOCRします。

Tesseract OCRで複数の言語を使用する方法

  1. まず、.NETプロジェクト内にIronOCR/TesseractのNuGetパッケージをインストールします。

  2. クラスIronTesseractのインスタンスが作成され、さらにOCRエンジンが初期化されます。

  3. 言語プロパティが複数の言語をサポートするように設計されています。

  4. 処理したい画像ファイルのパスを指定し、次にOcrInputオブジェクトを作成します。

  5. 次に、IronTesseractインスタンスのRead関数を使用して、入力画像に対してOCRを実行します。

  6. 結果を取得し、認識されたテキストを表示します。

テッセラクトとは何ですか?

Tesseractは、ヒューレット・パッカードによって開発され、後にGoogleによって管理されているオープンソースの光学式文字認識エンジンです。 高い精度と適応性で有名であり、最も著名なOCRの一つとなっています。 Tesseractはスクリプト検出をサポートし、多くの言語でテキストを認識でき、複数の言語を処理できます。 したがって、これは一般的に多言語ドキュメントとサポートを必要とするプロジェクトに使用されます。

Tesseract OCRエンジンは、画像の任意のピクセルに含まれる情報を基に動作し、文字、単語、文章を表すパターンをたどって、最終的に機械で読み取り可能なテキストに変換します。 TIFF、JPEG、PNGなどの多くの画像ファイル形式に対応しているため、Tesseractはプレーンテキスト、HTML、検索可能なPDFなどの形式でテキストを生成できます。

Tesseractの大きな利点の一つは、特定のフォントや新しく追加された言語に対して感度を持つように訓練できることです。 また、単純なテキスト抽出から、歴史的文書のデジタル化、請求書の処理、さらには視覚障害者向けの読み取り支援ソフトウェアに至るまで、様々なアプリケーションで頻繁に使用されています。

Visual Studioで新しいプロジェクトを作成

プログラムVisual Studioを開きます。 プログラムを開いたら、「ファイルメニュー」に進みます。「ファイルメニュー」の下に、「新しいプロジェクト」というオプションがあります。「新しいプロジェクト」の下で、「コンソールアプリケーション」をクリックします。本記事では、コンソールプログラムを使用してPDFドキュメントを作成します。

複数言語に対応したTesseract OCR(開発者向けチュートリアル):図1 - 新しいプロジェクトを作成

プロジェクト名とファイルの場所を指定されたテキストボックスに入力してください。 次に、以下の画像に示されているように、「Create」ボタンをクリックし、必要な.NET Frameworkを選択してください。

複数言語対応Tesseract OCR(開発者チュートリアル):図2 - .NET Frameworkを選択し、プロジェクトと保存場所を指定します。

アプリケーションのバージョンが選択されたので、Visual Studio プロジェクトがその構造を作成します。 コンソール、Windows、またはウェブバージョンを選択した場合、プログラムが開かれ、コードを追加してアプリケーションをビルド/実行するためのcsファイルが開かれます。

.NET用Tesseract OCRをインストール

最初のステップは、Tesseract OCR ソフトウェアをコンピュータにダウンロードしてインストールすることです。 こちらが公式のTesseract GitHubリポジトリで、Tesseractインストーラーが含まれています: https://github.com/tesseract-ocr/tesseract

Tesseract OCRをコンピューターにインストールするには、Windows、macOS、Linuxのいずれのオペレーティングシステムでも、それに特化した設定手順に従うのが最善です。 インストール後、Visual StudioのNuGetパッケージマネージャーを使用して、C#プロジェクトにTesseract.NETパッケージを追加します。

Visual Studioプロジェクトのツール -> NuGetパッケージマネージャー -> ソリューションのNuGetパッケージの管理からNuGetパッケージマネージャーを開きます。 その後、NuGetパッケージマネージャーで「Tesseract」を検索し、「Tesseract」または「Tesseract.NET」パッケージを取得します。 このパッケージを選択し、インストールボタンをクリックしてプロジェクトにインストールします。

Tesseract OCR 多言語対応(開発者チュートリアル):図3 - ブラウズタブでTesseractを検索

C#を使用したTesseract OCR

Tesseract.NET ラッパーをインストールした後、Tesseract OCR 実行ファイルと言語データファイルの場所を指定するために、C#プロジェクトで Tesseract を設定する必要があります。 Here's an example: 例があります。

using System;
using System.Drawing;
using Tesseract;
class Program
{
    static void Main()
    {
        // Set the path to the Tesseract data files (traineddata files)
        string tessDataPath = @"./tessdata"; // Ensure this directory contains the language data files
        // Load the image
        string imagePath = @"path_to_your_image.png";
        using (var img = Pix.LoadFromFile(imagePath))
        {
            // Add tesseract languages into engine
            using (var engine = new TesseractEngine(tessDataPath,  "eng+spa+fra", EngineMode.Default))
            {
                using (var page = engine.Process(img))
                {
                    // Extract the text
                    string text = page.GetText();
                    Console.WriteLine("Recognized Text:");
                    Console.WriteLine(text);
                }
            }
        }
    }
}
using System;
using System.Drawing;
using Tesseract;
class Program
{
    static void Main()
    {
        // Set the path to the Tesseract data files (traineddata files)
        string tessDataPath = @"./tessdata"; // Ensure this directory contains the language data files
        // Load the image
        string imagePath = @"path_to_your_image.png";
        using (var img = Pix.LoadFromFile(imagePath))
        {
            // Add tesseract languages into engine
            using (var engine = new TesseractEngine(tessDataPath,  "eng+spa+fra", EngineMode.Default))
            {
                using (var page = engine.Process(img))
                {
                    // Extract the text
                    string text = page.GetText();
                    Console.WriteLine("Recognized Text:");
                    Console.WriteLine(text);
                }
            }
        }
    }
}
Imports System
Imports System.Drawing
Imports Tesseract
Friend Class Program
	Shared Sub Main()
		' Set the path to the Tesseract data files (traineddata files)
		Dim tessDataPath As String = "./tessdata" ' Ensure this directory contains the language data files
		' Load the image
		Dim imagePath As String = "path_to_your_image.png"
		Using img = Pix.LoadFromFile(imagePath)
			' Add tesseract languages into engine
			Using engine = New TesseractEngine(tessDataPath, "eng+spa+fra", EngineMode.Default)
				Using page = engine.Process(img)
					' Extract the text
					Dim text As String = page.GetText()
					Console.WriteLine("Recognized Text:")
					Console.WriteLine(text)
				End Using
			End Using
		End Using
	End Sub
End Class
VB   C#

上記のコードは、Tesseract OCRが複数の言語を含む画像からテキストを検出して抽出する方法を説明しています。 それは最初にTesseractの言語データファイルへのパスを設定します。 各対応する言語、例えば英語、スペイン語、フランス語のために必要な.traineddataファイルがパスに存在している必要があります。

複数言語用Tesseract OCR(開発者チュートリアル):図4 - 入力例

それは、画像パスで指定された画像をPix.LoadFromFileメソッドにロードします。 具体的には、英語、スペイン語、フランス語のテキストを含む画像が期待されます。 次に、TesseractEngineのインスタンスが、言語データファイルのパスと対象言語「eng+spa+fra」とともに初期化され、テキストを認識します。 エンジンはデフォルトモードで動作します。

複数言語対応Tesseract OCR(開発者チュートリアル):図5 - コンソール出力例

その後、画像はエンジンクラスのProcessメソッドに渡され、そこで解析され、テキスト内容が抽出され、変数textに格納されます。 最後に、抽出されたテキストがコンソールに出力され、OCRの動作が視覚化されます。

IronOCRとは何ですか応答できません。内容を提供してください。

IronOCRは、.NETに特化した独自のOCRライブラリです。 それは.NETアプリケーションにOCR機能を追加し、画像、スキャンされた文書、PDF、およびその他のすべてのビジュアルメディアからのテキスト抽出を可能にします。 最先端のテキスト認識を非常に成功したTesseractエンジンで推進するIronOCRは、エンタープライズアプリケーションでの使用に適したいくつかの追加機能も含まれています。

これはIronOCRを非常に優れたものにします—その驚異的な言語サポートは、120以上の言語をサポートし、複数言語を含むドキュメントを同時に自動で検出および処理することができます。 これにより、IronOCR は非常に汎用性が高く、世界中で展開可能となり、多言語文書処理が非常に重要な場面で利用できます。

複数言語用のTesseract OCR(開発者向けチュートリアル):図6 - IronOCR: C# OCRライブラリ

一方で、IronOCRは依然として使用と統合の簡単さを重視しています。 非常に使いやすいAPIは、詳細なドキュメントとサンプルプロジェクトのセットによって補完され、どの開発者もすぐに始められるようサポートします。 さまざまな画像フォーマットとPDFドキュメントをサポートしています。 組み込みの高度な画像前処理、ノイズ除去、および誤り訂正機能により、OCRの精度とパフォーマンスが向上します。

IronOCRをインストールする

Visual StudioのNuGetパッケージ管理ツールを使用して、パッケージを直接ソリューションにインストールできます。 次のスナップショットは、NuGetパッケージマネージャーを開く方法を示しています。

Tesseract OCRを複数言語で使用する開発者向けチュートリアル: 図7 - Visual Studioを通じてNuGetパッケージマネージャーにアクセスする方法

それには埋め込みの検索ボックスがあり、NuGetウェブサイトからパッケージの一覧を表示する必要があります。以下のスクリーンショットからわかるように、「IronOCR」というフレーズでパッケージマネージャを検索します。

Tesseract OCR の多言語対応(開発者向けチュートリアル):図8 - ソリューションエクスプローラーで IronOCR を検索

上記のグラフは、有効な検索用語のリストを提供するかもしれません。 ソリューションパッケージをインストールするために必要なものを選択する必要があります。

また、この例のために、以下のように必要なTesseract言語パックを一つずつインストールしてください。

この例では、スペイン語、フランス語、英語の言語コードを使用します。 英語はデフォルトの言語パックであり、インストールを必要としません。

Tesseract OCR 多言語対応(開発者向けチュートリアル):図9 - フランス語パッケージのインストール

NuGetパッケージからスペイン語をインストールします。

多言語対応のTesseract OCR(開発者チュートリアル):図10 - スペイン語パッケージのインストール

Tesseractエンジンを使用したIronOCRで複数の言語を読み取る

次の例は、C#とIronOCRおよびTesseractエンジンを使用して、画像から複数の言語のテキストを認識する方法を示しています。

using IronOcr;
class Program
{
    static void Main(string[] args)
    {
        // Initialize IronTesseract engine
        var Ocr = new IronTesseract();
        // Add multiple languages
        Ocr.Language = OcrLanguage.English + OcrLanguage.Spanish + OcrLanguage.French;
        // Path to the image
        var inputFile = @"path\to\your\image.png";
        // Read the image and perform OCR
        using (var input = new OcrInput(inputFile))
        {
            // Perform OCR
            var result = Ocr.Read(input);
            // Display the result
            Console.WriteLine("Text:");
            Console.WriteLine(result.Text);
        }
    }
}
using IronOcr;
class Program
{
    static void Main(string[] args)
    {
        // Initialize IronTesseract engine
        var Ocr = new IronTesseract();
        // Add multiple languages
        Ocr.Language = OcrLanguage.English + OcrLanguage.Spanish + OcrLanguage.French;
        // Path to the image
        var inputFile = @"path\to\your\image.png";
        // Read the image and perform OCR
        using (var input = new OcrInput(inputFile))
        {
            // Perform OCR
            var result = Ocr.Read(input);
            // Display the result
            Console.WriteLine("Text:");
            Console.WriteLine(result.Text);
        }
    }
}
Imports IronOcr
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Initialize IronTesseract engine
		Dim Ocr = New IronTesseract()
		' Add multiple languages
		Ocr.Language = OcrLanguage.English + OcrLanguage.Spanish + OcrLanguage.French
		' Path to the image
		Dim inputFile = "path\to\your\image.png"
		' Read the image and perform OCR
		Using input = New OcrInput(inputFile)
			' Perform OCR
			Dim result = Ocr.Read(input)
			' Display the result
			Console.WriteLine("Text:")
			Console.WriteLine(result.Text)
		End Using
	End Sub
End Class
VB   C#

上記のC#プログラムは、IronOCRライブラリを使用して、英語、スペイン語、フランス語の文字を含む画像に対して光学文字認識を行う例です。 この例は、IronOCRが必要とする名前空間のインポートから始まり、次に、アプリケーションのエントリーポイントであるMainメソッドを持つプログラムという名前のクラスの宣言が続きます。

まず、Mainメソッドで、IronTesseractクラスのインスタンスがインスタンス化されます。 このインスタンスはその後、変数Ocrに割り当てられます。 次に、言語プロパティこのインスタンスは、OcrLanguage.English、OcrLanguage.Spanish、OcrLanguage.French を組み合わせて、英語、スペイン語、フランス語を含めるように設定されています。 これにより、OCRエンジンがこれらの三つの言語のいずれでもテキストを認識し、処理できるようになります。

まず、inputFile変数を使用して画像ファイルの入力パスを設定します。 次の行で、OcrInputクラスの中でこの画像を読み込み、適切なリソース管理と破棄を行います。 最後に、IronTesseractインスタンスのReadメソッドを入力オブジェクトで呼び出し、行います。画像のOCR。

最後に、結果が認識されたテキストかどうかチェックされ、コンソールに出力されます。 これらのConsole.WriteLineステートメントは、検出されたテキストを出力することで、ユーザーがOCRの結果を確認できるようにします。 プログラムは、IronOCRの多言語対応機能を使用して、異なる言語の単語が含まれる画像からテキストを抽出する効果的な方法を示しています。

複数言語に対応するTesseract OCR(開発者向けチュートリアル):図11 - 認識されたテキストの出力

IronOCRがTesseractより優れている理由は?

それはTesseractと比べて非常にユーザーフレンドリーであり、後者に対していくつかの利点があります。 まず最初に、IronOCRは優れた言語サポートを提供します。 エンジンは、最初から127の言語をサポートしており、Tesseractについては約100の言語をサポートしているとの報告があります。 しかし、しばしば最高のパフォーマンスを得るためには、複雑な設定や追加のトレーニングが必要です。 さらに、IronOCRは、.NETアプリケーションと簡単に統合し、ドキュメントを完成させるため、使いやすいです。

Tesseractよりもはるかに使いやすく、IronOCRは学習曲線が緩やかで技術的なセットアップが少なくて済みます。それだけでなく、IronOCRは高度な画像前処理機能と、複雑で多様なドキュメントタイプに対する精度と信頼性を向上させる定期的な機能更新も含まれています。IronOCRは、堅実で多用途、簡単に適用できるOCRソリューションを求める開発者にとって非常に優れた選択肢です。

結論

Tesseract OCR の複数言語対応(開発者チュートリアル):図 12 - IronOCR ライセンスページ

TesseractとIronOCRは非常に堅牢なOCR技術を表していますが、それぞれに独自の機能と強みがあります。 再び、Tesseractはオープンソースであり、広く使用されており、言語の利用可能性と柔軟性に関して先行しているため、際立っています。 アクティブなコミュニティと継続的な改善を備えた無料のソリューションを求めるすべての人にとって信頼できます。

対照的に、IronOCRは、.NET Frameworkのプロプライエタリライブラリであり、より簡単な統合とほとんどの画像ファイルタイプへの優れたサポートによってユーザーエクスペリエンスを向上させています。また、低品質の画像コンテンツの処理を含む卓越したテキスト認識性能を備えています。 IronOCRは多くの言語を完全にサポートしており、使いやすさと完全なサポートを求める開発者にとってより使いやすく、完璧なものにするいくつかの追加機能を備えています。

IronOCRには、コスト効率の良い開発版が用意されています。 IronOCRパッケージを購入すると、ライフタイムライセンスが付与されます。 IronOCRの提供価格は749ドルからで、複数のシステムに対する一度限りの費用なので、非常にコストパフォーマンスが高いです。 IronOCRのライセンスユーザーには24時間365日のオンラインエンジニアサポートを提供します。 情報文を日本語に翻訳しますね:

以下をご参照くださいIronOCR料金について詳しくはウェブサイトをご覧ください。 Iron Software製品の詳細については、参照してくださいこれ.

次へ >
C#でOCRソフトウェアのデモを作成する方法