前言

  1. 前面已经介绍如何在Ubuntu上编译Caffe-SSD的CPU版本,那接下来就试一下用Caffe-SSD训练数据得到模型,并对模型进行测试。
  2. 我配置的环境是Ubuntu 16.04 LST 64位,Qt5.9,Python2.7,Caffe-SSD,因为只跑CPU版本,所以没有配置CUDA库。

一、数据准备

1.下载VOC2007和VOC2012数据集

cd caffe-ssd/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

下载完之后,在caffe-ssd/data文件夹下多了三个文件

2.解压这三个文件,按以下的顺序解压

tar -xvf VOCtrainval_11-May-2012.tar
tar -xvf VOCtrainval_06-Nov-2007.tar
tar -xvf VOCtest_06-Nov-2007.tar

解压完之后,在caffe-ssd/data目录下多了一个文件夹

二、更改脚本

1.从VOC0712这个目录下复制文件过刚刚解压出来的数据目录

cd caffe-ssd/data
cp VOC0712/create_list.sh VOCdevkit/VOC2007/
cp VOC0712/create_data.sh VOCdevkit/VOC2007/
cp VOC0712/labelmap_voc.prototxt VOCdevkit/VOC2007/

在VOCdevkit/VOC2007目录下多了三个文件

其中create_list.sh 是生成对应的列表文件,create_data.sh是把图像数据转换成caffe可识别的数据LMDB,labelmap_voc.prototxt 是放着对应的标签的名字。
2.更改配置文件的相关路径,因为data目录不是放在根目录上,所要更改相关路径。
(1)更改create_list.sh

cd VOCdevkit/VOC2007/
sudo gedit create_list.sh

更改create_list.sh的文件内容,总共要修改三个位置。
更改根目录

#root_dir=$HOME/data/VOCdevkit/
#更改为
root_dir=/home/matt/caffe-ssd/data/VOCdevkit/

更改数据来源

 #for name in VOC2007 VOC2012#更改为
for name in VOC2007

更改get_image_size路径

#$bash_dir/../../build/tools/get_image_size $root_dir $dst_file $bash_dir/$dataset"_name_size.txt"
#更改为
/home/matt/caffe-ssd/build/tools/get_image_size $root_dir $dst_file $bash_dir/$dataset"_name_size.txt"

(2)更改create_data.sh文件
在VOC2007目录下终端输入

sudo gedit create_list.sh

更改create_data.sh的文件内容,总共要修改五个位置。

更改根路径

root_dir=$cur_dir/../..

改成:

root_dir=/home/matt/caffe-ssd

更改数据路径:

data_root_dir="$HOME/data/VOCdevkit"
dataset_name="VOC0712"
mapfile="$root_dir/data/$dataset_name/labelmap_voc.prototxt"

改成:

data_root_dir="/home/matt/caffe-ssd/data/VOCdevkit"
dataset_name="VOC2007"
mapfile="$root_dir/data/VOCdevkit/$dataset_name/labelmap_voc.prototxt"
anno_type="detection"

生成的数据路径

python $root_dir/scripts/create_annoset.py --anno-type=$anno_type --label-map-file=$mapfile --min-dim=$min_dim --max-dim=$max_dim --resize-width=$width --resize-height=$height --check-label $extra_cmd $data_root_dir $root_dir/data/$dataset_name/$subset.txt $data_root_dir/$dataset_name/$db/$dataset_name"_"$subset"_"$db examples/$dataset_name

改成:

python $root_dir/scripts/create_annoset.py --anno-type=$anno_type --label-map-file=$mapfile --min-dim=$min_dim --max-dim=$max_dim --resize-width=$width --resize-height=$height --check-label $extra_cmd $data_root_dir $root_dir/data/VOCdevkit/$dataset_name/$subset.txt $data_root_dir/$dataset_name/$db/$dataset_name"_"$subset"_"$db examples/$dataset_name

三、处理数据

1.运行create_list.sh脚本

sudo ./create_list.sh

如果不报错,在VOC2007目录下生成三个txt文件

2.运行create_data.sh脚本,生成lmdb数据

sudo ./create_data.sh

有可能会报这个错误

./create_data.sh: 1: ./create_data.sh: Bad substitution
Traceback (most recent call last):File "/home/matt/caffe-ssd/scripts/create_annoset.py", line 7, in <module>from caffe.proto import caffe_pb2
ImportError: No module named caffe.proto
Traceback (most recent call last):File "/home/matt/caffe-ssd/scripts/create_annoset.py", line 7, in <module>from caffe.proto import caffe_pb2
ImportError: No module named caffe.proto

这种情况一般是没有把caffe中的和python相关的内容的路径添加到python的编译路径中。
第一种解决办法是把路径添加上,我的环境下终端运行,这个要每次要运行该脚本都要添加

export PYTHONPATH=/home/matt/caffe-ssd/python:$PYTHONPATH

第二办法是直接更改/home/matt/caffe-ssd/scripts/create_annoset.py,在源码里添加自己的python的路径

sys.path.insert(0,'/home/matt/caffe-ssd/python')

