ubuntu 16.04 docker caffe gpu yolov1训练公用数据集

主要参考

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

首先下载上述代码

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

将其放在docker环境下,我这里的路径如下


然后cd到caffe-yolo路径下

将Makefile.config.example复制一份为Makefile.config

cp Makefile.config.example Makefile.config

然后vim打开Makefile.config文件

将其中的如下两行进行更改

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/

然后进行编译

make clean

make all

make pycaffe


然后下载VOC数据集

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

进行数据集下载

下载完成后进行解压

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/路径下有如下内容


get_list.py是生成图片路径的python脚本,这里只用到VOC2007数据集,需要对get_lisy.py进行修改

vim get_list.py打开

将原来的for name in ["VOC2007","VOC2012"]:

改为for name in ["VOC2007"]:


最后面关于VOC2012的部分注释掉



然后运行get_lisy.py

python get_list.py

会在caffe-yolo/data/yolo/路径下生成两个test_2007.txt和trainval.txt两个文件


trainval.txt是训练和验证集

test_2007是测试集


caffe-yolo/data/yolo/路径下convert.sh是用来生成数据lmdb文件

首先在caffe-yolo/data/yolo/路径下新建一个lmdb文件夹

mkdir lmdb

convert.sh同样需要进行修改

vim convert.sh


ROOT_DIR需要改为自己对应的路径,这里首先生成训练和验证集的数据lmdb文件

在caffe-yolo/data/yolo/路径下运行

sh convert.sh

即可在lmdb文件夹下生成关于训练集和验证集的文件


然后需要生成测试集数据的lmdb文件

需要对convert.sh进行修改

将原来生成训练集和验证集的部分注释掉,将生成测试集的部分取消注释


保存退出之后运行即可

sh convert.sh

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





下载预训练模型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路径改为自己对应的路径


然后是gnet_solver.prototxt

这里面主要是一些最大迭代次数、模型保存路径、选择GPU还是CPU模式这些选项,可以根据实际情况进行选择,也可以维持不变。

需要注意的是,里面有一项是训练好的模型存放位置,如果维持不变的话,需要在caffe-yolo/examples/yolo/路径下新建文件夹models/gnet_yolo/以存放模型

还有train.sh

SOLVER的路径填为刚刚保存的gnet_solver.prototxt路径。我这里是 ./gnet_solver.prototxt

WEIGHTS的路径是预训练模型的路径。我这里是 ./bvlc_googlenet.caffemodel


修改完成之后可以进行训练 

sh train.sh

训练完成会在models文件夹下保存生成的.caffemodel模型




下面进行测试

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

修改test.sh

将模型修改为对应的.caffemodel文件

GPU_ID改为对应的ID


然后运行测试

sh test.sh

即可完成测试


你可能感兴趣的:(ubuntu 16.04 docker caffe gpu yolov1训练公用数据集)