參考博客: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