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

コンピュータビジョンによるOCRがテキスト認識精度を向上させる仕組み

画像からテキストを抽出するのは、文書が曲がっていたり、色あせていたり、照明が不十分な状態で撮影されるまでは、簡単なように聞こえます。 そこで、コンピュータ・ビジョンが、光学式文字認識を脆弱なプロセスから信頼性の高いプロセスに変えます。 データ抽出の前にインテリジェントな画像分析を適用することで、OCRシステムは、通常であれば文字化けした結果が得られるスキャン文書において、人間レベルの性能に迫る認識精度を達成することができます。

コンピュータビジョンを使用したOCRは、デジタル変革イニシアチブの基盤となる技術となっており、さまざまな種類の文書で手作業によるデータ入力を排除しています。このガイドでは、これらの技術を統合して、.NETアプリケーションのテキスト認識を劇的に向上させる方法について説明します。 低品質のスキャンを修正する前処理フィルターから、最新の OCR エンジンを動かすニューラル ネットワーク アーキテクチャまで、これらの概念を理解することで、実際の入力画像を適切に処理するドキュメント処理システムを構築できるようになります。

以下のコード例に従うには、 NuGet経由でIronOCRをインストールします。

dotnet add package IronOcr
dotnet add package IronOcr
SHELL

または、 NuGetパッケージ マネージャー コンソールを使用します。

Install-Package IronOcr
Install-Package IronOcr
SHELL

インストールする前に、 IronOCR NuGetパッケージ ページにアクセスして最新バージョンを確認してください。

コンピュータ ビジョンと OCR の関係は何ですか?

OCRは特に、画像ファイル内の印刷または手書きのテキストを機械エンコードされたテキストに変換することに焦点を当てています。 光学式文字認識は、コンピューター ビジョン内の特殊なアプリケーションとして動作し、画像分析やパターン認識と同じ基礎技術の多くを活用します。

最新のOCRパイプラインは、相互に接続された3つのステージで構成されています。 テキスト検出は、スキャン画像内の個々の文字を含むテキスト領域を識別し、これらの領域を背景、グラフィック、その他の視覚的要素から分離します。 画像前処理では、検出された領域を強調し、歪みを補正してコントラストを向上させ、文字画像をより識別しやすくします。 最後に、文字認識では、パターンマッチングとニューラルネットワーク推論を適用して、保存されている各グリフの視覚表現を対応するデジタルテキストに変換します。

従来のOCR技術は、これらの段階のいずれかが不完全な入力に遭遇した場合に苦労していました。 また、低解像度の入力画像や背景のパターンが印刷された文書では、完全に失敗することがよくあります。 コンピューター ビジョン技術は、各パイプライン ステージの適応性と回復力を高めることでこれらの制限に対処し、ビジネス ドキュメント、銀行取引明細書、さらには手書きのメモまでも正確に認識できるようにします。

.NETプロジェクトで OCR が機能しているかどうかを確認する最も早い方法は、基本的な認識パスを実行することです。

using IronOcr;

// Initialize the optical character reader
var ocr = new IronTesseract();

// Load scanned document or image file
using var input = new OcrInput();
input.LoadImage("document.png");

// Perform text recognition and data extraction
OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
using IronOcr;

// Initialize the optical character reader
var ocr = new IronTesseract();

// Load scanned document or image file
using var input = new OcrInput();
input.LoadImage("document.png");

// Perform text recognition and data extraction
OcrResult result = ocr.Read(input);
Console.WriteLine(result.Text);
$vbLabelText   $csharpLabel

上記のコードは、 IronOCRを使用した最も単純なOCR ワークフローを示しています。 IronTesseract クラスは Tesseract 5 エンジンのマネージ ラッパーを提供し、OcrInput はイメージ ファイルの読み込みと形式の変換を処理します。 きれいでフォーマットが整えられたテキスト ドキュメントの場合、この基本的な光学文字認識アプローチで十分な場合がよくあります。 しかし、実際にスキャンされた文書がそのままの状態で届くことは稀であり、テキストを正確に抽出するためには前処理が不可欠となります。

入力

