![]() |
OpenCV 4.12.0
開源計算機視覺
|
上一個教程: 自定義深度學習層支援
下一個教程: 高階 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 適用於需要高識別精度的場景。