基于多阶段分形组合的点云补全算法

2024-01-21 15:14曾伟平陈俊洪MuhammadASIM刘文印杨振国
计算机与现代化 2023年12期
关键词:分形形状精细化

曾伟平,陈俊洪,Muhammad ASIM,刘文印,杨振国

(广东工业大学计算机学院,广东 广州 510006)

0 引 言

随着视觉硬件的高速发展,激光雷达、RGB-D 相机等深度传感器广泛应用于无人驾驶、机器人等领域[1]。通过深度传感器可有效地获取物体的三维点云数据,进而完成复杂的三维视觉任务,如物体识别[2]、语义分割[3]、三维重建[4]等。然而受限于设备精度等原因,现实场景下获取的三维点云通常存在稀疏和不完整的现象,导致了物体判断不够准确;与此同时,设备在采集外界信息时往往是基于单一视角,获取的点云可能存在遮挡等情况。综上所述,对缺失的点云进行补全处理是三维视觉领域中一项重要的研究任务。

点云补全任务是将不完整的点云进行补全,从而获得更高质量的点云数据。常见的补全方法可分为基于几何、基于对齐和基于学习3 类。其中基于几何的方法[5]通过先验几何假设直接从观察到的形状部分中预测不可见的形状部分,需要人为制定几何规则,然而此类方法只适用于具有少量不完整的模型。基于对齐的方法[6]是在形状数据库中检索与目标对象相似的相同模型,并将输入与模型对齐完成缺失区域,然而该方法在推理优化和数据库构建过程中需要昂贵的成本,并且对噪声影响敏感。基于学习的方法通过构造一个参数化模型来学习不完整点云和完整点云的2 个特征空间之间的映射,具有较好的鲁棒性,其中代表方法为PCN[7]网络。近年来随着深度学习的发展,基于学习的方法已经成为主流,例如PFNet[8]、PoinTr[9]等方法在点云补全上已经取得不错的效果。然而现有的方法生成完整点云或生成缺失区域仅针对局部缺失,并未同时考虑几何形状缺失和稀疏性缺失等问题,在点云稀疏的情况下补全效果不佳。

本文将点云的缺失分为几何形状缺失和稀疏性缺失,其中造成前者的主要因素为物体遮挡;造成后者的主要因素为设备性能和外界环境干扰等。为同时解决几何形状缺失和稀疏性缺失问题,本文提出一种多阶段分形组合的点云补全算法,实现过程如图1所示。相比于其它直接预测点云的算法,本文所提出的算法基于局部到整体分阶段进行补全,可对不同阶段的损失函数权重进行调整,从而优化了补全效果。通过在点云的数据集ShapeNet[10]上进行实验表明,验证了本文所提出方法的有效性。

图1 多阶段实现的点云补全

本文所做的主要工作如下:

1)提出基于多阶段的分形组合算法对残缺点云进行补全,有效地解决了点云同时存在几何缺失和稀疏等问题。

2)设计分形几何特征提取结合特征金字塔生成,能消除稀疏性影响,完成几何形状缺失补全;设计k近邻局部特征提取网络点云局部细节特征,并通过折叠网络生成精细化平滑的完整点云。

3)通过在ShapeNet数据集上进行实验,有效地验证本文所提出方法的有效性。

1 相关工作

1.1 三维点云深度学习网络

三维计算机视觉是近年来一个活跃的研究领域[11-17],由于点云的内存消耗小、细粒度细节表示能力强,因此广泛使用点云来表征三维对象。然而点云的处理通常被认为比二维图像更具挑战性,其原因是因为点云以无序的三维点进行存储,不存在规则的空间结构,因此传统的卷积无法直接应用于点云。对此,有研究提出通过基于多视图的方法和基于体素的方法间接使用卷积网络。其中基于多视图的方法[18]将点云投影到不同的2D 平面,基于体素的方法[19]将点云栅格化,使其可利用卷积进行处理。上述方法在一定程度上提高了点云的处理精度,然而由于需要处理多幅图像或者体素,内存占用高和计算量大导致处理速度变慢。与此同时,在将点云进行转变的过程中易丢失信息。Charles 等人[20]提出PointNet 网络使用对称函数来聚合来自各个点的信息,以解决点云无序的问题,使神经网络可直接处理点云数据。目前有大量的研究工作以此为基础,深度学习在点云的处理上基本使用基于点的方法,如PointNet++[21]及DGCNN等,其不断改进对点云特征的提取。

1.2 三维点云补全

