使用caffe中的掩码预处理输入数据的最优雅方法是什么? 目前我的输入只是一个根据原型文件转换的图像。有人可以提供一个代码片段,如何修改原型文件文件,以便它采取两个输入(图像和掩码)并将它们相乘?
这是我到目前为止所尝试的内容:
layer {
name: "data"
type: "ImageSegData"
top: "data"
top: "label"
top: "data_dim"
include {
phase: TRAIN
}
transform_param {
mirror: true
crop_size: 321
mean_value: 104
mean_value: 116
mean_value: 122
}
image_data_param {
root_folder: "/home/myUsername/datasets/myDataset"
source: "myDataset/list/trainFiles.txt"
batch_size: 10
shuffle: true
label_type: PIXEL
}
}
layer {
name: "mask"
type: "ImageData"
top: "mask"
include {
phase: TRAIN
}
image_data_param {
root_folder: "/home/myUsername/datasets/myDataset"
source: "myDataset/list/trainMaskFiles.txt"
batch_size: 10
shuffle: true
label_type: PIXEL
}
}
########## Product ############
layer {
name: "product"
type: "Eltwise"
bottom: "data"
bottom: "mask"
top: "product"
eltwise_param { operation: PROD }
}
问题是:
答案 0 :(得分:1)
哪里,我还不确定,但我认为你可以尝试修改caffe的源代码,它实现 ReadImageToCVMat 功能。在这个函数中,它调用opencv函数 cv :: imread ,让第二个参数为 -1 而不是其他标志。在修改它并重建caffe之后,opencv应该读取一个'png'文件及其放置掩码的alpha通道。我认为这应该有效。试试吧。