如何为数据的文本文件中的caffe创建mean.binaryproto?

时间:2017-01-06 11:33:01

标签: python binary deep-learning caffe pycaffe

我正在使用两个文本文件,其中每个文件都有我的验证/培训图像的路径。

我现在想要从这些图像中创建一个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
#.... ? 

2 个答案:

答案 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文件。

请参阅我对How to convert .npy file into .binaryproto?

的回答