点云补全的目标是基于部分点云观测恢复完整的三维形状。PCN[7]是首个直接对三维点云进行操作实现点云补全的网络框架,其提出通过编码器-解码器结构对点云进行补全,并采用FoldingNet[22]通过模拟二维平面的变形将二维的点映射到三维曲面上。然而该方法仅通过全连接和简单的卷积进行特征提取,这导致了补全效果不佳;为增强网络学习点云特征和生成的能力,ShapeInversion[23]网络结合GAN[24]来实现,并且通过无监督的方式进行学习,ViPC[25]结合与点云对应的二维图像信息,通过多模态来指导推断点云的完整信息。上述方法推进了三维点云补全的发展,然而其做法为将残缺输入直接补全为完整点云,仅对真实三维点云进行计算损失,未完好保留三维点云的原始数据。为保持点云原始部分的空间排列,已有的研究如PF-Net[8]提出仅输出缺失部分的点云,而不输出整个物体的点云数据,完整点云通过与输入直接拼接得到。PoinTr[9]网络则采用该方式,且将Transformers[26]引入到点云补全任务中,对点云的几何特征更具备敏感性,是目前对缺失部分生成最有效的方法。然而上述方法存在一定缺陷,其研究和改进为网络层面,且应对点云缺失的情况单一,对稀疏的点云补全效果欠佳。进行分阶段性的实现点云补全,应对多种缺失的情况的研究有待提升和探讨。

2 本文方法

本文提出的点云补全网络为一种分阶段实现的点云补全模型,首先学习补全出几何形状缺失的部分,其次将输入点云与生成的几何形状缺失部分点云进行合并提取出融合特征,最后生成高质量的精细化点云,本文方法框架如图2 所示,包含点云几何形状补全模块和精细化点云补全模块。

图2 阶段性点云补全网络结构

2.1 点云几何形状补全模块

为补全几何形状缺失,需要给网络提供充足的几何结构数据。该模块首先进行分形处理,即对输入进行2 次FPS(最远点采样)获得点数为1024、512 和256的3组点云数据。该处理既能够保持初始输入的形状结构,又能通过不同的密度作为新的输入避免预处理中点云稀疏处理带来的影响,让网络充分和专注学习到模型数据的几何形状特征。

将分形得到的3 组点云,分为3 路单独输入编码器进行特征编码。如图3 所示,编码采用的为多层卷积网络,其通道数分别为3、64、128、256、512、1024,并将多层卷积获取的特征进行最大池化。最后将分形的3 组点云分别获取的特征进行合并,得到维度为1024×3 的特征向量,将该特征向量进行卷积并进行最大池化,最终获得维度为1024×1 的特征向量。该特征用于指导几何形状缺失点云的生成。

图3 分形几何特征提取网络

由于不同尺度的点云可提供不同细粒度的特征,因此本文利用特征金字塔解码器对分形网络特征进行解码。编码器结构如图4 所示,将获取到的几何特征作为特征金字塔生成网络的输入,并通过不同全连接层获取大小为512、256、128 个神经元的特征层,每一特征层分别连接不同的连接层与卷积层,因此可分别预测出不同分辨率的点云。最后将不同分辨率的点云进行拼接重塑,输出维度为512×3的几何丢失部分点云。特征层的神经元从大到小,生成的点云与之对称密度从高到低,且生成的低密度点云将依次保留到高密度点云的生成过程。该方法有利于避免点云的稀疏性影响,专注于学习和生成点云的几何形状。

图4 特征金字塔解码器

2.2 精细化点云补全模块

点云数据采集过程因设备精度等问题易导致捕获的点云稀疏,因此需要从已有的点云学习提取出点云的细节特征,从而生成一个精细的完整点云。具体实现过程为:

将输入的残缺点云与第一阶段生成的几何形状缺失部分的点云进行合并。为构建局部空间信息,利用k 近邻算法,以每个点作为中心点寻找其最近的k个点作为集合,对所有集合使用图卷积网络[27]进行卷积,将卷积后的特征进行最大池化,合并后得到维度为512 的特征向量。该特征向量通过全连接得到尺寸大小为12的空间特征,从而获得该点的新表征。

最后,将该特征输入到由PointNet 网络变形的编码器。该编码器由2 个PointNet 层组成:第一层利用shared MLP(共享多层感知机),将所有空间特征转换为点特征向量,从而得到大小为n×256的特征矩阵f,将该特征矩阵进行最大池化,得到大小为256 的特征g。第二层将特征g进行扩展后与特征矩阵f进行拼接,得到点特征增强矩阵后再次使用共享多层感知机和最大池化,最终得到尺寸大小为1536 的特征向量v,其实现如图5所示。