更改前

添加之后

再次运行成功,在VOC2007目录下多了一个lmdb的目录

结语

1.如是以上脚本全部运行成功,之后就是开始训练模型了。
2.关于运行以上脚本的问题,都可以加这个群(487350510)互相讨论学。

Ubuntu 16.04下Caffe-SSD的应用(二)——准备与处理VOC2007数据集相关推荐

  1. Ubuntu 16.04下Caffe-SSD的应用(八)——处理标注好的VOC2007数据集

    前言 前面已经演示了如何把图像文件标注成VOC2007数据集,标注完成之后,就要把数据转换成caffe支持的数据格式lmdb. 处理数据 1.在caffe_ssd/data/下新建一个叫VOCdevk ...

  2. Ubuntu 16.04下安装Caffe(GPU版本 GTX970)

    Ubuntu 16.04下安装Caffe(GPU版本 GTX970) 个人分类: Deep Learning 2018年8月6日更新说明:距上次安装成功没多久,显卡驱动莫名失效,没有解决,索性重装了系 ...

  3. 分享如何在Ubuntu 16.04下CUDA8.0

    分享一篇在Ubuntu 16.04下CUDA8.0的安装过程的记录笔记. 1.安装驱动 最简单的安装方式是直接在"系统设置->软件和更新->附加驱动"中安装 这样的话, ...

  4. Ubuntu 16.04下的LAMP环境配置

    在学习开发过程中,每当遇到新的问题时,通常都能在网上搜到解决的方法,但是网上的方法千千万,有些是已经过时了的,有些是跟自己开发环境不同的,总是不能第一时间能找到答案. 而当时遇到的问题可能在今后的开发 ...

  5. ubuntu 环境下调试mysql源码_【转】Ubuntu 16.04下 Mysql 5.7.17源码编译与安装

    Ubuntu 16.04下 Mysql5.7.17源码编译与安装 系统环境 一. 系统安装条件 1.cmake MySQL使用cmake跨平台工具预编译源码,用于设置mysql的编译参数. sudo ...

  6. Ubuntu 16.04 下安装VMware Tools(三行命令搞定,亲测好使)

    Ubuntu 16.04 下安装VMware Tools(三行命令搞定,亲测好使): 第一行命令:sudo apt-get upgrate 第二行命令:sudo apt-get install ope ...

  7. ubuntu 16.04下切换python版本小结

    主要是记录ubuntu 16.04下python环境配置. 对于ubuntu 16.04,由于本身是自带python,这样就减少了在windows下的下载和环境变量配置,非常不错.但是他本身是自带两个 ...

  8. ubuntu 16.04下安装mysql

    ubuntu 16.04下安装mysql 从官网下载mysql-apt-config_0.8.12-1_all.deb,下载地址为:https://dev.mysql.com/downloads/re ...

  9. Ubuntu 16.04 下安装运行 Suricata

    介绍 Suricata是一个免费.开源.成熟.快速.健壮的网络威胁检测引擎.Suricata引擎能够进行实时入侵检测(IDS).内联入侵预防(IPS).网络安全监控(NSM)和离线pcap处理.Sur ...

最新文章

  1. Python入门练习题目
  2. AddTransient、AddSingleton、AddScoped 三者都应该在什么场景下使用
  3. jmap命令的实现原理解析
  4. 探地雷达(GPR)的 C-scan (三维图)的绘制
  5. 一套完整的 Java 线上故障排查技巧,建议收藏!
  6. php 10环境一键安装包下载,php环境一键安装包
  7. 专升本计算机综合-数据结构篇
  8. centos修改镜像源
  9. 明源售楼系统技术解析 房源生成(二)
  10. 拼多多分享好友砍价Java实现_拼多多砍价怎么发到qq?怎么帮好友砍价?
  11. 微信小程序加载图片报错
  12. html页面高度不同浏览器兼容性设置
  13. 南京邮电大学-数据结构-慕课MOOC-第四章作业
  14. 医院HIS系统运维工作见闻
  15. Dota英雄卡尔有多少个技能?
  16. u盘启动Linux什么时候可以拔下来,u盘装系统什么时候拔u盘|pe重装系统什么时候拔掉u盘...
  17. Matplotlib图形配置
  18. 中国女式西装行业发展前景预测及数据专项调研报告2022年版
  19. TP5模型多个字段多个关键词查询
  20. 路由器重温——接口配置与管理2

热门文章

  1. python关键字from,Python 中的 yield from 关键字
  2. 【数学和算法】最小二乘法理论(附c++代码)
  3. 【自动驾驶】20.自动驾驶中的各种时空坐标系
  4. 锋利的jquery 知识点总结
  5. Notepad++ 快捷键列表及自定义快捷键
  6. 解密Redis持久化
  7. SIFT(Scale-invariant feature transform, 尺度不变特征转换)特征
  8. 最小平方误差判别 MSE
  9. 跟我一起写 Makefile(十)
  10. Coursera公开课笔记: 斯坦福大学机器学习第十一课“机器学习系统设计(Machine learning system design)”