コンピューター ビジョンを使用した OCR がIronOCRを使用したテキスト認識の精度を向上させる方法: 画像 1 - サンプル入力画像

出力

コンピュータービジョンによるOCRがIronOCRを使用したテキスト認識の精度を向上させる方法:画像2 - コンソール出力

画像の前処理はテキスト認識をどのように向上させますか?

画像の前処理では、OCR エンジンが分析する前にコンピューター ビジョン操作を適用して入力品質を向上させます。 これらの変換は、OCR失敗の最も一般的な原因である回転、ノイズ、低コントラスト、不十分な解像度に対処します。 それぞれの前処理技術は、特定の画像欠陥をターゲットにしており、戦略的に組み合わせることで、そうでなければ読めない印刷文書やスキャン画像を救済することができます。

傾き補正は、ドキュメントを斜めにスキャンしたときに発生する回転のずれを修正します。 光学式文字認識ソフトウェアは、テキスト行が水平に進むことを想定しているため、わずかな回転でもOCRの精度に大きく影響します。 傾き補正操作は、テキストの行の角度を分析し、コンテンツを揃えるために補正回転を適用します。

ノイズ低減により、個々の文字として誤って解釈される可能性のあるデジタル アーティファクト、スペックル、スキャナーによって生じた歪みが除去されます。 背景パターン、ダストマーク、圧縮アーチファクトはすべて、原画の正確な文字セグメンテーションを妨げるノイズとなります。

2 値化では、画像を純粋な白黒に変換し、色情報とグレースケールのグラデーションを除去します。 この単純化は、認識エンジンが印刷されたテキストと背景をより明確に区別するのに役立ちます。特に、色紙や色あせた印刷の文書では、文字の識別が困難になります。

解像度向上により、低品質のスキャンデータや写真のピクセル密度が向上します。解像度が高いほど、OCRソフトウェアが分析できる詳細度が高くなり、似たような文字を区別する能力が向上し、品質の低い入力データでも確実に認識できるようになります。

using IronOcr;

var ocr = new IronTesseract();

// Load poor quality scan for document processing
using var input = new OcrInput();
input.LoadImage("low-quality-scan.jpg");

// Apply preprocessing filters for improved accuracy
input.Deskew();                   // Correct rotational skew in scanned image
input.DeNoise();                  // Remove digital artifacts from input
input.Binarize();                 // Convert to black and white for text extraction
input.EnhanceResolution(300);     // Boost to 300 DPI for single character clarity

OcrResult result = ocr.Read(input);
Console.WriteLine($"Extracted: {result.Text}");
using IronOcr;

var ocr = new IronTesseract();

// Load poor quality scan for document processing
using var input = new OcrInput();
input.LoadImage("low-quality-scan.jpg");

// Apply preprocessing filters for improved accuracy
input.Deskew();                   // Correct rotational skew in scanned image
input.DeNoise();                  // Remove digital artifacts from input
input.Binarize();                 // Convert to black and white for text extraction
input.EnhanceResolution(300);     // Boost to 300 DPI for single character clarity

OcrResult result = ocr.Read(input);
Console.WriteLine($"Extracted: {result.Text}");
$vbLabelText   $csharpLabel

この例では、OCR を実行する前に複数の前処理フィルターを連結します。 Deskew() メソッドはドキュメントを分析して回転補正を適用し、DeNoise() はテキスト イメージから斑点やアーティファクトを除去します。 Binarize() 呼び出しは、スキャンされたイメージをよりきれいなテキスト抽出のために純粋な白黒に変換し、EnhanceResolution() は、正確な文字認識のために推奨される最小値である 300 DPI にイメージをブーストします。

フィルターの適用順序は重要です。 スキュー除去は通常、チェーンの初期段階で行う必要があります。 2値化の前にノイズ除去を行うことで、アーチファクトが白黒変換に永久にエンコードされるのを防ぐことができます。 特定のドキュメント タイプに対するフィルターの組み合わせを試してみると、OCR アプリケーションが請求書、領収書、患者記録、スキャンされた契約書などを処理するかどうかに関係なく、特定のユース ケースに最適なシーケンスが明らかになることがよくあります。

