光学文字認識 (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 の安全性と光の終焉
テキサス州に拠点を置くラックスペース テクノロジーズが実施した調査によると、公共部門の IT 意思決...
[[205485]]アビシェーク・タクル編集者: Cathy、Huang Wenchang、Jia...
人工知能研究企業OpenAIは8月29日、ChatGPTのメジャーアップグレードとなるChatGPT...
従来、高性能コンピューティング (HPC) は、数値解析を利用して物理方程式を解き、素粒子から銀河に...
コード補完ツール Kite は最近最新バージョンに更新され、「インテリジェント スニペット」と呼ばれ...
導入Kaggle は機械学習のコンペティションで最も有名なウェブサイトです。 Kaggle コンテス...
ニューヨーク大学の心理学教授であるゲイリー・マーカス氏は、かつてウーバーの人工知能研究所の所長を務め...
8月18日、百度とCCTVニュースは共同で「百度ワールド2021」カンファレンスを開催し、AIが何千...
この記事では、自然言語処理タスクに最適な 6 つの Python ライブラリを紹介します。初心者でも...
人々がデジタルの世界に移行するにつれて、組織と顧客の関係はここ数年で変化してきました。顧客の期待はか...
市場調査会社MarketsandMarketsによると、世界のエッジ人工知能(エッジAI)ソフトウェ...
OpenAI は 9 月に ChatGPT に画像入力機能を追加し、ユーザーが会話に添える 1 つ...
1. 異常なネットワークトラフィックの検出コンピュータネットワークは現代人の生活に欠かせないもので...
[[186706]]マサチューセッツ工科大学(MIT)は最近、同校の研究者らが樹木や植物のポンプ機構...