论文阅读笔记《EdgeStereo:A Context Integrated Residual Pyramid Network for Stereo Matching》

0.摘要

  近期,卷积神经网络极大地推动了立体匹配的发展。尤其是那些端到端地立体匹配方法达到非常好地效果。然而,很少有人关注编码环境信息,简化两级学习流程和改善视差图细节等方面。不同的是,本文关注了这些问题。首先,我们提出一个基于残差金字塔网络(CP-RPN)的单级环境金字塔网络用于视差估计,其中嵌入了一个环境金字塔结构用于准确地编码多尺度的环境线索。接下来,我们设计了一个基于多任务学习的CNN叫做EdgeStereo用于恢复视差图中丢失的细节信息,利用从边缘检测任务中获得的中间特征。在EdgeStereo中,CP-RPN与一个边缘检测器HEDβ整合在一起。这个端到端的网络直接由一对立体图像输出边缘图和视差图,不需要经过后处理和规则化过程。我们发现在EdgeStereo框架中边缘检测任务和立体匹配任务可以相互帮助。

1.介绍

  现有的端到端网络如CRL,DispNet,GC-Net存在以下缺点:

  1. 没有对病态区域的语义环境信息直接编码
  2. 多级优化结构并没有很好地效果
  3. 基于3D卷积地高维度的特征卷计算成本较高

  为了打破上述地局限性,我们提出一种基于残差金字塔网络地端到端环境金字塔结构用于视差估计。他有两个亮点:

  1. 一个嵌入的环境金字塔
  2. 一个残差金字塔使用单个编码解码结构进行视差学习和优化

因此,我们的CP-RPN是个单级视差网络,不需要级联优化网络或者复杂的多级训练过程。
  无疑地,立体匹配能够从语义环境信息中获益,尤其对于一些病态区域。然而,利用单一尺寸的环境信息不能为任意大小地物体编码信息,并很可能造成过度平滑的问题。因此,将局部信息和多尺度环境线索编码在一起对于立体匹配是至关重要的。金字塔结构已被证明能有效地编码多尺度信息。最近成功的金字塔结构都面临繁重的计算负担,与此相反,我们设计了一种简单但有效地环境金字塔。
  为了使学习稠密视差图变得简单,我们借助了课程学习中“由易到难”的思想。换句话说,在最小尺度下学习是最简单的,而学习残差要比直接回归更简单,这一点在ResNet中得到证明。因此,多尺度的解码器在我们的CP-RPN中是一种残差金字塔,他有三个特征:

  1. 最小尺度的视差图在残差金字塔地底层直接学习
  2. 对于其他尺度,学习一个用于优化的残差图,然后加上由前一尺度上采样得到的原始视差图,获得一个更大且更精细的视差图
  3. 除了最小尺度之外的每个尺度下,右图都进行下采样然后根据由前一个尺度上采样得到的视差图进行Warp操作,获得一个合成的左图。合成图与真实左图之间地误差图被当作一种几何约束来学习每一个尺度下的残差图。

  然后,这样的CP-RPN无疑会丢失视差图中一些精细地细节信息,由于在多次前向传播之后缺少中间特征。因此,我们凭借多任务学习框架从其他的视觉线索中获取额外的中间信息。边缘检测任务是一个很合适地选择,因为边缘图通常是在中间表征中学习到的。因此,我们设计了一种基于HED模型的端到端的边缘网络叫做HEDβ,其*享的“聚合边缘通道特征”用于构建多任务的相互作用。最终,我们将HEDβ和CP-RPN整合为一个端到端的多任务网络,称作EdgeStereo。其中两个任务间的相互作用是双重的:一、聚合边缘通道特征通过可微分的插值层下采样到多个尺寸,然后再和残差金字塔中对应尺度的视差图级联起来;二、HEDβ输出的边缘图也下采样到各种尺寸,作为一种规则化信息用于学习对应尺度下的视差图和残差图。EdgeStereo网络的整体结构如图1所示。