適切な前処理フィルターの組み合わせを選択するにはどうすればよいでしょうか?

適切なフィルターの組み合わせの選択は、入力ドキュメントの性質によって異なります。 遠近法の歪みがあるカメラで撮影した画像では、最初に傾き補正を行い、次にノイズ除去を行うと効果的です。 FAX またはコピーされた文書では、文字の周りの灰色のハローを除去するために積極的な 2 値化が必要になることがよくあります。 低解像度のスキャンでは、ノイズ除去の前にアップスケーリングすることで圧縮アーティファクトの増幅を回避できるため、他のフィルターの前に解像度の強化が必要です。

実用的なアプローチとしては、ドキュメント ソース (スキャナー、カメラ、ファックス、PDF ラスタライズ) を分類し、それぞれに合わせてカスタマイズされたフィルター チェーンを適用することが挙げられます。 IronOCR は、単一の OcrInput パスで必要な数のフィルターの連鎖をサポートしているため、構成でソースごとのプロファイルを定義し、認識ロジックを書き換えることなく実行時に適用できます。

どのディープラーニング モデルが最新の OCR をサポートしていますか?

現代の OCR エンジンは、テキスト認識の精度に革命をもたらしたディープラーニング アーキテクチャに依存しています。 あらかじめ定義されたテンプレートと文字を照合する従来のアプローチとは異なり、ニューラルネットワークベースのOCRモデルは、膨大なトレーニングデータセットからテキストパターンを認識することを学習するため、フォントのバリエーション、手書きスタイル、劣化した画像などをはるかに効率的に扱うことができます。 この機械学習アプローチは、今日の最も高性能なOCRソリューションの原動力となっています。

認識パイプラインは通常、2種類のニューラルネットワークを組み合わせます。畳み込みニューラルネットワーク(CNN)は、画像からの特徴抽出に優れています。 これらのネットワークは、入力画像を複数の層で処理し、基本的なエッジや曲線から完全な文字形状まで、段階的に複雑なパターンを識別します。CNNは、テキスト領域の視覚的特徴をエンコードした特徴マップを作成し、印刷されたテキストと手書きのテキストの両方をより高い精度で処理します。

次に、LSTM(Long Short-Term Memory)ネットワークは、これらの特徴をシーケンスとして処理し、デジタルテキストが特定の順序で流れることを認識します。 LSTMは以前の入力を記憶しているため、文脈を理解し、書き言葉の逐次的な性質を扱うことができる。 この組み合わせは、 CRNN (畳み込み再帰型ニューラル ネットワーク) とも呼ばれ、現代の OCR 精度の基盤を形成し、複数の言語にわたるインテリジェントな文字認識を可能にします。

IronOCRを動かすTesseract 5 エンジンは、この LSTM ベースのアーキテクチャを実装しており、従来のパターン認識だけに頼っていた以前のバージョンに比べて大きな進歩を遂げています。 ニューラルネットワークアプローチは、テンプレートベースのOCRシステムを打ち負かすような、特定のフォント、部分的なオクルージョン、画像の劣化を処理します。

using IronOcr;

var ocr = new IronTesseract();

// Configure OCR engine for multilingual text recognition
ocr.Language = OcrLanguage.English;  // IronOCR supports 125+ languages

// Process PDF with mixed handwriting styles and printed text
using var input = new OcrInput("web-report.pdf");
input.Deskew();

OcrResult result = ocr.Read(input);

// Access detailed recognition data including text regions
foreach (var page in result.Pages)
{
    Console.WriteLine($"Page {page.PageNumber}: {page.Text}");
}
using IronOcr;

var ocr = new IronTesseract();

// Configure OCR engine for multilingual text recognition
ocr.Language = OcrLanguage.English;  // IronOCR supports 125+ languages

// Process PDF with mixed handwriting styles and printed text
using var input = new OcrInput("web-report.pdf");
input.Deskew();

OcrResult result = ocr.Read(input);

// Access detailed recognition data including text regions
foreach (var page in result.Pages)
{
    Console.WriteLine($"Page {page.PageNumber}: {page.Text}");
}
$vbLabelText   $csharpLabel

