多维注意力特征聚合立体匹配算法

2022-08-01 01:42张亚茹孔雅婷
自动化学报 2022年7期
关键词:视差沙漏代价

张亚茹 孔雅婷 刘 彬

计算两个输入图像上对应像素的相对水平立体匹配对于理解或重建3D 场景至关重要,广泛应用于自动驾驶[1]、无人机[2]、医学成像和机器人智能控制等领域.通常,给定一对校正后的图像,立体匹配的目标是位移,即视差.

近年来,基于深度学习的立体匹配算法研究已取得重大进展,相比传统方法[3−4],可从原始数据理解语义信息,在精度和速度方面有着显著优势.早期基于深度学习的方法[5−6]是经卷积神经网络(Convolutional neural network,CNN)获得一维特征相关性度量之后,采用一系列传统的后处理操作预测最终视差,无法端到端网络训练.随着全卷积神经网络(Fully convolutional networks,FCN)的发展[7],研究者们提出了将端到端网络整合到立体匹配模型中[8−16].对于全卷积深度学习立体匹配网络,PSMNet[17]提出一种空间金字塔池化模块,扩大深层特征感受野,提取不同尺度和位置的上下文信息.CFPNet[18]在金字塔模块基础上引入扩张卷积和全局平均池化扩大感受野,使其更有效地感知全局上下文信息.MSFNet[19]利用多尺度特征模块,通过级联融合不同层级的特征捕获细节和语义特征.除了以上对特征提取网络的研究之外,在代价聚合中,第一个端到端视差估计网络DispNet[20]提出沿视差方向计算一维相关性的匹配代价计算方法.由于仅沿着一个维度计算相关性,损失了其余多个维度的有效信息,因此为了更好地利用多维度的上下文语义特征,Kendall 等[21]提出了GC-Net,通过采用3D 编解码结构在三个维度上理解全局语义信息.受GC-Net启发,众多学者提出了多种变体来正则化代价体,建模匹配过程,例如,结合2D 和3D 卷积运算的多维聚合子网络[22]、多尺度残差3D 卷积模块[23]、堆叠3D 沙漏结构[17,24]等.尽管上述方法在视差估计中已取得长足进步,但在网络学习推理过程中,图像特征和代价体特征的多层级多模块交互利用仍存在不足,缺乏全局网络信息的长距离依赖,导致网络不具有敏锐的鉴别性能,准确估计视差依然极具挑战性.

随着注意力机制在多种研究任务,如语义分割[25]、自然语言处理[26]、超分辨率[27]等方面的广泛应用,注意力机制在立体匹配网络中引起了关注[28−30].其中,基于SE-Net[31]的扩张空间金字塔注意力模块[28]虽然采用降维减小了计算成本,但是降维的同时导致特征通道与其权重之间的对应是间接的,降低了通道注意力的学习能力.MRDA-Net[30]只在2D 特征提取网络末端和3D 编解码网络末端引入单一池化3D 注意力模块来整合全局信息,无法做到多模块信息交互,导致网络获取显著信息不充分.综上,由于2D 图像特征为3D 张量,3D 代价体特征为四维张量,两者之间的维度差异使常规注意力方法无法同时应用于特征提取与代价聚合这两个子模块中,注意力机制在立体匹配网络中应用较少、方式单一,从而整个立体匹配网络缺乏有效协同的注意力机制,对长距离上下文信息无法做到多模块多层级关注.

考虑上述问题,本文在Gwc-Net[24]的基础上提出一种多维注意力特征聚合立体匹配算法,通过对特征提取和代价聚合两个子模块设计不同的注意力方法,从多模块多层级的角度去理解关注整个网络传输过程中的上下文信息.设计2D 注意力残差模块,使用无降维自适应2D 通道注意力,逐像素提取和融合更全面有效的信息特征,学习局部跨通道间的相关性,自适应关注通道间的区别信息.提出3D注意力沙漏聚合模块,利用3D 平均池化和3D最大池化构建3D 通道注意力,将其嵌入多个子编解码块的末端,重新校准来自不同模块的多个代价体,整合多模块输出单元计算匹配代价.

