【目標檢測一】YOLOV3從訓練、測試到批量保存測試結果

本文從假設你已經有一個圖像數據集和xml標籤數據集了。然後從VOC2007數據集的製作開始說。

數據整理方法---訓練方法-----利用訓練日誌繪製Loss\IOU等曲線的方法------測試方法---------批量測試方法

 

數據整理方法:

(假設你只想要其中某些類,就要用程序剔除不要的標籤、然後刪除空標籤以及對應圖像。注意備份)

 

 

 

訓練自己的數據

訓練帶正常螺栓的數據集

        -採用的初始權重爲:首先Imagenet訓練過,然後經過我們螺栓庫訓練過,然後經過提包線夾脫銷數據集訓練過得到的yolov3模型權重。

        -問題:之前訓練過yolov3,但這一次還是調整了半天,說明模型的訓練過程中,不能單單的跑出來,要記錄具體的訓練步驟,以及處理過程。

        -具體流程如下

 

  • 修改cfg中voc.data:,

               

                         classes是數據集類、train和valid是由voc_label.py根據aa.m分配完成的位於Main中的結果文檔生成的訓練txt。names是類別名稱單獨放一個文件夾,類別按voc_label中相同的順序填寫。backup後面是一個文件夾,保存訓練好的網絡權重

  • 修改yolov3-voc.cfg:

            -文檔內搜索yolo。

             

          -開頭部分

            修改對應的地方。filters=3x(類別數目+5)

 

           所需要的文件如下:

voc_label.py網上都有,生成VOC格式的MaIn中txt文件的py代碼放在另一個博文裏面了,設置的是隨機挑選數據分配到test與train的,不是順序的,要注意。

 

LOSS曲線與IOU曲線繪製

1、繪製上一次訓練的Loss曲線、IOU曲線

        -還有map和ap曲線還沒知道怎麼畫

        -需要三個程序

       首先把命令窗口打印的訓練日誌複製下來然後:

  1. extract Log日誌爲 Loss和iou版本、
  2. 都與日誌放在同一個文件夾下運行
  3. 分別用train-loss\train-iou對日誌數據進行可視化

 

單張圖片測試:

./darknet detector test cfg/voc.data cfg/yolov3-voc.cfg backup/yolov3-voc_final.weights 01.jpg

批量測試:

1.可視化的批量測試

  按https://blog.csdn.net/mieleizhi0522/article/details/79989754YOLOv3批量測試圖片並保存在自定義文件夾下)中方法,首先修改代碼,然後重新編譯darknet,然後用

./darknet detector test cfg/voc.data cfg/yolov3-voc.cfg backup/yolov3-voc_final.weights

命令,運行後輸入依次2007_train.txt\2007_test.txt\2007_val.txt的路徑,會蹦出圖片,一張張關閉掉,就會自動保存並且運行下一張。運行完一組,結果輸出到data/out裏面,修改名字,跑下一個txt。就可以得到本次測試的圖片結果。

2.數字結果的批量測試(輸出txt,裏面是框座標、類別、得分)

  ./darknet detector vaild cfg/voc.data cfg/yolov3-voc.cfg backup/yolov3-voc_final.weights -gpu 0,1 thresh .001

參數分別是:

vaild測試模式,

數據配置文件

模型文件 指定gpu,

設定檢測的閾值。

 會把cfg/voc.data裏的測試txt文檔中的所有圖片批量測試一遍,按類輸出txt文檔到darknet-master/result文件夾中。更換不同的txt,得到val.txt、train.txt、test.txt對應數據的測試結果,每一次都要分開保存好,避免覆蓋

 

 

測試結果

圖像測試結果和數值座標結果都分別保存下來。

 


 

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