SSD: Single Shot MultiBox Detector目标检测环境配置

SSD目标检测模型环境配置

1、概要

SSD是一种基于回归的目标检测模型,论文主要优势:在保证较高的检测速率,有较高检测精度。

代码地址:https://github.com/weiliu89/caffe/tree/ssd

项目PPT地址:http://www.cs.unc.edu/~wliu/papers/ssd_eccv2016_slide.pdf


上图片源自: https://github.com/weiliu89/caffe/tree/ssd

2、环境配置

  • 下载Caffe 源码,下载完成后有一个caffe文件夹
  •    git clone https://github.com/weiliu89/caffe.git
       cd caffe
       git checkout ssd
    • 1
    • 2
    • 3
    • 进入下载好的caffe目录,复制配置文件
       cd /home/usrname/caffe
       cp Makefile.config.example Makefile.config
    • 1
    • 2
    • 1
    • 2
    • 编译caffe三部曲
       make -j8  //-j8根据本机的处理器配置,8是八核处理器的意思
       make test -j8
       make runtest -j8
    • 1
    • 2
    • 3
    • 1
    • 2
    • 3
    • 额外编译,根据需要(因为SSD利用python完成,需编译pycaffe)
       make py

    准备工作

     
      
    • 1
    • 2
    • 3
    • 1
    • 2
    • 3
    • 若使用VOC07或者12数据集,按照如下下载
       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
    • 1
    • 2
    • 3
    • 1
    • 2
    • 3
    • 数据集解压
       tar -xvf VOCtrainval_11-May-2012.tar
       tar -xvf VOCtrainval_06-Nov-2007.tar
       tar -xvf VOCtest_06-Nov-2007.tar
    • 1
    • 2
    • 3
    • 1
    • 2
    • 3
    • 将图片转化为LMDB文件,用于训练
       cd ..
       cd caffe/
       ./data/VOC0712/create_list.sh  
       ./data/VOC0712/create_data.sh
    • 1
    • 2
    • 3
    • 4
    • 1
    • 2
    • 3
    • 4
    • 这里用的脚本实现批处理,可能会出现:no module named caffe等错误,这是由于caffe的Python环境变量未配置好,可按照下面方法解决:
       echo "export PYTHONPATH=/home/usrname/caffe/python" >> ~/.profile  
       source ~/.profile  
       echo $PYTHONPATH #检查环境变量的值

训练中修改源码:

打开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])
训练:在Caffe文件夹路径下:
python examples/ssd/ssd_pascal.py
验证:在Caffe文件夹路径下:
python examples/ssd/score_ssd_pascal.py
Test your model using a webcam. Note: press esc to stop.
# If you would like to attach a webcam to a model you trained, you can do:
python examples/ssd/ssd_pascal_webcam.py
如果出现问题cudasuccess(2vs0)则说明您的显卡计算量有限,再次打开caffe/examples/ssd/ssd_pascal.py这个文件,找到batch_size =32这一行,修改数字32,可以修改为16,或者8,甚至为4;

第二部分 训练自己的数据集

到此为止,我们的数据集就做好了。接下来就开始训练了。训练程序为/examples/ssd/ssd_pascal.py,运行之前,我们需要修改相关路径代码:

cd /examples/ssd
vim sd_pascal.py, 修改如下:
57行: train_data路径;
59行:test_data路径;
197-203行:save_dir、snapshot_dir、job_dir、output_result_dir路径;
216-220行: name_size_file、label_map_file路径;
223行:num_classes 修改为1 + 类别数
315行:num_test_image:测试集图片数目
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

另外, 如果你只有一个GPU, 需要修改285行: 
gpus=”0,1,2,3” ===> 改为”0” 
否则,训练的时候会出错。 
修改完后运行

python ./examples/ssd/ssd_pascal.py 
  • 1
  • 1

训练完, 修改ssd_detector.py中模型路径, 任意找一张图片识别,看看效果怎么样。

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



  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值