zoukankan      html  css  js  c++  java
  • 物体检测算法 SSD 的训练和测试

    物体检测算法 SSD 的训练和测试 

    GitHub:https://github.com/stoneyang/caffe_ssd 

    Paper: https://arxiv.org/abs/1512.02325 

    1. 安装 caffe_SSD:

    git clone https://github.com/weiliu89/caffe.git  
    cd caffe 
    git checkout ssd 

    2. 编译该 caffe 文件,在主目录下:

    # Modify Makefile.config according to your Caffe installation.
    cp Makefile.config.example Makefile.config
    make -j24
    # Make sure to include $CAFFE_ROOT/python to your PYTHONPATH.
    make pycaffe  
    # Then, you need to export your Python path into the environment. This Step is important, it may shown you error, if you skip this operation.
    export PYTHONPATH=/home/wangxiao/Documents/caffe/python:$PYTHONPATH 

    但是,事情总是没那么顺利啊,不然你也不会在这里看我瞎bb了。
    编译过程中,会遇到这个bug:json_parser_read.hpp:257:264: error: ‘type name’ declared as function returning an array escape 
    然后,你想继续玩这个SSD,就得执行如下操作,以继续编译该caffe文件:

      修改json_parser_read.hpp:打开文件夹Document,选中computer,在搜索json_parser_read.hpp,找到该文件的路径之后用如下命令打开

      sudo gedit /usr/include/boost/property_tree/detail/json_parser_read.hpp

      将257行开始的escape代码段注释掉即可,如下:

    /*escape
                        =   chset_p(detail::widen<Ch>(""\/bfnrt").c_str())
                                [typename Context::a_escape(self.c)]
                        |   'u' >> uint_parser<unsigned long, 16, 4, 4>()
                                [typename Context::a_unicode(self.c)]
                        ;*/
     

    3. 编译完成后,开始下载作者使用的 在 ImageNet 上预训练好的 VGG-16 模型:

      Download fully convolutional reduced (atrous) VGGNet. By default, we assume the model is stored in $CAFFE_ROOT/models/VGGNet/ 

    4. 下载训练测试用的数据集:Pascal VOC 2007 2012: 

    # Download the 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
    # Extract the data.
    tar -xvf VOCtrainval_11-May-2012.tar
    tar -xvf VOCtrainval_06-Nov-2007.tar
    tar -xvf VOCtest_06-Nov-2007.tar 

    5. 将这些文件打包处理,生成 lmdb 文件:

    ./data/VOC0712/create_list.sh
    ./data/VOC0712/create_data.sh 

    6. 数据集处理完毕后,我们就可以修改相关的参数以及路径等,使得在我们自己的机器上可以爽快的运行:

      vim /examples/ssd/ssd_pascal.py 

      主要包括:

      1. 训练数据集 lmdb 的路径:

      2. 测试数据集 lmdb 的路径:

      3. gpus=”0,1,2,3” ===> 改为”0”  

      4. batchsize = 32 ==>> 改为 20 比较好,因为有可能会显存溢出;

    7. 将以上几点都注意到,应该不会再出问题的了,目测我的已经训练到第 360 次迭代了。。。

    以上就是 SSD的训练部分。

    Reference:

    1. http://blog.csdn.net/tfy1028/article/details/53289106 

    2. http://blog.csdn.net/zhang_shuai12/article/details/52346878 

  • 相关阅读:
    读《成交》有感
    【VC++学习笔记二】绘制图片的双缓冲技术
    【VC++学习笔记一】MFC操作Excel
    敏捷软件开发
    VIM常用命令
    Ubuntu下配置samba实现文件夹共享
    linux系统编程之管道(三):命令管道(FIFO)
    linux系统编程之管道(二):管道读写规则
    linux系统编程之管道(一):匿名管道(pipe)
    《Linux环境进程间通信》系列文章链接
  • 原文地址:https://www.cnblogs.com/wangxiaocvpr/p/6777301.html
Copyright © 2011-2022 走看看