PaddlePaddle飛槳OCR文本檢測——檢測模型訓練(二)

上一篇安裝https://blog.csdn.net/weixin_42845306/article/details/112688405
飛槳的OCR模型分爲檢測、識別和分類,先看檢測。
檢測就是將(可能的)文本標定好座標,簡單說就是給圖中的文本畫框。

數據集製作及圖片標註

首先製作訓練集,找很多帶文字的圖片,放在一個文件夾裏(這裏叫img_50),注意圖片的名字。
雖說可以任意,但最好還是得有規律。
然後是標定標籤,方法有很多,這裏用自帶的PPOCRLabel,用法這裏有詳細介紹:
https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/PPOCRLabel/README_ch.md
大概用法就是安裝pyqt(一個python中的可視化庫),打開軟件,載入放圖片的文件夾,先半自動標註,然後手動調整,保存標記結果可以保存出一個label.txt裏面密密麻麻放着座標,保存識別結果可以把圖片裏面所有的文字全摳出來單獨放進一個文件夾crop_img,作爲識別訓練集,還有對應的識別標籤rec_gt.txt(識別這步下次再講)。
在這裏插入圖片描述
測試集的製作方法一模一樣。





數據集安置

在PaddleOCR-dygraph根目錄下建立一個文件夾"train_data",再新建一個文件夾"img_50"作爲自定義數據集的位置,在img_50裏放入訓練集和測試集的label.txt和對應的兩個文件夾的圖片(只放圖片)。
我偷了個懶,不弄測試集了,直接把訓練集當測試集
在這裏插入圖片描述

預訓練模型安置

從網上下載預訓練模型,比如https://paddle-imagenet-models-name.bj.bcebos.com/MobileNetV3_large_x0_5_pretrained.tar

解壓一定要用這個命令:

tar -xf ./pretrain_models/MobileNetV3_large_x0_5_pretrained.tar

這樣解壓出來的纔是很多個權值文件,右鍵解壓會直接解壓出一個大文件,無法使用。
將解壓後的MobileNetV3_large_x0_5_pretrained模型文件夾放在PaddleOCR-dygraph下新建的pretrain_models文件夾中:
在這裏插入圖片描述

調參

在這裏插入圖片描述
找到det_mv3_db.yml,這是檢測模型MobileNetV3的參數訓練設置,記事本打開。
裏面的參數看着改,主要是這幾點:
pretrained_model: ./pretrain_models/MobileNetV3_large_x0_5_pretrained/
data_dir: ./train_data/img_50/
label_file_list:
- ./train_data/img_50/Label.txt
注意測試集和訓練集的路徑都要調整。






訓練開始

在PaddleOCR-dygraph根目錄打開cmd,輸入以下其中之一命令即可測試

# 單機單卡訓練 mv3_db 模型
python tools/train.py -c configs/det/det_mv3_db.yml \
     -o Global.pretrain_weights=./pretrain_models/MobileNetV3_large_x0_5_pretrained/
# 單機多卡訓練,通過 --gpus 參數設置使用的GPU ID;如果使用的paddle版本小於2.0rc1,請使用'--select_gpus'參數選擇要使用的GPU
python -m paddle.distributed.launch --gpus '0,1,2,3' tools/train.py -c configs/det/det_mv3_db.yml \
     -o Global.pretrain_weights=./pretrain_models/MobileNetV3_large_x0_5_pretrained/

其實調整了.yml文件後,-o參數可以不寫

訓練進行中:
在這裏插入圖片描述

站在巨人的肩膀上

其實我們可以在別人已經訓練好的模型上接着我們的訓練對吧?
也可以訓練一段時候後,斷點續……訓。
我們訓練的模型,默認會保存在./output文件夾下,三個主要文件:
latest.pdopt
latest.pdparams
latest.states
不管後綴名的話,這個訓練的模型稱之爲latest





如果要接着訓練的話,在剛剛設置參數的.yml文件中找到checkpoints參數,寫入路徑
在這裏插入圖片描述
注意後面要寫上模型的名字。
然後再調用命令訓練,可以看到resume from
在這裏插入圖片描述
如果使用飛槳已經訓練好的模型,可以在GitHub上找到,也可以在上一篇博客中找到網盤鏈接,這裏放上各個模型對應的類型:
在這裏插入圖片描述





一切都可以從手冊學到https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/doc/doc_ch/detection.md

下一篇識別模型訓練:https://blog.csdn.net/weixin_42845306/article/details/112726615

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章