论文阅读笔记《EdgeStereo:A Context Integrated Residual Pyramid Network for Stereo Matching》
图1. EdgeStereo网络的整体结构,HEDβ和CP-RPN整合在共享的VGG-16骨架上,给定一对立体图像,边缘图和视差图同步输出。蓝色表示边缘网络HEDβ,其他表示视差网络CP-RPN。匹配代价计算用绿色表示,环境金字塔和编码解码结构用橙色表示。编码器包含“Disp3”到“Disp6”等4个块,每个块由两个卷积层构成,并将分辨率降低一倍。环境金字塔和解码器(残差金字塔)的细节构造分别见图2和图3。
  在EdgeStereo中,多任务学习是基于一个多级训练策略进行的。在将这两个学习任务结合之后,EdgeStereo在立体匹配上的表现无论是定性分析还是定量分析都优于原始地CP-RPN。令人惊讶地,HEDβ输出的边缘图也得到了改善。由于立体图像数据集中并不提供真实的边缘图像,我们只能定性地评估边缘图像地输出。
  总之,我们的贡献表现在三个方面:

  1. 我们设计了一种全新的单级网络用于立体匹配,其中嵌入了一个环境金字塔和一个残差金字塔
  2. 我们首次将立体匹配和边缘检测整合到一个基于多任务框架地CNN中,在我们的网络中,这两个任务能够相互帮助
  3. 在标准立体匹配排行榜中取得优异表现

2.相关工作

  将立体匹配与其他任务合并。毋庸置疑的是立体匹配可以从其他任务提供的有用线索和特征中受益。例如,Bleyer等人首次立体匹配与物体分割任务结合起来。Guney和Geiger等人提出的方法名叫Displets,利用前景物体识别来帮助立体匹配。更多的视觉任务通过倾斜平面融合起来。然而这些传统的手工制作地多任务方法并不具备鲁棒性。据我们所知,我们的EdgeStereo是第一个基于多任务结构来辅助立体匹配的CNN。
  边缘检测。为了进一步优化视差估计,我们利用边缘检测任务来获取中间表征。受到Xie等人提出的FCN启发,他们设计了第一个基于VGG-16网络的端到端的边缘检测网络称作整体嵌套式边缘检测器(holistically-nested edge detector,HED)。最近,Liu等人修改了HED的结构,结合更多来自于VGG主体的卷积特征。这些端到端边缘检测网络可以很容易地与CP-RPN合并到一起。
  基于多任务结构地深度学习。Cheng等人提出SegFlow,一种将视频物体分割和光流相结合的结构。然而,这个结构要求训练数据包含所有类型的标签。Mao等人也提出一种多任务架构称为HyperLearner来帮助行人检测。多通道特征网络提供多种不同的特征并与检测网络地主体级联起来。然而,在HyperLearner中,其他任务的输出不能利用,而且多任务之间不能相互帮助。我们地EdgeStereo成功的突破了这些限制。

3.方法

  为了更好的说明,在这一章,我们首先介绍原始的CP-RPN用于视差估计。然后,我们介绍了我们的端到端的多任务学习架构EdgeStereo,包括对HEDβ网络的描述和CP-RPN与HEDβ之间的相互作用。

