フッターコンテンツにスキップ
IRONOCRの使い方

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

OCRは、異なる性質の文書を編集可能かつ検索可能なデータに変換するために使用される技術です。 スキャン画像、PDFファイル、およびデジタルカメラの写真を編集および検索可能なデータに変換します。 この技術は、印刷された文書をデジタル形式に変換して編集、検索、保存するために広く使用され、文書が占める物理スペースを削減します。 OCRは、データ入力自動化において重要な役割を果たし、人材が使用する労力を削減して企業や組織に多くの時間を節約します。

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

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

  1. 最初に、.NETプロジェクト内にIronOCR/Tesseract NuGetパッケージをインストールします。
  2. OCRエンジンを初期化するIronTesseractクラスのインスタンスを作成します。
  3. 言語プロパティは複数の言語をサポートします。
  4. 処理したい画像ファイルのパスを指定し、OcrInputオブジェクトを作成します。
  5. IronTesseractインスタンスのRead関数を使用して入力画像でOCRを実行します。
  6. 結果を取り出し、認識されたテキストを表示します。

Tesseractとは何ですか?

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

Tesseract OCRエンジンは、画像の単一ピクセルに含まれる情報に基づいて動作し、最終的にマシン可読なテキストに変換される文字、単語、文を描くパターンをたどります。 TIFF、JPEG、PNGなどの多くの画像ファイルタイプをサポートしているため、Tesseractはプレーンテキスト、HTML、検索可能なPDF形式でテキストを生成できます。

Tesseractの大きな利点の一つに、特定のフォントや追加された新しい言語に対して感度を持つように訓練できることがあります。 また、シンプルなテキスト抽出から歴史的文書のデジタイズ、請求書処理、視覚障害者のための読み上げを可能にするアクセシビリティソフトウェアといった複雑な作業に至るまで、さまざまなアプリケーションで頻繁に使用されます。

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

プログラムのVisual Studioを開きます。 プログラムを開くと、"ファイルメニュー"に進みます。"ファイルメニュー"には"新しいプロジェクト"というオプションがあります。"新しいプロジェクト"では、"コンソールアプリケーション"をクリックします。この投稿では、コンソールプログラムを使用してPDF文書を作成します。

Tesseract OCR for Multiple Languages (Developer Tutorial): 図1 - 新しいプロジェクトを作成

提供されたテキストボックスにプロジェクト名とファイルの場所を入力します。 次に、以下に示すように、"作成"ボタンをクリックし、必要な.NET Frameworkを選択します。

Tesseract OCR for Multiple Languages (Developer Tutorial): 図2 - プロジェクトと保存場所を提供して.NET Frameworkを選択

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

.NET向けTesseract OCRのインストール

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

Windows、macOS、またはLinuxのいずれかに対する特定のセットアップ手順に従って、コンピュータにTesseract OCRを取得するのが最適です。 インストール後、Visual StudioのNuGetパッケージマネージャーを使用してC#プロジェクトにTesseract.NETパッケージを追加します。

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

Tesseract OCR for Multiple Languages (Developer Tutorial): 図3 - ブラウズタブでTesseractを検索

C#を用いたTesseract OCR

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

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 languages to the Tesseract 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 languages to the Tesseract 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 languages to the Tesseract 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
$vbLabelText   $csharpLabel

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

Tesseract OCR for Multiple Languages (Developer Tutorial): 図4 - サンプル入力

Pix.LoadFromFileメソッドを使用してimagePathで指定された画像をロードします。 より具体的に言えば、英語、スペイン語、フランス語のテキストが含まれた画像が期待されます。 次に、TesseractEngineのインスタンスが言語データファイルと"eng+spa+fra"の興味のある言語で初期化され、テキストの認識が行われます。 エンジンはデフォルトモードで動作します。

Tesseract OCR for Multiple Languages (Developer Tutorial): 図5 - サンプルコンソール出力

その後、text変数に保存されたテキストコンテンツを分析、抽出し、エンジンクラスのProcessメソッドを使用して画像が処理されます。 抽出されたテキストはコンソールに印刷され、OCRがどのように機能するかを可視化します。

IronOCRとは何ですか?

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

IronOCRは、自動言語検出のサポートと同時に複数の言語を含むドキュメントの処理をサポートしている120以上の言語に対応しています。 これにより、IronOCRは非常に多用途で、特に多言語ドキュメントの処理が非常に重要な場所での展開に適しています。

Tesseract OCR for Multiple Languages (Developer Tutorial): 図6 - IronOCR: C# OCRライブラリ

一方で、IronOCRは使用と統合の簡単さを強調しています。 その使いやすいAPIは、詳細なドキュメントと、どの開発者もすぐに立ち上げて走り始められる一連のサンプルプロジェクトによって補完されています。 多くの画像形式とPDF文書をサポートしています。 内蔵の高度な画像前処理、ノイズリダクション、およびエラー補正機能により、OCRの精度とパフォーマンスが向上します。

IronOCRのインストール

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

Tesseract OCR for Multiple Languages (Developer Tutorial): 図7 - Visual Studioを通じてNuGetパッケージマネージャへのアクセス方法

それには、NuGetウェブサイトからのパッケージのリストを表示する組み込みの検索ボックスがあります。以下のスクリーンショットで示されているように、IronOCRフレーズをパッケージマネージャで検索します:

Tesseract OCR for Multiple Languages (Developer Tutorial): 図8 - ソリューションエクスプローラーでIronOCRを検索

検索結果には、潜在的なソリューションのリストが提供されることがあります。 必要なソリューションパッケージを選択してインストールする必要があります。

また、例のために以下のように、必要なTesseract言語パックを1つずつインストールします。

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

