《深度学习:卷积神经网络从入门到精通》——3.6 LeNet的交通标志识别案例
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所示)。
图3.8 GTSRB的训练集类别目录,共43个
图3.9 GTSRB的训练集中的第00000类样本
图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文件夹下。
- 点赞
- 收藏
- 关注作者
评论(0)