图5 k近邻局部特征提取器

最后为生成精细的点云,借鉴PCN 方法中的解码器结构。不同之处在于PCN 中通过全连接生成的粗略预测,而本文为保持三维点云原始部分的空间排列,利用第一阶段已经生成的几何形状缺失点云与原输入进行合并,再进行FPS 采样得到512 个点作为粗略预测的点云。最后将其与第二阶段提取到的局部细节特征v,通过善于逼近平滑表面的折叠网络进行偏移坐标重建。折叠网络通过折叠操作以每个点为中心生成一个2×2个点的局部区域,结合所有的局部区域输出含有2048 个点的点云,至此整个网络生成精细化平滑的完整点云。

2.3 损失函数

基于多阶段分形组合网络的损失函数由2 个部分组成:几何形状缺失点云生成损失和精细化点云生成损失。其计算采用Fan 等人[28]提出的CD(Chamfer Distance)距离,计算公式如下:

其中,S1、S2分别表示2 组3D 点云,x为S1中的任意一点,y为S2中的任意一点。该公式的第一项代表S1中任意一点到S2的最小距离平方之和的平均值,第二项则表示S2中任意一点到S1的最小距离平方之和的平均值。其值越小,表明点云生成效果越好。

几何形状缺失点云的生成损失为第一阶段生成的点云与实际几何形状缺失部分的点云之间的差异,其目的是学习三维点云模型缺失的几何结构。由于特征金字塔解码器生成3 个不同分辨率的预测点云,因此第一阶段的局部缺失点云生成损失Lfirst公式如下:

其中,α11、α12为超参数,用于调节不同密度的点云的预测权重;Y′11、Y′12、Y′13分别对应生成的512、256、128个点云;Y11、Y12、Y13为真实三维点云通过FPS 采样获得,与生成的3个不同分辨率的预测点云一一对应。对网络进行训练的过程中,α11、α12超参数在第一阶段的前期值偏大,但随着训练的不断迭代,其值逐渐减小。

第二阶段损失函数是为了指导网络结构学习到点云的局部细节特征,让网络生成一个精细化完整的点云,完成点云补全的最终目的。该损失为计算生成的点云与真实三维点云之间的差异,其生成损失Lsecond公式如下:

其中,α21、α22为超参数,作用为调节不同细粒度的三维点云生成效果;第一项为粗略输出Y21和完整点云Ygt之间的距离;第二项为最终输出Y22和完整点云Ygt之间的距离。对网络进行训练的过程中,α21超参数在第二阶段的前期设置的值偏大,随着训练的不断迭代,其值逐渐减小。α22超参数则与之相反。

最终多阶段点云补全的损失函数如下:

其中,αfirst为第一阶段的权重,αsecond为第二阶段的权重。由于几何形状缺失部分的点云生成损失主要位于训练的初期阶段,而精细化点云补全损失位于第二阶段,故αfirst和αsecond在整个数据迭代的第0次与第60次分别为0.9 和0.1;第61 次与第120 次分别为0.5 与0.5;第121次与第200次分别为0.1与0.9。

3 实 验

3.1 数据集及预处理

本文的实验在点云的数据集ShapeNet上进行,该数据集中有13 种不同的类别共14473 个对象,其中11705 个作为训练集,2768 个用于测试。由于点云缺失存在以下2 种情况:几何形状缺失和稀疏性缺失,因此需要将完整点云进行几何形状缺失处理和稀疏处理,以模拟出残缺点云作为输入。

本文输入预处理的具体做法为:将完整的点云数据从多个视点中随机选取一个视点作为中心,将点云中所有的点与其排序,选择前512 个点作为局部缺失进行取出并保存,再将剩余的1536 个点的点云通过FPS 采样取出512 个点作为稀疏缺失,得到剩下的1024个点的残缺点云作为输入。

3.2 评价指标

本文采用倒角距离作为补全的评价指标,且将其分为2部分进行展示:Pred→GT(预测到真实标签)和GT→Pred(真实标签到预测)。Pred→GT 值代表预测点云中的每个点到真实三维点云中最近点的平均平方距离,其衡量预测生成的点云与实际情况的差异;GT→Pred 值代表从真实三维点云的每个点到预测生成的点云中最近点的平均平方距离,其为预测生成的三维点云覆盖真实三维点云的程度。两者越小代表点云的补全效果越好,且将数值扩大1000 倍,并保留3位有效数字。