3.1 基于残差金字塔网络的环境金字塔(CP-RPN)

  我们的端到端CP-RPN由三个部分组成:局部立体卷提取,环境金字塔和二维的编码解码器(残差金字塔)
  局部立体卷提取。首先,我们学习深度的表征信息用于匹配代价计算。一元特征提取模块通常是一个共享权重的双塔siamese结构。由于以下两个原因,我们使用在ImageNet上进行预训练的VGG-16部分结构作为一元特征提取器:提取的特征在许多视觉任务中被证明是鲁棒的,并且利用这种方式可以很容易的将CP-RPN和HEDβ整合在一起。为了在细节上的一致性和更大的感受野之间妥协,我们只使用VGG-16中的conv1_1到conv3_3。如图1所示,第一个分支输出的conv3_3a是左图的一元特征图。
  最大偏移量为50的一维相关层应用在conv3_3a和conv3_3b之间,以得到一个代价卷来获取一对立体图像之间的粗糙的一致性。这个匹配代价卷和两个一元特征图都只有输入图像分辨率的四分之一。然后,用一个1*1的卷积层将conv3_3a的输出通道减少一半,目的是从左图中提取少但却精细地一元特征,然后与匹配代价卷级联起来。在此之后,级联层进行1*1的卷积,得到局部立体卷。通过这种操作,我们目的是为接下来的环境金字塔提供局部语义特征和局部一致性分布。
  环境金字塔。想象一个巨大的无纹理的墙面,如果只是基于局部推断,许多潜在的一致性存在于每一个像素之中。因此全局环境线索就显得至关重要了。然而,单一尺度的环境表征对于立体匹配来讲是不充足的。对于一个包含许多尺寸随机的物体的场景,端到端的视差网络需要同步地推断它们之间的一致性。如果只使用一个大尺度的环境线索,小的物体很可能被忽视。相反地,如果只基于小尺度的环境线索,大尺寸物体的视差可能就不一致或不连续了。因此,提出的环境金字塔目的就是用简单的方法获取多尺度环境信息。
  除此之外,如果只利用全局信息,视差图将会过度平滑而缺少精细的纹理细节。举例说明,当出现强烈的图像梯度时,就假定视差上的跳跃不会出现。因此结合多尺度局部环境信息是有益的。
  得到的局部立体卷为获取环境线索提供了充足的信息,因此环境金字塔作用在其之上。我们的环境金字塔有四个平行地分支对应四个金字塔层。环境金字塔的顶部对应最大的环境尺度。感受野的尺寸粗略地表明了我们可以利用的环境信息的多少。因此金字塔中每个分支都有不同尺寸的感受野来获取对应尺度下的环境信息。在此之后,四个不同分支的输出级联在一起作为多尺度环境信息。因为局部立体卷也做为局部信息,最终我们将它和多尺度环境信息级联在一起,得到初始的立体信息,作为二维编码解码结构的输入。
论文阅读笔记《EdgeStereo:A Context Integrated Residual Pyramid Network for Stereo Matching》
图2.池化、卷积和空洞卷积环境金字塔的结构。每个金字塔包含四个分支代表四个金字塔层。局部立体卷也被级联起来。在每个金字塔结构中,最左侧的分支编码了最大尺度的环境线索,所以它对应金字塔的最顶层,带有下标为_1。最右侧的分支是环境金字塔的最底层,编码了最小尺度的环境线索。输入的局部立体卷有256个通道,输出的初始立体信息有512个通道
  如图2所示,环境金字塔中的每一个分支包含两个或三个带有ReLU的层。第一层的通道数为256,在第二层减少了4倍。卷积,池化和空洞卷积是三个主流地扩大感受野的方式,因此三种类型的环境金字塔都对应做了设计。

  1. 卷积环境金字塔。每个分支都包含两个带有相同尺寸卷积核的卷积层。卷积核的尺寸从顶部到底部线性减小。如7*7,5*5,3*3和1*1对于一个分支,表示为C-7_5_3_1。
  2. 池化环境金字塔。第一层是带有不同池化核的平均池化层。池化层输出的尺寸从顶部到底部逐渐增加。如1*1,2*2,4*4和8*8,表示为P-1_2_4_8。第二层是一个1*1的卷积层,然后对每个分支做双线性插值使得输出的尺寸和局部立体卷的尺寸相同。
  3. 空洞卷积环境金字塔。第一层是一个3*3的空洞卷积层,空洞尺寸从顶部到底部逐渐减小。如6*6,3*3,2*2和1,表示为D-6_3_2_1。相似的,第二层也是1*1的卷积层。

  在4.2章节,我们进一步实验比较不同的环境金字塔,并选择出最好的嵌入我们的CP-RPN网络中。
  编码解码结构(残差金字塔)。为了代替多级的优化结构,我们设计了一种不同的编码解码结构,使得视差学习和优化可以融合在一个网络中。
  输入初始的立体信息,编码器包括四组卷积层。每一组由两个卷积层构成,步长分别是2和1,导致整个下采样比率为64(与原始图像相比缩小64倍)。
  受残差学习的启发,解码器设计为一个残差金字塔结构。对应着编码器,解码器有七个可用的尺度(1/64,1/32,1/16,1/8,1/4,1/2和1*输入尺寸)。在最小的尺度上学习是最容易的,因为输出的尺寸很小,而且需要的细节信息很少。除此之外,解码器的七个尺度使得多步“课程”学习(curriculum learning)变得可能。更特别地,我们在1/64的尺度下学习一个简单的视差图,然后对他不断进行上采样并利用更大尺度的残差图进行优化,直到优化的视差图为全分辨率时。
