注意:首先要配置好环境,包括Ubuntu16.04+Nvidia驱动+cuda10.0+cuDNN7.3.1+caffe,并保证caffe编译通过。可参考我之前的博客进行安装编译。
一、安装SSD(caffe)
git clone https://github.com/weiliu89/caffe.git caffe-ssd//重命名,避免与caffe的冲突
cd caffe-ssd
git checkout ssd
这里需出现分支成功的提示方可继续:
二、配置SSD(caffe)
终端输入
cd ~/caffe-ssd
cp Makefile.config.example Makefile.config
打开Makefile.config,修改并保存退出。(因为我前面已经配置过caffe了,这里直接把自己配置过的caffe中的Makefile.config文件中修改的部分粘贴过来即可,可参考我之前的博客
https://blog.csdn.net/lihe4151021/article/details/90289696 )
终端输入:
cd ~/learning/ssd-caffe
mkdir build
cd build cmake ..(cmake和..中间有一个空格)
make all -j8("‐j8"是使用 CPU 的多核进行编译,可以极大地加速编译的速度)
make install
make runtest(这一步不是必须的)
make pycaffe(编译pycaffe)
三、下载数据文件
1、 预训练模型下载
下载地址:https://pan.baidu.com/s/1X7gkyHnd87nv5TTqWfaR2Q 提取密码:45tm
在caffe-ssd/models文件夹下新建文件夹,命名为VGGNet,将刚刚下载下来的文件放入这个VGGNet文件夹当中。
2、下载VOC2007和VOC2012数据集
在主文件夹下(即 ~/)新建文件夹,命名为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
解压这三个文件,终端输入:
cd /home/**(您服务器的名字)/data
tar -xvf VOCtrainval_11-May-2012.tar
tar -xvf VOCtrainval_06-Nov-2007.tar
tar -xvf VOCtest_06-Nov-2007.tar(请严格按照这个顺序解压)
四、生成LMDB文件
终端输入
cd ~/learning/ssd-caffe
./data/VOC0712/create_list.sh
./data/VOC0712/create_data.sh
若data不是放在~目录下,则要进入create_list.sh和create_data.sh文件修改相应的路径。
执行./data/VOC0712/create_data.sh报错
原因是未添加环境变量(https://github.com/weiliu89/caffe/issues/4),解决方法
sudo gedit ~/.bashrc
在文件最后一行添加环境变量:
export PYTHONPATH=/home/**lihe**/caffe-ssd/python:$PYTHONPATH //将加粗部分换为自己的用户名即可
最后运行
source ~/.bashrc
再次运行,生成lmdb文件夹,包含VOC0712_test_lmdb和VOC0712_trainval_lmdb
./data/VOC0712/create_data.sh
至此,LMDB文件生成成功
五、运行demo
1、下载官方的模型和网络文件
环境部署成功之后就开始demo的演示了,这里跳过自己训练的环节,直接用官方的模型和网络文件来先演示下demo,因此需要先下载作者已经训练好的模型(链接:https://pan.baidu.com/s/1atmHJXzBy9Yv96-M6muVFA 提取码:2k59)。下载的官方模型文件夹名称为VOC0712,放入ssd-caffe/models/VGGNet/目录下,如下图所示
2、演示demo
可以参考这个博客进行demo演示:https://blog.csdn.net/jesse_mx/article/details/52965281 (SSD: Single Shot MultiBox Detector检测单张图片)
(1)演示detection的训练结果,包括5000多张图片。要先改里面的gpu个数,输出是分数。终端输入:
python examples/ssd/score_ssd_pascal.py(演示detection的训练结果,数值在0.718左右)
(2)演示单张图片的测试结果,python版本。然后修改ssd_detect.py里面的路径(包括$caffe_root和测试图片的路径,如果配置过程中的路径与此博客中的配置路径完全一致,应该无需修改路径),最后终端输入:
python examples/ssd/ssd_detect.py
此时在caffe-ssd文件夹下即可得到检测结果detect_result.jpg