3.3 实验结果分析

为通过实验评估所提出的方法,将点云进行统一的预处理,得到缺失点云作为输入,通过各个网络生成完整点云。对于所有的点云补全方法,其网络结构不做任何改变,只将输入与最终的输出调整一致。实验结果如表1 所示,表中的结果为对应的Pred→GT值/GT→Pred值。

实验结果表明,本文所提出的方法补全结果优于其它方法,Pred→GT 和GT→Pred 的平均值分别达到0.750 和0.768。对比从残缺输入直接生成完整点云的网络(FoldingNet、PCN、TopNet 和GRNet 等)未能利用几何缺失部分,其只关注于完整点云的重建效果,故生成的点云几何形状完整度无法达到本文提出的方法,且GRNet网络针对的为稠密点云,将3D网格作为无序点云的中间表达方法再进行处理,对稀疏的点云补全效果不佳。而其它网络如PF-Net 和PoinTr,适用于几何缺失部分点云的生成,对于稀疏的缺失点云,其生成完整点云会出现不够平滑和不够精细的情况。而本文提出的方法可以有效解决上述情况,其原因如下:本文利用多阶段方式针对性地解决了几何形状缺失和稀疏性缺失问题,网络结构比其它单一结构的网络更丰富;通过增加分形网络,k 近邻局部特征提取和通过FPS采样获取粗略预测的策略,有效提高了点云补全的效果。

3.4 消融实验

为验证本文提出方法的有效性,进行消融实验,实验结果如表2所示。

表2 消融实验

表2 中方法A 将本文方法D 中分形处理去除,改为直接对输入进行提取特征,结果验证分形对网络学习缺失的几何形状具有一定的提升。方法B 将第二阶段编码部分的k 近邻局部特征提取改为PCN 原网络的编码器,结果验证方法D 利用结合k 近邻的卷积网络提取出代表局部细节的新表征对精细化点云的生成有提升。方法C 将PFS 采样获取的粗略预测改为PCN 原方法中的MLP 进行生成粗略预测,其结果表明本文方法D 中通过FPS 采样获取的粗略预测,比通过其它预测的方法得到的几何结构更加准确和完整,对点云补全有显著的提升。

3.5 实验结果可视化

如图6 所示,本文对点云补全的效果进行可视化展示。结果表明,在输入同时存在几何形状缺失和稀疏性缺失的情况下,本文方法补全效果优于其它的方法。对于各类物体,可以很好地还原点云的三维形状和局部细节,点云补全效果与真实完整点云接近。值得注意的是,对于椅子靠背的补全,其它方法补全出的椅子靠背都是一个整体,而本文提出的方法很好地保留了其镂空的细节;除此之外,对于杯子把手的补全,本文提出的方法有效地补全了方形把手,而其它方法都将其生成为更多样本的圆形把手。

图6 可视化效果图

尽管本文方法在一定程度上取得不错的效果,通过观察发现仍然存在一些在点云补全任务中不能很好解决的难点,如图7 所示。其一,对于部分物体的部件,如汽车和摩托车的轮胎生成效果不佳。其原因为在点云补全的过程中因为进行均匀平滑化,导致了物体内各部分的边缘不够锐化,各部件之间生成的点云分布不够准确,仅有物体的整体形状,没有明显的各部分间的区别。其二,面对细长的部分,因其点的个数本身偏少,生成的三维点云会存在不连续的现象。

图7 难点案例分析

4 结束语

本文设计了一种多阶段分形组合的点云补全方法,该方法分别针对几何形状缺失和稀疏性缺失问题进行分阶段补全。其中第一阶段利用分形特征和金字塔模型生成多尺度几何形状缺失点云,并与输入点云进行合并。第二阶段利用KNN graph算法和Point-Net 堆叠网络获得局部特征,并通过折叠网络输出精细化平滑的点云。该方法分阶段实现点云补全,能应对更复杂的点云缺失情况和优化点云补全的过程。通过在ShapeNet数据集上进行实验,有效地验证了本文提出方法的有效性。

猜你喜欢
分形形状精细化
挖藕 假如悲伤有形状……
探讨市政工程的精细化管理
精细化管理的企业管理模式探讨
感受分形
“精细化”全方位培养好参谋
分形之美
你的形状
分形——2018芳草地艺术节
分形空间上广义凸函数的新Simpson型不等式及应用
看到的是什么形状