孙刘杰,翟仁杰,王文举,庞茂然
上海理工大学 出版印刷与艺术设计学院,上海 200093
点云是表征三维世界的主要数据格式[1]。由于传感器只能在有限的视野范围内扫描获取数据,而实际应用中往往又需要完整的三维场景,因此需要点云配准算法将同一场景不同范围的点云进行配准。点云配准是一种估计两帧扫描点云之间变换矩阵的问题,同一个三维场景或物体的两帧点云通过变换矩阵可以合并成一个完整的三维点云[2]。点云配准作为点云数据处理的上游任务,以其独特而关键的作用成为计算机视觉三维点云处理领域中不可或缺的一个分类,具有重要的研究意义。
大多数点云配准工作流程为首先从点云中提取特征以寻找几何对应,其次根据对应关系进行配准[3-5]。其中,寻找几何对应是关键步骤。因此大量工作集中在设计并提取点云特征,以建立对应关系。传统方法提取的3D特征都是使用手工制作的3D特征描述符,如USC[6]、FPFH[7]等,然而此类描述符通常缺乏对噪声的鲁棒性,因此后续的研究大多采用基于学习的方法。为了解决点云的稀疏性及无序性等问题,一些研究者利用体素、包围球和K最近邻等方式对点云进行组织,以提取更为丰富的几何特征[8-9]。
Zeng 等人[10]提出了3DMatch。3DMatch 将点云量化为体素,输入是三维体素数据,输出是512 维的特征描述符,是点云配准领域首次基于深度学习的方法。Aoki等人[11]提出了PointNetLK,基于可学习点集来提取几何描述符。对于输入的无序点云,使用多层感知机(multilayer perceptrons,MLPs)分别对每个点提取特征,其次采用用于图像对齐的LK 算法进行点云配准。Bai等人[12]提出了D3Feat(joint learning of dense detection and description of 3D local features),采用一种包含KPConv(kernel point convolution)的类UNet 型网络架构。该网络将核点与其半径邻域内采样的点组成点集,基于可学习的点集来提取几何描述符。为消除点云密度对关键点的影响,提出一种新的密度不变关键点选择方法,并提出一种自监督的检测器损失函数。刘世光等人[13]提出了F-4PCS(fast 4-points congruent sets),给出了一种新的选择四点基的方法,对四点基进行限制,在点云重叠率较低时仍可取得很好的效果。Ao等人[14]通过一种新的神经网络结构SpinNet来提取点云特征描述符,该网络首先将点云球形体素化并投影到一个圆柱形容器中,然后采用3D圆柱卷积来提取点云特征,特征具有旋转不变性且泛化性较好。Horache 等人[15]提出了MS-SVConv(multi-scale architecture and self-supervised fine-tuning convolution)神经网络,该网络对点云进行不同大小的体素下采样,将不同尺度的信息输入一个类UNet 架构网络分别提取特征,而后将输出的不同尺度特征进行融合,该网络具有很好的泛化性。由于点云的稀疏性,传统3D卷积操作会造成计算资源的浪费,并且3D 卷积本身计算的时间复杂度也很高,Choy 等人[16]提出了FCGF(fully convolutional geometric features),这是第一个采用全卷积设置的点云特征提取网络,使用稀疏3D卷积[17]代替传统的3D卷积,以缓解点云稀疏性带来的问题,并通过使用稀疏卷积构建包含跳跃连接和残差结构的ResUNet 网络架构来提取点云的局部几何特征。而在该方法中,UNet 跳跃连接会增加点云特征中的冗余信息;且点云信息相比图像更加复杂,残差结构用来提取点云特征无法充分利用点云中的有效信息。
为了解决上述方法中点云有效信息提取不充分等问题,本文以点云特征提取作为研究重点,提出了DFRUNet 点云特征提取网络。在网络的跳跃连接处,引入3DFDF 模块,通过将编码部分特征与解码部分特征动态融合,减少冗余信息;采用SE-Res 残差模块,使网络对显著区域的特征进行重点提取,充分利用点云中的有效信息。
本文的点云特征提取网络DFRUNet 见图1。为充分提取点云中的有效信息,本文引入了3DFDF 特征动态融合模块和SE-Res 残差模块,通过在ResUNet 架构中引入特征动态融合3DFDF(3D feature dynamic fusion)模块,过滤冗余信息;采用SE-Res残差模块对显著区域的特征进行重点提取,以提高所提取特征的质量。如图1 所示,编码部分采用SE-Res 模块提取点云特征,特征通过步长为2的卷积层逐渐下采样,以获得不同尺度的点云信息;解码部分同样采用SE-Res模块提取特征,其次通过步长为2 的反卷积层上采样来恢复信息。网络通过3DFDF 模块过滤编码模块中地冗余信息,并与解码模块特征动态融合以补充信息。
图1 DFRUNet总体结构Fig.1 DFRUNet structure
由于点云数据的稀疏性和无序性,直接处理非常困难,进行3D 卷积需要很大的计算量。因此本文首先对原始点云数据进行体素化处理,将体素化点云量化为稀疏张量,再进行特征提取。网络的输入为量化后的稀疏张量,卷积算子采用Minkowski 稀疏卷积[17]以减少计算量,输出为3D几何特征。
在标准CNN架构中,特征逐渐降采样,在不断的下采样过程中不断地降低分辨率以获得不同尺度的点云信息,使网络得到的信息更加全面,其次通过上采样恢复信息并通过跳跃连接将编码模块特征与解码模块特征进行融合以补充信息[18]。然而恢复信息时主要还是依赖上一层解码模块的输出,并且编码模块特征包含冗余信息,而两部分特征以相同权重进行融合,会使融合后的特征包含部分冗余信息,对网络的输出结果造成影响。
为解决这一问题,本文在AG(attention gate)[19]的基础上,在跳跃连接处引入了3DFDF模块,采用3D卷积[17]处理点云信息,增加感受野。如图2 所示,模块以编码模块特征和解码模块特征作为输入,预先将两部分特征进行融合来得到权重,输出为权重更新后的编码模块特征。将新的编码模块特征与解码模块特征相融合,以补充信息,通过动态调整编码模块特征的权重来减少冗余信息。模块主要分为以下两个部分:
图2 3DFDF模块Fig.2 3D feature dynamic fusion(3DFDF)module
(1)融合两模块特征以求得权重系数。3DFDF 模块的输入xi∈ℝFl和gi∈ℝFg分别为编码模块特征和解码模块特征,其中Fl和Fg分别对应l层和g层特征映射的数量。附加公式如下:
(2)更新编码模块特征。3DFDF 模块的输出为输入的编码模块特征与注意力系数的乘积:
残差结构在图像处理方面取得了很好的效果,而点云数据与图像相比更复杂,具有稀疏性和无序性。为了更好地利用点云特征中的有效信息,本文在残差结构中融入SE(squeeze and excitation)模块[20]构成SE-Res(squeeze and excitation residual)模块,在通道维度增加注意力机制[21-23],从杂乱无章的点云数据中判定显著区域,并对该区域特征进行重点提取。见图3,SE 模块通过插入到残差结构中的3D卷积层之后来融入残差结构,模块对特征进行压缩与激励,通过自主学习的方式,即使用神经网络获取每个特征中通道的重要程度,然后据此赋予每个特征一个权重值,让神经网络去重点关注某些特征通道,以提升对当前任作用较大的特征通道,并抑制作用较小的特征通道。
图3 SE-Res模块Fig.3 SE-Res module
(1)挤压与激励特征。通过两层卷积操作初步提取特征,挤压操作将全局信息嵌入特征并能更直观地表示,通过全局平均池化层,将尺寸为H×W×D×C的特征压缩为1×1×1×C的向量。z通过压缩c维特征u得来,附加公式如下:
为充分利用挤压后的信息,接着进行激励操作,目的是完全获取通道的相关性。它不仅能学习通道间的非线性相互作用,还可以同时执行多个通道的激活。公式如下:
其中,σ对应sigmoid 激活函数,δ对应relu 激活函数。为了限制模型的复杂性,使用两个全连接层来进行降维,降维率为超参数r,根据文献[17]的经验设置r=16。
(2)更新特征通道。通过维数增加层返回输出u的通道维数,最后将s加权到每个通道的特征上:
实验平台硬件配置为Inter®CoreTMi9-10920X CPU 3.50 GHz,64 GB内存,NVIDIA Ge Force RTX 3070显卡;软件配置为Ubuntu 18.04系统,采PyTorch深度学习框架,CUDA11.1进行GPU加速。
在室内数据集上验证本文的特征提取算法(DFRUNet)。采用标准的3D Match 数据集[9]来训练并测试网络,3D Match 数据集包含62 个不同场景的总计超过20 万帧RGB-D 深度图,例如7-Scenes、SUN3D 以及Halber 等。每个场景被分成几个片段,使用TSDF体积融合从50个深度帧重建每个片段,并保存到ply 文件中。图4 为该数据集不同场景中的四组待配准点云可视化结果,用伪彩色表示点云的深度信息(z值)。右侧渐变色条为点云z值范围,z值较小的为蓝色带,表示物体距相机较近;z值较大的为红色带,表示物体距相机较远。在实验过程中,54 个场景用于训练,8 个场景用于测试。实验时采用随机梯度下降法训练100 个epochs,初始学习率为0.1。在训练开始前对点云数据进行数据增强处理,包括随机缩放和随机旋转增强等,以使DFRUNet网络所提取的特征具有旋转平移不变性。
对于3D Match基准,本文采用两个指标来衡量点云配准的特征质量:特征匹配召回率(feature-match recall,FMR)和配准召回率(registration recall)。
特征匹配召回率(feature-match recall)[10]。特征匹配召回率检测能高置信度进行点云配准的点对的百分比。公式如下:
式中,M是点对的数目,Ωs为点对s之间的一组对应关系,x和y为来自两帧点云的3D坐标,T*是真实值。τ1=0.1 m 是内点距离阈值,τ2=5%是内点召回阈值。
配准召回率(registration recall)[10]。配准召回率检验配准算法可以正确恢复多少重叠片段,计算公式如下:
式中,Ω*为片段{i,j} 对应的真实值的集合,x*和y*则为所对应的真实值的3D 坐标,T为两帧点云变换矩阵。对于重叠率大于等于30%的点对,如果ERMSE<0.2 m 则认为该点对符合标准。
为了验证本文所提出的点云特征提取算法,本文采用特征匹配召回率和配准召回率作为评价指标,其中STD 代表标准差,STD 越小表明算法越稳定。在3D Match基准[10]上评估本文的算法。
本文将DFRUNet 与FPFH、PerfectMatch、FCGF 和D3Feat 进行了比较,表1 中列出在内点距离阈值为10 cm,内点召回阈值为5%时,不同特征提取算法的特征匹配召回率以及特征维度。实验结果表明,本文提出的DFRUNet 网络所提取的特征,在特征维度为32 维的情况下,特征匹配召回率为96.3%,达到了最高精度。DFRUNet 网络通过3DFDF 模块将特征动态融合,同时采用SE-Res 模块对显著区域重点提取特征,有效地提高所提取特征的质量,提升了特征匹配召回率。表1中最后一列为各个方法提取单个点云特征所需时间,本文网络提取特征所需时间与FCGF一致,表明采用3DFDF模块和SE-Res模块对算法运行速度几乎没有影响。算法运行时间略低于D3Feat,这是由于本文网络采用稀疏卷积提取点云特征,为稀疏张量创建哈希表增加了耗时。在点云预处理阶段,点云将采样体素化大小为2.5 cm情况下,特征匹配召回率比FCGF 提高了0.011,且在5 cm体素大小下也优于FCGF算法。此外,点云体素大小与训练时间呈线性相关,5 cm体素大小不仅比2.5 cm体素占用更少的训练资源,且训练时间也缩短近半。
表1 不同方法实验结果对比Table 1 Comparison of experimental results with different methods
为了可视化网络所提取特征的总体质量,本文使用t-SNE算法将所提取特征映射到标量空间,并采用颜色映射技术对特征进行着色,采用伪彩色表示特征值,可视化效果见图5。
图5 特征可视化Fig.5 Visualization of features
本文选择FCGF 作为消融研究的基线,公平起见,所有的实验数据及参数设置均保持不变。SE-ResUNet表示采用SE-Res残差结构,DFUNet表示将3DFDF模块引入网络。如表2 所示,采用SE-Res 残差结构后,特征匹配召回率提高了0.003,SE-Res 模块通过对显著区域重点提取特征,有效地提高所提取特征的质量。将3DFDF模块引入网络后,特征匹配召回率提高了0.008,3DFDF模块通过将特征动态融合,充分地提取了点云中的有效信息,同样也提高了所提取特征的质量。
表2 消融实验结果Table 2 Results of ablation experiment
采用RANSAC[24]算法进行点云配准,即随机选取3对对应点对求解变换矩阵,并将评估剩余点对,根据选定阈值来判别内点与外点;其次重复以上步骤直至抵达选代次数的上限,选择内点最多的方案为最佳方案,点云配准可视化结果见图6。根据可视化结果可以看出,本文方法两帧点云的配准效果更贴近真实值。图6中,第1、3、5 行分别代表场景1、场景2、场景3,对场景1 中红色方框中的椅子靠背、场景2红色方框中的床头以及场景3 红色方框中的沙发进行局部放大,第2、4、6 行分别为3 个场景的局部放大图。场景1 中,从红色方框中的椅子靠背处可以看出,采用FCGF配准时两帧点云并未完全对齐,与真实值不符,而采用本文方法两帧点云几乎完全对齐,更为贴近真实值,场景2 同理;而场景3中,由红色方框中的沙发处可以看出,采用FCGF 配准时两帧点云配准失败,而采用本文方法仍可配准成功。表明本文DFRUNet 网络充分提取了点云中的有效信息,所提取特征质量要优于FCGF 点云特征,采用本文方法配准效果更好。
对于点云配准,本文采用3DMatch 配准集[9]来评估DFRUNet所提取特征的配准召回率,结果见表3。实验表明,本文的DFRUNet+RANSAC在8个场景的平均配准召回率达到了82.2%,优于基线方法FCGF+RANSAC。
表3 不同场景配准召回率Table 3 Registration recall rate in different scenarios
本文提出了一种基于特征动态融合的点云特征提取网络DFRUNet,通过引入3DFDF 模块将特征动态融合来充分提取点云中有效信息;采用SE-Res 残差模块提取特征,动态调整显著区域特征的权重,提高了网络所提取特征的质量。相较于基线方法FCGF,特征匹配召回率提高了0.011,配准召回率提高了0.01。证明了本文点云配准方法的有效性,对于其他点云配准研究具有一定的参考价值。但是由于本文算法采用稀疏卷积提取点云特征,创建哈希表增加了耗时,导致算法运行时间较长,未来将致力于提高算法的运行时间。