基于Ubuntu16.04和caffe安装CPU版本的SSD检测框架
2017-11-30 18:01
771 查看
最近毕业设计涉及到了深度学习,所以学习下目前主流的检测框架SSD,本人笔记本没有gpu,所以只能安装CPU版本的ssd了.
github链接:https://github.com/weiliu89/caffe/tree/ssd
SSD是16年ECCV一篇深度学习目标检测的文章,详细知识可以百度或者谷歌,本文我们介绍如何实现。本文默认各位的机子已近安装好opencv, 配置编译过cpu版本的caffe(没有也没关系,下面我会讲下).
1. 在home目录下(也可以其他目录,当然其他目录后面就要修改路径,比较麻烦),获取SSD的代码,下载完成后有一个caffe文件夹.
2. 修改caffe的配置文件.
将已经配置过的cpu版本caffe中的Makefile.config复制到刚才下载的caffe目录。如果你没有配置过cpu版本的caffe,可以参考我的另外一篇博文. Ubuntu16.04+caffe的安装和Py-faster-rcnn在CPU电脑的安装-2. http://blog.csdn.net/jx232515/article/details/72384465.下面我直接把Makefile.config需要修改的部分贴在下面了.可以照着修改也行.
3.编译caffe
4.下载预训练模型 (https://gist.github.com/weiliu89/2ed6e13bfd5b57cf81d6),将它放入caffe/models/VGGNet/目录下,这样可以直接使用这个模型跑了ssd.这里我说下,我网址是打不开,一开始下载了ssdplus版(240000),运行报错,后来好不容易找到了ssd(120000)版运行,成功.当然ssd(60000)的下了没有用.我给个链接. https://drive.google.com/uc?id=0BzKzrI_SkD1_WVVTSmQxU0dVRzA&export=download https://pan.baidu.com/s/1o8A7DZs
5.下载VOC2007和VOC2012数据集,放到/home/data下。(请注意,这里改变了目录)
6.将voc2007数据集转换格式,用于模型的训练.
首先进入caffe目录,可以看到/data/VOC0712/有create_list.sh,create_data.sh .运行就可以转换数据格式,用于模型训练.
此处注意create_list.sh和create_data.sh中路径的修改,修改为自己的路径,要不会出错.
此时发现执行create_data.sh时还是出错了,报错为:AttributeError: 'module' object has no attribute 'LabelMap',原因是没有添加环境变量,
解决方式:其中$CAFFE_ROOT是本caffe的根目录,注意换成自己的.
7.训练模型(一般CPU电脑是会死机的,我的就是)
因为我们用的是cpu,首先修改examples/ssd/ssd_pascal.py文件
将如下代码注释掉
然后训练.(Linux运行Python文件就是这样)
python examples/ssd/ssd_pascal.py
如果不想花费时间训练,可以在这里下载训练好的模型
https://drive.google.com/uc?id=0BzKzrI_SkD1_WVVTSmQxU0dVRzA&export=download
下载后解压,将其中的VGGNet文件夹复制到caffe/models下面,呀,你发现caffe/models下面已经有VGGNet文件夹了,这是之前我们做训练时建立的,没训练就没有了.ok,就可以将VGGNet复制到此处了。
8.测试
1)在图片测试集上测试
python examples/ssd/score_ssd_pascal.py
这时你会发现报错,说cpu-only的版本不能用gpu,ok,打开score_ssd_pascal.py修改为
solver_mode = P.Solver.CPU
2)在视频上测试
python examples/ssd/ssd_pascal_video.py
当然,直接跑是他自带的视频,想跑自己的代码的话,要先用vim打开该文件,定位到51行,修改视频路径为已有本地视频,这样就可以畅快的跑自己的视频
3)使用摄像头测试
python examples/ssd/ssd_pascal_webcam.py.
下一篇讲解如何制作cov2007数据集格式,用于自己的数据训练模型.
github链接:https://github.com/weiliu89/caffe/tree/ssd
SSD是16年ECCV一篇深度学习目标检测的文章,详细知识可以百度或者谷歌,本文我们介绍如何实现。本文默认各位的机子已近安装好opencv, 配置编译过cpu版本的caffe(没有也没关系,下面我会讲下).
1. 在home目录下(也可以其他目录,当然其他目录后面就要修改路径,比较麻烦),获取SSD的代码,下载完成后有一个caffe文件夹.
git clone https://github.com/weiliu89/caffe.git cd caffe git checkout ssd
2. 修改caffe的配置文件.
将已经配置过的cpu版本caffe中的Makefile.config复制到刚才下载的caffe目录。如果你没有配置过cpu版本的caffe,可以参考我的另外一篇博文. Ubuntu16.04+caffe的安装和Py-faster-rcnn在CPU电脑的安装-2. http://blog.csdn.net/jx232515/article/details/72384465.下面我直接把Makefile.config需要修改的部分贴在下面了.可以照着修改也行.
去掉注释CPU_ONLY :=1 注释掉CUDA有关的行: #CUDA_DIR := /usr/local/cuda #CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \ # -gencode arch=compute_20,code=sm_21 \ # -gencode arch=compute_30,code=sm_30 \ # -gencode arch=compute_35,code=sm_35 \ # -gencode arch=compute_50,code=sm_50 \ # -gencode arch=compute_50,code=compute_50 去掉注释WITH_PYTHON_LAYER := 1 INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/i386-linux-gnu/hdf5/serial /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial #TEST_GPUID := 0
3.编译caffe
make -j8 # Make sure to include $CAFFE_ROOT/python to your PYTHONPATH. make py make test -j8 # (Optional) make runtest -j8
4.下载预训练模型 (https://gist.github.com/weiliu89/2ed6e13bfd5b57cf81d6),将它放入caffe/models/VGGNet/目录下,这样可以直接使用这个模型跑了ssd.这里我说下,我网址是打不开,一开始下载了ssdplus版(240000),运行报错,后来好不容易找到了ssd(120000)版运行,成功.当然ssd(60000)的下了没有用.我给个链接. https://drive.google.com/uc?id=0BzKzrI_SkD1_WVVTSmQxU0dVRzA&export=download https://pan.baidu.com/s/1o8A7DZs
5.下载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 # Extract the data. tar -xvf VOCtrainval_11-May-2012.tar tar -xvf VOCtrainval_06-Nov-2007.tar tar -xvf VOCtest_06-Nov-2007.tar
6.将voc2007数据集转换格式,用于模型的训练.
首先进入caffe目录,可以看到/data/VOC0712/有create_list.sh,create_data.sh .运行就可以转换数据格式,用于模型训练.
此处注意create_list.sh和create_data.sh中路径的修改,修改为自己的路径,要不会出错.
# Create the trainval.txt, test.txt, and test_name_size.txt in data/VOC0712/ ./data/VOC0712/create_list.sh # You can modify the parameters in create_data.sh if needed. # It will create lmdb files for trainval and test with encoded original image: # - $HOME/data/VOCdevkit/VOC0712/lmdb/VOC0712_trainval_lmdb # - $HOME/data/VOCdevkit/VOC0712/lmdb/VOC0712_test_lmdb # and make soft links at examples/VOC0712/ ./data/VOC0712/create_data.sh
此时发现执行create_data.sh时还是出错了,报错为:AttributeError: 'module' object has no attribute 'LabelMap',原因是没有添加环境变量,
解决方式:其中$CAFFE_ROOT是本caffe的根目录,注意换成自己的.
echo "export PYTHONPATH=$home/lsq/caffe/python" >> ~/.profile source ~/.profile echo $PYTHONPATH #检查环境变量的值
7.训练模型(一般CPU电脑是会死机的,我的就是)
因为我们用的是cpu,首先修改examples/ssd/ssd_pascal.py文件
将如下代码注释掉
#gpus = "0,1,2,3" #gpulist = gpus.split(",") #num_gpus = len(gpulist) # Divide the mini-batch to different GPUs. batch_size = 32 accum_batch_size = 32 iter_size = accum_batch_size / batch_size solver_mode = P.Solver.CPU device_id = 0 batch_size_per_device = batch_size #if num_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])
然后训练.(Linux运行Python文件就是这样)
python examples/ssd/ssd_pascal.py
如果不想花费时间训练,可以在这里下载训练好的模型
https://drive.google.com/uc?id=0BzKzrI_SkD1_WVVTSmQxU0dVRzA&export=download
下载后解压,将其中的VGGNet文件夹复制到caffe/models下面,呀,你发现caffe/models下面已经有VGGNet文件夹了,这是之前我们做训练时建立的,没训练就没有了.ok,就可以将VGGNet复制到此处了。
8.测试
1)在图片测试集上测试
python examples/ssd/score_ssd_pascal.py
这时你会发现报错,说cpu-only的版本不能用gpu,ok,打开score_ssd_pascal.py修改为
solver_mode = P.Solver.CPU
2)在视频上测试
python examples/ssd/ssd_pascal_video.py
当然,直接跑是他自带的视频,想跑自己的代码的话,要先用vim打开该文件,定位到51行,修改视频路径为已有本地视频,这样就可以畅快的跑自己的视频
3)使用摄像头测试
python examples/ssd/ssd_pascal_webcam.py.
下一篇讲解如何制作cov2007数据集格式,用于自己的数据训练模型.
相关文章推荐
- ubuntu14.04安装CPU版SSD(Single Shot MultiBox Detector)/Caffe版本
- Ubuntu14.04安装CPU版SSD(Single Shot MultiBox Detector)/Caffe版本(一)
- Ubuntu14.04安装CPU版SSD(Single Shot MultiBox Detector)/Caffe版本(二)
- Ubuntu14.04安装CPU版SSD(Single Shot MultiBox Detector)/Caffe版本(三)
- Ubuntu 16.04安装使用--Ubuntu16.04下基于Docker的Caffe-GPU版本环境搭建总结
- 零错误安装基于ubuntu14.04LTS的CUP版本深度学习框架Caffe
- VMware12虚拟机中Ubuntu16.04安装CPU版本Caffe
- Caffe学习(1):Ubuntu16.04上Caffe配置安装(Only CPU)
- Ubuntu 16.04上安装Caffe(CPU only)
- Caffe_Linux学习笔记(一)基于Ubuntu16.04+CPU only+Python2.7环境下的Caffe配置
- Ubuntu16.04 安装配置GPU版本Caffe
- ubuntu16.04 安装CUDA 8.0 和 cuDNN 5.1 /cudnn6.0,可适用于gpu版本的(tensorflow,caffe,mxnet)
- ubuntu16.04上完美的安装caffe-ssd的指南(使用OpenBlas做基本的矩阵操作算子)
- 深度学习之Ubuntu下安装caffe和TensorFlow的cpu版本
- Ubuntu 16.04 下编译安装CPU版Caffe
- ubuntu16.04+cuda8.0+cudnn5.1+caffe 安装(基于独立主机&集成显卡>X1080Ti)
- 【Caffe】Ubuntu16.04上配置安装caffe(Only CPU)
- 32bit/64bit-Ubuntu14.04+anaconda+CPU版本的Caffe安装教程
- Ubuntu 16.04 安装caffe(CPU)以及编译问题处理