内容简介:caffe对图片提取特征
一、生成lmdb格式文件
实际经常碰到图片大小不一致,如何从原始图片文件转换成caffe中能够运行的db(leveldb/lmdb)文件?
1. 创建图片列表清单,包含类标签,存为txt
如图片目录 example/pic/
创建create_filelist.sh脚本文件,调用 linux 命令来生成图片清单file_list.txt:
$ sudo vi examples/create_filelist.sh
内容如下:
mkdir examples/_temp
find `pwd`/examples/pic -type f -exec echo {} \; > examples/_temp/temp.txt
sed "s/$/ 0/" examples/_temp/temp.txt > examples/_temp/file_list.txt
2. 生成lmdb格式文件
命令:
convert_imageset [FLAGS] ROOTFOLDER/ LISTFILE DB_NAME
使用 build/tools/下的convert_imageset可执行文件,命令行读取图片文件列表,设置打乱次序与否,resize大小与否等参数,生成lmdb格式文件。
sudo vi examples/_temp/create_lmdb.sh
内容如下:
#!/usr/bin/en sh DATA=examples/_temp rm -rf $DATA/img_train_lmdb build/tools/convert_imageset --shuffle \ --resize_height=256 --resize_width=256 \ / $DATA/file_list.txt $DATA/img_train_lmdb
然后执行:
$ sudo sh examples/_temp/create_lmdb.sh
生成_temp/img_train_lmdb/下的文件,即为所需lmdb文件。
二、取所有图片的均值
一般地,图片减去均值后再进行训练和测试,会提高速度和精度。
二进制格式的均值计算:
caffe中使用格式binaryproto,并提供了compute_image_mean.cpp计算均值,放在tools目录下。编译后可执行文件在 build/tools/ 下,可直接调用
sudo build/tools/compute_image_mean examples/_temp/img_train_lmdb data/mb/mean.binaryproto
其中参数,
examples/mnist/mnist_train_lmdb, 格式为lmdb的训练数据,用来计算均值。自己的数据可自行生成lmdb格式文件,并放置相应目录
data/mb/mean.binaryproto, 计算结果
三、提取特征
cp examples/feature_extraction/imagenet_val.prototxt examples/_temp/mb_val.prototxt
修改mb_val.prototxt中mean文件的定义,
vi examples/_temp/mb_val.prototxt
第10行改为:
mean_file: "data/mb/mb_mean.binaryproto"
提取特征:
./build/tools/extract_features.bin models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel examples/_temp/mb_val.prototxt fc7 examples/_temp/features 10 leveldb
得到的features存在 examples/_temp/features。
如果出现错误“Check failed: status.ok() Failed to open leveldb examples/_temp/features”,是上次运行已经生成了目录,删除掉。
rm -rf examples/_temp/features/
以上所述就是小编给大家介绍的《caffe对图片提取特征》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
加密与解密(第4版)
段钢 / 电子工业出版社 / 2018-10-1 / 198
《加密与解密(第4版)》以加密与解密为切入点,讲述了软件安全领域的基础知识和技能,如调试技能、逆向分析、加密保护、外壳开发、虚拟机设计等。这些知识彼此联系,读者在掌握这些内容之后,很容易就能在漏洞分析、安全编程、病毒分析、软件保护等领域进行扩展。从就业的角度来说,掌握加密与解密的相关技术,可以提高自身的竞争能力;从个人成长的角度来说,研究软件安全技术有助于掌握一些系统底层知识,是提升职业技能的重要......一起来看看 《加密与解密(第4版)》 这本书的介绍吧!