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

OCR C# GitHub:IronOCRによるテキスト認識の実装

GitHubでOCRソリューションを検索すると、断片的なドキュメントや複雑なTesseractの設定、しばらく更新されていないプロジェクトが見つかることがよくあります。画像やPDFからの信頼性の高いテキスト抽出を必要とするC#開発者にとって、リポジトリ・ランドスケープをナビゲートすることは、コーディングに費やした方が良い時間を費やすことになりかねません。 オープンソースの光学式文字認識プロジェクトの多くは、手作業によるバイナリ管理、テスデータファイルのダウンロード、Windowsシステムのトラブルシューティングを必要とします。

このチュートリアルでは、IronOCRを使ってC#プロジェクトにOCR機能を実装する方法を説明します。 文書処理パイプラインを構築する場合でも、既存のアプリケーションにテキスト認識を追加する場合でも、このガイドでは、OCR C# GitHub プロジェクトですぐに使えるコード例を提供します。

GitHubベースのC#コードプロジェクトにIronOCRが最適な理由は?

IronOCRは、NuGet経由で配布されるマネージド.NETライブラリを提供し、どのGitHubリポジトリにも簡単に統合できます。 オープンソースのTesseract OCRラッパーがバイナリとテスデータのコンフィギュレーションを手動で管理する必要があるのとは異なり、IronOCRはこれらの依存関係を内部で処理し、すぐに動作します。

ライブラリは、GitHub上に公式のサンプルリポジトリを保持しており、開発者がクローンして参照することができます。 これらのチュートリアルは、image-to-text変換、多言語のサポート、PDF処理など、実際の実装を示しています。 投稿者は、クローン作成後すぐに機能をテストできます。

Visual Studioで始めるには、NuGetパッケージ・マネージャからIronOCRをインストールしてください:

Install-Package IronOcr
Install-Package IronOcr
SHELL

OCR C# GitHub:IronOCRでテキスト認識を実装する: イメージ1 - インストール

一度インストールすれば、Windows、Linux、macOS環境でのOCR操作に必要なすべてがこの1つのパッケージに含まれています。 ライブラリは、.NET Framework 4.6.2+、.NET Core、.NET 5-10をサポートし、互換性を最大限に高めています。

C#で画像フォーマットからテキストを抽出するには?

次の例はIronOCRのIronTesseractクラスを使った基本的なテキスト抽出の例です。 このOCRエンジンは、PNG、JPG、JPEG、BMP、GIF、TIFFなど、さまざまな画像フォーマットを読み取ります:

using IronOcr;
// Initialize the OCR engine
var ocr = new IronTesseract();
// Load and process an image
using var input = new OcrInput("document-scan.png");
// Perform OCR and retrieve results
var result = ocr.Read(input);
// Output the extracted text to console
Console.WriteLine($"Extracted Text:\n{result.Text}");
Console.WriteLine($"Confidence: {result.Confidence}%");
using IronOcr;
// Initialize the OCR engine
var ocr = new IronTesseract();
// Load and process an image
using var input = new OcrInput("document-scan.png");
// Perform OCR and retrieve results
var result = ocr.Read(input);
// Output the extracted text to console
Console.WriteLine($"Extracted Text:\n{result.Text}");
Console.WriteLine($"Confidence: {result.Confidence}%");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronTesseractクラスは、最適化されたTesseract 5の実装上に構築された、主要なOCRエンジンとして機能します。 インスタンスを作成した後、OcrInputオブジェクトは、ディスク、URL、またはバイト配列からターゲット画像をロードします。 Readメソッドは入力を処理し、認識精度を示す信頼度とともに、抽出されたプレーンテキストを含むOcrResultを返します。 信頼度の値が高い(90%以上)ほど、ソース文書がきれいで、書式が整っていることを意味します。

入力

OCR C# GitHub:IronOCRでテキスト認識を実装する: 画像2 - サンプル入力

出力

OCR C# GitHub:IronOCRでテキスト認識を実装する: 画像3 - コンソール出力

