caffe入门学习:从我们的数据转化成为caffe可以使用的数据格式

本文介绍如何使用Caffe提供的convert_imageset工具将网络下载的图片转换为Caffe所需的格式。文章详细展示了创建图片清单文件及运行convert_imageset命令的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

               caffe入门学习:从我们的数据转化成为caffe可以使用的数据格式


      大部分情况下我们都会从网络上下载部分图片,来进行训练网络,但是caffe使用的数据格式却和我们下载得到的却有所不同,需要把我们使用的数据格式来进行转化。caffe提供了caffe-master/build/tools/convert_imageset这个命令来对数据进行转化。

     首先看看这个命令的使用方法:

     具体信息convert_imageset如下:

convert_imageset [FLAGS] ROOTFOLDER/ LISTFILE DB_NAME

     

            flags:存储一系列的图片集合

      rootfolder:必须是从根目录下的绝对路径指向图片的存储位置:

      listfile:图片文件的清单列表, 每行存数的是图片的名称个图片的路径:

      db_name:最终存储的文件的名称:

      这里我们需要对原来的数图片数据集合进行处理,得到可用的rootfloder:

      rootfloder的产生:切换路径到examples/images下,会看到两张图片,输入以下命令

<span style="font-size:18px;"><span style="color:#333333;">find . -name *cat.jpg | cut -d '/' -f2 | sed "s/$/ 1/">>$DATA/train.txt
find . -name *bike.jpg | cut -d '/' -f2 | sed "s/$/ 2/">>$DATA/tmp.txt
cat $DATA/tmp.txt>>$DATA/train.txt
rm -rf $DATA/tmp.txt</span></span>
     稍微解释一下:find . -name * cat.jpg用于查找文件,得到./cat.jpg格式的数据

     之后用cut -d 和-f来得到后面的cat.jpg的字符串。-d后面加上切分标志,得到一个(.)和一个(cat.jpg),-f2 表示取cat.jpg。sed主要是用于处理文件的一行用的,“s/$/ 1”表示把每行文件的后面替换成为空格+1的模式。"s/a/b/"g用于把a换成b。cat A>>B用于把A文件的内容添加到B的后面。最终得到的文件如下:

cat.jpg 1
fish-bike.jpg 1

     下面使用convert_imageset函数:切换到build/tools下面:

<span style="font-size:18px;">./convert_imageset --shuffle \  //使用shuffle
--resize_height=256 --resize_width=256 \ //图片的大小都会调用opencv来获得固定的大小
/opt/modules/caffe-master/examples/images/ \ // 图片的绝对存储路径
/opt/modules/caffe-master/examples/images/train.txt \ // 文件的列表信息
/opt/modules/caffe-master/examples/images/img_train_lmdb \ //最终生成的数据库保存的路径</span>
    就会在最终的目录下得到索要文件:

data.mdb  lock.mdb

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值