摘要
近年来,随着卷积神经网络(CNN)在立体视觉匹配中的广泛使用,证明了其可行性,近期的一些文章也通过利用带有真值的公开数据集对CNN的参数进行学习。但是,毕竟具有真值标记的数据集是非常有限的,根本不足以用来对真实世界中的所有场景进行学习预测。因此,本文采用无监督学习的方式,展示了一种学习立体视觉匹配代价的框架。本文是通过迭代来不断更新网络参数的,利用左-右一致性检测来引导模型的训练;然后,选取合适的匹配在以后的迭代中作为训练数据。最终,网络能收敛到一个非常稳定的状态,得到的模型性能可以与其他有监督学习的模型比肩。
1.引言
立体视觉匹配的简要介绍
2.相关工作
(1)传统立体视觉匹配
(2)基于CNN的匹配代价学习
(3)无监督深度学习
(4)无监督光流预测
3.无监督立体匹配学习
3.1立体匹配学习网络
立体匹配学习网络是一个端-端的学习框架,输入是左右两幅校正好的图像,输出就是视差图。网络包括cost-volume计算、cost-volume聚合、视差预测。
Fig2中,网络的具体结构如表1所示。
cost-volume计算
Fig2中,计算cost-volume时的输入是左右两幅图像,这一部分采用的是孪生网络(siamese architecture),对两幅图像的处理是共享权重的。网络中每一层的后面都有批归一化处理以及激活函数ReLU。左右两幅图片经过网络之后得到的特征图送入一个相关层correlation layer中计算cost-volume。
cost-volume聚合
前期的一些工作是利用边缘保留滤波器来聚合cost-volume,这里本文采用另外一种方式。利用image feature网络提取到的图像特征来学习cost聚合的过程。
这个图像特征提取的网络有三层,从输入为h×w个像素的图像中,最终提取出的特征Fc是1×h×w。
提取到图像特征之后,利用Joint Filter把cost-volume和输入的颜色信息合并到一起。其中,图像特征是与cost-volume的每个通道串联在一起,之后送入到Joint Filter进行处理,得到最终的cost-volume。这个过程模仿了传统立体视觉匹配中的代价聚合,但是本文的学习框架表现的性能更好些,因为网络能自动地找到合适的参数。
视差预测
利用得到的cost-volume,采用“胜者通吃”原则得到最终的视差图。Argmax在反向传播时是不可导的,因此,采用soft Argmax,最终返回每一个像素在cost-volume中的最大值的位置索引。
3.2无监督学习框架
初次计算匹配结果时,网络的参数是随机选取的或者是采用DeepMatching的方法。
对网络的训练是通过不断迭代完成的,在每一次迭代t中,计算从左图到右图的匹配和右图到左图的匹配,然后选择一种方式从和中找到置信匹配。然后利用从数据集中采样得到训练数据。
之后,从中学习到网络参数,迭代过程见Fig3和Algorithm 1。在每次迭代过程中,得到的视差图的准确性和置信匹配的数量都有所提高,迭代的次数T大致为50左右。
置信匹配选择
置信图的计算来源于左右视差图提供的信息,利用左右一致性检测来获得这个图。通过前向变换函数利用右图的视差变换左图的视差。
通过设置和之间差异的阈值,得到置信图C。这个过程可以被表示为
其中,表示利用M对I的视差进行变换,是阈值,实验中被设置为3-7。
这个方法既快速又有效,正如Fig 4中所展示的,在不断的迭代中置信度区域不断变大。在KITTI 2015数据集中,算法的置信度图的准确度最终能达到96%。
训练数据的选择
给定一个左图在位置p处的patch的置信度视差,我们找到在右图中相对应的处。为了避开单调的图像块,人为地移除一些较低标准差的值,计算过程为
其中,是围绕p的一个矩阵图像块,选择图像块时要求这个值大于阈值。
后处理
在复杂的后处理过程中,有一些复杂的方式,包括代价聚合、半全局匹配和slanted plane。在前文的叙述中,已经在网络中利用image feature网络提取到的图像特征来学习cost聚合的过程了,因此在后处理中不需要代价聚合了。本文的后处理过程只需要两个步骤来对网络的视差输出进行平滑。
首先执行左右一致性检测,对于不一致的区域,很可能是由于遮挡形成的,我们对其进行插值。然后,利用中值加权滤波对视差图进行联合滤波。Fig 5给出的是有无后处理的结果图。
领取专属 10元无门槛券
私享最新 技术干货