IRONOCRの使い方 実際に有用なデータを抽出するレシートOCR API をC#で構築する Kannapat Udonpant 公開日:2026年3月8日 IronOCR をダウンロード NuGet ダウンロード DLL ダウンロード Windows 版 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る 領収書データを手入力する作業は、開発者が自分のキャリア選択に疑問を抱くような、退屈でミスが発生しやすい作業だ。 レシートOCR APIは、光学文字認識を用いてレシート画像からテキストを自動的に抽出し、アプリケーションが実際に使用できる構造化データに変換することで、手動によるデータ入力を不要にします。 経費管理の自動化、会計ソフトウェアとの連携、あるいはロイヤルティプログラムの推進など、目的が何であれ、堅牢なレシートOCRソリューションがその重責を担います。 この記事では、完全にオンプレミスで動作し、レシート画像をローカルで処理し、機密性の高いレシートデータをサードパーティのクラウドサービスに送信する必要のない.NETライブラリであるIronOCRを使用して、C#でレシートOCR APIを構築する方法を説明します。 つまり、正確性を損なうことなく、完全なデータ保護を実現するということです。 IronOCRの無料トライアルをご利用いただき、以下の例に沿って操作してみてください。 レシートのOCR技術はどのように機能するのですか? レシートOCR(光学文字認識)は、レシート画像に印刷された文字を機械が読み取れる文字に変換することで、レシートからのデータ抽出を自動化します。 内部的には、AI技術とディープラーニングモデルがレシートの視覚的なレイアウトを分析し、テキスト領域を特定し、比類のない精度で文字を認識します。多くの場合、鮮明なスキャン画像では99%以上の精度に達します。 最新のレシートOCR APIは、機械学習を用いて、さまざまなレシートの形式やレイアウトから、販売店名、日付、個々の明細項目、合計金額、税額などの重要な情報を解析します。 ディープラーニング技術により、これらのモデルは大規模なデータセットから学習し、時間の経過とともに新しいレシートのデザインや言語に適応することで、継続的に改善されます。その結果、さまざまな業界で時間のかかるエラーが発生しやすい手作業による入力作業に代わり、高速で信頼性の高いレシートデータ抽出が可能になります。 レシートスキャン技術は、複数の言語に対応し、JPG、PNG、PDFなどの形式の文書を処理し、構造化されたJSONなどの標準化された形式で結果を出力するため、既存システムとのシームレスな統合が容易です。 C#を使用して領収書データを抽出するにはどうすればよいですか? IronOCRを使えば、C#でレシートからデータを抽出するには、わずか数行のコードで済みます。 コアとなるワークフローは、レシートの画像ファイルを読み込み、OCRエンジンを実行し、抽出されたテキスト全体を返します。 using IronOcr; // Initialize the OCR engine for receipt scanning var ocr = new IronTesseract(); ocr.Language = OcrLanguage.English; // Load the receipt image for data extraction using var input = new OcrInput(); input.LoadImage("receipt.jpg"); // Extract text from the receipt OcrResult result = ocr.Read(input); Console.WriteLine(result.Text); using IronOcr; // Initialize the OCR engine for receipt scanning var ocr = new IronTesseract(); ocr.Language = OcrLanguage.English; // Load the receipt image for data extraction using var input = new OcrInput(); input.LoadImage("receipt.jpg"); // Extract text from the receipt OcrResult result = ocr.Read(input); Console.WriteLine(result.Text); Imports IronOcr ' Initialize the OCR engine for receipt scanning Dim ocr As New IronTesseract() ocr.Language = OcrLanguage.English ' Load the receipt image for data extraction Using input As New OcrInput() input.LoadImage("receipt.jpg") ' Extract text from the receipt Dim result As OcrResult = ocr.Read(input) Console.WriteLine(result.Text) End Using $vbLabelText $csharpLabel 出力 IronTesseract クラスは主要な OCR エンジンであり、Tesseract 5 をラップしたマネージド ラッパーで、ネイティブ C++ との相互運用や手動設定の手間を省きます。OcrLanguage.English を設定することで、エンジンにどの言語モデルを使用するかを指定できます。IronOCRは世界中のレシートを処理するために 125 以上の言語をサポートしています。 OcrInput は、ほぼすべての一般的な形式 (JPG、PNG、BMP、TIFF、GIF、WEBP) の領収書画像と PDF を受け入れます。 Read メソッドは実際の OCR を実行し、OcrResult オブジェクトを返します。これは、プレーン テキストだけでなく、段落、行、単語、信頼度スコア付きの個々の文字への構造化されたアクセスを含む、リッチなドキュメント オブジェクト モデルです。 これは、詳細なレベルでデータを抽出する必要があるレシート解析ワークフローに最適です。 画像前処理は、レシートスキャン時のエラーをどのように削減できるのか? 実際のレシート画像は、完璧であることはめったにない。 紙がくしゃくしゃになっていたり、照明が不十分だったり、わずかに回転していたりすると、ノイズが発生し、データ抽出時にエラーを引き起こす可能性があります。 OCRを実行する前に画像を前処理することで、精度が劇的に向上し、そうでなければレシートデータを破損させてしまうようなエラーを減らすことができます。 using IronOcr; var ocr = new IronTesseract(); using var input = new OcrInput(); input.LoadImage("receipt.jpg"); // Preprocess the receipt image to improve OCR accuracy input.DeNoise(); // Remove digital noise from the scanned receipt input.Deskew(); // Straighten a tilted or rotated receipt capture input.Sharpen(); // Enhance text clarity for better recognition OcrResult result = ocr.Read(input); Console.WriteLine($"Confidence: {result.Confidence}%"); Console.WriteLine(result.Text); using IronOcr; var ocr = new IronTesseract(); using var input = new OcrInput(); input.LoadImage("receipt.jpg"); // Preprocess the receipt image to improve OCR accuracy input.DeNoise(); // Remove digital noise from the scanned receipt input.Deskew(); // Straighten a tilted or rotated receipt capture input.Sharpen(); // Enhance text clarity for better recognition OcrResult result = ocr.Read(input); Console.WriteLine($"Confidence: {result.Confidence}%"); Console.WriteLine(result.Text); Imports IronOcr Dim ocr As New IronTesseract() Using input As New OcrInput() input.LoadImage("receipt.jpg") ' Preprocess the receipt image to improve OCR accuracy input.DeNoise() ' Remove digital noise from the scanned receipt input.Deskew() ' Straighten a tilted or rotated receipt capture input.Sharpen() ' Enhance text clarity for better recognition Dim result As OcrResult = ocr.Read(input) Console.WriteLine($"Confidence: {result.Confidence}%") Console.WriteLine(result.Text) End Using $vbLabelText $csharpLabel 画像前処理機能 抽出精度を向上させるため、 IronOCRにはOCR処理を開始する前に画像をクリーンアップするための複数の組み込みフィルターが用意されています。 関数 目的 DeNoise() スキャンした文書によく見られる斑点やデジタルノイズを除去します。 Deskew() 傾いたり歪んだりした画像の回転を検出し、補正します。 Sharpen() ぼやけた輪郭を強調し、薄れた文字を読みやすくします。 Binarize() 画像を白黒に変換してコントラストを高めます。 ToGrayScale() OCRエンジンが画像を処理しやすくするために、色データを削除します。 EnhanceResolution() 低解像度画像を高解像度化して、文字認識精度を向上させます。 信頼度スコアを用いたデータの検証 単純なテキスト抽出に加えて、OcrResult の Confidence プロパティは、出力の信頼性を示すパーセンテージ スコアを返します。 大量のデータを処理する自動領収書処理パイプラインにとって、このスコアは非常に貴重です。 この機能により、システムはしきい値を設定できます。例えば、 90%を超えるものはすべて自動的に処理し、信頼性の低い結果は手動で確認するためにフラグを立てることができます。 これにより、人間がすべてのレシートを確認する必要なく、高いデータ品質が確保されます。 OCRテキストから特定の領収書フィールドを解析するにはどうすればよいですか? OCRエンジンから生のテキストを取得できるのは素晴らしい第一歩だが、それはほんの始まりに過ぎない。 経費報告書やリアルタイム処理機能を備えた会計ツールを作成する場合、単なるテキストの羅列ではなく、日付、販売店名、最終合計金額などの具体的なデータフィールドが必要です。 IronOCRが画像の読み取りという面倒な作業を終えたら、レシートAPIで標準的なC#ロジックと正規表現(Regex)を使用して、必要な特定のフィールドを抽出できます。 using IronOcr; using System.Text.RegularExpressions; var ocr = new IronTesseract(); using var input = new OcrInput("receipt.jpg"); input.DeNoise(); OcrResult result = ocr.Read(input); string ocrText = result.Text; // Parse the date from receipt data var dateMatch = Regex.Match(ocrText, @"\d{1,2}/\d{1,2}/\d{2,4}"); string receiptDate = dateMatch.Success ? dateMatch.Value : "Not found"; // Parse the total amount var totalMatch = Regex.Match(ocrText, @"(?i)total[\s:$]*(\d+\.\d{2})"); string total = totalMatch.Success ? totalMatch.Groups[1].Value : "Not found"; Console.WriteLine($"Date: {receiptDate}"); Console.WriteLine($"Total: ${total}"); using IronOcr; using System.Text.RegularExpressions; var ocr = new IronTesseract(); using var input = new OcrInput("receipt.jpg"); input.DeNoise(); OcrResult result = ocr.Read(input); string ocrText = result.Text; // Parse the date from receipt data var dateMatch = Regex.Match(ocrText, @"\d{1,2}/\d{1,2}/\d{2,4}"); string receiptDate = dateMatch.Success ? dateMatch.Value : "Not found"; // Parse the total amount var totalMatch = Regex.Match(ocrText, @"(?i)total[\s:$]*(\d+\.\d{2})"); string total = totalMatch.Success ? totalMatch.Groups[1].Value : "Not found"; Console.WriteLine($"Date: {receiptDate}"); Console.WriteLine($"Total: ${total}"); Imports IronOcr Imports System.Text.RegularExpressions Dim ocr As New IronTesseract() Using input As New OcrInput("receipt.jpg") input.DeNoise() Dim result As OcrResult = ocr.Read(input) Dim ocrText As String = result.Text ' Parse the date from receipt data Dim dateMatch As Match = Regex.Match(ocrText, "\d{1,2}/\d{1,2}/\d{2,4}") Dim receiptDate As String = If(dateMatch.Success, dateMatch.Value, "Not found") ' Parse the total amount Dim totalMatch As Match = Regex.Match(ocrText, "(?i)total[\s:$]*(\d+\.\d{2})") Dim total As String = If(totalMatch.Success, totalMatch.Groups(1).Value, "Not found") Console.WriteLine($"Date: {receiptDate}") Console.WriteLine($"Total: ${total}") End Using $vbLabelText $csharpLabel この例では、シンプルな正規表現パターンを使用して、OCRで読み取ったレシートのテキストから日付と合計金額を自動的に抽出します。 日付パターンは、03/15/2026 のような一般的なレシート日付形式に一致し、合計パターンは"TOTAL"という単語の後に金額が続くものを探します。 生産システムにおいては、これらのパターンは、実際に処理される領収書のフォーマットに合わせて調整する必要がある。 個々の商品名、数量、価格といった明細項目データを抽出するには、OCRテキストを行ごとに分割し、明細項目の行を識別するパターンを適用します。 この方法は、領収書の画像をJSON形式の出力に適した構造化データに変換したり、経費管理ワークフローを構築したり、会計ソフトウェアと直接統合したりするのに効果的です。 さまざまなレイアウトに対応した高度なレシート解析を行うには、領域ベースのOCR読み取り(ContentArea矩形を使用)とIronOCRのドキュメント構造機能を組み合わせて、レシートの特定のセクションから明細項目データを抽出することを検討してください。 開発者が正規表現について現実的な視点から検証する 正直に言うと、正規表現は手っ取り早く始めるための"手っ取り早い"方法ではあるが、万能ではない。 現実世界の領収書はごちゃごちゃしている。 ある店は"合計"と印刷し、別の店は"お支払い金額"と印刷し、また別の店はドル記号の上にコーヒーの染みをつけているかもしれない。 これを本番環境に移行する場合は、単一のパターンだけに頼らないようにしてください。 より堅牢にする方法は次のとおりです。 *信頼度スコアを使用する:* IronOCRは、読み取った単語ごとに信頼度パーセンテージを表示します。 合計金額の確信度が80%未満の場合は、担当者に確認してもらうためにそのレシートにフラグを立てた方が良いでしょう。 データの検証:**文字列を鵜呑みにしないでください。 その"合計"を小数に変換してみてください。 もし失敗した場合、OCRが"5"を"S"と誤認識した可能性があります。 *位置が重要です:複雑なレイアウトの場合は、IronOCR の OcrResult.Blocks または Lines を使用して、ページ上の位置に基づいてテキストを検索します。 "合計"が常に右下隅にある場合、その特定の領域をターゲットにすることで、レシート上の他の数字による"ノイズ"を減らすことができます。 レシートOCR APIは、経費管理システムとどのように連携するのですか? レシートOCR APIは、構造化されたレシートデータをビジネスシステムに直接取り込むことで、真に強力なツールとなる。 IronOCRは、開発者にとって使いやすいAPIを提供しており、 ASP.NETウェブサービス、デスクトップ経費トラッカー、バッチ処理で領収書を処理するバックグラウンドワーカーなど、あらゆる.NETアプリケーションとシームレスに統合できます。 APIは抽出されたテキストをOcrResultオブジェクトとして返します。このオブジェクトにより、個々のページ、段落、行にアクセスできます。 これにより、OCRテキストを構造化されたJSONに解析し、データを検証(重複検出や購入検証を含む)し、会計ソフトウェア、ERPシステム、またはデータベースに転送するレシート処理パイプラインを簡単に構築できます。 IronOCRはすべてのOCR処理をローカルで実行するため、クラウドへの依存はなく、無料プランのトライアルにクレジットカードは不要で、機密性の高い財務文書を完全に制御できます。 このローカルファーストのアプローチにより、レシートOCR APIは遅延を気にすることなく大量のデジタルレシートを処理でき、厳格なコンプライアンス要件を持つ様々な業界の組織に対して、本質的なデータ保護を提供します。 このライブラリは包括的なドキュメントを提供し、 NuGetを介して既存のシステムとシームレスに統合できるため、パフォーマンスとシンプルさの両方を重視するチームにとって実用的な選択肢となります。 完全なレシートスキャンソリューションの構築を目指す開発者向けに、 IronOCRはバーコードとQRコードの読み取り、検索可能なPDFの生成、複数ページの文書処理もすべて同じライブラリ内でサポートしています。 今すぐレシートデータ抽出の自動化を始めましょう IronOCRを使用してC#でレシートOCR APIを構築することで、手作業によるデータ入力の手間を省き、高速かつ正確な自動データ抽出を実現できます。 基本的なレシートのスキャンから、フィールドレベルの抽出による高度なレシート解析まで、このライブラリは、レシート画像を価値のある実用的な構造化データに変換するために必要なすべてを提供します。しかも、文書を社外に送信する必要はありません。 強力な前処理フィルター、使いやすい.NET API、機械学習による高度な認識機能、そしてローカル処理機能の組み合わせにより、 IronOCRは経費管理、領収書処理、そして領収書からデータを確実かつ大規模に抽出する必要のあるあらゆるワークフローに最適です。 領収書のワークフローから手作業による入力をなくす準備はできていますか? IronOCRのライセンスオプションを検討して、チームに最適なプランを見つけるか、無料トライアルでその効果を直接体験してみてください。 Install-Package IronOcr Kannapat Udonpant 今すぐエンジニアリングチームとチャット ソフトウェアエンジニア ソフトウェアエンジニアになる前に、Kannapatは北海道大学で環境資源の博士号を修了しました。博士号を追求する間に、彼はバイオプロダクションエンジニアリング学科の一部である車両ロボティクスラボラトリーのメンバーになりました。2022年には、C#のスキルを活用してIron Softwareのエンジニアリングチームに参加し、IronPDFに注力しています。Kannapatは、IronPDFの多くのコードを執筆している開発者から直接学んでいるため、この仕事を大切にしています。同僚から学びながら、Iron Softwareでの働く社会的側面も楽しんでいます。コードやドキュメントを書いていない時は、KannapatはPS5でゲームをしたり、『The Last of Us』を再視聴したりしていることが多いです。 関連する記事 更新日 2026年3月1日 OCR C# GitHub: IronOCRによるテキスト認識 OCR C# GitHubチュートリアル:IronOCRを使用してGitHubプロジェクトにテキスト認識を実装。コードサンプルとバージョン管理のヒントを含む。 詳しく読む 更新日 2026年3月1日 .NET OCR SDK: C# 用テキスト認識ライブラリ IronOCR for .NET SDKで強力なOCRソリューションを構築。シンプルなAPI、エンタープライズ機能、クロスプラットフォーム対応。 詳しく読む 更新日 2026年3月1日 C#でPDFをOCR処理する方法: .NETでスキャンした文書からテキストを抽出する IronOCRを使用してPDFをOCRし、スキャンした文書からテキストを抽出する方法を学びます。 詳しく読む OCR C# GitHub: IronOCRによるテ...
更新日 2026年3月1日 OCR C# GitHub: IronOCRによるテキスト認識 OCR C# GitHubチュートリアル:IronOCRを使用してGitHubプロジェクトにテキスト認識を実装。コードサンプルとバージョン管理のヒントを含む。 詳しく読む
更新日 2026年3月1日 .NET OCR SDK: C# 用テキスト認識ライブラリ IronOCR for .NET SDKで強力なOCRソリューションを構築。シンプルなAPI、エンタープライズ機能、クロスプラットフォーム対応。 詳しく読む
更新日 2026年3月1日 C#でPDFをOCR処理する方法: .NETでスキャンした文書からテキストを抽出する IronOCRを使用してPDFをOCRし、スキャンした文書からテキストを抽出する方法を学びます。 詳しく読む