windows10+Pytorch中用yolov3訓練自己數據記錄

yolov3版本:下載地址:https://github.com/ultralytics/yolov3   選擇原因pytorch中速度快、可以工業部署、不停的更新維護。後續有yolov5(只在其Github看到,後續可以嘗試)
環境:windows10
          pytorch1.5(1.4)
           python3.7
          CUDA:10.2  (10.1)
           cuDNN7.6
          Visual Studio Enterprise 2019
1、需重新編譯coco的PythonAPI 下載地址  https://github.com/cocodataset/cocoapi ;
cmd管理員權限打開進入coco\PythonAPI文件夾下,編譯setup.py    命令:python setup.py build_ext --inplace
發現報錯,主要內容爲:
cl: 命令行 error D8021 :無效的數值參數“/Wno-cpp”
========解決方法============
打開coco\PythonAPI目錄下的 setup.py文件,
修改ext_modules  extra_compile_args=['-Wno-cpp', '-Wno-unused-function', '-std=c99'],
#修改爲
#extra_compile_args=['-Wno-cpp', '-Wno-unused-function', '-std=c99'],
 extra_compile_args=['', '', ''],
然後繼續執行:python setup.py build_ext --inplace
繼續:python setup.py build_ext install
最後編譯結束輸出Finished processing dependencies for pycocotools==2.0表示成功

2、apex安裝(忘了這個好像不用安裝是測試YOLOv3-ASFF中安裝的)
TypeError: Class advice impossible in Python3. Use the @Implementer class decorator instead
pip uninstall apex
git clone https://www.github.com/nvidia/apex(需安裝git或直接下載)
cd apex
python setup.py install
3、官方模型測試(yolov3-spp-ultralytics.pt)
測試yolov3.weights +yolov3.cfg、 yolov3-spp-ultralytics.pt+yolov3-spp.cfg組合
yolov3-spp-ultralytics.pt(608*608  40ms 在測試推理時間速度要快於YOLOv3-ASFF_800_43.9.pth(https://github.com/ruinmessi/ASFF;YOLOv3-ASFF_800_43.9.pth  608*608  80ms    800*800  120ms);
python detect.py --names data/coco.names --cfg cfg/yolov3-spp.cfg --weights weights/yolov3-spp-ultralytics608.pt測試結果:(
測試圖片用國內交通標誌數據集的測試圖


視頻測試:

4、訓練自己的數據

數據集製作:
國內交通標誌數據集:共包含1465張640*640的交通標誌圖片,一共標註了6類交通標誌,分別是:直行、左轉、右轉、禁行、禁鳴、人行橫道,("straight", "left","right", "stop ", "nohonk", "crosswalk")。標註信息均保存在xml文件下載地址:https://www.kesci.com/home/dataset/5ea92354366f4d002d730fca 下載解壓後的數據集格式:一個是xml何對應的圖片。寫腳本xml2voc2007轉換爲voc2007格式;之後採用darknet帶的voc_label.py腳本轉換爲darknet需要的txt格式。總之我所用的數據集格式與darknet版本的一樣。

yolov3-spp.cfg重新命名yolov3-sppTR.cfg並修改(共有三處)如下圖:33=(num+5)*3

以yolov3-spp-ultralytics.pt作爲預訓練模型;cmd中執行如下命令即可
python train.py --data data/vocTR.data --cfg cfg/yolov3-sppTR.cfg --weights weights/yolov3-spp-ultralytics.pt --epochs 300


在IDE中只需修改如下圖的即可:


我這裏默認300 epochs就需要6個小時,運行結果如下圖

python detect.py --names data/vocTR.names --cfg cfg/yolov3-sppTR.cfg --weights weights/last.pt:推理檢測結果:




 

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