IronTesseract クラスは、クリーンな.NETインターフェイスを通じて Tesseract 5 のニューラル ネットワーク機能へのアクセスを提供します。 返されるOcrResultオブジェクトには、抽出されたテキストだけでなく、ページ、段落、行、個々の単語とその信頼スコアおよび境界座標などの構造化データも含まれます。

入力

コンピュータービジョンによるOCRがIronOCRを使用したテキスト認識の精度を向上させる方法:画像3 - サンプルPDF入力

出力

コンピュータービジョンによるOCRがIronOCRを使用したテキスト認識の精度を向上させる方法:画像4 - OCR出力

この構造化されたアウトプットは、単純なテキスト抽出以外の用途でも価値があります。 ドキュメント処理システムは単語の位置を使用して複雑なレイアウトを理解でき、品質保証ワークフローでは信頼性の低い領域にフラグを付けて人間によるレビューを行うことができます。 ニューラルネットワークアーキテクチャは、認識されたテキストと一緒に豊富なメタデータを提供することで、大量の非構造化データを効率的に処理するAIベースのOCRソリューションを可能にし、これらすべてを可能にします。

IronOCR は多言語ドキュメントをどのように処理しますか?

IronOCR は125 以上の言語をサポートしており、各言語は専用の Tesseract LSTM 言語モデルによってサポートされています。 Read を呼び出す前に、IronTesseractLanguage プロパティを設定して言語を選択します。 2 つの言語が混在する文書(たとえば、ドイツ語の契約書と英語の脚注)の場合、複数の言語を同時に指定することができ、エンジンはテキスト領域ごとに最も適切なモデルを適用します。

言語パックはNuGetパッケージとして配布されるため、アプリケーションに必要なモデルのみをダウンロードします。 これにより、単一言語を対象とするアプリケーションの展開サイズを管理しやすい状態に維持しながら、必要に応じて完全な多言語サポートが可能になります。

フォームとテーブルに対して領域ベースの OCR を有効にするにはどうすればよいでしょうか?

領域ベースの OCR は、画像の定義済み領域に認識を制限します。これは、ドキュメントにフォーム フィールド、請求書の明細項目、表のセルなどの特定の対象領域が含まれている場合に役立ちます。 このターゲットを絞ったアプローチでは、計算リソースを関連コンテンツに集中させることで、速度と精度の両方が向上します。

using IronOcr;
using IronSoftware.Drawing;

var ocr = new IronTesseract();

using var input = new OcrInput();
input.LoadImage("invoice.jpg");

// Define a crop region for the total amount field (x, y, width, height in pixels)
var totalRegion = new CropRectangle(x: 600, y: 800, width: 300, height: 50);
input.AddRegion(totalRegion);

OcrResult result = ocr.Read(input);
Console.WriteLine($"Invoice total: {result.Text}");
using IronOcr;
using IronSoftware.Drawing;

var ocr = new IronTesseract();

using var input = new OcrInput();
input.LoadImage("invoice.jpg");

// Define a crop region for the total amount field (x, y, width, height in pixels)
var totalRegion = new CropRectangle(x: 600, y: 800, width: 300, height: 50);
input.AddRegion(totalRegion);

OcrResult result = ocr.Read(input);
Console.WriteLine($"Invoice total: {result.Text}");
$vbLabelText   $csharpLabel

領域ベースの OCR と信頼度しきい値を組み合わせることで、データ品質をきめ細かく制御できます。 金融文書や法務資料の場合、信頼度85%未満の単語を二次レビューの対象としてフラグ付けすることが実用的な基準となります。各ソースから送信されるスキャンの品質に基づいて、文書の種類ごとにしきい値を調整できます。

領域ベースの OCR と切り抜き長方形の詳細については、 IronOCRドキュメントをご覧ください。

開発者はどのようにしてプログラムで OCR の精度を最適化できるでしょうか?

標準の前処理フィルターを適用するだけでなく、特定のドキュメントの種類や品質要件に合わせて OCR の実行方法を微調整できます。 信頼度スコアリング、自動フィルター最適化、検索可能な PDF 生成はすべて、さまざまなドキュメント タイプにわたってテキストを確実に認識する必要がある運用アプリケーションでの認識精度を最大化するために役立ちます。

