我计划使用纽约大学深度v2数据集实现一个可以从单个图像中估计深度的CNN。通过本教程向我展示了CNN很容易实现,它处理Caffe上的分类问题。我很好奇,如果Caffe适合于涉及多维地面真相(例如深度图像)和回归(深度估计)的任务。
我想要实现的是利用深度图像作为地面真相来训练CNN,它可以估计深度图像。我需要加载标签作为单通道图像数据。
我只能从Shelhamer那里找到与我的问题ohg4J相关的答案
我知道我应该定义两个顶层,一个用于输入,另一个用于深度数据,作为地面真相。然后,我可以使用损失层(如EucledianLoss)来计算损失。我在下面添加了一个模型。
这个模型能按预期工作吗?如果没有,在咖啡上还有其他的方法吗?
layer {
name: "data"
type: "ImageData"
top: "data"
image_data_param {
source: "input_set.txt"
batch_size: 50
}
}
layer {
name: "label"
type: "ImageData"
top: "label"
image_data_param {
source: "depth_set.txt"
batch_size: 50
}
is_color: false
}
layer {
name: "loss"
type: "EuclideanLoss"
bottom: "some_output_layer_name"
bottom: "label"
top: "loss"
}发布于 2016-11-28 10:51:17
显然,我的上述模型是正确的方式开始,但有一些问题。如果你有标签作为图像,你可以使用ImageData层提供的caffe。ImageData有两个顶层,第一层是实际图像数据,第二层是它的“标签”,这是一个数字(用于简单的分类问题)。在源文件中,您可以提供标签数据的路径,并放置一些任意的“标签”,而忽略这些。下面的ignored1和ignored2对应于这些被忽略的标签。
layer {
name: "data"
type: "ImageData"
top: "data"
top: "ignored1"
image_data_param {
source: "path/to/data/data.txt"
batch_size: 32
new_height: 228
new_width: 304
}
}
# Label data
layer {
name: "depth"
type: "ImageData"
top: "depth"
top: "ignored2"
image_data_param {
is_color: false
source: "path/to/data/labels.txt"
batch_size: 32
new_height: 55
new_width: 74
}
}data.txt样本:
/path/to/your/data/1.png 0
/path/to/your/data/2.png 0
/path/to/your/data/3.png 0
...labels.txt样本:
/path/to/your/labels/1.png 0
/path/to/your/labels/2.png 0
/path/to/your/labels/3.png 0
...或者,您可以编写自己的Python层来读取图像和标签数据。下面是一个读取示例层数据的NYUDv2。
发布于 2016-04-27 05:21:24
是的,上面的模型应该像你期望的那样工作。只需确保some_output_layer_name blob的尺寸与label blob的尺寸相同。
https://stackoverflow.com/questions/36874736
复制相似问题