天天看点

SSD算法理解及利用SSD训练自己的数据

一. SSD算法理解

参考博客:

https://blog.csdn.net/u014380165/article/details/72824889

https://blog.csdn.net/wfei101/article/details/78176322

二. 安装并训练自己的数据

1.在https://github.com/weiliu89/caffe/tree/ssd 下载了.zip包和数据集及预训练模型,放在/home/iscas/SSD文件夹下

解压到当前目录:

cd ~/SSD

unzip caffe-ssd.zip

2.

cd ~/SSD/caffe-ssd

cp Makefile.config.example Makefile.config

针对需求修改几项即可,如下:

a.若使用cudnn,则将:#USE_CUDNN := 1 修改成:USE_CUDNN := 1

b.若要使用python来编写layer,则将:#WITH_PYTHON_LAYER := 1去掉#号修改为:WITH_PYTHON_LAYER := 1

c.修改成:USE_OPENCV := 1, USE_LEVELDB := 1, USE_LMDB := 1

3.

make -j16

报错:

/usr/include/boost/property_tree/detail/json_parser_read.hpp:257:264: error: ‘type name’ declared as function returning an array

make: *** [.build_release/cuda/src/caffe/layers/detection_output_layer.o] Error 1

解决方案参考以下博客:

https://blog.csdn.net/wei_guo_xd/article/details/73729472

4.

make clean

make -j16

报错:/usr/bin/ld: cannot find lopenblas

解决方案:参考https://blog.csdn.net/u014696921/article/details/56678520

apt-get install liblapack-dev liblapack3 libopenblas-base libopenblas-dev

5.

make clean

make -j16

编译成功

make pycaffe(注意这里编译前并没有下载相应的库,因为之前已经编译过pycaffe了,编译后也并没有设置环境变量)

make test -j16

make runtest -j16

6.解压数据集

将下载好的预训练模型VGG_ILSVRC_16_layers_fc_reduced.caffemodel放在/home/iscas/SSD/caffe-ssd/models/VGGNet文件夹下

将下载好的数据放在/home/iscas/SSD/caffe-ssd/data文件夹下

目前在/home/iscas/SSD/caffe-ssd文件夹下,

  cd data

  tar -xvf VOCtrainval_11-May-2012.tar

  tar -xvf VOCtrainval_06-Nov-2007.tar

  tar -xvf VOCtest_06-Nov-2007.tar

7.

到caffe-ssd目录下: cd ..

更改/home/iscas/SSD/caffe-ssd/data/VOC0712文件夹下create_list.sh中的root_dir=$HOME/SSD/caffe-ssd/data/VOCdevkit/

更改/home/iscas/SSD/caffe-ssd/data/VOC0712文件夹下create_dat.sh中的data_root_dir="$HOME/SSD/caffe-ssd/data/VOCdevkit"

然后执行:

./data/VOC0712/create_list.sh

执行:

./data/VOC0712/create_data.sh

报错:AtributeEerror:'module' object has no attribute 'LabelMap'

解决方案:参考https://blog.csdn.net/wei_guo_xd/article/details/73729472

或者参考:https://github.com/weiliu89/caffe/issues/4

重新配置了python的环境:

    a. sudo gedit ~/.bashrc

    b. export PYTHONPATH=/home/iscas/SSD/caffe-ssd/python

    c. source ~/.bashrc

8.训练

python examples/ssd/ssd_pascal.py

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

解决方案参考:https://blog.csdn.net/xunan003/article/details/78433383

继续阅读