论文笔记-深度估计(5)Unsupervised Monocular Depth Estimation with Left-Right Consistency

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Kevin_cc98/article/details/78945802

ECCV2016_Unsupervised Monocular Depth Estimation with Left-Right Consistency
本文采用无监督学习(没有ground truth)的方法来估计深度,基本思路是匹配好左右视图的像素,得到disparity map。根据得到的视差disparity,由d = bf/disparity,算出depth map。本文能实现在35ms内恢复一张图512×256的图只需要25ms(GPU)。

本文提出的架构受Mayer的DispNet(Mayer的DispNet和Dosovitskiy的FlowNet相似)启发(code中也有resnet和vgg版本实现);最后通过左右匹配的一致性检查和当前利用深度学习的双目匹配很相似。

1.介绍

利用图像重建误差(image reconstruction loss)来最小化光度误差(类似于SLAM中的直接法)虽可以得到很好地图像重建结果(disparity),但得到深度预测结果非常差。

为了优化这个结果,作者采用Left-Right Consitency来优化。也就是以左视图为输入,以右视图为training中的监督真值,生成右侧对应的视图;然后又以左视图为监督真值,根据右视图生成左视图。最小化这两个过程的联合loss则可以一个很好的左右视图对应关系。

最终网络得到一个四个scale大小的输出(disp1-disp4)。

Left-Right Consistency Check

作者先根据左视图L1预测得到右视图R1,然后根据生成的右视图再预测的到左视图L2,此时要求L1与L2一致,即所谓(从)左(到有边,从)右(到左边)一致性。
看来,需要从双目匹配中寻找灵感

2.价值函数

价值函数考量了三个部分:
这里写图片描述
分别是:

  • 左右视图的灰度匹配部分
  • 视差平滑部分(让disparity的分布更加平滑)
  • 左右视图的一致性部分(促使左视图中的disparity分布和右视图的disparity图严格相同)

左右视图的视差匹配程度:
这里写图片描述
本文采用和Loss Functions for Neural Networks for Image Processing一文相同的形式,将SSIM和L1结合起来作为代价函数,其中 α 设置为0.85.
此式包含了L1和SSIM项两部分
视差平滑部分:

这里写图片描述此L1项和之前介绍的Semi-Supervised Deep Learning for Monocular Depth Map Prediction一样,视差平滑部分考虑到边缘突变(实际上后者是借鉴的本文)

左右一致性部分:
这里写图片描述)
仍旧采用L1项。我们知道,由于baseline的存在,左右视图是无法完全严格相同的。这部分价值函数有改进的必要。实际上第一部分的视差匹配部分也能促使左右视图的视差分布相同,所以添加此部的有效性存疑。

测试时, a a p = 1 , a l r = 1 , a d s = 0.1 / r ,r是输入图像相对该层的升采样值。

3.网络结构

encoder-decoder结构,包括长skip。通过一个带scale的sigmoid函数,将输出限制在(0,0.3*当前scale下的图像宽度)。
作者采用的激活为ELU(参看深度学习(1)-深度学习中的核函数(激活函数))。
decoder结构中,作者没有用广泛采用的deconvolution结构,而是用一个最近邻升采样+后续的卷积层的方式来做分辨率提升。
作者采用Adam模式(参见cs31n_lesson6_7/5.调参)来进行训练。

和一般视觉深度学习训练一样,数据增强(data augmentation)是必要的。

作者也尝试将encoder替换成Resnet50,而其他部分不变。
post-processing
我们知道,相对于右视图,左视图能看见场景左侧更多的内容,但无法看见一个物体右侧部分信息,即产生occluder。为了在物体右侧也能产生更好的效果,作者对测试方式进行了改进。作者不仅对输入的图像I计算深度图d,也对I的水平翻转(即左右互换)图像计算深度图d’,然后将d’水平翻转回来形成d”.虽然d与d”基本是对齐的,但disparity ramps方向是相反的。

最后的效果还是不错的:
这里写图片描述

这篇文章也有公开代码。

猜你喜欢

转载自blog.csdn.net/Kevin_cc98/article/details/78945802