caffe mean file binaryproto becomes npy file

caffe_root = '/home/htt/lisa-caffe-public-lstm_video_deploy/'
import sys
sys.path.insert(0,caffe_root + 'python')
import caffe
import numpy as np
#待转换二进制均值文件
MEAN_PROTO_PATH = '/home/htt/posenet_lmdb/fire/mean/mean.binaryproto'   
#转换生成npy文件            
MEAN_NPY_PATH = 'mean.npy' 
#创建protobuf blob                        
blob = caffe.proto.caffe_pb2.BlobProto()  
#读入mean.binaryproto文件内容         
data = open(MEAN_PROTO_PATH, 'rb' ).read()    
#解析文件内容到blob     
blob.ParseFromString(data) 
#将blob中的均值转换成numpy格式,array的shape (mean_number,channel, hight, width)                        
array = np.array(caffe.io.blobproto_to_array(blob))
#一个array中可以有多组均值存在,故需要通过下标选择其中一组均值
mean_npy = array[0]                                
np.save(MEAN_NPY_PATH ,mean_npy)

mean = np.load(MEAN_NPY_PATH)
a=np.mean(mean[0])
b=np.mean(mean[1])
c=np.mean(mean[2])
print mean
print a,b,c

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325560660&siteId=291194637