论文阅读笔记《EdgeStereo:A Context Integrated Residual Pyramid Network for Stereo Matching》
图3.残差金字塔结构,包括视差块和六个残差块。六个残差块的工作原理是一样的,因此我们只展示了第五个残差块和残差金字塔的第0层。Disp6,Disp5是来自于编码器,aeciEdgei表示聚合边缘通道特征和边缘图经过比率为2i
  用K+1表示残差金字塔中的完整尺度数量(本文中K=6),所以第K个尺度表示最小的尺度,{BK,BK1...B0}表示从底部到顶部所有的块(BK表示视差块)。令ILIR表示左右图,u()˙表示用可微分的插值层进行比率为2的上采样,与STN中的采样层相似,dkrk分别表示在第k个尺度下的视差图和残差图。每个块包含一个聚合图和一个估计分支(estimation branch)。
  每一个聚合图,用Ak表示,用于估计视差图和残差图。聚合图在视差块中时编码器的最终输出。然而在每个残差块中,它是由来自编码器或者VGG-16主干的跳跃连接的**层,上采样的聚合图u(Ak+1)和几何约束级联而得到的。为了充分利用极线约束,在残差金字塔的第k(kK)个尺度上,ILIR首先要以2k的比率进行下采样得到ILkIRk。然后根据前一个尺度上采样得到的视差图对IRk进行warp操作,获得合成(重构)的左图:

ILk(x,y)¯=IRk(xu(dk+1)(x,y),y)
误差图ek=|ILkILk¯|对于学习残差图是一种启发式的几何线索。当考虑HEDβ时,聚合边缘通道特征和边缘图也要被级联到Ak中。
  以聚合图作为输入,每个估计分支包括四个3*3的卷积层。每个卷积层都跟随一个ReLU层,除了只有一个输出通道的最后一个卷积层之外。BK(视差块)的输出是dK,其他的输出都是rkrk和由前一尺度上采样得到的视差图之和为k尺度下的优化视差图:
dk=u(dk+1)+rk,0kK

  深度监督的L1损失函数深度监督可以有助于稳定训练并改善效果,所以我们计算了每个尺度下的视差估计和真实视差值之间的l1损失。在第k个尺度上,令gtk表示经过比率为2k的下采样的真实视差图,hkwk分别对应高和宽。每个尺度下的损失权重αk设定为1,因此深度监督的l1损失函数表示为:
L1total=k=0Kαk(xk,yk)dk1hk×wk|dk(xk,yk)gtk(xk,yk)|

