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

C#でOCRを使って領収書からデータを抽出する方法

IronOCR は、高度な OCR テクノロジーを使用して領収書画像からテキストを抽出するための強力な C# ライブラリを提供し、125 の言語と組み込みの画像前処理をサポートして、経費の追跡とデータ分析の自動化を可能にします。

領収書とオートメーション

領収書は今日の急速な世界で不可欠です。 食料品を購入する場合でも、外食する場合でも、領収書は支出を追跡し、予算を立てるのに役立ちます。 一方、店舗ではレシートスキャナーを使用して売上データを分析し、データ抽出技術を通じて需要を予測し、在庫を管理しています。

しかし、領収書は読みにくい場合があり、計算が必ずしも明確であるとは限りません。 予算作成のための手動データ入力は、特に項目が多い場合には面倒で、エラーが発生しやすくなります。 レシートを紛失すると、毎月の浪費が突然謎になってしまうことがあります。 従来の紙の領収書は、印刷品質が悪く、インクが褪色し、感熱紙が劣化することが多いため、正確な抽出にはOCR 画像の最適化が不可欠です。

これを解決するために、予算作成アプリや財務アプリではOCR (光学式文字認識) 技術が採用されています。 OCR は領収書をデジタル形式でスキャンすることで、エラーを最小限に抑え、データ入力を自動化し、経費を追跡し、購入パターンを明らかにします。 最新のOCR ソリューションは、従来の POS プリントアウトからバーコードや QR コードの読み取り機能を備えたデジタル領収書まで、さまざまな領収書形式に対応します。

OCR は機械学習を使用して画像からテキストを識別して抽出します。 このプロセスには、画像の前処理、文字の分割、パターン認識、検証が含まれます。 ただし、OCR は完璧ではなく、ぼやけや汚れによってエラーが発生する可能性があります。 高度なシステムでは、コンピューター ビジョン技術を使用して精度を向上させます。 ドキュメント自動化を成功させるには、読み取りを効率的に処理して最適化する信頼性の高い OCR ライブラリを選択することが重要です。

領収書処理に IronOCR を選ぶべき理由は何ですか?

IronOCRは、カスタマイズされたTesseract OCRエンジンをベースに構築されたC#ライブラリです。標準のTesseractとは異なり、IronOCRにはTesseract 5の最適化と.NET開発者向けに特別に設計された機能が含まれています。 これが目立つ点です:

1.相互互換性: .NET 8、7、6、5、および Framework 4.6.2 以降で動作します。 Windows、macOS、Azure、Linux で実行されます。 DockerAWS LambdaAzure Functionsにシームレスにデプロイします。

2.柔軟性と拡張性: JPG、PNG、GIF 形式を処理します。 System.Drawing オブジェクトと統合します。 複数ページの TIFFおよびPDF ストリームを処理します。 大容量のシナリオ向けに マルチスレッドをサポートします。

3.使いやすさとサポート:堅牢な API と 24 時間 365 日のサポートが十分に文書化されています。 シンプルな 1 行操作詳細な構成オプションを提供します。 包括的なトラブルシューティング ガイドが含まれています。

4.多言語機能: 125 の国際言語をサポートします。 製品名と価格を効果的に認識します。 ドキュメントごとに複数の言語を処理します。 カスタムトレーニング データ ファイルをサポートします。

5.高度な画像処理:内蔵フィルターにより領収書の品質が自動的に向上します。 ノイズ低減方向補正DPI 最適化が含まれます。 フィルター ウィザードは最適な設定を自動的に決定します。

アプリケーションに領収書 OCR を実装するにはどうすればよいですか?

始めるにはどのようなライセンスが必要ですか?

IronOCR を使用する前に、ライセンス キーが必要です。 こちらから無料トライアルをご利用ください。 ライセンス オプションには、さまざまなチーム サイズと展開に対応する Lite、Plus、Professional レベルが含まれます。 ライセンス キーの適用についてはドキュメントを参照してください。

// Replace the license key variable with the trial key you obtained
IronOcr.License.LicenseKey = "REPLACE-WITH-YOUR-KEY";
// Replace the license key variable with the trial key you obtained
IronOcr.License.LicenseKey = "REPLACE-WITH-YOUR-KEY";
$vbLabelText   $csharpLabel