1 多维注意力特征聚合立体匹配算法

所提算法主要包括2D 注意力残差模块,联合代价体,3D 注意力沙漏聚合模块.算法网络结构如图1 所示.2D 注意力残差模块对输入左图像Il和右图像Ir进行特征提取,将提取的特征用于构建联合代价体,采用3D 注意力沙漏聚合模块计算匹配代价,最终通过视差回归函数输出预测视差.

1.1 2D 注意力残差模块

为保留网络的低级结构特征以提取左右图像的细节信息,首先构建3 个卷积核尺寸为3×3 的滤波器获取浅层特征,输出特征图尺寸为1/2H ×1/2W×32.然后,采用基本残差块conv1_x,conv2_x,conv3_x 和conv4_x 逐像素提取深层语义信息.其中,conv1_x,conv2_x,conv3_x 和conv4_x 包含的基本残差单元个数分别为3,16,3 和3.每个残差块由两个卷积核尺寸为3 × 3 的2D 卷积、批归一化(Batch normalization,BN) 层和线性整流(Rectified linear unit,ReLU)激活层组成[17].级联conv2_x,conv3_x 和conv4_x,融合低级结构信息和高级语义信息,构建尺寸为1/4H ×1/4W ×320的特征表示.该模块共53 层,输出左特征图Fl和右特征图Fr的尺寸均为 1/4H ×1/4W ×320,具体参数设置如表1 所示.

表1 2D 注意力残差单元和联合代价体的参数设置(D 表示最大视差,默认步长为1)Table 1 Parameter setting of the 2D attention residual unit and combined cost volume (D represents the maximum disparity.The default stride is 1)

PSMNet[17]在特征提取过程中只采用单路径卷积方式,没有对提取的特征进一步整合和交互,缺乏信息之间的长距离依赖.为自适应地增强特征表示,在残差块中引入通道注意力,强调重要特征并抑制不必要特征.这种机制对每一通道赋予从0 到1 的不同权值,代表各个通道的重要程度,使得网络可以区别不同对象的特征图.在之前的工作中,通道注意力大多采用SE-Net,通过两次全连接层缩放所有特征图的通道维度.然而,缩放特征通道数量虽然在整合信息过程中大大减小了计算量,但是降维的同时导致特征通道与其权重之间的对应是间接的,降低了通道注意力的学习能力.

因此在SE-Net[31]的基础上,设计无降维的注意力,去除缩放通道[32].鉴于无降维会增加计算复杂度,且通道特征具有一定的局部周期性,本文构造无降维局部跨通道注意力,在无降维的基础上,通过局部约束计算通道之间的依赖关系,并将其注意力嵌入每个残差块.参照文献[30],通道注意力是针对2D 图像特征的长和宽进行的2D 卷积滤波操作,因此命名为2D 注意力.2D 注意力残差单元结构如图2 所示.

图2 2D 注意力残差单元结构图Fig.2 2D attention residual unit architecture

设2D 注意力输入特征图为H∈RH×W×C,在不降低通道维数的情况下,执行全局平均池化和卷积核尺寸为 1×1×k的一维(One-dimensional,1D)卷积.其中卷积核大小为k的1D 卷积用来计算每个通道与其k个邻域间的相互作用,k表示局部跨通道间的覆盖范围,即有多少邻域参与一个通道的注意力预测.k的大小可以通过一个与特征图通道个数C相关的函数自适应确定.为进一步降低模型复杂度,所有通道共享相同的权值,该过程通过快速的1D 卷积实现.上述过程可表述为

式中,zavg是经2D 全局平均池化生成的特征图,zavg∈R1×1×C;f1D是卷积核尺寸为 1×1×k的1D卷积;s表示使用1D 卷积为各通道权重赋值后的张量,s∈R1×1×C;φ表示k和C之间的映射关系;|p|odd表示p的相邻最近奇数.

将具有不同通道权重的特征张量通过sigmoid激活函数归一化处理,并与输入特征图的通道对应乘积,实现对特征图自适应地重新校准

式中,σ表示sigmoid 激活函数;Hˆ 表示2D 注意力的输出特征图,∈RH×W×C.