3.2 EdgeStereo

  边缘检测网络HEDβ。考虑到边缘图通常是从中间表征中学习到的,因此这些中间特征对于学习细节非常有帮助。相对于传统的检测器,基于FCN的HED输出的是更具语义信息的边缘图。然而从HED中获得充足的边缘通道特征并非易事。Mao等人增加了更多的卷积层,但丢弃了每一个分支的输出。他们对每个输出都聚合了多级别的特征图。采用这种方法,边缘检测变得非常敏感,因为深度监督并未应用到训练过程中。不仅如此,粗糙的特征聚合可能会导致收敛困难。
  只有在输出的边缘图具有鲁棒性的情况下,才能得到有意义的边缘通道特征。因此HED的主要结构被保留下来。我们的HEDβ网络结构是VGG-16的主体部分,由conv1_1到conv5_3,并由ImageNet进行预训练。我们分别从conv1_2,conv2_2,conv3_3,conv4_3和conv5_3层中设计了五个分支。每个分支都包含两个通道数为64的3*3卷积层和一个1*1的卷积层,输出边缘概率图。最后五个边缘概率图通过一个1*1的卷积层融合起来,获得最终的边缘图。
  为了训练HEDβ,我们采用了深度监督,所有的分支和最终的融合层都进行监督。我们使用的是一个改造过的类平衡(class-balanced)交叉熵损失函数,称为“Annotator-robust Loss Function”。
CP-RPN和HEDβ之间的相互作用。在EdgeStereo中,这两个网络的相互作用是双重的:
  首先,我们从HEDβ中构建了共享的边缘通道特征。我们将每个侧边分支的反卷积层得到的所有特征图都级联起来。然后对这个级联层用一个128通道的1*1卷积层卷积,得到一个聚合的边缘通道特征,用aec表示。我们相信中间级别的聚合和边缘通道特征编码了细节表征和语义特征,并且没有丢失太多的信息。
  通过共享aec,CP-RPN能够从具有语义价值的边缘表征中获益。aec和CP-RPN在局部立体卷和残差金字塔中都相互影响。首先,aec与匹配代价卷和一元特征图级联在一起构成了一个新的局部立体卷。其次,我们对aec提出一种多尺度的级联方法。对于残差金字塔中的第k个尺度,aec先用上面提到的可微分的插值层进行下采样,比率为2k,然后再用1*1的卷积核卷积,得到一个下采样的简化的边缘通道特征,用aeck表示。aeck(0k6)的通道数为{16,16,32,48,64,96,128}。最后,每个aeck都级联到聚合层Ak的对应尺度上,以帮助学习视差图和残差图。
  我们利用HEDβ的输出对视差估计进行规则化处理。复杂的调整方法是基于边缘保持的思想的,但是手工指定的惩罚函数不具备鲁棒性。我们直接将边缘图输入到CP-RPN中,来帮助学习平滑规则化。HEDβ输出的边缘图被下采样到7个尺寸。每个下采样曾都被级联到残差金字塔对应的尺度聚合层中。
  多级训练策略。为了实现Edge Stereo的多任务学习,我们提出一种多级训练策略,将训练周期分成三个阶段。
  在第一阶段,只有HEDβ在一个边缘检测数据集上进行训练。预先在ImageNet上进行训练的VGG-16主体部分的卷积层参数锁定。在第二阶段,我们固定了VGG-16主体部分(conv1_1到conv5_3)和HEDβ网络的权重,然后再立体匹配数据集上训练EdgeStereo。第三阶段,EdgeStereo中的所有层都在同一个立体匹配数据集上做优化训练。深度监督l1损失函数应用在第二和第三阶段。

4.实验

4.2立体匹配任务消融实验

  在这一节,我们将在SceneFlow数据集上进行消融实验来证明我们设计的效果。我们选择单级模型DispFulNet作为基准模型。所有的实验结果见表1。
