使用PaddleOCR,訓練自己的模型
ps:爲方便讀者文章中需要用到的文件均使用我的網盤分享下載,同時也會給出官網下載地址
前言______PaddleOcr的安裝與準備工作
1.PaddleOcr相關組件安裝我在上一個博客中已經介紹完畢→ PaddleOcr安裝與使用全程指南 ←點擊跳轉
2.下載PaddleOcr官方文件包,
https://kyc592.lanzous.com/i5C7Gkojm7c 密碼:kyc
或官網下載地址:https://gitee.com/paddlepaddle/PaddleOCR
然後解壓到項目文件夾的根目錄下。
一定確保按照前一篇博客操作完畢,Paddleocr可以正常運行,儘量減少待會出現的極 其 繁 重的debug工作。
至此完成準備工作。
資料準備
訓練自己的模型,需要的資料有:
①訓練用的圖片集 ②測試用的圖片集 ③前面兩個圖片集配套的標註文件 ④預訓練模型
1. 下載icdar2015圖片集
演示採用的 ①訓練用的圖片集 ②測試用的圖片集 ③前面兩個圖片集配套的標註文件 採用的均是來自現成的 icdar2015數據集,若有意自己蒐集圖片集和生成配套標註文件 點擊跳轉至→ * 如何製作自己的數據集?
先進行一下兩個圖片集的下載,
ch4_training_images.zip 是icdar2015數據集的訓練圖片集,共1000張
https://kyc592.lanzous.com/iKdkQkpytcf 密碼:kyc
ch4 _test_images.zip 是icdar2015數據集的測試圖片集,共500張
https://kyc592.lanzous.com/isNpFkpzb5g 密碼:kyc
注意兩個圖片集千萬不要用錯了
或 官網下載地址:https://rrc.cvc.uab.es/?ch=4&com=downloads,需要先進行註冊登錄纔可下載。
2. 下載icdar2015數據集配套的標註文件
train_icdar2015_label.txt 是訓練集的配套標註文件:
https://kyc592.lanzous.com/i9aPSkpzp1g 密碼:kyc
test_icdar2015_label.txt 是測試集的配套標註文件:
https://kyc592.lanzous.com/i72mHkpzp0f 密碼:kyc
注意兩個標註文件千萬不要用錯了
或 官方下載地址:
訓練集的配套標註文件:https://paddleocr.bj.bcebos.com/dataset/train_icdar2015_label.txt
測試集的配套標註文件:
https://paddleocr.bj.bcebos.com/dataset/test_icdar2015_label.txt
3.組織數據集路徑
【建議以下所有的路徑均寫絕對路徑】
將第一步中下載的兩個圖片集解壓出來,與第二步中下載的配套標註文件
按照圖片中的方式存放到train_data文件夾中。(共兩個文件夾,兩個文檔)
4.下載預訓練模型
PaddleOCR的檢測模型當前支持3個主幹,即MobileNetV3,ResNet18_vd和ResNet50_vd,可以根據需要使用PaddleClas中的模型替換主幹。
相關資料:
MobileNet
針對亟需在移動端應用深度學習技術的需求,MobileNet在存儲空間和能耗低的地方表現優秀,在損失精度很小的情況下,計算量,存儲空間,準確率方面都有明顯提升。ResNet 系列模型
ResNet創新性的提出了殘差結構,一舉在ILSVRC2015比賽中取得冠軍,top5錯誤率爲3.57%。斯坦福大學的Joyce
Xu將ResNet稱爲「真正重新定義了我們看待神經網絡的方式」的三大架構之一。
官方下載地址:
MobileNetV3預訓練模型:
https://paddle-imagenet-models-name.bj.bcebos.com/MobileNetV3_large_x0_5_pretrained.tar
ResNet18_vd預訓練模型:
https://paddle-imagenet-models-name.bj.bcebos.com/ResNet18_vd_pretrained.tar
ResNet50_vd預訓練模型:
https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_vd_ssld_pretrained.tar
打開鏈接即彈出下載請求。
這裏演示使用的是ResNet50_vd預訓練模型。
5.組織預訓練模型路徑
新建一個pretain_models文件夾,將下載的預訓練模型解壓進來。
在config/det文件夾下找到det_mv3_db_v1.1.yml文件,只需要將“pretrain
_weights”指定爲前面獲取的預訓練模型路徑。
我的爲 D:\PO\pretain_models\ResNet50_vd_ssld_pretrained
6.修改配置文件
①在tools文件夾中找到program.py腳本打開,找到class ArgsParser構造函數
然後將圖中箭頭指向的那一行,光標處添加一句代碼
default = "D:\PO\configs\det\det_mv3_db_v1.1.yml",
修改爲
注意文件路徑根據自己的電腦填寫正確。
注意相對路徑填寫規則
“./ ”表示同級目錄,
“../”表示上級目錄,
“../../”表示上上級目錄,
(以運行的.py文件爲當前路徑)
② 在config/det文件夾下找到det_db_icdar15_reader.yml文件打開,(pycharm或者Typora之類的軟件都可以打開)
將這四行根據自己的電腦修改正確。
四行依次爲 訓練圖片集的路徑、訓練圖片集配套的標註文件路徑、測試圖片集的路徑、測試圖片集配套的標註文件路徑。
修改完畢。
設置完成,開始訓練
到了緊張刺激的DEBUG環節纔對
運行tools文件夾中的train.py腳本。
Q1:無法附加測試報告到測試框架
A1:不使用pytest打開,使用普通方式打開
選擇右上角這個地方,點擊編輯配置 / Edit configurations…
點擊減號移除當前配置
然後點擊加號點擊Python
修改爲文件名和文件所在路徑,確定保存計即可正常運行。
Q2:提示缺少文件FileNotFoundError: [Errno 2] No such file or directory: ‘./configs/det/det_db_icdar15_reader.yml’
A2:是因爲 ./ 是在同級文件夾下尋找該文件,索性直接把全部configs文件夾複製到此腳本所在的tools文件夾裏一份,他們倆就是同級路徑了
類似問題同樣採取此方法,將缺少的文件夾複製到tools文件夾。
Q3:提示無gpu。ERROR: Config use_gpu cannot be set as true while you are using paddlepaddle cpu version !
A3:使用cpu訓練模型的話,則索性將tools/configs文件夾中所有文件有use_gpu: 這一行代碼的語句的,全部修改爲false,根目錄中的configs文件夾同樣操作。
Q4:提示訓練圖片集不存在 2021-01-23 14:10:54,107-INFO: D:\PO\train_data\ch4_training_imagesicdar_c4_train_imgs/img_999.jpg does not exist!
A5:很容易發現是因爲存放圖片的文件夾名不一致,修改一下即可。
Q6:突然cpu與內存佔用比最近某圈的瓜還爆炸
運行結果是這個樣子
A6:學習煉丹基本成功。關掉程序換個好電腦跑。
如何製作自己的數據集?
使用PPOCRLabel文件夾中的PPOCRLabel.py腳本(先確保安裝了pyqt5)
PPOCRLabel官網:https://gitee.com/computer-vision/PaddleOCR/blob/develop/PPOCRLabel/README.md
運行後彈出這個窗口
在菜單欄點擊 “文件file” - “打開目錄open dir” 選擇待標記圖片的文件夾
菜單欄中的PaddleOCR ,點擊 ”自動標註auto recognition“,使用PPOCR超輕量模型對圖片文件名前圖片狀態爲 “✖” 的圖片進行自動標註。
等待標註完成。
然後點擊右下角的Check,圖片前面的 X 就會變成 √ (藉助鼠標宏或者連點器)
此時再點擊file,點擊save label,即可在彈出的提示的路徑中找到自己的標註文件
模型評估與模型檢查
等等再更新…