Я планирую внедрить CNN, которая может оценивать глубину по отдельным изображениям, используя набор данных NYU depth v2. Прохождение учебника показало мне, что легко реализовать CNN, которая решает проблему классификации в Caffe. Мне любопытно, подходит ли Caffe для задачи, которая включает в себя многомерные основные истины (например, изображение глубины) и регрессию (оценка глубины).
Чего я хочу добиться, так это использовать изображения глубины в качестве наземных истин для обучения CNN, которая может оценивать изображения глубины. Мне нужно загрузить метки как данные одноканального изображения.
Я смог найти только этот ответ Шелхамера, который связан с моей проблемой 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"
}