1. 程式人生 > >Yolov3訓練自己資料集+資料分析

Yolov3訓練自己資料集+資料分析

訓練自己到資料集已經在上一篇文中說明過了,這一篇著重記錄一下資料分析過程

資料分析

1. mAP值計算

1)訓練完成後,執行darknet官方程式碼中到 detector valid 命令,生成對測試集到檢測結果,命令如下:

./darknet detector valid <voc.data 檔案路徑><cfg 檔案路徑><weights檔案路徑> - out "" -gpu 0 -thresh .2

下邊是參照我自己訓練時候的命令給出到完整程式碼(只適合我自己呦,就是給你們一個參考)

./darknet detector valid cfg/voc.data cfg/yolov3-voc-person.cfg backup/yolov3-voc-person_final.weights -out "person.txt" -gpu 0 -thresh .5

注意:1.“” 可以在裡面新增你訓練到物體到名字,例如,我的程式碼中的   "person.txt"

            2.最後到執行結果將儲存到“result"資料夾中,注意檢視

2)下載訓練檢測用到的指令碼檔案reval_voc.py與voc_eval.py  並放到darknet根目錄下

3)使用reval_voc.py計算mAP值,並生成.pkl檔案,程式碼如下:

python reval_voc.py --voc_dir<VOC檔案路徑> --year<年份> --image_set <驗證集檔名稱> --classes<自己的類別檔案路徑> <輸出資料夾名稱>

同樣貼出自己跑時候到程式碼

python reval_voc.py --voc_dir /home/wsy/darknet/VOCdevkit --year 2007 --image_set test --classes /home/wsy/darknet/data/voc.names 1

注意:1.<VOC檔案路徑>:只填寫到年份之前就可以,比如你完全按照VOC2007 資料集來訓練自己的資料,那麼你的資料格式與VOC2007中一模一樣,就寫到VOCdevkit即可(按照我那麼寫就可以)

            2.<  年份>:資料集的數字,如2007、2012等等

            3.<驗證集檔名>:直接寫 ”test.txt“ 即可,我嘗試了很多次,發現,只寫test.txt,就會自動找到你的Main資料夾中對用的test.txt檔案

            4.<自己的類別資料夾路徑>:這個寫voc.names的路徑即可,因為voc.names裡記錄著你訓練資料集的全部類別

            5.最後到”1“是自己新建的資料夾名稱,用來儲存最後生成的.txt檔案。

最後放一張訓練後到結果檔案。

2. kmeans重聚類

按照網上教程下載kmeans-anchor-boxes-master檔案,將裡面的三個.py檔案複製到darknet根目錄下

首先執行 python kmeans.py

然後執行 python kmeanyolov3.py

  最後放一張執行後到結果。