caffe读取图像
使用caffe.io.Transform类操作:
1、设定图片的shape格式为网络data层格式
transformer = caffe.io.Transformer({'data': net.blobs['data'].data.shape})
2、改变维度顺序,由原始图片维度(h, w, c)变为(c, h, w)
transformer.set_transpose('data', (2,0,1))
3、减去图像均值,注意要先将binaryproto格式均值文件转换为npy格式
transformer.set_mean('data', np.load(mean_file_path).mean(1).mean(1))
或者通道均值
transformer.set_mean('data', [b_v, g_v, r_v] )
4、缩放到[0,255]之间
transformer.set_raw_scale('data', 255)
5、交换通道,将C通道由RGB变为BGR
transformer.set_channel_swap('data', (2,1,0))
6、加载图片
im=caffe.io.load_image(img)
7、执行上面设置的图片预处理操作,并将图片载入到blob中
net.blobs['data'].data[...] = transformer.preprocess('data', im)