1.2 联合代价体

代价计算通常是计算1D 相似性或者通过移位级联构建代价体,前者损耗信息多,后者计算成本高.因此,构建联合代价体Fcom,由分组关联代价体分量Fgc和降维级联代价体分量Fcat构成,其中Fgc和Fcat分别提供一维相似性度量和丰富的空间语义信息.联合代价体结构如图3 所示.首先,将包含320 个通道的左特征图Fl和右特征图Fr沿特征维度等分为n组,即每个特征组有 320/n个通道.根据Gwc-Net[24]表明网络的性能随着组数的增加而增加,且考虑到内存使用量和计算成本,故设置为n40.

图3 联合代价体结构图Fig.3 Combined cost volume architecture

式中,〈·,·〉表示点积运算;和分别表示第i组的左特征图和右特征图.

针对代价体相比图像特征具有更多维度这一属性,对提取的左右特征图降维以减少内存占用.分别对输出尺寸均为 1/4H ×1/4W ×320 的左特征图Fl和右特征图Fr依次执行卷积核尺寸为3×3 和1×1 的2D 卷积操作,得到具有12 个特征维度的左特征图和右特征图进而级联获得降维级联代价体分量,其通道维度为24.

式中,{·,·} 表示级联操作.

最后,将Fgc和Fcat沿着通道维度堆叠形成尺寸为 1/4D×1/4H ×1/4W ×64的Fcom.联合代价体的参数设置如表1 所示.

1.3 3D 注意力沙漏聚合模块

堆叠3D 沙漏模块与Gwc-Net[24]相同,包含1个预处理结构和3 个3D 注意力沙漏结构,以捕获不同尺度的上下文信息.3D 注意力沙漏聚合模块结构如图4 所示.其中,预处理结构由4 个卷积核为3×3×3 的3D 卷积层组成用于提取低级特征,并为最终视差预测提供细节信息,作为视差图的几何约束.对于沙漏结构,在编码部分执行4 次卷积核为3×3×3 的3D 卷积,在每一个步长为1 的3D 卷积层后紧接一个步长为2 的3D 卷积层进行下采样操作,降低特征图分辨率的同时将通道数翻倍.由于编码部分共两次下采样,在解码部分相应执行两次上采样即两次卷积核为3×3×3 的3D 反卷积操作以恢复分辨率,同时特征通道数减半,并将第2个反卷积层的输出与编码器中同分辨率的特征级联.此外,使用卷积核为1×1×1 的3D 卷积将预处理结构和沙漏结构直连,减少网络计算参数.网络包括Output0,Output1,Output2 和Output3 共4 个输出单元,每一个输出单元执行两次卷积核为3×3×3 的3D 卷积,并应用三线性插值恢复与输入图像大小相同的分辨率H ×W ×D.

图4 3D 注意力沙漏聚合模块结构图Fig.4 3D attention hourglass aggregation module architecture

以往基于CNN 的代价聚合算法[17,24]并未对代价体的通道信息进行多模块多层级关注,无法有效利用和整合传输信息中的有效特征,导致网络缺乏选择性鉴别信息特征和关注显著特征的能力.此外,代价聚合与特征提取中的特征维度存在差异,使用特征提取模块中的无降维注意力增大代价体聚合的计算成本.因此,我们针对代价体特征的属性,扩展通道注意力机制,在堆叠3D 沙漏结构[24]的基础上,对3D 代价体特征的长、宽和深度共3 个维度进行3D 卷积滤波,计算不同通道之间的相互依赖性.为了区分特征提取模块中的2D 注意力,我们命名为3D 注意力.3D 注意力沙漏单元结构如图5 所示,沿着通道维度推断3D 注意力特征图,与输入代价体相乘,细化代价体特征.

图5 3D 注意力沙漏单元结构图Fig.5 3D attention hourglass unit architecture

