上一篇安裝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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/249860.html
標籤:其他
上一篇:理解html
下一篇:C++每日一題