Web アプリケーションの場合、集中構成のためにWeb.config にライセンス キーを設定します。 ライセンス システムは、成長に応じた拡張とアップグレードをサポートします。

IronOCR でスーパーマーケットのレシートを読み取るにはどうすればいいですか?

スマートフォンでスーパーマーケットのレシートをスキャンし、商品名と価格を抽出して購入に基づいてロイヤルティ ポイントを付与するアプリで IronOCR を使用する方法を学びましょう。 これには、画像のキャプチャ、前処理、OCR の実行、結果の信頼スコアを使用したデータ検証が含まれます。

典型的な領収書の画像はどのようなものですか?

スーパーマーケットのレシートのサンプル。Lorem ipsum プレースホルダーテキスト、品目、価格、小計 $107.60、支払い詳細を表示。ヘッダー、品目リスト、合計、バーコードを含む一般的なレシートレイアウトを示しています。

レシートの一般的な課題としては、感熱紙の品質、さまざまなフォント、密集したレイアウト、折り畳みや湿気による損傷などがあります。 IronOCR の前処理では、画像品質補正色補正技術を通じてこれらを処理します。

領収書データを抽出するにはどのような C# コードが必要ですか?

using IronOcr;

class ReceiptScanner
{
    static void Main()
    {
        // Set the license key for IronOCR
        IronOcr.License.LicenseKey = "YOUR-KEY";

        // Instantiate OCR engine with optimal settings for receipts
        var ocr = new IronTesseract();

        // Configure for receipt-specific text
        ocr.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.$,- ";
        ocr.Configuration.BlackListCharacters = "~`@#%^*_+={}[]|\\:;\"'<>?";

        using var inputPhoto = new OcrInput();
        inputPhoto.LoadImage("supermarketexample.jpg");

        // Apply preprocessing for better accuracy
        inputPhoto.DeNoise();
        inputPhoto.ToGrayScale();
        inputPhoto.Contrast(1.2);

        // Perform OCR on the loaded image
        OcrResult result = ocr.Read(inputPhoto);

        // Output the text extracted from the receipt
        string text = result.Text;
        Console.WriteLine(text);

        // Extract specific data using OcrResult features
        foreach (var line in result.Lines)
        {
            if (line.Text.Contains("TOTAL"))
            {
                Console.WriteLine($"Total Found: {line.Text}");
            }
        }
    }
}
using IronOcr;

class ReceiptScanner
{
    static void Main()
    {
        // Set the license key for IronOCR
        IronOcr.License.LicenseKey = "YOUR-KEY";

        // Instantiate OCR engine with optimal settings for receipts
        var ocr = new IronTesseract();

        // Configure for receipt-specific text
        ocr.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.$,- ";
        ocr.Configuration.BlackListCharacters = "~`@#%^*_+={}[]|\\:;\"'<>?";

        using var inputPhoto = new OcrInput();
        inputPhoto.LoadImage("supermarketexample.jpg");

        // Apply preprocessing for better accuracy
        inputPhoto.DeNoise();
        inputPhoto.ToGrayScale();
        inputPhoto.Contrast(1.2);

        // Perform OCR on the loaded image
        OcrResult result = ocr.Read(inputPhoto);

        // Output the text extracted from the receipt
        string text = result.Text;
        Console.WriteLine(text);

        // Extract specific data using OcrResult features
        foreach (var line in result.Lines)
        {
            if (line.Text.Contains("TOTAL"))
            {
                Console.WriteLine($"Total Found: {line.Text}");
            }
        }
    }
}
$vbLabelText   $csharpLabel

このコードは以下を示します。

  1. IronOcr ライブラリをインポートします。 2.構成オプションを使用して OCR エンジン ( IronTesseract ) をインスタンス化します。
  2. レシート画像を読み込むための新しいOcrInputを作成します。
  3. 精度を高めるために前処理を適用します。
  4. Readメソッドを使用してテキストを抽出します。
  5. 構造化データのOcrResult クラスを使用して結果を処理します。

さまざまな領収書形式に対して、IronOCR は写真スクリーンショットスキャンされた文書の読み取りをサポートしています。 構造化された領収書からテーブルデータを抽出することもできます。

抽出されたデータの正確性を確認するにはどうすればいいですか?