由于3D 卷积滤波器具有感受局部视野的特性,难以有效利用局部区域以外的上下文信息,因此采用3D 全局平均池化整合全局空间信息.与文献[30]不同,本文不仅使用3D 全局平均池化,而且使用3D 最大池化编码特征图,通过两种池化方式进一步区别对象的显著特征.设3D 注意力单元输入代价体为X∈RD×W×H×C,首先在同一层级分别执行3D 平均池化和3D 最大池化获得两个尺寸为D×1×1×C的代价体特征图.其次,相比2D图像特征对应的3D 张量,代价体为四维张量,故为了减少参数数量,降低计算负担,采用卷积核尺寸为1×1×1 的3D 卷积来整合所有通道间的信息,压缩特征维度为C/16,再次执行同卷积核尺寸的3D卷积,将特征维度恢复至C.上述过程可表示为

1.4 损失函数

所提算法的输出分别为Output0,Output1,Output2 和Output3,对应的损失为Loss0,Loss1,Loss2 和Loss3.在训练阶段,总损失为4 个损失的加权总和.在测试阶段,最终输出为Output3,损失为Loss3.视差估计采用GC-Net[17]提出的softargmin 方法,将每个像素i的视差值与相应的概率pi乘积求和获得预测视差

式中,Dmax表示特征图的最大视差值.

最终的损失函数定义为

2 实验及结果分析

本文在公开数据集SceneFlow[20],KITTI2015[33]和KITTI2012[34]上进行实验分析,并使用EPE(End-point-error)和D1 等评价指标对所提算法进行评估.其中,EPE 表示估计的视差值与真实值之间的平均欧氏距离;D1 表示以左图为参考图像预测的视差错误像素百分比.

2.1 数据集与实验细节

所提算法应用PyTorch 深度学习框架实现,在单个Nvidia 2080Ti GPU 上进行训练和测试,且设置批次大小为2.采用Adam 优化器且设置β10.9,β20.999.在训练阶段,随机将图像大小裁剪为256×512.使用的数据集如下:

1) SceneFlow 数据集.是一个具有室内和室外场景的大型综合数据集,包含35 454 幅训练图像对和4 370 幅测试图像对.本文使用SceneFlow 数据集的子数据集Flyingthings3D,其中,训练图像对提供精细且密集的真值图.图像的分辨率为540×960,最大视差为192.使用完整的数据集从头训练该模型,以学习率0.001 训练10 个周期.训练过程大约花费56 小时,训练的模型直接用于测试.

2) KITTI2015 数据集.是一个室外驾驶真实场景数据集.该数据集较小,包含200 幅训练图像对和200 幅测试图像对.其中,训练图像对提供LiDAR 获得的稀疏真值视差图,测试图像对不提供真值视差图.图像的分辨率为375×1 242 像素,最大视差为128.整个训练图像对被随机分成训练集(80%)和验证集(20%).使用SceneFlow 数据集预训练的模型在KITTI2015 上微调300 个周期,设置恒定学习率为 1×10−4,微调过程大约花费20 小时.

3) KITTI2012 数据集.与KITTI2015 类似,KITTI2012 数据集只具有室外驾驶场景,包含194 幅训练图像对和195 幅测试图像对,提供训练图像对的稀疏真值视差图.其微调过程与KITTI2015 数据集一致.

2.2 超参数分析

本文分别在KITTI2012 和KITTI2015 数据集上对立体匹配网络进行消融实验,定量评估2D 注意力残差模块、3D 注意力沙漏聚合模块、联合代价体以及损失函数权重对立体匹配性能的影响.

1)验证2D 注意力残差模块的有效性本文在不含3D 注意力单元的情况下,比较4种2D 注意力的变体:无2D 注意力的残差网络,具有最大池化层的降维2D 注意力,具有平均池化层的降维2D 注意力[31]和无降维自适应2D 注意力.表2 给出了在KITTI2015 数据集上2D 注意力残差模块在不同设置下的性能评估结果,其中“>[n] px”表示EPE 大于n时的像素百分比,“ ✓ ”表示模块使用该结构.由表2 可知,未添加2D 注意力时EPE 值仅为0.631,错误率明显高于其他3 种方法,无降维自适应2D 注意力EPE 值可达0.615,性能优于分别具有最大池化层和平均池化层的降维2D注意力.实验结果表明,所提出的2D 注意力残差模块性能最优,通过保持维度一致和局部跨通道间的信息交互,有效提高了网络注意力,有助于立体匹配任务降低预测视差误差.

