我计划通过使用NYU深度v2数据集来实现可以从单个图像估计深度的CNN。通过本教程向我展示了实现一个处理Caffe分类问题的CNN很容易。我很好奇,如果Caffe适合涉及多维地面真相(例如深度图像)和回归(深度估计)的任务。
我想要实现的是使用深度图像作为基础事实来训练可以估计深度图像的CNN。我需要将标签加载为单通道图像数据。
我只能通过Shelhamer找到与我的问题https://groups.google.com/d/msg/caffe-users/JXmZrz4cCMU/mBTU1__ohg4J
相关的答案据我所知,我应该定义两个顶层,一个用于输入,另一个用于深度数据作为基础事实。然后我可以使用损失层(如EucledianLoss)来计算损失。我在下面添加了一个模型。
此型号是否按预期工作?如果没有,还有其他方法可以在Caffe上做到吗?
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"
}
答案 0 :(得分:3)
是的,上面的模型应该按照您预期的方式工作。只需确保/usr/local/bin/mailsend -auth -port 587 -domain $HOSTNAME -to $MAILINGLIST
-sub "So-and-so-Report for $mydate" -smtp smtp.yourmailclient.net -user
$MAILUSER -pass $MAILPASSWORD -f $FROM@$FROM -M "Report Sent! - $mydate
blob的尺寸与some_output_layer_name
blob的尺寸相同。
答案 1 :(得分:1)
显然我的上述模型是正确的启动方式,但有一些问题。如果您将标签作为图像,则可以使用caffe中提供的click
图层。 span
有2个顶层,第一个是实际的图像数据,第二个是它的标签"这是一个数字(用于简单的分类问题)。在源文件中,您可以提供标签数据的路径,并放置一些任意的标签" s,然后忽略这些。下面的ImageData
和ImageData
对应于这些被忽略的标签。
ignored1
data.txt示例:
ignored2
labels.txt示例:
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
}
}
或者,您可以编写自己的Python图层来读取图像和标签数据。这是一个example layer来读取NYUDv2数据。