结合注意力机制与路径聚合的多视图三维重建
2023-11-15王云艳朱镇中
王云艳,朱镇中,熊 超
(1.湖北工业大学 电气与电子工程学院,武汉 430068;2.襄阳湖北工业大学产业研究院,湖北 襄阳 441100)
0 引言
多视图立体匹配(MVS)是计算机视觉领域中一个重要的问题,其目的是在多张已知相机姿态和固有参数的图像中,重建观察场景或对象的高精度3D几何模型。多视图立体匹配在很多领域都具有非常广泛的应用,如自动驾驶[1]、医学图像处理[2]、虚拟现实[3]、文化遗产保护[4]和卫星空间成像[5]等方面,因此研究多视图立体匹配问题具有重要的实际意义。
在多视图立体匹配任务中,关键的问题就是如何找到相关图像像素的对应点。在传统的三维重建算法中,通过双侧光度一致性[6-7]来改善遮挡边界的行为,或者利用空间一致性[8]约束来提取真实的深度,或者利用补偿机制[9]对深度值进行优化。上述方法在用朗伯曲面进行场景重建时,已经取得了很大的成功。传统方法都是采用一些人为设定的规则来对深度值进行过滤和采集的,但是面对一些透明、反光的物体,效果就会特别不理想。随着神经网络的发展,人们提出了各种基于学习的重建方法,越来越多的学者将卷积神经网络运用到MVS方法[10]中。李健等[11]在传统方法中用卷积网络进行改进,融入深度特征,提升场景重建的鲁棒性。Ji等[12]提出了基于体素的SurfaceNet,将整个空间分解成立方体,并以立方体为单位对曲面进行回归。这些方法都是利用卷积神经网络结合全局语义信息来实现重建的,基于学习的方法能学习场景的全局语义信息,包括物体材料、镜面、三维几何先验和环境照明,可获得更完整的重建。随后Yao等[13]提出的MVSNet采用一种端到端的训练策略,将代价体用于3DCNN正则化进而深度回归形成深度图。Point-MVSNet[14]中采用直接基于点的匹配代价体的方法。R-MVSNet使用循环神经网络来聚合代价体上下文信息。但是无论是基于学习的传统方法改进还是基于学习的重建方法往往都存在一些问题,在一些网络中,只有高层次特征被用于深度估计,所学的模型缺乏空间信息,这可能会降低物体的重建精度,而且大多数的MVS方法都是利用3DCNN来预测深度图或体素占有率的。但其占用的内存消耗随图片分辨率的增长呈立方体的增加,由此无法进行高分辨率图像的重建工作。在代价体的学习中未考虑通道之间的相关性,不利于网络完整学习到更加丰富的特征,重建的效果仍然有很大的上升空间。
为了解决上述问题,设计了一种基于路径聚合(PA)的特征提取模块和基于改进SE的代价体正则化过程的级联网络PAA-MVSNet,采用端到端深度估计网络框架CasMVSNet[15]为基准网络。具体来说,借助PANet[16]的思想,引入深浅层特征聚合的特征提取模块,可在不同尺度上进行特征提取,更有效地提取图像的多尺度特征。自下而上的多尺度融合方式,利用准确的低层定位信号增强整个特征层次,从而缩短了低层与顶层特征之间的信息路径。引入了YOLO网络中的C3块和SPP模块,在保证速度的前提下,提高了重建精度。考虑到通道之间具有关联性,让网络学习到通道之间的交叉特征,在正则化模块中每两个相同的代价体之间插入一个改进的SE注意力模块,通过自适应学习通道注意力机制,强化重要的通道特征,将不重要的特征弱化,提升深度估计的准确率,以达到改善重建的效果。秉持由粗到精的思想,通过3个阶段来生成估计深度图。在第一阶段中从数据集中获取像素的深度范围,用低尺度特征投影到空间形成代价体,再经过注意力机制特征加强的正则化网络预测一个粗糙的深度图,然后通过第一阶段预测的深度值来缩小深度范围。以此类推,随着分辨率和深度间隔的自适应调整,最终输出高分辨率深度图。与现有的方法相比,重建场景的精度和完整性得到了很大的提升。
1 相关工作
1.1 基于学习多视图立体匹配
传统的MVS方法主要采用光度一致性来推断物体的几何结构,但是在一些无纹理、反光区域表现不太理想。为了解决这一难题,许多基于学习的MVS算法应运而生。Yao等[13]构建的MVSNet模型取得了令人印象深刻的效果,通过对图像进行特征提取,然后投影到空间中构建代价体,再经过正则化和深度图优化得到深度图,融合多个视图的估计深度图来构建3D模型。该算法的内存需求与输入图像分辨率成立方比,虽然取得较理想的效果,但是昂贵的计算成本让很多人望而却步。而且该模型也不能利用高分辨率图像上的所有特征信息。为了实现高分辨率图像重建,后人在减少计算资源和提高特征提取效果方面做了很多工作。Yao等[17]提出了利用GRU单元对代价体进行有序正则化,减少了内存需求,但增加了运行时间。Cvp-MVSNet[18]和Cas-MVSNet构建了金字塔结构,采用级联网络来由粗到精的三段式生成深度图,通过自适应深度调整,不仅减少了内存消耗,而且在精确度和完整性上也取得了一定的提高。Fast-MVSNet[19]通过构建一个稀疏代价体来学习稀疏的高分辨率深度图,利用小尺度卷积对局部区域像素的深度依赖进行编码来密化稀疏的深度图,也一定程度上减少了内存占用,但是重建的精度并不太理想。杨硕等[20]将BN层转换成Inplace-ABN层,节省大量的内存消耗,再利用改进的GRU模块构建正则化模块实现信息的重建与更新,最后使用L-M层实现细化,但还是存在一些信息的缺失,因为将原始图像采样为不同分辨率的图像,会导致信息的丢失,影响最后的准确性。刘万军等[21]采用了双U-Net结构来获得更加完整和准确的特征信息,再通过代价体分层融合结构来使每级代价体之间实现信息互通,从而提高重建精度。随着注意力机制的广泛应用,将注意力模块应用到重建网络中也取得了不错的效果。刘会杰等[22]在每一级特征提取中均加入注意力层,以捕获深度推理任务的远程依赖关系。谢琪琦等[23]将注意力引入代价体正则化中也取得了较好的效果。受上述研究的启发,设计了一个基于路径聚合的带有空间金字塔池化的特征提取网络,并在正则化模块之间添加了一个自适应通道注意力模块,以保存较多的信息特征,从而更好地重建深度图。
1.2 PANet简介
PANet(path aggregation network)是一种用于目标检测的神经网络架构,它是由JiFeng Dai等在2018年提出的,意为路径聚合网络。它的主要目的是解决目标检测任务中多尺度物体检测问题。在传统的检测方法中,需使用多个不同的尺度特征图进行检测,导致了模型计算量大、速度慢、结构复杂等问题。而PANet通过特定的结构来实现多尺度特征图的融合,将不同尺度的特征图分别传递到不同的路径,然后逐级聚合将它们融合在一起。这种方法可使得模型具有多尺度的感受野,从而检测不同大小的物体。PANet是一种优秀的目标检测模型。
1.3 注意力模块SE
注意力机制是一种模拟人类认知机制的方法,已广泛应用于自然语言处理[24]、计算机视觉等领域。SE(squeeze and excitation)模块[25]是一种用于卷积网络表达增强的技术,可在不增加网络复杂度的情况下提高网络的性能。它先通过压缩操作,即全局池化操作来提取每个通道特征图的全局统计信息,再通过激励操作自适应地调整每个通道的权重,以增强网络对于特征的表达能力。同时,SE模块很容易集成到现有的网络结构中。
2 PAA-MVSNet模型介绍
构建的PAA-MVSNet网络模型架构如图1所示。基于PANet的思想设计特征金字塔结构,将高级特征与低级特征进行路径聚合操作,使得模型具有多尺度的感受野,随后提取了3种不同尺度的特征构成级联网络。然后将低分辨率的特征投影到假设平面上,考虑通道之间的关联性,在代价体网络结构中加入自适应通道注意力,从而得到更为准确的概率体来预测深度图。再将得到的低分辨率深度图进行上采样操作,以用于下一阶段的深度图的构建。
图1 构建的PAA-MVSNet网络模型架构
2.1 基于路径聚合的特征提取模块
与之前的工作类似,输入N张图像,一张为参考图像,其余N-1张为源图像。为了解决不同尺度下特征之间关联性差的问题,设计一种多级网络模型,如图2所示。随着网络的加深,图像的分辨率也进行了相应的缩小和放大。考虑到网络越深,丢失的信息越多,所提网络使用了很多跳跃连接,将每次上采样的结果与前面相同尺寸的特征相结合,实现高、低级特征聚合,更能准确地提取图像的特征。
在所提网络中,对于所有输入尺寸为640×512的RGB图像,首先通过卷积将原始图的通道数转换为8通道,再经过1个C3块,C3块由1个1×1的卷积和2个3×3的卷积组成,每个卷积之间都有1个批量归一化和激活函数。1×1的卷积用于降低通道数,减少计算量;而3×3卷积层用于提取特征和降低图像分辨率。C3块使用了多层卷积层,可在不增加图像分辨率的情况下增加感受野,从而提高特征提取能力。重复2次以上操作,生成32通道的特征图,分辨率降低为原来的1/16。再经过SPP(空间金字塔池化模块),获取由卷积层生成的特征图,并在多个尺度上对其进行池化,从而使模型能捕捉不同级别的对象信息,从而可提高其整体精度。如此,得到了原始图像大小的1、1/4、1/16的特征映射,分别对应的是8、16、32通道数。然后经过上采样操作,逐步恢复特征分辨率,将相同尺寸的特征层结合,形成比较厚的特征,继续C3块的操作,输出3个尺度的特征层。这样自上而下和自下而上的结构相结合地提取模块可保留丰富的细节特征,利用concat操作可更好地恢复一些丢失信息,从而使后续的深度估计任务结果更加准确和完整。
2.2 构建代价体
与以前许多MVS网络一样,运用单应性变换将先前提取的特征映射到每个深度上构建3D成本代价体,此操作将所有特征图扭曲到参考相机视锥体中的不同正交平面上,类似于经典的平面扫描立体视觉,并且深度范围通常是根据稀疏重建确定的。变换是由单应性矩阵定义的:
(1)
式中:Hi(d)为第i个特征图与深度d处参考特征图之间的单应性变换;Ki、Ri、ti为相机的内参、外参和平移;n0为参考相机的主轴。然后使用可微分单应性变换将2D特征图变形为参考相机的假设平面,形成特征体。为了将多个特征体融合,采用基于方差的成本度量方法,以适应任意数量N的输入特征:
(2)
2.3 基于改进SE模块的代价体正则化网络
考虑到SE模块的灵活性和高效性,将该模块引入代价体正则化网络结构中。代价体正则化的功能是对代价体进行平滑处理,以减小代价体中噪声和异常值。将注意力机制整合到正则化步骤中可帮助集中注意力于代价体的重要区域,忽略不重要特征或者噪声信息。设计了一个SE+模块,并引入正则化模块中,如图3所示。在原始的SE模块中,通过Squeeze、Excitation和Reweight操作可实现为每个通道分配权重,但该权重仅考虑单个通道的信息,没有考虑任意2个通道之间的关系。为此,研究SE+模块来综合考虑每个通道之间的相互关系后再为特征图分配权重,在此基础上将残差思想引入SE+模块。给定一个特征图Fe,整个过程可定义为:
图3 基于SE+的代价体正则化模块
Oe=Sigmoid(Linear(Sum(GAP(Fe)⊗
GAP(Fe)T))+GAP(Fe))⊙Fe
(3)
其中,GAP表示全局平均池化操作,Sum表示将所有行添加到第一行。在反馈入线性层之前,所提出的方法获得了注意力图M。M中的每个元素都是2个通道的全局平均池化的乘积,如A21表示第2个通道和第1个通道的乘积。通过Sum运算,每个通道都能感知所有通道的信息。
2.4 损失函数
本文构建了3层级联结构,并关注每一级的损失,总损失定义如下:
(4)
式中:Lk为第k阶段的损失;λk为对应的损失权重,与CasMVSNet相同,损失权重分别设置为0.5、1和2。
3 实验
3.1 数据集
所提模型在DTU数据集上进行训练。DTU是1个大型数据集,包含受控实验室环境中的128个场景,其模型使用结构光扫描仪捕获信息。在7种不同的照明条件下,在相同的49或64个相机位置扫描每个场景,生成分辨率为1 200×1 600像素的RGB图像。由于数据集涵盖了各种对象和材料,因此非常适合在现实条件下训练和测试深度学习MVS方法。为了证明网络的扩展性,在Tanks and Temples数据集上直接进行测试。与实验室设置良好的DTU数据集不同,Tanks and Temples数据集包含真实的户外场景,但室外一些不可抗因素,导致该数据集比DTU数据集复杂得多。该数据集由8个不同的场景组成,用于验证所提模型的泛化能力。
3.2 实施细节
所提模型初始图像的分辨率大小为640×512,该网络由粗到精分为3个阶段,深度假设层数为48、32、8,3个尺度下的特征图分辨率逐渐增加,分别为原始输入图像大小的1/16、1/4和1。实验遵循与MVSNet相同的输入视图选择和数据预处理策略,使用Adam优化器,其中β1为0.9,β2=0.999。初始学习率设置为0.001,在10、12和14个时期后,学习率减半。该模型在batchsize设为1的单个NVIDIA3060显卡上进行训练。
3.3 评价指标和比较实验
为了证明所提模型的有效性,通过DTU数据集提供的Matlab代码来计算重建模型的准确性(accuracy,Acc)误差、完整性(completeness,Comp)误差和整体性(Overall)误差,其中Overall是Acc和Comp的总和平均值。这3个指标越低表示重建效果越好。DTU评估集定量结果如表1所示。
表1 DTU数据集上的定量评估结果 mm
由表1可看出,相比于CasMVSNet,所提模型在Acc上降低5%,Comp上降低1.04%,与其他模型相比,Acc和Comp排名也比较靠前,由此证明了所提模型改进的有效性。
在生成点云质量方面,选用了CasMVSNet、EPPMVSNet[26]、PAA-MVSNet和Gound Truth进行细节对比,选用scan10和scan62两个场景。3种模型的点云效果图如图4所示。可以看出,CasMVSNet和EPPMVSNet所生成的点云均有不同层次的缺失,而所提方法相较于上述方法,消除了很多噪音的影响,更加专注于物体自身的重建。同时,框内重建模型的细节表现地更好,完整性也得到了较好的改善。
图4 scan10和scan62可视化对比
为了进一步的验证所提计模型的可扩展性,使用在DTU数据集上训练的模型在Tanks and Temples数据集上重建点云,输入图像大小为1 920×1 080,视图数N为7,使用F-scoce作为评估指标,以衡量重建的性能。随后将所提方法与目前主流的方法进行比较,定量结果如表2所示。
表2 Tanks and Temples数据集定量结果
从表2可以看出,所提模型在大部分场景都取得了不错的结果,各种指标结果均靠前,这充分证实了所提方法的泛化性。重建可视化图如图5所示。可看出,产生的点云效果良好,并在视觉上得到了吸引人的效果。
3.4 消融实验
为了进一步验证设计模块的有效性,进行了消融实验和定量分析,以评估设计模型中每个部分对最终重建质量的影响。针对提出的基于路径聚合的特征提取网络和代价体注意力模块2种改进,在DTU数据集上进行了4组对比实验。由于研究是针对CasMVSNet的改进,因此实验包含CasMVSNet、CasMVSNet+PA特征提取模块、CasMVSNet+代价体注意力模块和最终版模型,并使用准确性和完整性结果衡量重建质量。
表3展示了实验结果。可看出,在准确性和完整性方面,所提出的2种改进都对结果有相应提升,因此所提模型设计是有意义的。消融深度估计图如图6所示。对每个实验估计的深度图进行对比,可见在添加了改进模块后,相较于原方法及添加单个改进方法,所提方法在消除周边噪声起到了良好的作用,重建物体边缘的平滑度也有所提升。
表3 消融评价指标的实验结果
图6 消融深度估计图
4 结论
提出了一种基于路径聚合(PA)的特征提取模块和基于SE+的代价体正则化网络方法,通过改进CasMVSNet的特征提取模块和代价体正则化模块对物体进行3D重建工作。借鉴了PANet提出的路径聚合的思想和YOLOv5中的空间池化模块,同时考虑到通道之间的相关性,在代价体正则化中加入改进的SE+模块,较全面地学习特征,专注于学习重要信息进行深度推理,从而捕获优质特征用于重建工作。实验证明,改进的网络明显提升了原网络CasMVSNet的精度,但是研究专注于提高模型改进后的精度,以内存消耗和运行时间为代价,不管是特征提取网络还是正则化板块,都相应地增加了模型的训练时间,因此在保持相同精度的同时有效减少内存消耗和运行时间成为后续工作的主要目标。