光学文字認識 (OCR) は、機械が画像やスキャンされた文書からテキストを認識して抽出できるようにする強力なテクノロジーです。 OCR は、文書のデジタル化、画像からのテキスト抽出、テキストベースのデータ分析など、さまざまな分野で応用されています。この記事では、高度なディープラーニングベースの OCR ツールキットである PaddleOCR をテキスト検出および認識タスクに使用する方法について説明します。プロセス全体を示すコード スニペットを順に見ていきます。 1. 前提条件コードに進む前に、PaddleOCR ライブラリが実行できる状態になっていることを確認しましょう。次の必要な前提条件がコンピューターにインストールされていることを確認してください。
次の pip コマンドを使用して PaddleOCR をインストールできます。 2. PaddleOCRの設定Python と必要なライブラリをインストールしたら、PaddleOCR を設定しましょう。テキストの検出と認識に使用できる、PaddleOCR の事前トレーニング済みモデルを使用できます。 PaddleOCR を使用したテキスト検出と認識のコード スニペットには、次の主なコンポーネントが含まれています。
3. 段階的に導入するコード スニペットを分解して、各ステップを詳しく説明します。 1. テキスト検出このコードは、実際のデータを使用して光学文字認識 (OCR) を評価するために設計された DecMain というクラスの一部です。 PaddleOCR を使用して画像からテキストを抽出し、精度、再現率、文字エラー率 [CER] などのメトリックを計算して、OCR システムのパフォーマンスを評価します。 コードを分解して各部分について説明しましょう。 DecMain クラスには、次のパラメータを使用してオブジェクトを初期化する __init__ メソッドがあります。
run_dec メソッドは、OCR 評価プロセスを実行する役割を担います。まず、CheckAndUpdateGroundTruth クラスを使用して、グラウンド トゥルース ファイルをチェックおよび更新します。 OcrToDf クラスは、OCR の結果を pandas DataFrame (df) に変換するために使用されます。次のパラメータを受け入れます:
ReadGroundTruthFile クラスは、真のラベル ファイルを読み取り、その内容を ground_truth_data 変数に読み込むために使用されます。 DataFrame df から取得された OCR 結果は辞書のリスト (ocr_results) に変換され、各辞書は単一の画像の OCR 結果を表します。 CalculateMetrics クラスは、OCR 評価メトリック (精度、再現率、評価されたサンプルの合計数) を計算するために使用されます。このクラスは、実際のデータと OCR 結果を入力として受け取ります。 CreateSheet クラスは、評価メトリックと OCR 結果を含む出力シート (Excel や CSV など) を作成する役割を担います。入力として、DataFrame df、精度、再現率、サンプルの総数、および出力ファイル名を受け入れます。 全体として、DecMain クラスは、実際のデータと PaddleOCR のテキスト検出および認識機能を使用して OCR モデルのパフォーマンスを評価するための体系的な方法を提供します。重要な評価メトリックを計算し、結果を指定された出力ファイルに保存して、さらに分析します。 2. 注意: 実際のラベルファイルの形式DecMain クラスと OCR 評価に提供されたコードを使用するには、グラウンド トゥルース ラベル ファイルを正しくフォーマットする必要があります。グラウンド トゥルース ラベル ファイルは JSON 形式である必要があり、その構造は次のとおりです。 image_name.jpg [{"transcription": "215mm 18", "points": [[199, 6], [357, 6], [357, 33], [199, 33]], "difficult": False, "key_cls": "digits"}, {"transcription": "XZE SA", "points": [[15, 6], [140, 6], [140, 36], [15, 36]], "difficult": False, "key_cls": "text"}] グラウンドトゥルースラベルファイルは JSON 形式である必要があります。ファイルの各行は、画像の OCR グラウンド トゥルース ラベルを表します。 各行には画像のファイル名が含まれ、その後にその画像の OCR 結果が JSON オブジェクト形式で続きます。 JSON オブジェクトには次の内容が含まれている必要があります。
OCR モデルのパフォーマンスを正確に評価するために使用するグラウンド トゥルース ラベル ファイルを作成するときは、必ずこの形式に従ってください。 3. テキスト認識このコードは、RecMain というクラスを定義します。このクラスは、事前トレーニング済みの OCR モデルを使用して画像フォルダーに対してテキスト認識 (OCR) を実行し、評価 Excel シートを生成するように設計されています。 コードを分解して各部分について説明しましょう。 RecMain クラスには、次のパラメータを使用してオブジェクトを初期化する __init__ メソッドがあります。
run_rec メソッドは、テキスト認識プロセスを実行する役割を担います。まず、GetImagePathsFromFolder クラスを使用して、指定された image_folder 内のすべての画像の画像パスのリストを取得します。この手順により、OCR モデルが指定されたディレクトリ内のすべての画像を処理することが保証されます。 LoadRecModel クラスは、テキスト認識用の事前トレーニング済み OCR モデルを読み込むために使用されます。モデルをロードするには、PaddleOCR または別の OCR ライブラリが使用される場合があります。 ProcessImages クラスは、読み込まれた OCR モデルを使用して画像を処理する役割を担います。入力として、OCR モデル (ocr_model) と画像パスのリスト (image_paths) を受け取ります。 ConvertTextToDict クラスは、グラウンド トゥルース ラベル ファイルを読み取り、それを辞書形式 (ground_truth_data) に変換するために使用されます。この変換により、OCR モデルの予測と比較するための真実データが準備されます。 EvaluateRecModel クラスは、OCR モデルの予測を実際のデータと比較し、精度、再現率、文字エラー率 (CER) などの評価メトリックを計算する役割を担います。 OCR モデルの予測 (結果) と真実データ (ground_truth_data) を入力として受け取ります。 CreateMetricExcel クラスは、評価メトリックと OCR 結果を含む出力 Excel テーブルを作成します。画像名、モデル予測、グラウンドトゥルーステキスト、評価メトリック、出力ファイル名 (self.output_file) など、さまざまな入力データを受け入れます。 要約すると、RecMain クラスは、OCR モデルの読み込みから詳細なメトリックを含む評価 Excel シートの生成まで、テキスト認識プロセス全体を整理します。これは、特定の画像セットに対する OCR モデルのパフォーマンスを評価するための、体系的かつ再利用可能な方法を提供します。 注: グラウンドトゥルーステキストファイル形式 RecMain クラスと OCR 評価に提供されたコードを使用する場合、グラウンド トゥルース (GT) テキスト ファイルが正しくフォーマットされていることが重要です。 GT テキスト ファイルは次の形式である必要があります。 image_name.jpg テキスト ファイルの各行は、画像の GT テキストを表します。 各行には、画像のファイル名、タブ文字 (\t)、その画像の GT テキストが含まれます。 GT テキスト ファイルに、画像フォルダーで指定されたすべての画像の GT テキスト エントリが含まれていることを確認します。 GT テキストは画像内の実際のテキスト コンテンツと一致する必要があります。この形式は、OCR モデルのパフォーマンスを正確に評価するために必要です。 ソースコードはここから入手できます: https://github.com/vinodbaste/paddleOCR_rec_dec?source=post_page 結論はディープラーニングに基づく PaddleOCR をテキストの検出と認識に使用するプロセスを検討しました。テキストの検出と認識の実装を段階的に説明しました。 PaddleOCR の強力な事前トレーニング済みモデルと使いやすい API により、画像に対する OCR の実行が簡単になりました。 |
<<: OpenAI が Stable Diffusion を救います! Ilya Song Yang らによるオープンソースの Dall E3 デコーダー
>>: Fast.ai の 10,000 ワードの記事: AI の安全性と光の終焉
バッチ サイズは、機械学習における重要なハイパーパラメータの 1 つです。このハイパーパラメータは、...
最近、天津大学の熊徳一教授のチームが大規模言語モデルアライメント技術に関するレビュー論文(以下、アラ...
[[282882]]リーパードローンつい最近、米国空軍は、リーパー無人航空機の製造元であるゼネラル・...
世界の自動車産業におけるインテリジェンスと車両のインターネットの発展により、新時代の人々はますます便...
[[379264]]人工知能(AI)の発展に伴い、機械が人間の労働に取って代わるというニュース報道が...
Llama2とCode Llamaのリリース後、長い間姿を見せていなかったザッカーバーグ氏は、本日公...
[[391970]]画像キャプション:滴滴自動運転のCOO孟星氏とUdacityの創設者兼会長セバス...
アマゾンのドローン配送部門プライムエアで安全、飛行運用、規制業務を担当していたショーン・キャシディ氏...
最近、百度文心は3つの主要機能をリリースし、カスタマイズされたマルチラベルテキスト分類、感情傾向分析...
大規模言語モデル (LLM) が強力であることは議論の余地のない事実ですが、それでも単純な間違いを犯...
[[183486]]医療、金融、交通、教育、公安、小売、商業サービスなどの業界は、電子データの度合...
[[380661]] [51CTO.com クイック翻訳] 会話型 AI により、アプリケーションは...
今日では、人間の直感を備えたコンピューターは、画像内の物体の認識、音声の書き起こし、外国語の翻訳、病...