我正在使用两个文本文件,其中每个文件都有我的验证/培训图像的路径。
我现在想要从这些图像中创建一个mean.binaryproto,以便输入到我的输入层。但是,我只找到了使用leveldb输入层完成此操作的示例。 我可以使用python脚本轻松创建自己的平均图像,但我不知道如何在此之后继续,所以说如何在我的脚本结尾处将图像写为binaryproto。有没有指针?
from PIL import Image
import numpy as np;
#Create mean image function
def create_mean(list_of_images):
for i in range(0,len(list_of_images)):
print list_of_images[i]
if i == 0:
n = np.int32(Image.open(list_of_images[i]));
else:
n = n + np.int32(Image.open(list_of_images[i]));
return np.uint8(np.double(n)/len(list_of_images))
#paths out of textfile,here to simplify as an array , usually comes out of a txt file
#but that's not the issue
list_imgs = ['out.tiff','out2.tiff' ]
avg_img = create_mean(list_imgs)
#Now how to write this into the needed .binaryproto
#.... ?
答案 0 :(得分:1)
由于平均图片是在numpy数组中给出的,因此可以使用caffe函数写为.binaryproto
import caffe
blob = caffe.io.array_to_blobproto( avg_img)
with open( mean.binaryproto, 'wb' ) as f :
f.write( blob.SerializeToString())
答案 1 :(得分:0)
您可以先使用 convert_imageset 工具转换图像以生成lmdb数据库。然后,使用它和 compute_image_mean 工具,您可以生成一个mean.binaryproto文件。
的回答