信頼スコアは、エンジンが認識した各要素についてどの程度確信を持っているかを示します。 これらのスコアを分析することで、手作業による検証や別の処理アプローチが必要な問題箇所を特定することができます。 アプリケーションでは、信頼度のしきい値を設定でき、それを下回る結果にはレビューのフラグが付けられます。これは、高い精度が要求される機密文書には不可欠です。

using IronOcr;

var ocr = new IronTesseract();

// Load business document for OCR processing
using var input = new OcrInput("receipt.jpg");

// Let the system determine optimal preprocessing for OCR accuracy
string suggestedCode = OcrInputFilterWizard.Run(
    "receipt.jpg",
    out double confidence,
    ocr);

Console.WriteLine($"Achieved confidence: {confidence:P1}");
Console.WriteLine($"Optimal filter chain: {suggestedCode}");

// Apply recommended filters for successful recognition
input.DeNoise();
input.Deskew();

OcrResult result = ocr.Read(input);

// Analyze word-level confidence for extracted text
foreach (var word in result.Words)
{
    if (word.Confidence < 0.85)
    {
        Console.WriteLine($"Low confidence: '{word.Text}' ({word.Confidence:P0})");
    }
}
using IronOcr;

var ocr = new IronTesseract();

// Load business document for OCR processing
using var input = new OcrInput("receipt.jpg");

// Let the system determine optimal preprocessing for OCR accuracy
string suggestedCode = OcrInputFilterWizard.Run(
    "receipt.jpg",
    out double confidence,
    ocr);

Console.WriteLine($"Achieved confidence: {confidence:P1}");
Console.WriteLine($"Optimal filter chain: {suggestedCode}");

// Apply recommended filters for successful recognition
input.DeNoise();
input.Deskew();

OcrResult result = ocr.Read(input);

// Analyze word-level confidence for extracted text
foreach (var word in result.Words)
{
    if (word.Confidence < 0.85)
    {
        Console.WriteLine($"Low confidence: '{word.Text}' ({word.Confidence:P0})");
    }
}
$vbLabelText   $csharpLabel

OcrInputFilterWizard は画像を分析し、さまざまなフィルターの組み合わせをテストして、どの前処理チェーンが最も信頼性の高い結果を生成するかを判断します。 この自動化されたアプローチにより、未知の種類のドキュメントを扱う際の推測作業が不要になります。ウィザードは、達成された信頼度レベルと最適な構成を再現するために必要なコードの両方を返すため、ビジネスプロセス向けのOCRアプリケーション開発が効率化されます。

このループで示される単語レベルの信頼度分析は、きめ細かな品質評価を提供します。 財務文書、患者記録、法律資料を処理するアプリケーションでは、抽出されたデータが精度基準を満たしていることを確認するため、このレベルの精査が必要となることがよくあります。 信頼性のしきい値を下回る単語は、二次検証プロセスまたは代替認識の試みをトリガーすることができ、信頼性が要求されるデータ管理ワークフローをサポートします。

スキャンしたドキュメントから検索可能な PDF を生成するにはどうすればよいですか?

検索可能なアーカイブへの変換が必要なドキュメントの場合、 IronOCR は、認識されたテキスト レイヤーを元の画像の下に埋め込む検索可能な PDFを生成し、視覚的な忠実性を維持しながら全文検索を可能にします。 この機能により、スキャンされたドキュメントは長期アーカイブ、法的証拠開示ワークフロー、またはエンタープライズ コンテンツ管理システムに適したデジタル形式に変換されます。

using IronOcr;

var ocr = new IronTesseract();

using var input = new OcrInput("scanned-contract.pdf");
input.Deskew();
input.DeNoise();

OcrResult result = ocr.Read(input);

// Export as searchable PDF with embedded text layer
result.SaveAsSearchablePdf("searchable-contract.pdf");
Console.WriteLine("Searchable PDF saved successfully.");
using IronOcr;

var ocr = new IronTesseract();

using var input = new OcrInput("scanned-contract.pdf");
input.Deskew();
input.DeNoise();

