老板需要做目標檢測的項目於是學習了一下yolo的使用,在這里貼一些使用過程中的心得,方便日后查閱和交流
相關資源:
yolo官網:https://pjreddie.com/darknet/yolo/
yolo的pytorch實現:https://github.com/eriklindernoren/PyTorch-YOLOv3
針對pytorch實現yolo代碼的注釋:https://gitee.com/yeye0810/PyTorch-YOLOv3
圖片標記工具:https://github.com/tzutalin/labelImg
yolo使用步驟:
相關參數修改
修改文件中的sets和class sets用於指定路徑 class用於指定類別 根據voc_label.py的路徑存放圖片和xml文件 Main文件中的train.txt文件存放所有圖片的名稱(不帶jpg)
cd darknet
cd cfg
vim yolov3-voc.cfg
文檔開頭需要指定訓練格式還是test格式 由於自身計算能力的限制需要將batch更改為32(測試時出現存儲轉載的現象,所以將該batch改為32),更改yolo下的class和yolo上一層convolution的filter, filter的值為(classes+5)*3
vim voc.data
修改里面的class,train(train為voc_label.py生成的txt文件的絕對路徑),names是類名的路徑,backup為訓練后權重文件的存儲路徑
cd data
vim voc0.names
將class的名稱存入
訓練:
命令
./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg darknet53.conv.74 -gpus 0,1
cfg/voc.data要訓練的數據 cfg/yolov3-voc.cfg要訓練的模型 darknet53.conv.74預訓練參數 -gpus 使用gpu運算 0,1使用兩塊gpu, 更多的話用0,1,2,3
測試:
./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg