![3000f97528d3c46319b46bc7277b4240.png](https://i-blog.csdnimg.cn/blog_migrate/933b1d46059080e72d9b2726613257c3.jpeg)
深度学习的蓬勃发展得益于大规模有标注的数据驱动,有监督学习(supervised learning)推动深度模型向着性能越来越高的方向发展。但是,大量的标注数据往往需要付出巨大的人力成本,越来越多的研究开始关注如何在不获取数据标签的条件下提升模型的性能,也就是自监督学习(self-supervised learning)/无监督学习(unsupervised learning)。
对于立体匹配(stereo matching),或者双目深度估计,像LiDAR这样的设备是极其笨重且昂贵的,它所能收集的只是稀疏的深度信息,而我们需要的是密集的深度图(dense depth map);而基于结构光的设备往往只能在室内场景下进行深度信息标注,在室外场景下难以达到较高的标注质量。因此,自监督学习在立体匹配中得到越来越多的关注。本文主要梳理了近年来自监督学习在深度立体匹配中的应用方法,希望和大家一起探讨学习。
1,Stereo Matching
立体匹配也称作视差估计(disparity estimation),或者双目深度估计。其输入是一对在同一时刻捕捉到的,经过极线校正的左右图像
立体匹配算法分为四个步骤:
- 匹配代价计算(matching cost computation)
- 代价聚合(cost aggregation)
- 视差计算(disparity computation)
- 视差精修(disparity refinement)
传统的视差估计算法主要分为两类:
- 局部算法:主要基于滑动窗口来计算局部窗口内的匹配代价;
- 全局算法:通过优化包括局部数据项和平滑项的能量函数来计算立体视图之间的相关性;
传统的视差估计算法对于各种应用场景都具有等价的视差估计能力,不会因为场景变化而产生较大的差异,因此有论文将传统方法估计的视差图作为带有噪声的标签来提升无监督视差估计的性能,本文后面会提到。随着深度学习的发展以及大规模合成/仿真数据的推动,CNN将上述四个步骤统一成一个端到端的网络,进一步提升了视差估计的性能。本文主要探讨的是自监督学习在基于卷积神经网络的视差估计算法中的应用情况。
2,Self-Supervised Learning
在基于卷积神经网络的立体匹配算法中,有监督学习基本上是回归的方法,即采用smooth L1 loss计算预测的视差值和真实视差值之间的误差来监督网络的学习。自监督学习算法则主要从图像自身的特征结构,视差图自身的特点或者借助传统算法来构造噪声标签来训练深度模型。
Image Reconstruction Loss
和自编码器类似,我们最容易想到的就是通过重建图像来作loss。假设原来的左图(参考图像)为
通常,经过重构的图像可能具有很大的失真,仅仅采用重构图像和原图的比较还不够,我们会引入图像质量评价中的图像相似度指标 SSIM [2] 来综合的计算重构图像和原始图像在光度上的误差,
这里
Disparity Smoothness Loss
由于我们需要密集的视差图,为了使得视差在局部上保持平滑,我们可以对视差梯度
这里是分别使用了x方向和y方向的视差梯度和图像梯度。
Left-Right Disparity Consistency Loss
以上两种损失函数是自监督学习中最基本,最常用的损失函数。下面这篇论文提出了左右视差一致性损失,虽然是基于单目图像的,但是也可以用在双目深度估计上。
![5ab28d548110036cda5dbd93c48d2cee.png](https://i-blog.csdnimg.cn/blog_migrate/4196bc3d98197de366a37389cc70085d.jpeg)
- 论文标题:Unsupervised Monocular Depth Estimation with Left-Right Consistency
- 论文来源:CVPR 2017 Oral
- 论文地址:https://arxiv.org/abs/1609.03677v3
- 开源代码:https://github.com/mrharicot/monodepth
论文提出的框架如下:
![f8bc10b67f3745eccabc3c72a478637a.png](https://i-blog.csdnimg.cn/blog_migrate/775c9bb4db5315ddca6c82055bc5e4ab.jpeg)
和原有方法不同,输入是左图(双目是左右图),输出不仅是以左图为参考图像的视差图
这里N是像素的个数,
这篇论文中由于预测了两种不同的视差(以左图为参考图像的视差和以右图为参考图像的视差),因此上面提到的三种损失都可以有镜像损失。比如,以原始左图
Weighted Local Contrast Normalization
下面这篇论文通过分析重构误差的缺点,提出了一种新的加权局部对比度归一化操作,从而优化了重构误差损失函数。
![d4a6c3498346efaf907cfd3a5ee8ca30.png](https://i-blog.csdnimg.cn/blog_migrate/bf5c68d341f5c1144166cc55efff2a79.jpeg)
- 论文标题:ActiveStereoNet: End-to-End Self-Supervised Learning for Active Stereo Systems
- 论文来源:ECCV 2018
- 论文地址:https://arxiv.org/abs/1807.06009v1
- 复现代码:https://github.com/meteorshowers/StereoNet-ActiveStereoNet
论文提出了一个针对主动视觉的端到端的深度学习方法,我们主要来看其对于重构误差的分析和改进。作者认为光度重构误差具有以下两点不足:
- 在视觉设备感知外部环境时,接收到的信号强度与距离的平方成反比,这导致光度对距离具有明显的依赖。
- 明亮的像素点往往比暗的像素点更容易产生较大的残差。
基于以上两个观察,深度网络在训练时倾向于在容易学习的地方学习(比如,明亮的区域),然后对其他区域进行平滑处理(比如,较暗的区域)。因此,对于较暗的像素点,它需要更准确的深度信息来监督才能学得比较好。但是在自监督学习中,我们缺少的正是这种准确的深度信息(真实的视差标签),这样就会导致较暗的区域学得很差。并且,当前景和背景差异较大时,这种损失会在被遮挡的区域产生更大的误差,导致网络无法再继续学习下去。
论文提出的加权局部对比度归一化(WLCN)就是用来移除亮度与视差的相关性。具体来说,对每一个像素点,计算以其为中心的9*9区域内的所有像素点的局部均值
其中
![42534f0ffb437482478db1e0fdfedc0a.png](https://i-blog.csdnimg.cn/blog_migrate/4a888538b1b149901ad20601f67e6596.jpeg)
由上图可以看出,对于仅使用重构误差(左图),在红色框中较亮的部位对应的重构误差较大。而采用LCN对输入图像归一化处理后(中间图),这些重构误差不会过渡的偏向明亮的区域。这表明LCN不仅消除了光度和视差之间的联系,而且在遮挡区域能够提供较好的残差。
但是另一个问题是,在弱纹理区域局部标准差
从上面图中的右边可以看出,经过重加权之后弱纹理区域的误差也变小了,这是因为这部分对应的权值
Guided Confidence Loss
除了挖掘图像和视差本身的特性,我们还可以从外部借助一些带有噪声的标签作为监督信息。在本文开头介绍过,传统方法虽然没有基于深度学习的方法性能高,但是对各种场景具有较好的泛化能力。下面这篇论文就是借助传统方法先对图像估计一次视差,再通过置信度的学习来自动的鉴别带有噪声的标签,从而实现无标签条件下的深度模型学习。
![06a678e732a9575930ab1b3e941706a2.png](https://i-blog.csdnimg.cn/blog_migrate/2d906121197541a2cd097e68407acd62.jpeg)
- 论文标题:Unsupervised Domain Adaptation for Depth Prediction from Images
- 论文来源:TPAMI 2019
- 论文地址:https://arxiv.org/abs/1909.03943v1
- 开源代码:https://github.com/CVLAB-Unibo/Unsupervised_Depth_Adaptation
假设由传统算法(比如SGM [3])估计的视差值为
我们可以通过超参数
假设由深度模型估计的视差表示为
这里
下图给出了不同
![e1b7632d1a309cd6268b286fb051595f.png](https://i-blog.csdnimg.cn/blog_migrate/1b8be90de5395646499f03636b80078f.jpeg)
从 (e) 到 (h) 我们可以看出,
新加的项有两个优势,一是将超参数
关于超参数
- 将
看做是一个可学习的变量,即上面的描述方式;
- 将
看做是一个简单网络
的输出,该网络可以采用3个3*3的卷积层,后面接一个全局平均池化得到。
下图是关于超参数
![d687bb8a4160196379febe52cda018b5.png](https://i-blog.csdnimg.cn/blog_migrate/1790fc768b7863f11a1d4ee0b724c581.jpeg)
从上图可以看出,无论是将
3,总结
上面几篇论文的分析主要关注的是自监督学习,论文中还有其他亮点没有阐述,大家如果感兴趣还可以详细阅读论文。从上面的分析中我们可以归纳出,近年来自监督学习在立体匹配中主要从下面三个方面来考虑:
- 从图像自身的特性出发:如图像重构损失,图像相似度计算,加权局部对比度归一化;
- 从视差图的特点出发:如视差平滑损失;
- 从传统方法中借鉴:如引导置信损失;
未来的自监督学习我认为可以从两方面着手,一是探索如何将图像本身的特性和视差的关系构建起来,因为图像的RGB信息本身和视差信息是没有关系的,图像重构误差本身并不等价于视差回归损失。二是如何获取更加准确的稀疏监督信息,毕竟只需要稀疏的监督信息就能学出很好的视差估计网络,但是前提是监督信息必须准确,也就是少而精。
4,参考文献
[1] https://arxiv.org/abs/1506.02025
[2] Z. Wang, A. C. Bovik, H. R. Sheikh, and E. P. Simoncelli. Image quality assessment: from error visibility to structural similarity. TIP 2004.
[3] H. Hirschmuller. Accurate and efficient stereo processing by semi-global matching and mutual information. CVPR 2005