OcrResult result = ocr.Read(input);

// Export as searchable PDF with embedded text layer
result.SaveAsSearchablePdf("searchable-contract.pdf");
Console.WriteLine("Searchable PDF saved successfully.");
$vbLabelText   $csharpLabel

結果のファイルは、元のスキャンの外観を維持しながら、検索ツールやスクリーン リーダーがアクセスできる隠しテキスト レイヤーを追加します。 これは、コンプライアンスまたはアクセシビリティ要件を対象とするドキュメントデジタル化プロジェクトの標準出力形式です。

ドキュメントタイプ間で OCR パフォーマンスを比較するにはどうすればよいですか?

印刷されたフォーム、手書きのメモ、低品質の FAX 送信、高解像度のカメラ キャプチャなど、さまざまなドキュメント カテゴリでは、前処理と認識の設定に対する応答が異なります。 各カテゴリの代表的なサンプルに対してパイプラインをベンチマークすると、精度のギャップが存在する場所と、調整する必要があるフィルターが明らかになります。

文書の種類別のOCR前処理の推奨事項
文書の種類 推奨フィルター 典型的な精度の向上 主な課題
フラットベッドスキャンされたテキスト 傾き補正、二値化 5~15% わずかな回転、影のエッジ
カメラで撮影した文書 デスキュー、ノイズ除去、解像度向上 20~40% 遠近法の歪み、ノイズ
ファックス/コピー 二値化、ノイズ除去 15~30% ハーフトーンパターン、コントラストの低下
Low-resolution scan (<150 DPI) 解像度強化(300)、デスキュー 30~50% ピクセル密度が不十分
手書きのメモ 二値化、ノイズ除去 10~25% さまざまな線幅、スタイルのバリエーション

これらの精度の向上は、学術的な OCR ベンチマーク研究による前処理効果の研究に基づいた方向性の推定です。 実際の結果は、スキャン機器、ドキュメントの古さ、コンテンツの複雑さによって異なります。 独自のサンプル セットに対して OcrInputFilterWizard を実行すると、パイプラインに固有の実証データが得られます。

利用可能なIronOCR前処理フィルターの完全なリストを調べて、パイプラインを調整するときに使用できるすべてのオプションを理解してください。

生産文書処理における主要なIronOCR機能は何ですか?

OCR を本番環境に導入する場合、信頼性とスループットのために、基本的な認識を超えたいくつかのIronOCR機能が重要になります。 これらの機能を理解すると、精度を犠牲にすることなく拡張可能なパイプラインを設計するのに役立ちます。

複数形式の入力サポート- IronOCR は、単一の統合 API を通じて画像 (PNG、JPEG、TIFF、BMP、GIF、WEBP)、PDF ファイル、および複数ページの TIFF を受け入れます。 つまり、形式固有のコード パスを記述することなく、スキャン ステーション、電子メールの添付ファイル、またはドキュメント管理システムから受信したあらゆる形式を処理できるということです。

スレッド セーフティ- 単一のインスタンスを作成し、それをスレッド間で共有する場合、IronTesseract クラスはスレッド セーフです。 高スループットのアプリケーションの場合、スレッドごとに 1 つのインスタンスを作成するか、プールを使用して、基盤となる Tesseract エンジンでのロック競合を回避します。

バーコードと QR コードの共同処理- IronOCR は、同じ画像からバーコードと QR コードを1 回のパスで読み取ることができるため、出荷ラベルや製品在庫シートなどの混合コンテンツ ドキュメントを処理するときに、別のバーコード ライブラリが必要ありません。

出力形式オプション- プレーンテキスト以外に、 IronOCR はHOCR 形式で構造化データを返したり、検索可能な PDF に直接エクスポートしたり、下流のデータ抽出ワークフローに適した単語境界ボックスを提供したりできます。

アーキテクチャを最終決定する前に、完全なIronOCR機能の概要を確認して、すべての機能を確認してください。

次のステップは何ですか?

