Caffe均值文件mean.binaryproto轉(zhuǎn)mean.npy的方法
mean.binaryproto轉(zhuǎn)mean.npy
使用Caffe的C++接口進行操作時,需要的圖像均值文件是pb格式,例如常見的均值文件名為mean.binaryproto;但在使用python接口進行操作時,需要的圖像均值文件是numpy格式,例如mean.npy。所以在跨語言進行操作時,需要將mean.binaryproto轉(zhuǎn)換成mean.npy,轉(zhuǎn)換代碼如下:
import caffe import numpy as np MEAN_PROTO_PATH = 'mean.binaryproto' # 待轉(zhuǎn)換的pb格式圖像均值文件路徑 MEAN_NPY_PATH = 'mean.npy' # 轉(zhuǎn)換后的numpy格式圖像均值文件路徑 blob = caffe.proto.caffe_pb2.BlobProto() # 創(chuàng)建protobuf blob data = open(MEAN_PROTO_PATH, 'rb' ).read() # 讀入mean.binaryproto文件內(nèi)容 blob.ParseFromString(data) # 解析文件內(nèi)容到blob array = np.array(caffe.io.blobproto_to_array(blob))# 將blob中的均值轉(zhuǎn)換成numpy格式,array的shape (mean_number,channel, hight, width) mean_npy = array[0] # 一個array中可以有多組均值存在,故需要通過下標(biāo)選擇其中一組均值 np.save(MEAN_NPY_PATH ,mean_npy)
已知圖像均值,構(gòu)造mean.npy
如果已知圖像中每個通道的均值,例如3通道圖像每個通道的均值分別為104,117,123,我們也可以通過其構(gòu)造mean.npy。代碼如下:
import numpy as np MEAN_NPY_PATH = 'mean.npy' mean = np.ones([3,256, 256], dtype=np.float) mean[0,:,:] = 104 mean[1,:,:] = 117 mean[2,:,:] = 123 np.save(MEAN_NPY, mean)
載入mean.npy
上面我們用兩種方式構(gòu)造了均值文件mean.npy,在使用時載入mean.npy的代碼如下:
import numpy as np mean_npy = np.load(MEAN_NPY_PATH) mean = mean_npy.mean(1).mean(1)
以上這篇Caffe均值文件mean.binaryproto轉(zhuǎn)mean.npy的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python使用PyQt5/PySide2編寫一個極簡的音樂播放器功能
這篇文章主要介紹了Python中使用PyQt5/PySide2編寫一個極簡的音樂播放器功能,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02python中自定義異常/raise關(guān)鍵字拋出異常的案例解析
在編程過程中合理的使用異??梢允沟贸绦蛘5膱?zhí)行,本篇文章給大家介紹python中自定義異常/raise關(guān)鍵字拋出異常案例解析,需要的朋友可以參考下2024-01-01pyinstaller將python程序打包為可執(zhí)行文件
這篇文章主要介紹了pyinstaller將python程序打包為可執(zhí)行文件,pyinstaller是一個python打包工具,它將python程序及所需依賴都打包成一個可執(zhí)行文件2022-08-08