表2 2D 注意力残差模块在不同设置下的性能评估Table 2 Performance evaluation of 2D attention residual module with different settings

2)验证3D 注意力沙漏聚合模块的有效性

本文在2D 注意力残差模块的基础上,比较4种3D 注意力的变体:无3D 注意力的原始沙漏聚合模块,具有3D 最大池化层的3D 注意力,具有3D平均池化层的3D 注意力和同时使用两种池化方式的3D 注意力.表3 给出了在KITTI2012 和KITTI2015 数据集上3D 注意力沙漏聚合模块在不同设置下的性能评估.由表3 可知,加入3D 注意力后,算法的D1-all 和EPE 值都明显降低,证明具有3D注意力的沙漏聚合模块优于原始沙漏聚合模块.具有两种池化方式的3D 注意力沙漏聚合模块在KITTI2012 和KITTI2015 数据集上EPE 值分别达到0.654 和0.589,其性能明显优于仅含单一池化的3D 注意力沙漏聚合模块.实验结果表明,本文不能忽略3D 最大池化的重要性,其与3D 平均池化一样有意义,将两种池化方式结合可帮助立体匹配任务更多样地获取上下文信息.

表3 联合代价体和3D 注意力沙漏聚合模块在不同设置下的性能评估Table 3 Evaluation of 3D attention hourglass aggregation module and combined cost volume with different settings

3)验证联合代价体的有效性

此外,鉴于联合代价体是特征提取与代价聚合之间的枢纽,本文将联合代价体与PSMNet[17]的级联代价体进行对比,表3 给出了在KITTI2012 和KITTI2015 数据集上联合代价体在不同设置下的性能评估.从表中可以看出,联合代价体相比PSMNet[17]的级联代价体,增加了相关代价体分量的引导,对于多维注意力聚合特征的性能产生了积极的作用,整个网络结构相辅相成.

4)验证不同损失函数权重对网络的影响

由于3D 聚合网络有4 个输出单元,因此损失函数权重对网络的影响也至关重要.本文将损失权重以λ1,λ2,λ3,λ4的顺序设置,如图6 所示.当λ10.5,λ20.5,λ30.7,λ41.0时,越接近网络末端的损失计算对网络训练越重要,同时网络其余子编码块的输出也对网络的性能起着辅助训练的作用,使整个网络从前到后都能得到有效的误差回传,多个子编码块的输出保证了网络的均衡训练.

图6 损失函数权重对网络的影响Fig.6 The influence of the weight of loss function on network performance

2.3 与其他方法的性能比较与分析

为进一步验证算法有效性,在SceneFlow 数据集上将所提方法与其他方法进行比较,包括Gwc-Net[24],PSMNet[17],MCA-Net[29],CRL[35]和GCNet[21].定量评估结果如表4 所示,其中px 表示像素.所提算法在SceneFlow 数据集上的EPE 值均低于其他5 种算法,其中,与Gwc-Net 相比EPE 降低了0.055,与PSMNet 相比EPE 降低了0.28.此外,图7 显示了在SceneFlow 数据集上的视差评估结果,其中图7(c) Gwc-Net 表示不包含多维注意力的算法.由图7 中标注的小方框可看出,具有多维注意力的算法能更有效地提取不同对象的显著变化特征.因此所提算法能够为主体对象的显著特征分配更高的响应值,提高网络的学习推理能力,实现比未添加注意力时更精细的视差图.

图7 SceneFlow 视差估计结果Fig.7 Results of disparity estimation on SceneFlow dataset

表4 不同算法在SceneFlow 数据集上的性能评估Table 4 Performance evaluation of different methods on the SceneFlow dataset