コンピューター ビジョン技術は、光学式文字認識を、完璧な入力でのみ機能する技術から、スキャンされた文書、写真、劣化した画像などの雑然とした現実を処理できる技術へと根本的に変革します。 前処理段階(傾き補正、ノイズ除去、2 値化、解像度向上)では物理的なキャプチャ欠陥に対処し、CNN-LSTM などのニューラル ネットワーク アーキテクチャではスクリプト認識インテリジェンスが提供され、さまざまなフォントや手書きスタイルを正確に解釈できます。

.NET開発者向けに、 IronOCR はこれらの機能をマネージ ライブラリにパッケージ化することで、ネイティブ Tesseract の統合を簡素化するとともに、実稼働環境での使用に向けた実用的な機能強化を追加します。 自動前処理の最適化、詳細な信頼性レポート、構造化された結果データの組み合わせにより、印刷された文書から手書きのメモまで、さまざまな実際の入力に対して確実に機能し、複数の言語にわたる多言語 OCR をサポートする文書処理システムが実現します。

前進するには:

よくある質問

コンピュータビジョンはOCRの精度をどのように向上させるのですか?

コンピュータービジョンは、認識前に画像前処理を施すことでOCRの精度を向上させます。傾き補正、ノイズ除去、二値化、解像度向上といった技術は、OCRエンジンによる誤読や文字の読み落としの原因となる物理的なキャプチャ欠陥を修正します。ニューラルネットワークモデルは、フォント、手書きスタイル、劣化画像など、様々な環境下でテキストパターンを認識することを学習することで、OCRの精度をさらに向上させます。

IronOCR はどのような前処理フィルターをサポートしていますか?

IronOCRは、OcrInput APIを通じて、傾き補正、ノイズ除去、二値化、解像度向上、そしてその他様々なフィルターをサポートしています。複数のフィルターを1回のパスで連結し、OcrInputFilterWizardを使用して、特定のドキュメントタイプに最適なフィルターの組み合わせを自動的に検出できます。

IronOCRを動かすディープラーニング モデルは何ですか?

IronOCRは、LSTM(Long Short-Term Memory)ニューラルネットワークアーキテクチャを採用したTesseract 5を搭載しています。畳み込み特徴抽出と組み合わせることで、このCRNNモデルは、従来のテンプレートベースのOCRシステムよりも、フォントのバリエーション、部分的なオクルージョン、画像の劣化をより効果的に処理します。

IronOCRを使用して領域ベースの OCR を実行するにはどうすればよいですか?

OcrInputのAddRegionメソッドを使用し、対象領域のx、y、幅、高さをピクセル単位で定義するCropRectangleを指定します。IronOCRは認識範囲をその領域に限定することで、フォームや請求書などの構造化文書の速度と精度を向上させます。

IronOCR はスキャンしたドキュメントから検索可能な PDF を生成できますか?

はい。OcrInputでReadを呼び出した後、OcrResultオブジェクトでSaveAsSearchablePdfを呼び出してください。これにより、認識されたテキストが元のスキャン画像の下に隠しレイヤーとして埋め込まれたPDFが生成され、文書の外観を維持しながら全文検索が可能になります。

IronOCR はいくつの言語をサポートしていますか?

IronOCRは125以上の言語をサポートしています。各言語は、 NuGetパッケージとして配布されている専用のTesseract LSTMモデルによってサポートされています。2つ以上の言語が混在するドキュメントでは、複数の言語を同時に指定できます。

前処理フィルターはどのような順序で適用すればよいですか?

原則として、後続のフィルターが適切に配置された画像に適用されるように、まずデスキューを適用します。白黒変換時にアーティファクトが永続的にエンコードされるのを防ぐため、二値化の前にノイズ除去を実施します。ソースの解像度が低い場合は、ノイズ除去の前にアップスケーリングすることで圧縮アーティファクトの増幅を防ぐため、早めに解像度向上を適用します。

IronOCRでは信頼スコアはどのように機能しますか?

IronOCRは、認識された単語ごとに0から1までの信頼度スコアをOcrResultで返します。ビジネス文書では、一般的に0.85以上のスコアが信頼できるとみなされます。選択したしきい値を下回る単語は、手動レビューの対象としてフラグ付けするか、二次認識パスにルーティングすることができます。

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

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me