Deep learning 如何在KITTI数据集上用掩蔽法进行单图像深度估计的训练

Deep learning 如何在KITTI数据集上用掩蔽法进行单图像深度估计的训练,deep-learning,pytorch,depth,supervised-learning,kitti,Deep Learning,Pytorch,Depth,Supervised Learning,Kitti,我正在研究一种深度学习(监督学习),从单目图像中估计深度图像。 数据集目前使用KITTI数据。RGB图像(输入图像)用于KITTI原始数据,来自的数据用于地面真实值 在通过设计一个简单的编解码网络来学习模型的过程中,结果不是很好,因此正在进行各种尝试 在搜索各种方法时,我发现groundtruth仅通过掩蔽来学习有效区域,因为存在许多无效区域,即无法使用的值,如下图所示。 所以,我是通过掩蔽来学习的,但我很好奇为什么这个结果会持续出现 这是我的代码训练部分。 我怎样才能解决这个问题 for

我正在研究一种深度学习(监督学习),从单目图像中估计深度图像。 数据集目前使用KITTI数据。RGB图像(输入图像)用于KITTI原始数据,来自的数据用于地面真实值

在通过设计一个简单的编解码网络来学习模型的过程中,结果不是很好,因此正在进行各种尝试

在搜索各种方法时,我发现groundtruth仅通过掩蔽来学习有效区域,因为存在许多无效区域,即无法使用的值,如下图所示。

所以,我是通过掩蔽来学习的,但我很好奇为什么这个结果会持续出现

这是我的代码训练部分。 我怎样才能解决这个问题

for epoch in range(num_epoch):
model.train() ### train ###
for batch_idx, samples in enumerate(tqdm(train_loader)):
    x_train = samples['RGB'].to(device)
    y_train = samples['groundtruth'].to(device)

    pred_depth = model.forward(x_train)
    valid_mask = y_train != 0     #### Here is masking 

    valid_gt_depth = y_train[valid_mask]
    valid_pred_depth = pred_depth[valid_mask]

    loss = loss_RMSE(valid_pred_depth, valid_gt_depth)

据我所知,您正在尝试从RGB图像作为输入来估计深度。这是一个不适定问题,因为同一个输入图像可以投影到多个合理的深度值。您需要集成某些技术来从RGB图像估计准确的深度,而不是简单地在RGB图像与其对应的深度图像之间进行L1或L2损失


我建议您阅读一些关于从单个图像估计深度的论文,例如:他们使用网络首先估计给定图像的全局结构,然后使用第二个网络细化局部场景信息。他们没有像您那样使用简单的RMSE损失,而是使用了一个比例不变的误差函数来测量点之间的关系。

我已经一个多月没有解决同样的问题了。如果您知道,请帮助。@prost“直接添加图像”是什么意思?我的实验结果真的很差,你有什么办法解决这个问题吗?对我来说,你的帖子现在看起来好多了。