caffe + ssd网络训练过程

參考博客:https://blog.csdn.net/xiao_lxl/article/details/79106837

1获取源代码:git clone https://github.com/weiliu89/caffe.git

2 进入目录中 :cd caffe

3,git checkout ssd

主要参考 https://github.com/weiliu89/caffe/tree/ssd

获取SSD的代码,下载完成后有一个caffe文件夹

git clone https://github.com/weiliu89/caffe.git

cd caffe

git checkout ssd

1

2

3

进入下载好的caffe目录,复制配置文件

cd caffe

cp Makefile.config.example Makefile.config

1

2

编译caffe

make all -j8 //-j16根据本机的处理器配置,16是16核处理器的意思

make pycaffe -j8

make test -j8

make runtest -j8(这一步不是必须的)

1

2

3

4

下载预训练模型 链接:链接:https://pan.baidu.com/s/1o9c0GGU 密码:fucx,将它放入caffe/models/VGGNet/目录下

下载VOC2007和VOC2012数据集,放到/caffe/data下,并解压

cd data

wget http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar

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

tar -xvf VOCtrainval_11-May-2012.tar

tar -xvf VOCtrainval_06-Nov-2007.tar

tar -xvf VOCtest_06-Nov-2007.tar

1

2

3

4

5

6

7

将图片转化为LMDB文件,用于训练,在caffe目录下

cd ..

cd caffe

./data/VOC0712/create_list.sh

./data/VOC0712/create_data.sh

1

2

3

4

训练模型

在下载的caffe根目录执行如下命令训练,在examples/ssd下存在几个.py文件,训练的时间较长。

python examples/ssd/ssd_pascal.py

1

实验效果

(1)在图片测试集上测试

python examples/ssd/score_ssd_pascal.py

1

2)在视频上测试

python examples/ssd/ssd_pascal_video.py

1

3)在摄像头上测试

python examples/ssd/ssd_pascal_webcam.py

1

报错问题解决以及填坑笔记:

1. 报错:no module named caffe等错误

这是由于caffe的Python环境变量未配置好,可按照下面方法解决:

确保先重新make下pycaffe,然后 将python的路径配置到环境变量中

make pycaffe -j8

gedit /etc/profile

gedit ~/.bashrc

vim ~/.bashrc

加入 export PYTHONPATH=/SSD所在目录/caffe/python

source ~/.bashrc

2. 配置SSD-caffe测试时出现“Check failed: error == cudaSuccess (10 vs. 0) invalid device ordinal”解决

运行 python examples/ssd/ssd_pascal.py 时报错

解决方案:这是由于GPU数量不匹配造成的,如果训练自己的数据,那么我们只需要将solver.prototxt文件中的device_id项改为自己的GPU块数,一块就是0,两块就是1,以此类推。

但是SSD配置时的例子是将训练语句整合成一个python文件ssd_pascal.py,所以需要改此代码。相关配置训练方法请参看转载博文:http://blog.csdn.net/xunan003/article/details/78427446

解决方法:将ssd_pascal.py文件中第332行gpus = “0,1,2,3”的GPU选择改为gpus = “0”,后面的1,2,3都删掉即可。再次训练即可。

当然,由于博主只有一块GPU且电脑运行内存有限,还需要将ssd_pascal.py文件中的337行batch_size = 32和338行accum_batch_size = 32都改小一倍,即更改批量大小,不然会出现“Check failed: error == cudaSuccess (2 vs. 0) invalid …”的错误。

3. 配置SSD-caffe出现“ AttributeError: ‘module’ object has no attribute ‘LabelMap’”解决

这是由于caffe的Python环境变量未配置好,可按照下面方法解决:

gedit ~/.bashrc

加入 export PYTHONPATH=/SSD所在目录/caffe/python

source ~/.bashrc