IRONOCRの使用

C#チュートリアルで請求書からテキストを取得する方法

更新済み 2023年12月18日
共有:

IronOCR、光学文字認識API

IronOCR 画像から情報抽出のためにテキストデータを認識するために使用できるOCRライブラリで、レシートOCRを含みます。 それは、レシート認識に関してこれまでで最も正確なOCRエンジンの一つとされるTesseract OCRエンジンの上に構築されています。 IronOCRは、PNG、JPG、TIFF、JSON形式、およびPDFなどのさまざまなドキュメントタイプから重要な情報を読み取るために使用でき、複数の言語でテキストを認識できます。

IronOCRの領収書OCRに特に有用な主要な機能やサービスの一つは、その能力です。 テキストの向きを自動的に検出画像が回転または歪んでいても。 これが正確なテキスト認識にとって不可欠です。レシートのアップロードとデータ抽出の際、レシートには多くの情報が含まれ、折りたたまれたり、シワが寄ったりすることがあり、テキストが歪む可能性があるためです。

2. IronOCRの機能

  • C# OCRは、ディープラーニングを使用して画像、スキャンされたドキュメント、およびPDFからテキストをスキャンして認識します。
  • .NETのOCRは、127以上の世界中の言語をサポートしています。
  • IronOCRは、PNG、JPG、TIFF、PDFなどの多くのファイル形式の画像からテキストを読み取ることができます。
  • テキスト 構造化データJSON出力、または 検索可能なPDF 抽出された情報から生成できます。
  • IronOCRは.NET 5、6、7をサポートしています。 (コア、フレームワーク、スタンダード).
  • IronOCRは、入力をテキスト領域に基づいてさまざまな画像に分割します。 それは使用します コンピュータビジョン テキスト要素を含む領域を識別するために。

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

Visual Studioソフトウェアを開き、[ファイル]メニューに移動します。 「新しいプロジェクト」を選択し、その後に「コンソールアプリケーション」を選択します。

プロジェクト名を入力し、適切なテキストボックスでパスを選択してください。 次に、「Create」ボタンをクリックします。 以下のスクリーンショットのように、必要な .NET フレームワークを選択してください。

請求書からテキストを取得する方法のC#チュートリアル、図1:Visual Studioで新しいプロジェクトを作成する

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

Visual Studio プロジェクトは、コンソール アプリケーションの構造を生成します。 完了すると、Program.csファイルが開きます。このファイルでソースコードを記述および実行できます。

請求書からテキストを取得するC#チュートリアル、図2:Visual Studio新規プロジェクトウィザードから生成されたprogram.csファイル

Visual Studioの新しいプロジェクトウィザードから生成されたprogram.csファイル

4. IronOCR のインストール

Visual Studioでは、C#プロジェクトにIronOCRを簡単に統合することができます。 IronOCRはC# .NETプロジェクトに統合するための複数の方法を提供しています。 ここでは、そのうちの1つを取り上げます:NuGetパッケージマネージャーを使用してIronOCRをインストールする方法について。

Visual Studioで、ツール > NuGetパッケージマネージャー > パッケージマネージャーコンソール に移動します

請求書からテキストを取得する方法 - C# チュートリアル, 図 3: Visual Studio NuGet パッケージ マネージャー コンソール

Visual Studio NuGet パッケージ マネージャー コンソール

クリックすると、Visual Studioのウィンドウの下に新しいコンソールが表示されます。 コンソールに以下のコマンドを入力し、Enterキーを押してください。

Install-Package IronOcr

IronOCRは数秒でインストールされます。

レシートからのデータ抽出をIronOCRを使用して行う

IronOCRは、レシートから詳細までのデータを抽出してアクセスするために使用できる強力なOCRライブラリです。IronOCRを使用すると、レシートの写真を撮り、それを機械可読なテキストに変換して、データプライバシーを損なうことなく簡単に分析および処理することができます。

以下は、IronOCRを使用してレシートからテキストを抽出し、レシートOCRの動作を示す方法の例です。

using IronOcr;
using System;

IronTesseract ocrTesseract = new IronTesseract();

using (OcrInput ocrInput = new OcrInput("ocr.png"))
{
    OcrResult ocrResult = ocrTesseract.Read(ocrInput);
    string RecognizedText = ocrResult.Text;

    Console.WriteLine(RecognizedText);
}
using IronOcr;
using System;

IronTesseract ocrTesseract = new IronTesseract();

using (OcrInput ocrInput = new OcrInput("ocr.png"))
{
    OcrResult ocrResult = ocrTesseract.Read(ocrInput);
    string RecognizedText = ocrResult.Text;

    Console.WriteLine(RecognizedText);
}
Imports IronOcr
Imports System

Private ocrTesseract As New IronTesseract()

Using ocrInput As New OcrInput("ocr.png")
	Dim ocrResult As OcrResult = ocrTesseract.Read(ocrInput)
	Dim RecognizedText As String = ocrResult.Text

	Console.WriteLine(RecognizedText)
End Using
VB   C#

情報文を日本語に翻訳しますね:

以下をご参照ください 画像からテキストを読み取るチュートリアル C#コンピュータ言語を使用してIronOCRが画像からテキストを読み取る方法の詳細については、こちらをご覧ください。

上記のコードの出力は以下の通りです:

- LOGO SHOP
- LOREM IPSUM
- DOLOR SITAMET CONSECTETUR
- ADIPISCING ELIT
- 1 LOREM IPSUM $3.20
- 2 ORNARE MALESUADA $9.50
- 3 PORTA FERMENTUM $5.90
- 4 SODALES ARCU $6.00
- 5 ELEIFEND $9.00
- 6 SEMNISIMASSA $0.50
- 7 DUIS FAMES DIS $7.60
- 8 FACILISIRISUS $810
- TOTAL AMOUNT $49.80
- CASH $50.00

