
多维注意力特征聚合立体匹配算法
计算两个输入图像上对应像素的相对水平立体匹配对于理解或重建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注意力残差模块对输入左图像
1.1 2D注意力残差模块
为保留网络的低级结构特征以提取左右图像的细节信息, 首先构建3个卷积核尺寸为3×3的滤波器获取浅层特征, 输出特征图尺寸为
PSMNet[17]在特征提取过程中只采用单路径卷积方式, 没有对提取的特征进一步整合和交互, 缺乏信息之间的长距离依赖. 为自适应地增强特征表示, 在残差块中引入通道注意力, 强调重要特征并抑制不必要特征. 这种机制对每一通道赋予从0到1的不同权值, 代表各个通道的重要程度, 使得网络可以区别不同对象的特征图. 在之前的工作中, 通道注意力大多采用SE-Net, 通过两次全连接层缩放所有特征图的通道维度. 然而, 缩放特征通道数量虽然在整合信息过程中大大减小了计算量, 但是降维的同时导致特征通道与其权重之间的对应是间接的, 降低了通道注意力的学习能力.
因此在SE-Net[31]的基础上, 设计无降维的注意力, 去除缩放通道[32]. 鉴于无降维会增加计算复杂度, 且通道特征具有一定的局部周期性, 本文构造无降维局部跨通道注意力, 在无降维的基础上, 通过局部约束计算通道之间的依赖关系, 并将其注意力嵌入每个残差块. 参照文献[30], 通道注意力是针对2D图像特征的长和宽进行的2D卷积滤波操作, 因此命名为2D注意力. 2D注意力残差单元结构如图2所示.
设2D注意力输入特征图为
(1) |
(2) |
式中,
将具有不同通道权重的特征张量通过sigmoid激活函数归一化处理, 并与输入特征图的通道对应乘积, 实现对特征图自适应地重新校准
(3) |
式中,
1.2 联合代价体
代价计算通常是计算1D相似性或者通过移位级联构建代价体, 前者损耗信息多, 后者计算成本高. 因此, 构建联合代价体
(4) |
式中,
针对代价体相比图像特征具有更多维度这一属性, 对提取的左右特征图降维以减少内存占用. 分别对输出尺寸均为
(5) |
式中,
最后, 将
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卷积, 并应用三线性插值恢复与输入图像大小相同的分辨率
以往基于CNN的代价聚合算法[17, 24]并未对代价体的通道信息进行多模块多层级关注, 无法有效利用和整合传输信息中的有效特征, 导致网络缺乏选择性鉴别信息特征和关注显著特征的能力. 此外, 代价聚合与特征提取中的特征维度存在差异, 使用特征提取模块中的无降维注意力增大代价体聚合的计算成本. 因此, 我们针对代价体特征的属性, 扩展通道注意力机制, 在堆叠3D沙漏结构[24]的基础上, 对3D代价体特征的长、宽和深度共3个维度进行3D卷积滤波, 计算不同通道之间的相互依赖性. 为了区分特征提取模块中的2D注意力, 我们命名为3D注意力. 3D注意力沙漏单元结构如图5所示, 沿着通道维度推断3D注意力特征图, 与输入代价体相乘, 细化代价体特征.
由于3D卷积滤波器具有感受局部视野的特性, 难以有效利用局部区域以外的上下文信息, 因此采用3D全局平均池化整合全局空间信息. 与文献[30]不同, 本文不仅使用3D全局平均池化, 而且使用3D最大池化编码特征图, 通过两种池化方式进一步区别对象的显著特征. 设3D注意力单元输入代价体为
(6) |
(7) |
式中,
将
(8) |
式中,
1.4 损失函数
所提算法的输出分别为Output0, Output1, Output2和Output3, 对应的损失为Loss0, Loss1, Loss2和Loss3. 在训练阶段, 总损失为4个损失的加权总和. 在测试阶段, 最终输出为Output3, 损失为Loss3. 视差估计采用GC-Net[17]提出的soft-argmin方法, 将每个像素i的视差值与相应的概率
(9) |
式中,
最终的损失函数定义为
(10) |
式中, N表示标签像素的数量,
(11) |
2. 实验及结果分析
本文在公开数据集SceneFlow[20], KITTI2015[33]和KITTI2012[34]上进行实验分析, 并使用EPE(End-point-error)和D1 等评价指标对所提算法进行评估. 其中, EPE表示估计的视差值与真实值之间的平均欧氏距离; D1表示以左图为参考图像预测的视差错误像素百分比.
2.1 数据集与实验细节
所提算法应用PyTorch深度学习框架实现, 在单个Nvidia 2080Ti GPU上进行训练和测试, 且设置批次大小为2. 采用Adam优化器且设置
1) SceneFlow数据集. 是一个具有室内和室外场景的大型综合数据集, 包含35454幅训练图像对和4370幅测试图像对. 本文使用SceneFlow数据集的子数据集Flyingthings3D, 其中, 训练图像对提供精细且密集的真值图. 图像的分辨率为540×960, 最大视差为192. 使用完整的数据集从头训练该模型, 以学习率0.001训练10个周期. 训练过程大约花费56小时, 训练的模型直接用于测试.
2) KITTI2015数据集. 是一个室外驾驶真实场景数据集. 该数据集较小, 包含200幅训练图像对和200幅测试图像对. 其中, 训练图像对提供LiDAR获得的稀疏真值视差图, 测试图像对不提供真值视差图. 图像的分辨率为375×1242像素, 最大视差为128. 整个训练图像对被随机分成训练集(80%)和验证集(20%). 使用SceneFlow数据集预训练的模型在KITTI2015上微调300个周期, 设置恒定学习率为
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)验证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)验证联合代价体的有效性
此外, 鉴于联合代价体是特征提取与代价聚合之间的枢纽, 本文将联合代价体与PSMNet[17]的级联代价体进行对比, 表3给出了在KITTI2012和KITTI2015数据集上联合代价体在不同设置下的性能评估. 从表中可以看出, 联合代价体相比PSMNet[17]的级联代价体, 增加了相关代价体分量的引导, 对于多维注意力聚合特征的性能产生了积极的作用, 整个网络结构相辅相成.
4)验证不同损失函数权重对网络的影响
由于3D聚合网络有4个输出单元, 因此损失函数权重对网络的影响也至关重要. 本文将损失权重以
2.3 与其他方法的性能比较与分析
为进一步验证算法有效性, 在SceneFlow数据集上将所提方法与其他方法进行比较, 包括Gwc-Net[24], PSMNet[17], MCA-Net[29], CRL[35]和GC-Net[21]. 定量评估结果如表4所示, 其中px表示像素. 所提算法在SceneFlow数据集上的EPE值均低于其他5种算法, 其中, 与Gwc-Net相比EPE降低了0.055, 与PSMNet相比EPE降低了0.28. 此外, 图7显示了在SceneFlow数据集上的视差评估结果, 其中图7(c) Gwc-Net表示不包含多维注意力的算法. 由图7中标注的小方框可看出, 具有多维注意力的算法能更有效地提取不同对象的显著变化特征. 因此所提算法能够为主体对象的显著特征分配更高的响应值, 提高网络的学习推理能力, 实现比未添加注意力时更精细的视差图.
表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数据集上视差估计结果. 由图可知, 在处理重复图案区域中(如栅栏、道路)匹配效果较好, 而且保留了对象的显著信息 (如车辆、电线杆和树干的边缘区域). 大的弱纹理区域(如天空)和被遮挡区域中由于没有可用于正确匹配的特征, 将存在很多噪声. 实验结果表明, 多维注意力通过聚集丰富的匹配信息可有效鉴别不同对象的显著特征, 提取更全面有效的特征, 降低匹配误差.
在KITTI2012数据集上的性能评估与KITTI2015类似. 表6反映了在KITTI2012数据集上本文算法与DispNetC[20]、MC-CNN-acrt[36]、GC-Net[21]、SegStereo[11]和PSMNet[17]的定量评估结果. 由表6可知, 本文算法与其他几种算法相比, 在无遮挡区域和所有区域中, 大于3像素和大于5像素的误差值均最低, 其中, 无遮挡区域分别为1.46和0.81; 所有区域分别为1.73和0.90, 再次证明基于多维注意力特征聚合的立体匹配网络在无遮挡区域和所有区域中视差预测的有效性和可行性. 图9显示了在KITTI2012数据集上视差估计结果, 由图中标注的方框可看出本文算法在显著对象(如围栏, 车辆)方面视差预测结果较好, 且不受光线变化的影响. 此外, 从图9第1行最后一列的黄框可以看出, 尤其是对于墙壁这类很显著平滑的对象, 虽然KITTI2012数据集中真值视差图的稀疏性导致训练的网络模型对于树木的视差预测精度不高, 但相比Gwc-Net, 本文算法预测的墙壁没有和树木混淆, 符合墙壁的属性. 实验结果表明, 本文算法具有良好的泛化性, 多维注意力的引入提高了网络的学习能力, 可有效鉴别无遮挡对象的显著特征, 提高视差预测精度.
3. 结束语
本文提出了一种多维注意力特征聚合立体匹配算法, 以多模块及多层级的嵌入方式协同两种不同维度的注意力单元. 2D注意力残差模块在原始残差网络基础上引入自适应无降维2D通道注意力, 理解局部跨通道间的相互依赖性, 保留显著细节特征, 为代价聚合过程提供了全面有效的相似性度量. 3D注意力沙漏聚合模块在多个沙漏结构的基础上嵌入双重池化3D注意力单元, 捕获多尺度上下文信息, 有效提高了网络的聚合能力. 2D注意力和3D注意力之间相辅相成, 对整个网络的权重修正, 误差回传都起到了积极的作用. 在3个公开数据集上的实验结果表明, 所提算法不仅具有较高的预测精度, 而且可以敏锐地鉴别推理无遮挡区域中主体对象的显著性特性.
- 2025年中科院分区表已公布!Scientific Reports降至三区
- 官方认定!CSSCI南大核心首批191家“青年学者友好期刊名单”
- 2023JCR影响因子正式公布!
- 国内核心期刊分级情况概览及说明!本篇适用人群:需要发南核、北核、CSCD、科核、AMI、SCD、RCCSE期刊的学者
- 我用了一个很复杂的图,帮你们解释下“23版最新北大核心目录有效期问题”。
- 重磅!CSSCI来源期刊(2023-2024版)最新期刊目录看点分析!全网首发!
- CSSCI官方早就公布了最新南核目录,有心的人已经拿到并且投入使用!附南核目录新增期刊!
- 北大核心期刊目录换届,我们应该熟知的10个知识点。
- 注意,最新期刊论文格式标准已发布,论文写作规则发生重大变化!文字版GB/T 7713.2—2022 学术论文编写规则
- 盘点那些评职称超管用的资源,1,3和5已经“绝种”了