Tesseract OCR for Multiple Languages (Developer Tutorial): 図9 - フランス語言語パッケージのインストール

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

Tesseract OCR for Multiple Languages (Developer Tutorial): 図10 - スペイン語言語パッケージのインストール

IronOCRでTesseractエンジンと複数の言語を読む

以下の例は、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("Recognized 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("Recognized 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("Recognized Text:")
			Console.WriteLine(result.Text)
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

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

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

入力画像ファイルのパスはinputFile変数を使用して設定されます。 画像はOcrInputクラスのインスタンスを持つusingステートメント内にロードされ、適切なリソース管理と破棄を行います。 最後に、IronTesseractインスタンスのReadメソッドを使用して入力オブジェクトでOCRを実行します。

認識されたテキストはConsole.WriteLineメソッドを使用してコンソールに印刷されます。 このプログラムは、IronOCRの多言語機能を活用して、異なる言語の言葉を含む画像からテキストを抽出する効果的な方法を示しています。

Tesseract OCR for Multiple Languages (Developer Tutorial): 図11 - 認識されたテキスト出力

なぜIronOCRはTesseractよりも優れているのか?

IronOCRはTesseractと比べてユーザーフレンドリーであり、いくつかの利点を提供します。 まず、IronOCRは125の言語を即座にサポートし、Tesseractは100のサポートされている言語で最適なパフォーマンスのために複雑な設定と追加のトレーニングが必要になることがあります。 さらに、IronOCRは.NETアプリケーションに簡単に統合でき、包括的なドキュメントが付属しています。

IronOCRは学習曲線が厳しくなく、Tesseractよりも少ない技術的セットアップを必要とします。 また、複雑な文書タイプでの精度と信頼性を向上させるために、先進的な画像前処理と定期的な更新を備えており、開発者が確固たる、汎用性が高く、簡単に適用できるOCRソリューションを求めている場合に最適です。

結論

Tesseract OCR for Multiple Languages (Developer Tutorial): 図12 - IronOCRライセンスページ

TesseractとIronOCRはどちらも強力なOCR技術ですが、それぞれ独自の能力と強みを持っています。 オープンソースであるTesseractは、無料のソリューションを求めている誰にとっても信頼性が高く、活発なコミュニティがあり継続的に改善されています。

対照的に、IronOCRは.NET Framework用の専用ライブラリで、より良いユーザーエクスペリエンスを提供し、ほとんどの画像ファイルタイプをサポートします。また、低品質な画像コンテンツでも優れたテキスト認識を行います。 IronOCRは多くの言語を完全にサポートし、よりユーザーフレンドリーになる追加機能を備えています。

IronOCRはコスト効果の高い開発版を提供し、購入時には生涯ライセンスを提供します。 IronOCRパッケージの開始価格は$liteLicenseで、複数システムの一回限りの費用で優れた価値と24時間年中無休の技術者サポートをライセンスされたユーザーに提供します。 詳細は、IronOCRウェブサイトをご覧ください。

よくある質問

.NETプロジェクトで複数言語のTesseract OCRをどのように使用できますか?

IronOCRライブラリを使用すると、複数言語のテキストを含む画像を処理するためのTesseract OCRの統合が簡素化されます。.NETプロジェクトにIronOCR/Tesseract NuGetパッケージを追加し、IronTesseractクラスのLanguageプロパティを使用して言語を設定します。

IronOCRは標準のTesseractに対してどのような利点を提供しますか?

IronOCRは.NETアプリケーション向けによりユーザーフレンドリーなAPIを提供し、120を超える言語を標準でサポートし、精度向上のための高度な画像前処理を提供します。.NETプロジェクトとのシームレスな統合を提供し、開発者向けに広範なドキュメントとサポートを備えています。

IronOCRは複数の言語を同時に処理できますか?

はい、IronOCRはLanguageプロパティで複数の言語を設定することで多言語ドキュメントを処理できます。この機能は、ドキュメントに異なる言語のテキストが含まれ得るグローバルアプリケーションに特に有用です。

C#プロジェクトでIronOCRを設定するプロセスは何ですか?

C#プロジェクトにIronOCRを設定するには、まずVisual StudioのNuGetパッケージマネージャーを介してIronOCR/Tesseract NuGetパッケージをインストールします。その後、コードでIronTesseractクラスのインスタンスを作成し、テキストを含む画像を処理するためのメソッドを使用します。

IronOCRはOCR結果の精度をどのように向上させますか?

IronOCRはテキスト抽出前に画像品質を向上させる高度な画像前処理技術を通じて精度を改善します。この機能は様々な品質の画像からテキストを正確に認識するのに役立ちます。

IronOCR はどのような種類の文書を処理できますか?

IronOCRはスキャンした画像、PDF、デジタルカメラで撮影した写真など、さまざまなドキュメントタイプを処理できます。これらの文書を編集可能で検索可能なデータ形式に変換します。

IronOCRはデータ入力タスクの自動化に適していますか?

はい、IronOCRは印刷されたドキュメントをデジタルテキストに変換することで、データ入力の自動化に非常に効果的で、手動作業を減らし、時間を節約します。金融、健康、教育などの分野で広く使用されています。

IronOCRはOCR技術の実装において開発者をどのように支援しますか?

IronOCRは、広範なドキュメント、使いやすいAPI、24/7オンラインエンジニアサポートを提供し、開発者が.NETアプリケーションにOCR技術を実装しやすくします。

IronOCRの主なユースケースは何ですか?

IronOCRは印刷された文書のデジタル化、データ入力の自動化、請求書の処理、視覚障害者向けのアクセシビリティソフトウェアの開発に使用されます。金融、医療、教育など、さまざまな業界で適用されています。

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