レシート画像からの特定データ抽出にIronOCRを使用

強力なOCRライブラリであるIronOCRは、開発者がスキャンされたレシートから税額や販売者名などの重要な情報を取得することを可能にします。

以下は、領収書の画像から合計金額を抽出するためにIronOCRを使用する方法の例です:

using IronOcr;
using System;

IronTesseract ocrTesseract = new IronTesseract();

ocrTesseract.Language = OcrLanguage.English;

// Code line to load the receipt image
using (OcrInput ocrInput = new OcrInput("ocr.png"))
{
    // Optimize the input image for OCR
    ocrInput.DeNoise(true);
    ocrInput.Contrast();
    ocrInput.EnhanceResolution();
    ocrInput.ToGrayScale();

    OcrResult ocrResult = ocrTesseract.Read(ocrInput);

    // Search for the total price in the OCR result
    var totalPrice = ocrResult.Text.Contains("Total:") ? ocrResult.Text.Split("Total:")[1].Split("\n")[0] : "";
    Console.WriteLine("Total Price: " + totalPrice);
}
using IronOcr;
using System;

IronTesseract ocrTesseract = new IronTesseract();

ocrTesseract.Language = OcrLanguage.English;

// Code line to load the receipt image
using (OcrInput ocrInput = new OcrInput("ocr.png"))
{
    // Optimize the input image for OCR
    ocrInput.DeNoise(true);
    ocrInput.Contrast();
    ocrInput.EnhanceResolution();
    ocrInput.ToGrayScale();

    OcrResult ocrResult = ocrTesseract.Read(ocrInput);

    // Search for the total price in the OCR result
    var totalPrice = ocrResult.Text.Contains("Total:") ? ocrResult.Text.Split("Total:")[1].Split("\n")[0] : "";
    Console.WriteLine("Total Price: " + totalPrice);
}
Imports Microsoft.VisualBasic
Imports IronOcr
Imports System

Private ocrTesseract As New IronTesseract()

ocrTesseract.Language = OcrLanguage.English

' Code line to load the receipt image
Using ocrInput As New OcrInput("ocr.png")
	' Optimize the input image for OCR
	ocrInput.DeNoise(True)
	ocrInput.Contrast()
	ocrInput.EnhanceResolution()
	ocrInput.ToGrayScale()

	Dim ocrResult As OcrResult = ocrTesseract.Read(ocrInput)

	' Search for the total price in the OCR result
	Dim totalPrice = If(ocrResult.Text.Contains("Total:"), ocrResult.Text.Split("Total:")(1).Split(vbLf)(0), "")
	Console.WriteLine("Total Price: " & totalPrice)
End Using
VB   C#

以下の設定のおかげで OcrInput(OCR入力) クラスでは、OCRプロセスでより高い精度を得るために、入力画像を最適化することが可能です。

入力

C# チュートリアルで請求書からテキストを取得する方法、図 4: 領収書から特定のデータの抽出を示すために使用される入力画像

レシートから特定のデータを抽出するための入力画像

出力

- Total 16.5

レシート上のバーコードを読み取る

IronOCRは、テキストだけでなくレシート上のバーコードを読み取るためにも使用できます。 レシート上のバーコードをIronOCRで読み取るには、次のコードを使用する必要があります: BarcodeReader (バーコードリーダー) クラスと組み合わせて `ReadBarCodes (バーコードを読み取る)もちろん、英語のテキストを教えていただけますでしょうか? メソッド。

以下に、レシート画像上のバーコードを読み取るためにIronOCRを使用する方法の例を示します。

using IronOcr;
using System;

var ocrTesseract = new IronTesseract();
ocrTesseract.Configuration.ReadBarCodes = true;
using (var ocrInput = new OcrInput("b.png"))
{
    var ocrResult = ocrTesseract.Read(ocrInput);
    foreach (var barcode in ocrResult.Barcodes)
    {
        Console.WriteLine(barcode.Value);
    }
}
using IronOcr;
using System;

var ocrTesseract = new IronTesseract();
ocrTesseract.Configuration.ReadBarCodes = true;
using (var ocrInput = new OcrInput("b.png"))
{
    var ocrResult = ocrTesseract.Read(ocrInput);
    foreach (var barcode in ocrResult.Barcodes)
    {
        Console.WriteLine(barcode.Value);
    }
}
Imports IronOcr
Imports System

Private ocrTesseract = New IronTesseract()
ocrTesseract.Configuration.ReadBarCodes = True
Using ocrInput As New OcrInput("b.png")
	Dim ocrResult = ocrTesseract.Read(ocrInput)
	For Each barcode In ocrResult.Barcodes
		Console.WriteLine(barcode.Value)
	Next barcode
End Using
VB   C#

入力画像

C# チュートリアルで請求書からテキストを取得する方法、図 4: バーコード読み取りの入力

バーコードの読み取り用入力

出力テキスト

請求書からテキストを取得する方法 C# チュートリアル、図 5: バーコード画像の処理結果

バーコード画像の処理結果

8. 結論

上記の記事では、領収書からデータを抽出するためにC#プロジェクトでIronOCRをインストールして使用する手順について説明しています。例としてコードスニペットも提供されています。

チュートリアルを読んでください 画像からテキストを読み取る.

IronOCRは Iron Suite、これは文書と画像を操作するための5つの異なる.NETライブラリを含みます。

あなたは Iron Suite 全体を購入する 2つの価格で IronOCRライセンス.

本番アプリケーションで IronOCR をお試しください。 無料試用.

< 以前
C#でナンバープレートをOCRする方法(チュートリアル)
次へ >
C#でスクリーンショットからテキストをOCRで取得する方法