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 リファレンス .