IRONOCRの使用

C#でOCRレシートスキャナーを作成する方法

公開済み 2024年2月18日
共有:

このチュートリアルは、初心者が作成するのを支援するために設計されていますOCRレシートスキャナーusing the can be translated into Japanese as:

を使用して.IronOCRC# の OCR API このガイドが終わる頃には、光学文字認識(OCR)の実装方法を理解できるようになります。(OCR (光学式文字認識))レシートOCR APIを使用して、さまざまな種類のレシートファイルを編集可能かつ検索可能なデータに変換するために。 この技術は、経費管理の自動化を目指し、手動データ入力を最小限に抑えたい企業にとって画期的なものとなるでしょう。 開始しましょう!

C#でOCRレシートスキャナーを作成する方法

  1. Visual StudioでC#コンソールプロジェクトを作成する

  2. NuGetパッケージマネージャーを使用してOCRライブラリをインストールします。OcrInputメソッドを使用してレシートをプログラムにロードします。

  3. メソッドReadを使用してテキストを抽出します。抽出されたテキストをコンソールに表示します。

前提条件

コード部分に入る前に、以下を確認してください:

  1. Visual Studio: これは私たちの統合開発環境 (統合開発環境) です。(IDE (統合開発環境))、ここでC#コードを書いて実行します。

  2. IronOCRライブラリ: C#アプリケーションに簡単に統合できる高度なOCRライブラリであるIronOCRを使用します。

    1. サンプル領収書: テストに使用する領収書画像ファイル"Sample_Receipt.jpg"OCRの実装.

    C#でOCRレシートスキャナーを作成する方法: 図1 - サンプルレシートの画像

ステップ1: プロジェクトのセットアップ

Visual Studioを開く: デスクトップまたはアプリケーションメニューでVisual Studioのアイコンを見つけ、ダブルクリックしてプログラムを開きます。

新しいプロジェクトを作成: Visual Studioが開くと、起動ウィンドウが表示されます。 「新しいプロジェクトを作成」ボタンをクリックしてください。 既にVisual Studioを開いていても起動ウィンドウが表示されない場合は、上部メニューの「ファイル」>「新規作成」>「プロジェクト」をクリックしてアクセスできます。

プロジェクトの種類を選択: 「新しいプロジェクトを作成」ウィンドウでは、さまざまなプロジェクトテンプレートが表示されます。 検索ボックスに「Console App」と入力してオプションを絞り込み、Console App を選択します。(.NET Core(ドットネット コア))またはコンソールアプリ(.NETフレームワーク)お好みと互換性に応じて。 次に、次へ ボタンをクリックします。

新しいプロジェクトの構成:次に、「新しいプロジェクトの構成」というタイトルの画面が表示されます。

  • プロジェクト名フィールドに、「OCRReceiptScanner」とプロジェクトの名前を入力してください。
  • 場所フィールドでプロジェクトが保存される場所を選択または確認してください。
  • 必要に応じて、プロジェクト名とは異なるソリューション名を指定することもできます。
  • これらの詳細を入力した後に「次へ」ボタンをクリックしてください。

    追加情報: 対象の .NET Framework を選択するよう求められる場合があります。 最新バージョンを選択してください(特定の互換性要件がない限り)Create をクリックします。

ステップ2: IronOCRの統合

IronOCRライブラリを使用する前に、プロジェクトに含める必要があります。 以下の手順に従ってください:

  1. ソリューションエクスプローラーでプロジェクトを右クリックします。

  2. 「NuGet パッケージの管理」を選択してください。

  3. NuGet パッケージ マネージャー ウィンドウには、ブラウズインストール済み更新、および 統合 のような複数のタブが表示されます。 「ブラウズ」 タブをクリックしてください。

  4. 検索ボックスに IronOCR と入力します。 これが、私たちのプロジェクトに追加したいライブラリの名前です。 検索するにはエンターキーを押してください。

  5. 検索結果にIronOCRライブラリパッケージが表示されます。 それは最初に表示される結果の一つのはずです。 クリックして選択してください。

  6. IronOCRパッケージを選択すると、右側にパッケージの情報、説明やバージョンなどが表示されるパネルが表示されます。 このパネルにはInstallボタンもあります。

    C#でOCR領収書スキャナーを作成する方法: 図2 - NuGetパッケージマネージャーを通じてIronOCRをインストールする

  7. インストール ボタンをクリックしてください。 このアクションは、変更を確認する必要があるかもしれません。また、IronOCR と一緒に含まれる依存関係の一覧が表示される場合があります。 変更点と依存関係を確認し、すべてが正しいようであれば、確認してインストールを進めてください。

