您的位置:首页 > Web前端

Caffe学习(9)——计算图片数据的均值

2017-09-16 14:17 309 查看
在训练和测试之前,先对图片数据做去均值操作,会提高速度和精度。

将所有训练样本的平均值保存在一个均值文件中,在之后测试时,可直接使用此均值文件,不需要对测试图片重新计算均值。

均值计算有两种格式:二级制格式和python格式

1、二进制格式均值计算

caffe中使用的均值数据格式是binaryproto,caffe根目录下的tools文件夹里面存放着一个compute_image_mean.cpp,用于均值计算;进行编译之后的可执行文件存放在build/tools/下面,需要时直接调用就可以了。

调用时,需要带两个参数:(示例可见上一篇文章)

第一个参数:表示计算均值的训练数据,格式为lmdb;

第二个参数:计算结果保存的文件

2、python格式均值计算

如果我们要使用python接口或者要进行特征可视化时,则要用到python格式的均值文件。

python格式的均值是由lmdb格式计算出来的二进制格式均值转换而成。以下代码可实现转换:

#!/usr/bin/env python
import numpy as np
import sys,caffe
if len(sys.argv)!=3:
    print "Usage: python convert_mean.py mean.binaryproto mean.npy"#####调用语句
    sys.exit()
blob = caffe.proto.caffe_pb2.BlobProto()
bin_mean = open( sys.argv[1] , 'rb' ).read()
blob.ParseFromString(bin_mean)
arr = np.array( caffe.io.blobproto_to_array(blob) )
npy_mean = arr[0]
np.save( sys.argv[2] , npy_mean )
最后保存至mean.npy文件,调用方式为Usage说明所示。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  caffe 均值文件