OcrResultオブジェクトは、認識されたコンテンツへの構造化されたアクセスを提供します。 開発者は、プレーンテキストだけでなく、個々の単語、行、段落、文字、およびそれらの位置と信頼度スコアにアクセスすることができます。 各単語には外接矩形座標が含まれているため、ドキュメントの注釈やフォームフィールドの抽出など、正確なテキスト位置データを必要とするアプリケーションに便利です。

OCR C# GitHub:IronOCRでテキスト認識を実装する: 画像4 - 機能

画像の前処理は光学式文字認識の精度をどのように向上させますか?

スキャンされた文書は、歪んでいたり、ノイズが多かったり、最適な解像度ではないことがよくあります。 IronOCRには前処理フィルターが組み込まれており、OCRエンジンが画像を処理する前にこれらの問題を修正します:

using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput("skewed-receipt.jpg");
// Apply preprocessing filters to enhance scan quality
input.Deskew();           // Straighten rotated images
input.DeNoise();          // Remove digital artifacts
input.EnhanceResolution(225);  // Optimize DPI for OCR
var result = ocr.Read(input);
Console.WriteLine(result.Text);
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput("skewed-receipt.jpg");
// Apply preprocessing filters to enhance scan quality
input.Deskew();           // Straighten rotated images
input.DeNoise();          // Remove digital artifacts
input.EnhanceResolution(225);  // Optimize DPI for OCR
var result = ocr.Read(input);
Console.WriteLine(result.Text);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Deskewメソッドは、最大15度までの画像の回転を自動的に検出して補正します。 DeNoiseフィルタは、写真に撮った文書や古いスキャンによく見られる斑点やアーチファクトを取り除きます。 EnhanceResolutionは、低 DPI 画像を光学式文字認識に最適な 200 ~ 300 DPI の範囲にアップスケールします。 これらの機能は連鎖させることができ、一時ファイルを必要とせずにメモリ内で実行できます。 多くの場合、前処理を複数回行うことで、品質に深刻な問題がある文書のテキスト認識結果を劇的に改善することができます。

テキストと一緒に BarCode や QR コードを抽出できますか?

IronOCRはテキスト認識とバーコードスキャンを同時に行うことができます。 このような二重機能は、請求書、出荷ラベル、在庫書類の処理に役立ちます:

