Aspose.OCR を使用して OCR の正確さとパフォーマンスを最適化する方法

Aspose.OCR を使用して OCR の正確さとパフォーマンスを最適化する方法

OCRの高精度と迅速な処理を達成することは、現実の採用にとって重要です. この記事では、認識結果とアスポーズ.OCR を .NET に使用する両方の検出のための有効なヒントを提供します。

現実世界問題

悪い入力画像、間違った言語設定、または不効率なコードは、不正確な結果と遅いバッチワークにつながる可能性があります。

ソリューション概要

実証された最良の実践に従って - 入力画像を最適化し、事前処理を設定する、正しい認識言語を選択しバッチの設定を調整します. これにより、各プロジェクトで最高の結果を得ることができます。

原則

  • Visual Studio 2019 以降
  • .NET 6.0 またはそれ以降(または .Net Framework 4.6.2+)
  • ASPOSE.OCR for .NET から NuGet
PM> Install-Package Aspose.OCR

ステップ・ステップ・実施

ステップ1:入力画像の質を向上させる

  • 高解像度のスキャンや写真を使用する(印刷のための少なくとも300DPI、スクリーン用の150DPi)
  • スカイ、ブルー、または影を避ける. 必要に応じて植物の境界線と回転画像

ステップ2:フィルターで画像を事前に処理する

RecognitionSettings settings = new RecognitionSettings();
settings.AutoContrast = true;
settings.AutoSkew = true;
settings.Denoising = true;
settings.Binarization = true; // For black/white documents

ステップ3:認識言語とモードを設定する

settings.Language = Language.English; // or target language
// For photos or tables, set detection mode
settings.DetectAreasMode = DetectAreasMode.PHOTO; // or DetectAreasMode.TABLE

ステップ4:バッチとパラレル処理

複数の画像を同時に処理する:

OcrInput input = new OcrInput(InputType.SingleImage);
foreach (string file in Directory.GetFiles("./input", "*.jpg"))
{
    input.Add(file);
}

重荷の場合、Async または Task Parallel Library を使用します。

Parallel.ForEach(files, file => {
    // Run OCR on each file
});

ステップ5:OCR出力の認証およびレビュー

  • 欠けているまたは間違った単語のテキストをチェックする
  • 批判文書のための認証スクリプトまたはマニュアルレビューを使用する

ステップ6:エラーと出力に対処する

try
{
    // OCR processing
}
catch (Exception ex)
{
    // Log error, move file to review folder
}

ステップ7:完璧な例

using Aspose.OCR;
using System;
using System.Collections.Generic;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        try
        {
            OcrInput input = new OcrInput(InputType.SingleImage);
            foreach (string file in Directory.GetFiles("./input", "*.jpg"))
            {
                input.Add(file);
            }
            RecognitionSettings settings = new RecognitionSettings();
            settings.Language = Language.English;
            settings.AutoContrast = true;
            settings.AutoSkew = true;
            settings.Denoising = true;
            settings.Binarization = true;
            AsposeOcr ocr = new AsposeOcr();
            List<RecognitionResult> results = ocr.Recognize(input, settings);
            int count = 1;
            foreach (RecognitionResult result in results)
            {
                result.Save($"./output/result_{count}.txt", SaveFormat.Text);
                count++;
            }
        }
        catch (Exception ex)
        {
            File.AppendAllText("ocr_errors.log", ex.Message + Environment.NewLine);
        }
    }
}

ケースとアプリケーションの使用

高精度の請求書と契約引き出し

法的/財務文書自動化の品質と信頼性を最大限にする。

ボリュームイメージ/テキストアーカイブ処理

バッチスピードを向上させ、合意またはBIに対する偽ネガティブを最小限に抑える。

R&Dとモデル評価

新しいレイアウト、言語、または画像タイプを研究シナリオで表示します。

共通の課題と解決策

チャレンジ1:画像の入力が低い

ソリューション: OCRの信頼が低い場合は、より良いスキャン/写真、画像改善を実行し、レビューのためのフラッグを使用します。

課題2:大規模な雇用における低パフォーマンス

ソリューション: レース中のシステムリソースをバッチ、パラレル化、モニタリング。

チャレンジ3:予期せぬ認識エラー

ソリューション: 出力を確認し、例外に対処しソフトウェアを更新します。

パフォーマンス考慮

  • Tune バッチサイズ、メモリ使用、および大規模な作業のためのプレプロセッサ
  • モニタリングシステムリソースと出力フォルダーの健康
  • アシンク/パラレルパターンを使用する大規模な配布

ベストプラクティス

  • スケールアップ前にサンプルの設定を確認する
  • 自動モニタリングとエラー警告
  • ソース画像と出力の両方を安全にアーカイブ
  • ASPOSE.OCR をアップグレードして、正確性/透明性を向上させる

高度なシナリオ

シナリオ1:混合コンテンツのためのアダプティブプレプロセッサ

各入力画像のダイナミックな検出モードを設定します。

シナリオ2:継続的な改善とフィードバックの流れ

OCR 出力エラーを修正およびリトレーニングのためのプロセスに戻します。

結論

トーニングの正確さと透明度は、どのワークフローでも .NET の Aspose.OCR から最高の結果を保証します。 ASPOSE.OCR for .NET API リファレンス .

 日本語