ステップ 3: プロジェクトの設定

IronOCRをインストールした後、次のステップはプロジェクトを構成することです。 以下の手順に従ってください:

名前空間を追加: Program.cs ファイルの最上部に、次の名前空間を含めてください:

using IronOcr;
using System;
using IronOcr;
using System;
Imports IronOcr
Imports System
VB   C#

設定の構成: APIキーやライセンスキーなどの設定がある場合は、必ず含めてください。 IronOCRでは、以下のコードに示されたようにライセンスキーを設定する必要があります:

License.LicenseKey = "License-Key"; // replace 'License-Key' with your key
License.LicenseKey = "License-Key"; // replace 'License-Key' with your key
License.LicenseKey = "License-Key" ' replace 'License-Key' with your key
VB   C#

ステップ4: 領収書を読む

では、レシートを読み取るコードを書きましょう。

領収書のパスを定義する: スキャンしたい領収書ファイルのパスを指定します。

string pdfFilePath = "Sample_Receipt.jpg";
string pdfFilePath = "Sample_Receipt.jpg";
Dim pdfFilePath As String = "Sample_Receipt.jpg"
VB   C#

Try-Catch Block: トライキャッチブロックを使用してエラーハンドリングを実装します。 これはOCRプロセス中に発生する例外を管理するのに役立ちます。

try
{
    // OCR code will go here
}
catch (Exception ex)
{
    // Handle exceptions here
    Console.WriteLine($"An error occurred: {ex.Message}");
}
try
{
    // OCR code will go here
}
catch (Exception ex)
{
    // Handle exceptions here
    Console.WriteLine($"An error occurred: {ex.Message}");
}
Try
	' OCR code will go here
Catch ex As Exception
	' Handle exceptions here
	Console.WriteLine($"An error occurred: {ex.Message}")
End Try
VB   C#

ステップ 5:OCR の実装

ステップ5では、アプリケーションのコア機能に入り、OCRを実装して領収書のデータを読み取り解析します。 これには、OCRエンジンの初期化、入力の構成、OCR操作の実行、および結果の表示が含まれます。

IronTesseractを初期化

コードの最初の部分は IronTesseract クラスのインスタンスを作成します:

var ocr = new IronTesseract();
var ocr = new IronTesseract();
Dim ocr = New IronTesseract()
VB   C#

IronTesseractのインスタンスを作成することで、OCRツールを設定し、文字認識タスクを実行する準備をすることになります。 車を運転する前にエンジンを始動するようなものです。 このオブジェクトは、入力の読み取りやテキストの抽出などを含むOCRプロセスを制御するために使用されます。

OCR入力の設定

次に、OCRプロセスの入力を定義します:

using (var input = new OcrInput(pdfFilePath))
{
    // OCR processing will go here
}
using (var input = new OcrInput(pdfFilePath))
{
    // OCR processing will go here
}
Using input = New OcrInput(pdfFilePath)
	' OCR processing will go here
End Using
VB   C#

このセグメントでは、OcrInput を使用して、処理したいファイルを指定します。 pdfFilePathは、私たちのレシートファイルのパスを含む変数です。この変数をOcrInputに渡すことで、OCRエンジンに「これが読み取りたいファイルです」と指示しています。usingステートメントは、OcrInputが使用するリソースが適切に解放されるようにする特別なC#の構文です。(ファイルハンドルのような)処理が完了したら、適切に解放されます。 リソースを効率的に管理し、不要なメモリ使用を避けてアプリケーションがスムーズに動作するようにする方法です。

OCRを実行する

using ブロック内で、ocr インスタンスの Read メソッドを呼び出します。

var result = ocr.Read(input);
var result = ocr.Read(input);
Dim result = ocr.Read(input)
VB   C#

Readメソッドはパラメーターとして入力ファイルパスを受け取ります。 この行はレシートのスキャンを開始します。 指定された入力ファイルのOCRを行い、データを抽出して変数resultに格納します。 この方法で抽出したテキストを使用して、任意のテキスト操作を実行することができます。

結果を出力

最後に、OCRプロセスによって認識されたテキストを出力します。

Console.WriteLine(result.Text);
Console.WriteLine(result.Text);
Console.WriteLine(result.Text)
VB   C#

