yolov7-pytorch可用于訓練自己的數據集
YOLOV7:You Only Look Once目標檢測模型在pytorch當中的實現
所需環境
torch==1.2.0+
為了使用amp混合精度,推薦使用torch1.7.1以上的版本。
全部 代碼 ,預訓練模型 獲取方式:
關注微信公眾號 datayx 然后回復 v7 即可獲取。
訓練步驟
a、訓練VOC07+12數據集
數據集的準備
本文使用VOC格式進行訓練,訓練前需要下載好VOC07+12的數據集,解壓后放在根目錄數據集的處理
修改voc_annotation.py里面的annotation_mode=2,運行voc_annotation.py生成根目錄下的2007_train.txt和2007_val.txt。開始網絡訓練
train.py的默認參數用于訓練VOC數據集,直接運行train.py即可開始訓練。訓練結果預測
訓練結果預測需要用到兩個文件,分別是yolo.py和predict.py。我們首先需要去yolo.py里面修改model_path以及classes_path,這兩個參數必須要修改。
model_path指向訓練好的權值文件,在logs文件夾里。
classes_path指向檢測類別所對應的txt。
完成修改后就可以運行predict.py進行檢測了。運行后輸入圖片路徑即可檢測。
b、訓練自己的數據集
數據集的準備
本文使用VOC格式進行訓練,訓練前需要自己制作好數據集,
訓練前將標簽文件放在VOCdevkit文件夾下的VOC2007文件夾下的Annotation中。
訓練前將圖片文件放在VOCdevkit文件夾下的VOC2007文件夾下的JPEGImages中。
數據集的處理
在完成數據集的擺放之后,我們需要利用voc_annotation.py獲得訓練用的2007_train.txt和2007_val.txt。
修改voc_annotation.py里面的參數。第一次訓練可以僅修改classes_path,classes_path用于指向檢測類別所對應的txt。
訓練自己的數據集時,可以自己建立一個cls_classes.txt,里面寫自己所需要區分的類別。
model_data/cls_classes.txt文件內容為:
修改voc_annotation.py中的classes_path,使其對應cls_classes.txt,并運行voc_annotation.py。
開始網絡訓練
訓練的參數較多,均在train.py中,大家可以在下載庫后仔細看注釋,其中最重要的部分依然是train.py里的classes_path。
classes_path用于指向檢測類別所對應的txt,這個txt和voc_annotation.py里面的txt一樣!訓練自己的數據集必須要修改!
修改完classes_path后就可以運行train.py開始訓練了,在訓練多個epoch后,權值會生成在logs文件夾中。訓練結果預測
訓練結果預測需要用到兩個文件,分別是yolo.py和predict.py。在yolo.py里面修改model_path以及classes_path。
model_path指向訓練好的權值文件,在logs文件夾里。
classes_path指向檢測類別所對應的txt。
完成修改后就可以運行predict.py進行檢測了。運行后輸入圖片路徑即可檢測。
預測步驟
a、使用預訓練權重
下載完庫后解壓,在百度網盤下載權值,放入model_data,運行predict.py,輸入
img/street.jpg
在predict.py里面進行設置可以進行fps測試和video視頻檢測。
b、使用自己訓練的權重
按照訓練步驟訓練。
在yolo.py文件里面,在如下部分修改model_path和classes_path使其對應訓練好的文件;model_path對應logs文件夾下面的權值文件,classes_path是model_path對應分的類。
運行predict.py,輸入
img/street.jpg
在predict.py里面進行設置可以進行fps測試和video視頻檢測。
評估步驟
a、評估VOC07+12的測試集
本文使用VOC格式進行評估。VOC07+12已經劃分好了測試集,無需利用voc_annotation.py生成ImageSets文件夾下的txt。
在yolo.py里面修改model_path以及classes_path。model_path指向訓練好的權值文件,在logs文件夾里。classes_path指向檢測類別所對應的txt。
運行get_map.py即可獲得評估結果,評估結果會保存在map_out文件夾中。
b、評估自己的數據集
本文使用VOC格式進行評估。
如果在訓練前已經運行過voc_annotation.py文件,代碼會自動將數據集劃分成訓練集、驗證集和測試集。如果想要修改測試集的比例,可以修改voc_annotation.py文件下的trainval_percent。trainval_percent用于指定(訓練集+驗證集)與測試集的比例,默認情況下 (訓練集+驗證集):測試集 = 9:1。train_percent用于指定(訓練集+驗證集)中訓練集與驗證集的比例,默認情況下 訓練集:驗證集 = 9:1。
利用voc_annotation.py劃分測試集后,前往get_map.py文件修改classes_path,classes_path用于指向檢測類別所對應的txt,這個txt和訓練時的txt一樣。評估自己的數據集必須要修改。
在yolo.py里面修改model_path以及classes_path。model_path指向訓練好的權值文件,在logs文件夾里。classes_path指向檢測類別所對應的txt。
運行get_map.py即可獲得評估結果,評估結果會保存在map_out文件夾中。
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















