ubuntu 16.04 docker caffe gpu yolov1訓(xùn)練公用數(shù)據(jù)集

主要參考

https://github.com/yeahkun/caffe-yolo

首先下載上述代碼

git clone?https://github.com/yeahkun/caffe-yolo

將其放在docker環(huán)境下,我這里的路徑如下


,

然后cd到caffe-yolo路徑下

將Makefile.config.example復(fù)制一份為Makefile.config

cp Makefile.config.example Makefile.config

然后vim打開Makefile.config文件

將其中的如下兩行進(jìn)行更改

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include

LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib

改為:

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/

LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial/

然后進(jìn)行編譯

make clean

make all

make pycaffe


然后下載VOC數(shù)據(jù)集

cd 到caffe-yolo/data/yolo/路徑下

wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar

wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar

wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCdevkit_08-Jun-2007.tar

進(jìn)行數(shù)據(jù)集下載

下載完成后進(jìn)行解壓

tar xvf?VOCtrainval_06-Nov-2007.tar

tar xvf?VOCtest_06-Nov-2007.tar

tar xvf?VOCdevkit_08-Jun-2007.tar

解壓之后這些會自動融合為一個叫VOCdevkit的文件夾


此時的caffe-yolo/data/yolo/路徑下有如下內(nèi)容


get_list.py是生成圖片路徑的python腳本,這里只用到VOC2007數(shù)據(jù)集,需要對get_lisy.py進(jìn)行修改

vim get_list.py打開

將原來的for name in ["VOC2007","VOC2012"]:

改為for name in ["VOC2007"]:


最后面關(guān)于VOC2012的部分注釋掉



然后運行g(shù)et_lisy.py

python get_list.py

會在caffe-yolo/data/yolo/路徑下生成兩個test_2007.txt和trainval.txt兩個文件


trainval.txt是訓(xùn)練和驗證集

test_2007是測試集


caffe-yolo/data/yolo/路徑下convert.sh是用來生成數(shù)據(jù)lmdb文件

首先在caffe-yolo/data/yolo/路徑下新建一個lmdb文件夾

mkdir lmdb

convert.sh同樣需要進(jìn)行修改

vim convert.sh


ROOT_DIR需要改為自己對應(yīng)的路徑,這里首先生成訓(xùn)練和驗證集的數(shù)據(jù)lmdb文件

在caffe-yolo/data/yolo/路徑下運行

sh convert.sh

即可在lmdb文件夾下生成關(guān)于訓(xùn)練集和驗證集的文件


然后需要生成測試集數(shù)據(jù)的lmdb文件

需要對convert.sh進(jìn)行修改

將原來生成訓(xùn)練集和驗證集的部分注釋掉,將生成測試集的部分取消注釋


保存退出之后運行即可

sh convert.sh

然后會在lmdb/test2007_lmdb/路徑下生成data.mdb和lock.mdb文件





下載預(yù)訓(xùn)練模型googlenet

cd到caffe-yolo/examples/yolo/路徑下

wget http://dl.caffe.berkeleyvision.org/bvlc_googlenet.caffemodel


下載完之后cd到caffe-yolo/examples/yolo/路徑下

需要修改里面的一些文件

首先是gnet_train.prototxt

將第18行和第39行中的data_param里面的source路徑改為自己對應(yīng)的路徑


然后是gnet_solver.prototxt

這里面主要是一些最大迭代次數(shù)、模型保存路徑、選擇GPU還是CPU模式這些選項,可以根據(jù)實際情況進(jìn)行選擇,也可以維持不變。

需要注意的是,里面有一項是訓(xùn)練好的模型存放位置,如果維持不變的話,需要在caffe-yolo/examples/yolo/路徑下新建文件夾models/gnet_yolo/以存放模型

還有train.sh

SOLVER的路徑填為剛剛保存的gnet_solver.prototxt路徑。我這里是 ./gnet_solver.prototxt

WEIGHTS的路徑是預(yù)訓(xùn)練模型的路徑。我這里是 ./bvlc_googlenet.caffemodel


修改完成之后可以進(jìn)行訓(xùn)練?

sh train.sh

訓(xùn)練完成會在models文件夾下保存生成的.caffemodel模型




下面進(jìn)行測試

如果需要的話,修改gnet_test.prototxt文件中batch size的大小

修改test.sh

將模型修改為對應(yīng)的.caffemodel文件

GPU_ID改為對應(yīng)的ID


然后運行測試

sh test.sh

即可完成測試


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容