OpenCV 5.0.0
Open Source Computer Vision
読み込み中...
検索中...
見つかりません
🤖 AIによる機械翻訳(非公式) — これは OpenCV 5.0.0 公式リファレンス(英語)を AI (Claude) で自動翻訳したものです。訳に誤りを含む場合があります。正確な情報は 公式英語版(原文) を参照してください。
カスタムOCRモデルの実行方法

前のチュートリアル: カスタム深層学習レイヤーのサポート
次のチュートリアル: 高レベルAPI: TextDetectionModelとTextRecognitionModel

原著者Zihao Mu
互換性OpenCV >= 4.3

はじめに

このチュートリアルでは、まずカスタムOCRモデルの入手方法を紹介し、次に独自のOCRモデルをopencv_dnnモジュールで正しく実行できるように変換する方法を説明し、最後にいくつかの学習済みモデルを提供する。

独自のOCRモデルを学習する

このリポジトリは、独自のOCRモデルを学習するための良い出発点である。リポジトリでは、デフォルトでMJSynth+SynthTextが学習セットとして設定されている。さらに、必要に応じてモデル構造とデータセットを設定できる。

OCRモデルをONNX形式に変換しOpenCV DNNで使用する

モデルの学習が完了したら、transform_to_onnx.pyを使用してモデルをonnx形式に変換すること。

Webカメラで実行する

Python版のサンプルコードは こちら にある。

例:

$ text_detection -m=[path_to_text_detect_model] -ocr=[path_to_text_recognition_model]

学習済みのONNXモデルが提供されている

いくつかの学習済みモデルはhttps://drive.google.com/drive/folders/1cTbQ3nuZG-EKWak6emD_s8_hHXWz7lAr?usp=sharingにある。

さまざまなテキスト認識データセットでのそれらの性能を以下の表に示す:

モデル名IIIT5k(%)SVT(%)ICDAR03(%)ICDAR13(%)ICDAR15(%)SVTP(%)CUTE80(%)平均精度 (%)パラメータ数( x10^6 )
DenseNet-CTC72.267 67.39 82.81 80 48.38 49.45 42.50 63.26 0.24
DenseNet-BiLSTM-CTC73.76 72.33 86.15 83.15 50.67 57.984 49.826 67.69 3.63
VGG-CTC75.96 75.42 85.92 83.54 54.89 57.52 50.17 69.06 5.57
CRNN_VGG-BiLSTM-CTC82.63 82.07 92.96 88.867 66.28 71.01 62.37 78.03 8.45
ResNet-CTC84.00 84.08 92.39 88.96 67.74 74.73 67.60 79.93 44.28

テキスト認識モデルの性能はOpenCV DNN上でテストされており、テキスト検出モデルは含まれていない。

モデル選択の推奨

テキスト認識モデルの入力はテキスト検出モデルの出力であり、そのためテキスト検出の性能がテキスト認識の性能に大きく影響する。

DenseNet_CTCはパラメータが最も少なくFPSが最良であり、計算コストに非常に敏感なエッジデバイスに適している。計算資源が限られていてより高い精度を求める場合は、VGG_CTCが良い選択肢である。

CRNN_VGG_BiLSTM_CTCは高い認識精度を必要とするシナリオに適している。