前面已经介绍了使用使用mnist数据集进行训练lenet,并使用opencv加在caffemodel进行预测。更进一步也是最终的目的,还是要学会使用自己的数据集训练caffemodel并进行预测。这里先以训练lenet为例进行说明。
1、数据格式的转换(images to lmdb)
通过前面几篇介绍,我们已经知道,可直接用于caffe训练的数据格式有lmdb和leveldb两种,但lmdb的效率更高,因此这里需要先将原始图像数据转换为lmdb。
1.1 在工作目录细新建一个文件夹,这里命名为images_to_lmdb,图像格式的转换将在这个文件夹下进行。将分好类的训练数据(这里包括前景(车辆)和背景数据,二者合适的比例为1:3,一部分用于训练,一部分测试)也拷贝到这个文件夹下,分别创建train.txt和test.txt两个文本文件,指定源图像的路径(如果不是剪切好的图像,需要指定目标所在的区域)和类别(这里前景设为0, 背景设为1),如下图所示。
1.2 在当前目录下新建两个文本文件,分别重命名为images_to_train_lmdb.bat 和 images_to_test_lmdb.bat.分别输入以下内容(注意路径输入正确):
D:\Libraries\caffe\msvc2013_64\bin\convert_imageset.exe --shuffle --gray --resize_width=28 --resize_height=28 images\ train.txt train_lmdb -backend=lmdb
pause
D:\Libraries\caffe\msvc2013_64\bin\convert_imageset.exe --shuffle --gray --resize_width=28 --resize_height=28 images\ test.txt test_lmdb -backend=lmdb
pause
1.3 双击images_to_train_lmdb.bat执行,可以得到训练数据,保存在文件夹train_lmdb中。执行过程如下:
同样,双击images_to_test_lmdb.bat可得到训练数据。
2、计算均值
在当前文件夹下新建文本文件,并命名为computer_image_mean.bat,并输入如下内容:
D:\Libraries\caffe\msvc2013_64\bin\compute_image_mean.exe train_lmdb mean.binaryproto --backend=lmdb
pause
保存,双击执行,得到文件mean.binaryproto。
至此,训练数据准备完毕,下面进行训练。
3、设置训练参数