表5 反映了在KITTI2015 数据集上本文算法与DispNetC[20],MC-CNN-art[36],CRL[35],PDSNet[37],GC-Net[21]和PSMNet[17]的定量评估结果.其中,“All”表示所有区域像素,“Noc”表示仅非遮挡区域的像素.本文分别在背景区域(bg)、前景区域(fg)和所有区域内(all)计算评价指标D1 值.由表5 可知,所提算法在所有区域和非遮挡区域的D1-bg、D1-fg 和D1-all 值都低于其他方法.特别是在非遮挡部分,相比于PSMNet[17],前景区域D1-fg值减小了0.23,远远大于背景区域D1-bg 的减小值0.07,而且,所有区域D1-all 值也减小了0.08,说明所提算法对于非遮挡区域显著对象的预测精度具有明显提升,在整体视差预测方面具有优越的性能.图8 显示了在KITTI2015 数据集上视差估计结果.由图可知,在处理重复图案区域中(如栅栏、道路)匹配效果较好,而且保留了对象的显著信息(如车辆、电线杆和树干的边缘区域).大的弱纹理区域(如天空)和被遮挡区域中由于没有可用于正确匹配的特征,将存在很多噪声.实验结果表明,多维注意力通过聚集丰富的匹配信息可有效鉴别不同对象的显著特征,提取更全面有效的特征,降低匹配误差.

图8 KITTI2015 视差估计结果Fig.8 Results of disparity estimation on KITTI2015 dataset

表5 不同算法在KITTI2015 上的性能评估 (%)Table 5 Performance evaluation of different methods on the KITTI2015 dataset (%)

在KITTI2012 数据集上的性能评估与KITTI2015 类似.表6 反映了在KITTI2012 数据集上本文算法与DispNetC[20]、MC-CNN-acrt[36]、GCNet[21]、SegStereo[11]和PSMNet[17]的定量评估结果.由表6 可知,本文算法与其他几种算法相比,在无遮挡区域和所有区域中,大于3 像素和大于5 像素的误差值均最低,其中,无遮挡区域分别为1.46 和0.81;所有区域分别为1.73 和0.90,再次证明基于多维注意力特征聚合的立体匹配网络在无遮挡区域和所有区域中视差预测的有效性和可行性.图9 显示了在KITTI2012 数据集上视差估计结果,由图中标注的方框可看出本文算法在显著对象(如围栏,车辆)方面视差预测结果较好,且不受光线变化的影响.此外,从图9 第1 行最后一列的黄框可以看出,尤其是对于墙壁这类很显著平滑的对象,虽然KITTI2012 数据集中真值视差图的稀疏性导致训练的网络模型对于树木的视差预测精度不高,但相比Gwc-Net,本文算法预测的墙壁没有和树木混淆,符合墙壁的属性.实验结果表明,本文算法具有良好的泛化性,多维注意力的引入提高了网络的学习能力,可有效鉴别无遮挡对象的显著特征,提高视差预测精度.

图9 KITTI2012 视差估计结果Fig.9 Results of disparity estimation on KITTI2012 dataset

表6 不同算法在KITTI2012 上的性能评估 (%)Table 6 Performance evaluation of different methods on the KITTI2012 dataset (%)

3 结束语

本文提出了一种多维注意力特征聚合立体匹配算法,以多模块及多层级的嵌入方式协同两种不同维度的注意力单元.2D 注意力残差模块在原始残差网络基础上引入自适应无降维2D 通道注意力,理解局部跨通道间的相互依赖性,保留显著细节特征,为代价聚合过程提供了全面有效的相似性度量.3D 注意力沙漏聚合模块在多个沙漏结构的基础上嵌入双重池化3D 注意力单元,捕获多尺度上下文信息,有效提高了网络的聚合能力.2D 注意力和3D注意力之间相辅相成,对整个网络的权重修正,误差回传都起到了积极的作用.在3 个公开数据集上的实验结果表明,所提算法不仅具有较高的预测精度,而且可以敏锐地鉴别推理无遮挡区域中主体对象的显著性特性.

猜你喜欢
视差沙漏代价
测量时间
基于自适应窗的立体相机视差图优化方法研究
视差边缘优化的SGM 密集深度估计算法∗
Kobe—one of the greatest basketball players
有趣的沙漏
爱的代价
DIY装饰沙漏
幸灾乐祸的代价
DIY装饰沙漏
代价