result 変数にはOCRプロセスの出力が含まれており、result.Text にはレシートから抽出された実際のテキストが含まれています。 Console.WriteLine 関数はこのテキストを取得して、コンソールに表示します。 これにより、OCRプロセスの結果を確認および検証することができます。 以下は完全なProgram.csファイルのコードです:

using IronOcr;
using Microsoft.Extensions.Configuration;
using System;
class Program
{
    static void Main(string [] args)
    {
        License.LicenseKey = "Your-License-Key";
        string pdfFilePath = "Sample_Receipt.jpg";
        try
        {
            var ocr = new IronTesseract();
            using (var input = new OcrInput(pdfFilePath))
            {
                var result = ocr.Read(input);
                    Console.WriteLine(result.Text);
            }
        }
        catch (Exception ex)
        {
            // Handle exceptions (e.g., file not found, OCR errors) and log them if necessary.
            Console.WriteLine($"An error occurred: {ex.Message}");
        }
    }
}
using IronOcr;
using Microsoft.Extensions.Configuration;
using System;
class Program
{
    static void Main(string [] args)
    {
        License.LicenseKey = "Your-License-Key";
        string pdfFilePath = "Sample_Receipt.jpg";
        try
        {
            var ocr = new IronTesseract();
            using (var input = new OcrInput(pdfFilePath))
            {
                var result = ocr.Read(input);
                    Console.WriteLine(result.Text);
            }
        }
        catch (Exception ex)
        {
            // Handle exceptions (e.g., file not found, OCR errors) and log them if necessary.
            Console.WriteLine($"An error occurred: {ex.Message}");
        }
    }
}
Imports IronOcr
Imports Microsoft.Extensions.Configuration
Imports System
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		License.LicenseKey = "Your-License-Key"
		Dim pdfFilePath As String = "Sample_Receipt.jpg"
		Try
			Dim ocr = New IronTesseract()
			Using input = New OcrInput(pdfFilePath)
				Dim result = ocr.Read(input)
					Console.WriteLine(result.Text)
			End Using
		Catch ex As Exception
			' Handle exceptions (e.g., file not found, OCR errors) and log them if necessary.
			Console.WriteLine($"An error occurred: {ex.Message}")
		End Try
	End Sub
End Class
VB   C#

ステップ6: アプリケーションの実行

  1. プロジェクトのビルド: 「ビルド」メニューをクリックし、「ソリューションのビルド」を選択します。

  2. プロジェクトの実行: F5キーを押すか「開始」ボタンをクリックしてアプリケーションを実行します。

    これで、レシートのテキストがコンソールに出力されるのが見えます。 このテキストは、レシート画像から抽出されたデータを表しています。 これがIronOCRを使用して領収書をスキャンする方法です。 これは、紙のレシートからデータを抽出するためにOCR機能を使用する簡単な例です。非常に一般的な実装です。 レシート画像のレイアウトに合わせてコードを修正できます。

    OCR レシートスキャナーを C# で作成する方法: 図 3 - 前のコード例から出力されたテキスト

    その後、スキャンしたレシートから得た非構造化データを使用できます。レシートの特定のセクションから重要な情報を取得できます。 または、領収書のデータをより整理された方法で表示することもできます。 IronOCRを使用してOCRレシートスキャンソフトウェアアプリケーションを作成できます。 これはレシートのフィールドの正確なデータを抽出するのに役立ちます。

結論

おめでとうございます! C#およびIronOCRを使用してOCRレシートスキャナーを正常に構築しました。 このスキャナーは、経費管理、サプライチェーン管理など、さまざまなビジネスニーズのためにデータ抽出の精度を大幅に向上させることができます。 スキャンした領収書を見直してデータを手動で抽出する必要はもうありません。

IronOCRは無料体験ユーザーは最初のコストなしでその機能を探索および評価することができます。プロフェッショナルな環境でフルスペクトラムの機能を統合して活用することを求める人々のためには、$749 からのライセンスで、強力なOCRレシートスキャンおよびデータ抽出ニーズに対する包括的なソリューションを提供します。

忘れないでください、これはほんの始まりに過ぎません。 このアプリケーションを拡張して、さまざまなファイルタイプをサポートしたり、データプライバシーを向上させたり、税額、日付、項目明細などの特定のフィールドのレシート認識などの追加機能を統合したりできます。 OCRテクノロジーを使用することで、可能性は広がり、より効率的で知的な業務プロセスへの道が開かれます。 コーディングを楽しんでください!

< 以前
C#でOCRを使用して身分証明書を読み取る方法
次へ >
請求書のためのOCRソリューションを作成する方法