您的位置:首页 > Web前端

Caffe学习笔记10:图像数据生成caffe需要的(laveldb和lmdb)数据文件

2016-08-12 14:56 555 查看
        在深度学习的实际应用中,我们经常用到的原始数据是图片文件,如jpg,jpeg,png,tif等格式的,而且有可能图片的大小还不一致。而在caffe中经常使用的数据类型是lmdb或leveldb,因此就产生了这样的一个问题:如何从原始图片文件转换成caffe中能够运行的db(leveldb/lmdb)文件?

        在caffe中,作者为我们提供了这样一个文件:convert_imageset.cpp,存放在根目录下的tools文件夹下。编译之后,生成对应的可执行文件放在 Buile/x64/Release下面,这个文件的作用就是用于将图片文件转换成caffe框架中能直接使用的db文件。

        小菜在这一步中吃了不少苦,主要是小菜不熟悉sh的脚本文件的编写和linux的指令。使得小菜在生成db文件后的是错误的,自己还不知道,直接就利用生成的db文件去生成均值文件,结果老是出错不能生成均值文件,一开始还以为是生成均值文件这一步哪里出错了,找了半天也没找出来,最后在大牛的帮助下,才知道是我生成的db文件错了,生成的db文件大小很小。

小菜将介绍db文件的生成的步骤:

        Ø  首先准本图像数据集(train和test)

        Ø  然后需要生成图像对应的列表清单,保存为txt文件(train.txt和test.txt),这里小菜编写了一个sh脚本文件直接生成,脚本文件的代码如下图所示。



        要想在cygwin中执行sh脚本文件,还需要将脚本文件的格式换成Unix格式也就是LF格式,小菜当时在这上面吃了苦,后来是我的实习老师张xx跟我说的。生成txt中对应的ID号一定要是从0开始,依次递增。

在cygwin中直接运行这个sh脚本文件,会在你指定的路径生成两个文本文件,分别是train.txt和test.txt。一般生成的效果如下:

                                              


       好了,到这里图像列表生成完了。接下来就是生成db文件了,小菜是生成了lmdb数据文件,小菜把生成的代码写到一个脚本文件中,代码如下:
                                 


         小菜当时在红色标记的地方废了很大劲,要改为自己的数据路径,一开始代码是从网上下载的,后来在牛人的指导下进行了修改。这里将修改完的代码直接放出来,是希望你不要走小菜走的弯路,希望对你有帮助。在cygwin中运行此脚本文件,最后在你指定的文件路径下生成两个你命名的lmdb文件,小菜这里提醒一下,生成了lmdb后一定要看看文件的大小,一般生成的lmdb文件会比原始的图像集的大小要大。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