上一节是使用已有的二进制文件转换成lmdb文件,但一般我们使用的很可能是原始图片,比如png、jpg格式。因此,这一节讨论将jpg格式转换成lmdb文件格式。
我主要参考了徐其华的学习专栏:Caffe学习系列(11):图像数据转换成db(leveldb/lmdb)文件。在做的过程中发现了很多问题,在这里记录一下,主要参数和原理的讲解可以参考徐其华的学习专栏。
本节用到了caffe中自带的图片,在目录caffe/examples/images里面有cat.jpg和fish-bike.jpg图片。将他们两者转换成lmdb格式。
一、确定函数以及步骤
在caffe中,作者提供了图像转换文件:convert_imageset.cpp,它存放在caffe/build/tools/文件夹下。编译之后,生成对应的可执行文件放在 build/tools/ 下面,这个文件的作用就是用于将图片文件转换成caffe框架中能直接使用的db文件。
该文件的使用格式: convert_imageset [FLAGS] ROOTFOLDER/ LISTFILE DB_NAME
需要带四个参数:
(1)FLAGS: 图片参数组
(2)ROOTFOLDER/: 图片存放的绝对路径,从linux系统根目录开始
(3)LISTFILE: 图片文件列表清单,一般为一个txt文件,一行一张图片
(4)DB_NAME: 最终生成的db文件存放目录
从上面来看,我们首先需要做一个图片文件列表清单,再确定参