SSD的配置安装与测试——cpu版本修改ssd_pascal.py文件

来源:互联网 发布:产品经理数据敏锐度 编辑:程序博客网 时间:2024/06/06 01:53

继yolo-darknet后,又一个SSD的配置教程,希望可以帮助大家。若不能配置成功,请与我联系,邮箱:ahuljx@126.com

注意:1、要求Ubuntu系统预先安装opencv和cuda7.5,如果您没有安装,请参考我的博客:http://blog.csdn.net/samylee/article/details/51684856

2、有些您复制的终端命令如果不能在终端运行,请注意英文全角半角问题,您可以将命令输入终端,无须复制粘贴命令


第一部分:安装SSD(caffe)

1、安装git

终端输入:

sudo apt-get install git

2、安装SSD

在主文件下终端输入(即/home/***(您的服务器名字)这个目录):

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

cd caffe

git checkout ssd(出现“分支”则说明copy-check成功)


第二部分:配置SSD(caffe)
终端输入:
cd /home/**(您服务器的名字)/caffe
cp Makefile.config.example Makefile.config

打开Makefile.config,修改之处可以参考我的Makefile.config文件,文件地址:(链接:http://pan.baidu.com/s/1mgVN57i   密码:34e6)保存退出。
终端输入:
cd /home/**(您服务器的名字)/caffe
mkdir build
cd build
cmake ..
(cmake和..中间又一个空格
make all -j16("‐j16"是使用 CPU 的多核进行编译,可以极大地加速编译的速度)
make install
make runtest
(这一步不是必须的)
make pycaffe(编译pycaffe)

 

第三部分:下载数据文件

1、 预训练模型下载

下载地址:链接:http://pan.baidu.com/s/1slpaEO9 密码:loxo

在caffe/models文件夹下新建文件夹,命名为VGGNet,将刚刚下载下来的文件放入这个VGGNet文件夹当中

2、下载VOC2007和VOC2012数据集

在主文件夹下(即/home/**(您服务器的名字)/)新建文件夹,命名为data

终端输入:

cd /home/**(您服务器的名字)/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 /home/**(您服务器的名字)/caffe
./data/VOC0712/create_list.sh
./data/VOC0712/create_data.sh

在运行第三步时如果出现no module named caffe或者是no module named caffe-proto,则在终端输入:

export PYTHONPATH=$PYTHONPATH:/home/**(您服务器的名字)/caffe/python

然后再次运行第三步

 

第五部分:训练测试演示
1、 训练
打开caffe/examples/ssd/ssd_pascal.py这个文件,找到gpus=’0,1,2,3’这一行,如果您的服务器有一块显卡,则将123删去,如果有两个显卡,则删去23,以此类推。如果您服务器没有gpu支持,则注销以下几行,程序会以cpu形式训练。(这个是解决问题cudasuccess(10vs0)的方法)
#Ifnum_gpus >0:

                # batch_size_per_device =int(math.ceil(float(batch_size) / num_gpus))

#iter_size =int(math.ceil(float(accum_batch_size) / (batch_size_per_device * num_gpus)))

 # solver_mode =P.Solver.GPU
 # device_id =int(gpulist[0])

保存后终端运行:
cd  /home/**(您服务器的名字)/caffe
python examples/ssd/ssd_pascal.py

如果出现问题cudasuccess(2vs0)则说明您的显卡计算量有限,再次打开caffe/examples/ssd/ssd_pascal.py这个文件,找到batch_size =32这一行,修改数字32,可以修改为16,或者8,甚至为4(相信大家这个修改可以理解,我就不作说明了),保存后再次终端运行python examples/ssd/ssd_pascal.py
2、 测试
终端输入:
python examples/ssd/score_ssd_pascal.py(演示detection的训练结果,数值在0.718左右)
3、 演示
演示网络摄像头识别效果,终端输入:
python examples/ssd/ssd_pascal_webcam.py
demo结果如下(这里我只帖一张演示图,不过这是我从摄像头实时检测结果中截取的):
 

第六部分:后续我会更新SSD训练自己数据的博文,大家敬请期待。

原创粉丝点击