1. 程式人生 > >yolo-darknet實現自己資料的train和test

yolo-darknet實現自己資料的train和test

有目共睹的是,yolo訓練資料優點明顯,訓練檢測速度超快,功能超強。因網上關於yolo訓練自己資料的部落格幾乎沒有,所以我就yolo訓練自己資料做一具體操作流程,希望可以幫助大家,讓大家對yolo不再陌生。
注意:1、請根據我的部落格將yolo安裝和測試,部落格地址:http://blog.csdn.net/samylee/article/details/51684856
2、請嚴格按照我部落格的順序做下去

第一部分:修改darknet/makefile檔案
開啟makefile檔案:
1、刪去CUDNN=0一行
2、LDFLAGS= -lm -pthread改為LDFLAGS= -lm -pthread -lstdc++
3、刪去ifeq($(CUDNN),1)-lcudnn endif
4、刪去activation_layer.oart.o
5、刪去LDFLAGS+= -lstdc++一行
6、在avgpool_layer_kernels.o
後增加yolo_kernels.o coco_kernels.o
儲存退出

第二部分:下載src資料夾
下載連結:http://download.csdn.net/detail/samylee/9555834
下載解壓後替換/darknet下的原src資料夾
開啟src資料夾下的yolo.c檔案:
1、classnum代表訓練幾類,person代表訓練的類別(這裡我給出例子為person)
2、修改train_images部分:改其中的usr您的伺服器使用者名稱
3、修改backup_directory部分:改其中的usr您的伺服器使用者名稱(同時在/darknet資料夾下新建資料夾命名為backup
開啟src資料夾下的yolo_kernels.cu
檔案:
其中cls_num 1代表1類(如果增加類,此變數相應增加)

第三部分:下載資料
images下載連結:http://download.csdn.net/detail/samylee/9555838
labels下載連結:連結:http://pan.baidu.com/s/1dFG2LX3 密碼:66xd
train.txt下載連結:連結:http://pan.baidu.com/s/1nvguFKP 密碼:bg0b
darknet.conv.weights(yolo-tiny小模型)下載連結:http://download.csdn.net/detail/samylee/9555843
1、將imageslabelstrain.txt
資料夾放入/darknet/scripts資料夾下,同時開啟train.txt檔案,修改usr您伺服器的使用者名稱,儲存退出。
2、將darknet.conv.weights檔案放入/darknet

第四部分:編譯
終端輸入:
cd darknet(進入darknet資料夾)
make clean
make -j16


第五部分:訓練資料
終端輸入:
./darknet yolo train cfg/yolo-tiny.cfg darknet.conv.weights
如果終端顯示NO such file or directory
則在darknet目錄的終端下輸入:
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
再次終端輸入:
./darknet yolo train cfg/yolo-tiny.cfg darknet.conv.weights
此時程式會跑起來,我在程式執行至儲存1000步的時候進行了測試

第六部分:測試資料

這裡提供yolo-tiny_1000.weights下載,僅供參考,下載連結:連結:http://pan.baidu.com/s/1c18hgT6 密碼:xbh9

darknet/backup資料夾下生成的yolo-tiny_1000.weights拷貝至/darknet下,同時將/darknet/scripts/images/person下的s8.jpg拷貝至/darknet
終端輸入:
./darknet yolo test cfg/yolo-tiny.cfg yolo-tiny_1000.weights

執行後終端會出現Enter Image Path一行,在後面輸入s8.jpg即可,得到predicton如下圖所示(因資料量過低,故效果不是很好,增加資料量即可解決,這裡只做demo):


任何問題請加唯一QQ2258205918(名稱samylee)  !!!