一貫性を確保するには、抽出されたデータの信頼度レベルを確認します。 IronOCR は、複数のレベルで包括的な信頼性メトリックを提供します。

OcrResult result = ocr.Read(inputPhoto);
string text = result.Text;
Console.WriteLine(text);
Console.WriteLine($"Overall Confidence: {result.Confidence}%");

// Check confidence for individual elements
foreach (var word in result.Words)
{
    if (word.Confidence < 80)
    {
        Console.WriteLine($"Low confidence word: '{word.Text}' ({word.Confidence}%)");
    }
}

// Validate numeric values
foreach (var block in result.Blocks)
{
    if (block.Text.Contains("$"))
    {
        Console.WriteLine($"Price detected: {block.Text} (Confidence: {block.Confidence}%)");
    }
}
OcrResult result = ocr.Read(inputPhoto);
string text = result.Text;
Console.WriteLine(text);
Console.WriteLine($"Overall Confidence: {result.Confidence}%");

// Check confidence for individual elements
foreach (var word in result.Words)
{
    if (word.Confidence < 80)
    {
        Console.WriteLine($"Low confidence word: '{word.Text}' ({word.Confidence}%)");
    }
}

// Validate numeric values
foreach (var block in result.Blocks)
{
    if (block.Text.Contains("$"))
    {
        Console.WriteLine($"Price detected: {block.Text} (Confidence: {block.Confidence}%)");
    }
}
$vbLabelText   $csharpLabel

Confidenceプロパティは、統計の精度を 0 (低) から 100 (高) で測定します。 これらの信頼レベルを使用して、データの処理方法を決定します。 運用システムでは、OCR 操作を監視するための進捗状況追跡を実装します。

画像の前処理で OCR の精度を向上させるにはどうすればよいでしょうか?

処理する前に、より良い結果を得るために次の方法を使用して画像を準備します。

using var inputPhoto = new OcrInput();
inputPhoto.LoadImage("receipt.jpg");

// Basic preprocessing
inputPhoto.DeNoise();           // Removes noise from the image
inputPhoto.ToGrayScale();       // Converts image to grayscale
inputPhoto.Contrast(1.5);       // Enhance contrast for faded receipts
inputPhoto.Sharpen();           // Improve text clarity

// Advanced preprocessing for challenging receipts
inputPhoto.Rotate(2.5);         // Correct slight rotation
inputPhoto.Deskew();            // Automatically straighten receipt
inputPhoto.Scale(200);          // Upscale low-resolution images

// Handle specific receipt issues
if (receiptIsDamaged)
{
    inputPhoto.Dilate();        // Thicken thin text
    inputPhoto.Erode();         // Reduce text bleeding
}

// For colored or patterned backgrounds
inputPhoto.Binarize();          // Convert to pure black and white
inputPhoto.Invert();            // Handle white text on dark background
using var inputPhoto = new OcrInput();
inputPhoto.LoadImage("receipt.jpg");

// Basic preprocessing
inputPhoto.DeNoise();           // Removes noise from the image
inputPhoto.ToGrayScale();       // Converts image to grayscale
inputPhoto.Contrast(1.5);       // Enhance contrast for faded receipts
inputPhoto.Sharpen();           // Improve text clarity

// Advanced preprocessing for challenging receipts
inputPhoto.Rotate(2.5);         // Correct slight rotation
inputPhoto.Deskew();            // Automatically straighten receipt
inputPhoto.Scale(200);          // Upscale low-resolution images

// Handle specific receipt issues
if (receiptIsDamaged)
{
    inputPhoto.Dilate();        // Thicken thin text
    inputPhoto.Erode();         // Reduce text bleeding
}

// For colored or patterned backgrounds
inputPhoto.Binarize();          // Convert to pure black and white
inputPhoto.Invert();            // Handle white text on dark background
$vbLabelText   $csharpLabel

これらの前処理手順により、抽出の精度が向上します。 フィルターウィザードは、レシートに最適なフィルターの組み合わせを自動的に検出します。背景が色付きのレシートの場合は、色補正が不可欠です。

高度なシナリオでは、合計や税金情報に焦点を当てるために、地域固有の OCR が必要になる場合があります。 バーコード付きのレシートの場合は、テキスト抽出とともにバーコードの読み取りを有効にします。

領収書処理に IronOCR を使用する主な利点は何ですか?

! IronOCR ライセンスページには、3 つの価格帯 (Lite $749、Plus $1,499、Professional $2,999) が表示され、IronOCR と Iron Suite のオプションを切り替えることができます。Professional ライセンスの詳細と合計金額 $5,998 が表示されます。個別の製品ライセンスと Iron Suite バンドルによる、チームや企業向けの柔軟な価格設定オプションで、よりお得にご利用いただけます。

領収書 OCR テクノロジーは、予算編成、不正防止、自動データ収集などにおいて企業や個人に役立ちます。 IronOCR は、精度、スピード、既存のプラットフォームとの簡単な統合を実現し、領収書スキャン ソリューションに最適です。

主な利点は次のとおりです:

1.パフォーマンスの最適化:マルチスレッド速度チューニングにより、何千もの領収書を効率的に処理します。

2.エクスポートの柔軟性:領収書を検索可能な PDFまたはhOCR HTMLに変換して Web に統合します。

3.エンタープライズ機能:スケーラビリティを実現するために、 AzureDockerLinux サーバーにデプロイします。

4.専門的な認識:領収書の手書きメモを読み取り、表の構造を抽出します。

5.デバッグ ツール:ハイライト テキストの視覚化結果のエクスポート機能はトラブルシューティングに役立ちます。

IronOCR の試用ライセンスを試して、その機能をご確認ください。 包括的なドキュメントコード例は、領収書 OCR を迅速に実装するのに役立ちます。

よくある質問

OCR技術はスーパーマーケットのレシート処理をどのように自動化できますか?

OCR技術は、スキャンされたレシートをデジタルデータに変換することでスーパーマーケットのレシート処理を自動化できます。IronOCRを使用することで、レシートを読み取ってテキストを自動的に抽出でき、手動でのデータ入力の必要性を減らし、人為的なミスを最小限に抑えられます。

IronOCRはスーパーマーケットのレシート処理にどのような利点を提供しますか?

IronOCRは、クロスプラットフォーム互換性、複数の画像形式のサポート、簡単な統合のための強力なAPI、125言語までの処理能力など、スーパーマーケットのレシート処理にいくつかの利点を提供し、国際的なレシートに理想的となっています。

スーパーマーケットのレシートを読み取るためにIronOCRをC#アプリケーションにどのように統合しますか?

IronOCRをC#アプリケーションに統合するには、ライセンスキーを取得し、IronOcrライブラリをインポートして、IronTesseractエンジンを使用してスーパーマーケットのレシートの画像からテキストを読み取り、抽出します。

レシートスキャンでOCRの精度を向上させる前処理技術は何ですか?

IronOCRは、DeNoiseToGrayScaleなどの前処理技術を提供し、OCRの精度を向上させます。これらの技術は、画像のノイズを除去し、画像をグレースケールに変換することで、レシートからのテキスト抽出を強化します。

OCRで信頼性テストが重要なのはなぜで、どのように適用されますか?

IronOCRにおける信頼性テストは、抽出されたデータの正確性を測定するため重要であり、値は0(低)から1(高)までの範囲です。これにより、ユーザーはOCRの結果の信頼性を評価し、データ処理の決定に役立てることができます。

IronOCRは多言語スーパーマーケットレシートを処理できますか?

はい、IronOCRは最大125言語でOCR処理をサポートしており、多言語スーパーマーケットレシートを効率的に処理することができます。

IronOCRに興味のある開発者向けに試用版はありますか?

はい、IronOCRの無料トライアルが開発者向けに用意されており、購入前にその機能や能力を探索できます。

IronOCRはレシートスキャンにどのプラットフォームをサポートしていますか?

IronOCRは.NETプラットフォーム、包括.NET 8, 7, 6, 5, およびFramework 4.6.2以降と互換性があり、Windows、macOS、Azure、およびLinux環境での操作をサポートしています。

IronOCRはアプリケーションにレシートスキャンを統合するためにどのように適していますか?

IronOCRは、その高精度、使いやすさ、クロスプラットフォームサポート、さまざまな入力形式および言語をシームレスに処理する能力により、アプリケーションにレシートスキャンを統合するのに適しています。

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