using IronOcr;
var ocr = new IronTesseract();
ocr.Configuration.ReadBarCodes = true;  // Enable barcode detection
using var input = new OcrInput("shipping-label.png");
var result = ocr.Read(input);
// Access extracted text
Console.WriteLine($"Text: {result.Text}");
// Access any barcodes found in the image
foreach (var barcode in result.Barcodes)
{
    Console.WriteLine($"Barcode ({barcode.Format}): {barcode.Value}");
}
using IronOcr;
var ocr = new IronTesseract();
ocr.Configuration.ReadBarCodes = true;  // Enable barcode detection
using var input = new OcrInput("shipping-label.png");
var result = ocr.Read(input);
// Access extracted text
Console.WriteLine($"Text: {result.Text}");
// Access any barcodes found in the image
foreach (var barcode in result.Barcodes)
{
    Console.WriteLine($"Barcode ({barcode.Format}): {barcode.Value}");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

ReadBarCodesが有効でtrueに設定されている場合、処理時間に大きな影響を与えることなくバーコード検出が有効になります。結果の Barcodes コレクションには、検出された各バーコードの値とフォーマットタイプが含まれており、QR コード、Code 128、EAN-13、UPC などの標準フォーマットをサポートしています。 この二重機能により、人間が読めるテキストと機械が読めるコードの両方を含むドキュメントを処理する際に、別々のBarCodeスキャンライブラリを使用する必要がなくなります。

入力

OCR C# GitHub:IronOCRでテキスト認識を実装する: イメージ5 - サンプルBarCodeイメージ

出力

OCR C# GitHub:IronOCRでテキスト認識を実装する: 画像6 - コンソールのBarCodeテキスト出力

スキャンした画像から検索可能なPDFを生成するには?

スキャンした文書を検索可能なPDFに変換すると、テキストの選択、コピー、全文検索が可能になります。 さまざまな画像フォーマットを入力として使用します:

using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput("scanned-contract.tiff");
var result = ocr.Read(input);
// Export as searchable PDF - create new document from scan
result.SaveAsSearchablePdf("contract-searchable.pdf");
using IronOcr;
var ocr = new IronTesseract();
using var input = new OcrInput("scanned-contract.tiff");
var result = ocr.Read(input);
// Export as searchable PDF - create new document from scan
result.SaveAsSearchablePdf("contract-searchable.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

SaveAsSearchablePdfメソッドは、認識されたコンテンツに一致する不可視のテキスト レイヤーを埋め込み、テキスト操作を可能にしながら元のドキュメントの外観を保持します。 これにより、アーカイブや企業の文書管理システムに適したPDF/A準拠の文書が作成されます。 他のシステムとの統合のために、結果をJSONとしてエクスポートすることもできます。

GitHubプロジェクトにおけるOCRのベストプラクティスは何ですか?

GitHub で OCR プロジェクトを管理するときは、リポジトリに関する以下の推奨事項を考慮してください:

  • リポジトリのサイズを肥大化させないために、大きなテストイメージにはGit LFSを使おう
  • ライセンスキーは環境変数またはGitHub Secretsに保存し、決してコミットされたC#コードに保存しないでください。
  • サンプル画像を、投稿者がOCR機能を確認できるように、専用のtest-dataフォルダに含めてください。
  • 明確な期待値を設定し、一般的な質問に答えるために、READMEファイルでサポートされる画像形式を文書化してください。
  • CIパイプラインでテストをビルドして実行し、ライブラリが各バージョンで正しく動作することを確認する。

GitHub Actionsのワークフローでは、IronOCRはWindowsとLinux上のコンテナ環境で動作します。 Windows 以外のランナーを対象とする場合の設定の詳細については、Linux デプロイメントガイドを参照してください。

IronOcrは英語、スペイン語、フランス語、中国語、その他120以上の言語を含む多言語もサポートしています。 英語以外の言語のテキスト認識を有効にするには、NuGetから言語パックをダウンロードしてください。 これは、システムが必要とするほぼすべての言語のための無料のOCRアクセスを提供します。

結論

IronOCRは、直感的なAPI、自動画像前処理、信頼性の高いクロスプラットフォームのサポートにより、C# GitHubプロジェクトでのOCR実装を合理化します。 上記のコード例は、GitHub ベースの開発ワークフローとスムーズに統合する文書処理アプリケーションを構築するための基礎を提供します。 このライブラリは、.NET Framework、.NET Core、および最新の.NETバージョンで動作し、あらゆる種類のプロジェクトに幅広い互換性を提供します。

無料トライアルを開始して全機能を確認するか、ライセンス オプションを確認して本番環境に導入してください。

OCR C# GitHub:IronOCRでテキスト認識を実装する: イメージ7 - ライセンス

よくある質問

IronOCRとは何ですか?

IronOCRはC#用の強力な光学式文字認識(OCR)ライブラリで、画像やPDFからのテキスト抽出を簡素化します。

なぜ開発者はGitHub OCRソリューションではなくIronOCRを選ぶべきなのでしょうか?

IronOCRは、多くの断片的なGitHubプロジェクトとは異なり、複雑な設定や手動でのバイナリ管理を必要とせず、信頼性の高い最新のOCR機能を提供します。

IronOCRは画像とPDFの両方を扱えますか?

IronOCRは画像やPDF文書から効率的にテキストを抽出するように設計されています。

IronOCRを使用する際、テスデータファイルを管理する必要がありますか?

IronOCRは手作業によるテスデータファイル管理の必要性をなくし、OCRの実装プロセスを簡素化します。

IronOCRはWindowsシステムと互換性がありますか?

IronOCRはWindowsシステムと完全な互換性があり、大規模なトラブルシューティングをすることなく、シームレスなインストールと使用体験を提供します。

IronOCRは開発者のワークフローをどのように改善しますか?

IronOCRはOCR統合プロセスを合理化し、開発者が断片化されたドキュメントや設定に対処するよりもコーディングに集中できるようにします。

IronOCRはどのようなプログラミング言語に対応していますか?

IronOCRは特にC#開発者向けに設計されており、この言語のエコシステムに合わせた堅牢なOCRソリューションを提供します。

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