论文阅读笔记《EdgeStereo:A Context Integrated Residual Pyramid Network for Stereo Matching》
表1.不同的设定条件下的视察估计网络在Scene Flow数据集上的实验结果,LSV表示局部立体卷
  局部立体卷的提取。为了证明他的有效性,我们将DispFulNet网络中的医院特征提取部分换成我们的提取网络,3像素误差由8.61%降低到6.83%。然后,我们对一元特征和粗糙相关性的级联结果进行1*1的卷积构成我们的LSV,3像素误差进一步下降到6.70%。这是因为,从我们的特征提取网络中能获得更多具有语义信息的特征,1*1的卷积能够将局部语义表征和局部匹配分布完整的融合在一起。
  环境金字塔首先,我们选择一个环境金字塔(P-2_4_8_16),然后训练一个模型,包括我们的局部特征卷,选择的环境金字塔和DispFullNet的编码和解码结构。与没有环境金字塔的模型相比,3像素误差由6.70%下降到5.95%。如表1所示,选择其他环境金字塔可以进一步降低3像素误差。因此我们认为多尺度环境信息对于稠密的视差估计是很有帮助的。
  编码解码结构我们使用和DispFulNet相同的编码器,而解码器采用我们的残差金字塔。为了证明他的有效性,我们训练了一个模型,它包括我们的局部立体卷提取网络和我们的编码解码结构。与DispFulNet中的编码解码结构相比,3像素误差由6.70%下降到5.96%。这证明直接在每个尺度上回归视差不如我们的多尺度残差学习方式。
  最后,我们训练了一个CP-RPN模型,包括我们的局部立体卷,环境金字塔P-2_4_8_16和我们的编码解码结构。得到的3像素误差为5.33%,EPE为1.15,比基准模型下降了3.28%/0.60。
  不同环境金字塔之间的比较,为了比较,我们训练了带有不同环境金字塔的CP-RPN。三个卷积金字塔的表现不好,与不带环境金字塔的结构相比,3像素误差分别只下降了0.11%,0.26%和0.17%。较大的空洞卷积表现更差。D-24_18_12_6的3像素误差为5.88%,而D-12_9_6_3下降到5.52%。P-2_4_8_16的表现最好达到了5.33%。
  与多级优化结构相比。我们单级模型CP-RPN的优越性已经得到证明。首先我们与三级优化结构DRR相比,我们用DispFulNet中的编码解码结构代替我们的编码解码结构,然后级联三个额外的优化网络(和DRR中一样)。可以看到,CP-RPN的表现提高了0.15%,并且速度快了2.3倍。然后我们与两级网络CRL相比,我们用CRL的视差网络和优化网络代替我们的编码解码结构。他的表现和我们的CP-RPN相同,但我们的速度更快且参数更少。
  从边缘检测中的获益。当视差网络和边缘检测网络HEDβ结合到一起时,表现有进一步改善了。我们对多个视差模型结合HEDβ进行实验。可以看到所有模型的表现都得到提高。最终我们采用表现最好的CP-RPN(带有P-2_4_8_16环境金字塔)结合HEDβ结构作为我们的EdgeStereo模型。

与其他立体匹配模型相比

论文阅读笔记《EdgeStereo:A Context Integrated Residual Pyramid Network for Stereo Matching》
表2.不同立体匹配算法在Scene Flow数据集上的结果比较
论文阅读笔记《EdgeStereo:A Context Integrated Residual Pyramid Network for Stereo Matching》
表3.KITTI2015数据集上的结果
论文阅读笔记《EdgeStereo:A Context Integrated Residual Pyramid Network for Stereo Matching》
图4.不同结构的立体匹配算法在Scene Flow数据集上的比较,红框里,EdgeStereo得到了最准确的视差估计

5. 结论

  在这篇论文中,我们首次提出一个单级立体匹配网络CP-RPN,其中嵌入了多尺度的环境信息,并且立体匹配流程中的所有步骤都整合起来进行联合优化。接下来我们将我们的CP-RPN与边缘检测网络HEDβ结合起来构成一个多任务结构EdgeStereo。实验结果证明本文提出的EdgeStereo在公共数据集上具有优异的表现,边缘检测任务和立体匹配任务在多任务学习之后表现都有提高。

原文链接: http://xueshu.baidu.com/s?wd=paperuri%3A%28708fbffbeeff13c06017e1914f821e93%29&filter=sc_long_sign&tn=SE_xueshusource_2kduw22v&sc_vurl=http%3A%2F%2Farxiv.org%2Fabs%2F1803.05196&ie=utf-8&sc_us=7633813509239237109
代码链接:未开源