![]() |
OpenCV 4.13.0
Open Source Computer Vision
|
前のチュートリアル: カスタム深層学習レイヤーのサポート
次のチュートリアル: 高レベルAPI: TextDetectionModelとTextRecognitionModel
| 原著者 | Zihao Mu |
| 互換性 | OpenCV >= 4.3 |
このチュートリアルでは、まずカスタムOCRモデルの入手方法を紹介し、次に独自のOCRモデルをopencv_dnnモジュールで正しく実行できるように変換する方法を説明し、最後にいくつかの学習済みモデルを提供する。
このリポジトリは、独自のOCRモデルを学習するための良い出発点である。リポジトリでは、デフォルトでMJSynth+SynthTextが学習セットとして設定されている。さらに、必要に応じてモデル構造とデータセットを設定できる。
モデルの学習が完了したら、transform_to_onnx.pyを使用してモデルをonnx形式に変換すること。
Python版のサンプルコードはこちらにある。
例:
いくつかの学習済みモデルはhttps://drive.google.com/drive/folders/1cTbQ3nuZG-EKWak6emD_s8_hHXWz7lAr?usp=sharingにある。
さまざまなテキスト認識データセットでのそれらの性能を以下の表に示す:
| モデル名 | IIIT5k(%) | SVT(%) | ICDAR03(%) | ICDAR13(%) | ICDAR15(%) | SVTP(%) | CUTE80(%) | 平均精度 (%) | パラメータ数( x10^6 ) |
|---|---|---|---|---|---|---|---|---|---|
| DenseNet-CTC | 72.267 | 67.39 | 82.81 | 80 | 48.38 | 49.45 | 42.50 | 63.26 | 0.24 |
| DenseNet-BiLSTM-CTC | 73.76 | 72.33 | 86.15 | 83.15 | 50.67 | 57.984 | 49.826 | 67.69 | 3.63 |
| VGG-CTC | 75.96 | 75.42 | 85.92 | 83.54 | 54.89 | 57.52 | 50.17 | 69.06 | 5.57 |
| CRNN_VGG-BiLSTM-CTC | 82.63 | 82.07 | 92.96 | 88.867 | 66.28 | 71.01 | 62.37 | 78.03 | 8.45 |
| ResNet-CTC | 84.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は高い認識精度を必要とするシナリオに適している。