光学文字認識 (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. Ant Financial Knowledge Graph プラットフォームの紹介まず、ナレッ...
Windows 11がメジャーアップデートされ、まさに「AI OS」になりました!長い歴史を持つ古い...
10 月 29 日現在、大規模言語モデル (LLM) では即座に回答を出すことができないため、質問を...
[51CTO.com オリジナル記事] 今、業界で人気のテクノロジーは何ですか?それは間違いなく人工...
コンピュータ ビジョン (CV) 研究における長年の課題として、視覚認識 (画像分類、オブジェクト検...
OpenAIはTikTokで具体的に何をしたいのでしょうか?最近、TikTok 上のソラのビデオの数...
この記事では、GenAI やその他のテクノロジーへの投資が 2024 年までにどのように変化するかに...
[[360561]]過去数年間に自分の写真をオンラインに投稿したことがあれば、Clearview ...
生成型人工知能 (GenAI) は技術革新の最前線にあり、さまざまな業界の変革と発展に新たな可能性を...
[[383265]] 「ワイルド・スピード8」を見たことがある友人なら、ハッカーが1,000台の車...