《深度学习:卷积神经网络从入门到精通》——3.6 LeNet的交通标志识别案例

举报
华章计算机 发表于 2019/06/06 09:00:46 2019/06/06
【摘要】 本书摘自《深度学习:卷积神经网络从入门到精通》——书中第3章,第3.6.1节,作者是李玉鑑、张婷、单传辉、刘兆英等。

3.6 LeNet的交通标志识别案例

本节描述一个利用LeNet对交通标志进行识别的案例,其中用到的GTSRB数据集可以根据表1.2提供的地址下载,并需要按照有关说明进行选择和处理。

3.6.1 交通标志数据集的格式转换

GTSRB数据集的图像是.jpg格式。由于.jpg格式的图像无法被Caffe直接使用,所以需要先把训练集和测试集转换为Caffe专有的LEVELDB格式类型。下面说明数据格式转换的具体步骤。

首先,把所有.jpg训练图像按类别目录组织拷贝到./caffe-windows-master/examples/mydata/train/目录下(如图3.8和图3.9所示),把所有.jpg测试图像直接拷贝到./caffe-windows-master/examples/mydata/test/目录下(如图3.10所示)。

image.png

图3.8 GTSRB的训练集类别目录,共43个

image.png

图3.9 GTSRB的训练集中的第00000类样本

image.png

图3.10 GTSRB的测试集的部分样本

然后,在C:\Caffe\caffe-windows-master\examples\mydata目录下创建训练集的标签文件train.txt和测试集的标签文件test.txt。train.txt由所有训练图像的目录、名称及标签构成,其中每行的文本格式为“/图像目录/图像名称?标签”,样例如方框3.3所示。类似地,test.txt由所有测试图像的名称及标签构成,每行的文本格式为“/图像名称?标签”,样例如方框3.4所示。

方框3.3 标签文件train.txt的文本格式

/00000/00000_00000.jpg   0

/00000/00000_00001.jpg   0

/00000/00000_00002.jpg   0

/00000/00000_00003.jpg   0

/00000/00000_00004.jpg   0

方框3.4 标签文件test.txt的文本格式

/00000.jpg 16

/00001.jpg 1

/00002.jpg 38

/00003.jpg 33

/00004.jpg 11

其次,用convert_imageset.exe命令把GTSRB数据集转换为LEVELDB格式。convert_imageset.exe是Caffe自带的图像格式转换命令,存放在C:\Caffe\caffe-windows-master\bin\目录下,可以把jpg、png和jpeg等常见格式转换成LEVELDB格式。具体的转换过程可以通过两个批处理文件完成:trainleveldb.bat和testleveldb.bat。文件的内容分别见方框3.5和方框3.6。

方框3.5 文件trainleveldb.bat的内容

SET GLOG_logtostderr=1

C:\Caffe\caffe-windows-master\bin\convert_imageset.exe --shuffle=true --backend=leveldb --resize_height=32 --resize_width=32 C:\Caffe\caffe-windows-master\examples\mydata\train C:\Caffe\caffe-windows-master\examples\mydata\train.txt      C:\Caffe\caffe-windows-master\examples\mydata\ldb\trainldb

Pause

方框3.6 文件testleveldb.bat的内容

SET GLOG_logtostderr=1

C:\Caffe\caffe-windows-master\bin\convert_imageset.exe --shuffle=true --backend=leveldb --resize_height=32 --resize_width=32 C:\Caffe\caffe-windows-master\examples\mydata\test C:\Caffe\caffe-windows-master\examples\mydata\test.txt      C:\Caffe\caffe-windows-master\examples\mydata\ldb\testldb

pause

在trainleveldb.bat和testleveldb.bat这两个文件中,“--shuff?le=true”表示把转换后的数据集打乱,“--backend=leveldb”表示把数据转换为LEVELDB格式;“--resize_height=32 --resize_width=32”表示转换后图像的大小(这里由于保持大小不变,实际上可以省略);“C:\Caffe\caffe-windows-master\examples\mydata\train”表示训练集所在目录;“C:\Caffe\caffe-windows-master\examples\mydata\train.txt”表示训练集的标签文件;“C:\Caffe\caffe-windows-master\examples\mydata\ldb\trainldb”表示转换后存放训练集的文件夹;“C:\Caffe\caffe-windows-master\examples\mydata\test”表示测试集所在目录;“C:\Caffe\caffe-windows-master\examples\mydata\test.txt”表示测试集的标签文件;“C:\Caffe\caffe-windows-master\examples\mydata\ldb\testldb”表示转换后存放测试集的文件夹。

最后,通过执行批处理文件trainleveldb.bat和testleveldb.bat,就可以把训练集和测试集转换为LEVELDB格式,分别存放在trainldb和testldb文件夹下。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。