一种新的基于可学习的双边网格的代价空间上采样模块

描述

高精度的实时立体匹配网络是时下研究的一个热点,它在自动驾驶、机器人导航和增强现实等领域中有着广泛的应用。虽然近年来对立体匹配网络的研究已经取得了显著的成果,但要同时兼顾实时性和高精度仍然是一个挑战。现有的高精度立体匹配网络,通常需要在较高的分辨率建立代价空间。比如,GANet在1/3分辨率建立代价空间,PSMNet在1/4分辨率,但这会影响网络的效率(GANet处理一对1242×375的图像,需要1.8s,PSMNet需要0.41s)。

本文的动机是期望寻求一种解决方案:用高分辨率代价空间预测视差图,以保持高的精度,同时要保持高的计算效率。

[CVPR 2021] Bilateral Grid Learning for Stereo Matching Networks

徐彬1,徐玉华1,2,*,杨晓立1,贾伟2,郭裕兰3

( 1奥比中光,2合肥工业大学,3国防科技大学)

论文链接: https://arxiv.org/pdf/2101.01601.pdf

代码开源: https://github.com/3DCVdeveloper/BGNet

1.创新点

(1)本文提出一种新的基于可学习的双边网格的代价空间上采样模块(Cost volume Upsampling in the learned Bilateral Grid, CUBG)。基于这个具有边缘保持特性的上采样模块,通过无参数的切片层(slicing layer)可以高效地从低分辨率的代价空间获得高质量的高分辨率代价空间。这样,费时的代价聚合只需要在低分辨率执行。该模块能够无缝嵌入到许多现有的立体匹配网络(如GCNet,PSMNet,GANet等)中,在保持相当精度的条件下取得4-29倍的加速。据我们所知,这是可微双边网格首次在立体匹配网络中的应用。

(2)基于本文提出的代价空间上采样模块,我们设计了一个高精度的实时立体匹配网络(称为BGNet),该网络在KITTI数据集的分辨率下能够达到39fps,且精度超过了之前所有实时立体匹配网络。

2. 相关工作

基于深度学习的立体匹配网络研究已经持续了很多年。MC-CNN [1]首次使用卷积神经网络(CNN)来计算两个图像块之间的匹配代价,但后续步骤(如代价聚合、视差后处理等)仍然使用传统方法。DispNetC [2]是第一个端到端的立体匹配网络,后续的工作引入了残差优化模块,对网络预测的视差图做一步的优化。GCNet [6]首次使用3D卷积学习构建4D代价空间,并使用soft argmin操作进行视差回归。

基于3D卷积的立体匹配网络在各大数据集榜单上都取得了很好的结果,但是 3D卷积比2D卷积计算量大的多,现有的基于3D卷积的实时立体匹配网络[7, 8]都是对低分辨率代价空间进行代价聚合,得到低分辨率的视差图,然后对视差图进行逐级上采样和优化,这种策略不如使用高分辨率代价空间计算视差图的方法精度高。

我们的工作受到双边网格[9]的启发。双边网格最早用于加速双边滤波器,主要包含三个步骤,即splat,blur和slice。splat操作对图像进行下采样构建双边网格,blur操作对双边网格进行平滑滤波,最后通过slice操作将滤波后的双边网格上采样到高分辨率。slice操作主要涉及在高分辨率引导图的指引下进行线性插值,因此其计算是非常高效的。

3. 方法描述

双边网格代价空间上采样

本文采用的思路是使用3D卷积在低分辨率构建双边网格代价空间,并通过提出的上采样模块(CUBG)得到高质量的高分辨率代价空间,在高分辨率代价空间进行视差回归。

如图1所示,CUBG模块的输入是一个低分辨率的代价空间和高分辨率的图像特征,输出是高分辨率的代价空间,该模块包含双边网格的生成和slicing上采样操作。

给定一个维度为 的低分辨率的代价空间。其中, 分别表示图像宽度,图像高度,视差范围和特征通道数。我们使用一个3*3*3的3D卷积完成向双边网格的转换,其中的维度为 , 为引导特征的通道数。

为了得到维度为 的三维高分辨率的代价空间(其中 和 分别是图像宽度和高度, 是给定的最大视差值),我用双边网络中的slicing操作进行上采样。slicing操作一种基于引导图的无参数插值算法。slicing的操作可以表示为公式(1):

卷积神经网络

其中为低分辨率代价空间相对于高分辨率代价空间的宽度或者高度比例, 是生成的引导图特征,范围为[0,255]。不同于双边网格[9]原文,我们的双边网格是从低分辨率的代价空间中学习得到的。在本文的所有试验,我们设置双边网格的维度为 。

嵌入式模块

CUBG模块可以无缝嵌入到许多现有的立体匹配网络结构中。在本文中,我把CUBG模块嵌入到四种具有代表性的网络,分别是GCNet, PSMNet, GANet和DeepPrunerFast。嵌入后的模型用后缀BG表示。比如,GCNet-BG表示在GCNet中嵌入了CUBG模块后的网络结构。

对于前三种网络结构,我们分别在1/8, 1/8, 1/6分辨率上重新建立代价空间,然后用CUBG模块把滤波后的代价空间分别上采样到1/2, 1/4和1/3分辨率。对于DeepPrunerFast,类似PatchMatch的视差上、下界估计模块和窄代价空间被1/8分辨率的完整的代价空间所代替。然后,用CUBG把滤波后的代价空间上采样到1/2分辨率。网络其余的结构都保持不变。

BGNet

基于CUBG模块,我们设计了一个高精度实时立体匹配网络。该网络主要包含四个模块:特征提取,代价空间聚合,代价空间上采样和残差优化模块。在不使用残差优化的情况下(对应BGNet),对于KITTI分辨率,速度为39fps。使用残差优化时(对应BGNet+),速度为30fps。

4.实验结果

消融实验

为了验证所提出CUBG上采样模块的有效性,我们在SceneFlow、Middlebury 2014数据集上进行了消融实验。可见无论是在合成数据集还是在真实数据集上,CUBG都优于线性插值上采样(LU)。尤其是在深度边缘附近区域,CUBG优势更加明显(EPE-edge)。

编辑:jq

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分