CVPR2020:基于层次折叠的跳跃式注意网络点云完成
CVPR2020:基于层次折叠的跳跃式注意网络点云完成
Point Cloud Completion by Skip-Attention Network With Hierarchical Folding
论文地址:
摘要
点云完成的目的是从不完整区域中推断出三维物体缺失区域的完整几何图形。以往的方法通常基于不完全输入提取的全局形状表示来预测完整点云。然而,在不完全点云的局部区域,全局表示往往会出现结构细节信息丢失的问题。为了解决这一问题,我们提出了一种用于3D点云完成的跳过注意网络(SA-Net)。我们的贡献主要体现在以下两个方面。首先,我们提出了一种跳跃注意机制,以有效地利用不完全点云在缺失部分推断过程中的局部结构细节。跳跃注意机制有选择地从不完整点云的局部区域传递几何信息,生成不同分辨率的完整点云,跳跃注意以可解释的方式揭示完成过程。其次,为了充分利用跳转注意机制在不同分辨率下所编码的选定几何信息,我们提出了一种新的分层折叠结构保持解码器来完成形状的生成。分层折叠保留了上层生成的完整点云的结构,通过逐步细化局部区域,使用相同分辨率的跳过注意几何体。我们在ShapeNet和KITTI数据集上进行了全面的实验,结果表明所提出的SA网络优于最先进的点云完成方法。
1.介绍
近年来,点云作为三维物体的一种形式受到了广泛的关注,它可以方便地被三维扫描设备和深度相机访问。然而,由这些设备产生的原始点云通常是稀疏的、有噪声的,并且由于视角或遮挡的限制,大多具有严重的缺失区域[47],这很难通过进一步的形状分析/渲染方法直接处理。因此,原始点云的预处理成为现实中许多三维计算机视觉应用的重要要求。本文主要研究点云表示的三维形状的缺失区域的完成问题。
点云完成的任务可以大致分解为两个目标[41,47]。第一个目标是保留原始输入点云的几何形状信息,第二个目标是根据给定的输入恢复丢失的区域。为了实现这两个目标,目前的研究通常遵循范式框架,从不完整的点云中学习全局形状表示,并进一步利用它来估计丢失的几何信息[45,47,22]。然而,编码后的全局形状表示往往会受到不完整点云局部区域结构细节信息丢失的影响,为了进一步推断丢失的几何信息,必须充分保留这些细节信息。如图1所示,为了预测飞机的完整机翼,网络应首先保留不完整点云中现有的左翼。然后,根据两个相似机翼区域之间的模式相似性,网络可以参考现有的左翼,从而推断出缺失的右翼。
解决这个问题的一个直观的想法是采用U-Net[35]这样的跳转连接机制,这种机制被广泛用于图像的局部区域重建和推理。但是,直接采用跳接方式完成点云计算存在两个问题。首先,在文献[35]中提出的跳跃连接不能直接应用于无序输入,因为它根据二维网格的像素顺序连接特征向量。其次,在点云完成的任务中,并不是每一层分辨率下的所有局部区域特征都有助于形状的推断和重建。同样地,用跳跃连接重新访问它们可能会引入信息冗余,限制整个网络的特征学习能力。
因此,为了在解决skipconnection问题的同时保留结构细节信息,我们提出了一种新的用于点云完成的深度神经网络Skip-Attention网络(SA-Net)。该网络采用端到端的架构设计,其中编码器-解码器架构专门用于特征提取和形状完成。跳过注意是指基于注意的特征管道,它以可解释的方式揭示完成过程。跳跃注意有选择地从不完整点云的局部区域传递几何信息,以生成不同分辨率的完整点云。skip-attention使解码器能够充分利用和保留本地区域的结构细节。与跳跃连接相比,跳跃注意可以推广到无序点云,因为注意机制对输入特征的顺序没有预先要求。此外,我们的跳跃注意为网络在不同分辨率下重新访问特征提供了一种注意选择,使得网络能够有选择地将编码后的特征与期望的几何信息结合起来,避免了信息冗余的问题。
为了在不同分辨率下充分利用跳转注意所选择的几何信息,我们进一步提出了一种分层折叠的结构保持解码器来生成完整的点云。分层折叠保留了在上层生成的点云结构,通过使用来自编码器的相同分辨率的跳过衰减几何信息逐步细化局部区域。具体地说,解码器具有与编码器相同数量的分辨率级别,跳过注意将每个级别的编码器连接到相应级别的解码器。为了分层折叠点云,我们建议从一个固定尺寸的二维平面以增加密度的方式采样二维网格。与现有点云完成方法[47,41,45]中的解码器相比,所提出的结构保持解码器能够在整个分辨率水平下保留局部区域的结构细节,这使得网络能够预测完整的形状,在捕获更多局部区域信息的同时保持全局形状的一致性。我们的主要贡献概括如下。
•我们提出了一种新的跳跃注意网络(SA-Net)来完成点云任务,取得了最新的成果。此外,SA-Net的体系结构还可以用于提高形状分割的性能,并在无监督的形状分类中实现最先进的结果。
•我们提出了跳跃注意机制,将编码器的信息局部区域特征融合到不同分辨率的解码器的点特征中,使得网络能够从不完整的点云中利用更详细的几何信息推断缺失的区域。此外,跳过注意以可解释的方式揭示完成过程。
•我们提出了一种用于高质量点云生成的结构保持解码器。通过层次折叠,可以逐步细化不同分辨率下的点云,从而在不同分辨率下保持完整形状的结构。
2.相关工作
三维计算机视觉是近年来一个活跃的研究领域[5,11,10,12,29,13,31],其中对三维形状完成的研究有很多分支。例如,基于几何的[40,2,42,23]方法利用部分输入的曲面的几何特征来生成3D形状的缺失部分,基于对齐的方法[37,24,32,38]维护形状数据库并搜索相似的补丁来填充三维形状的不完整区域。我们的方法属于基于深度学习的方法,这得益于三维计算机视觉中深层神经网络的最新发展[9,28,20,16,18,15,17,14]。这个分支可以根据三维形状的输入形式进一步分类。
体积形状完成
三维体积形状的完成是一个方向,从二维计算机视觉的进步中受益匪浅。像3D-EPN[4]这样的著名工作考虑了3D体积形状的渐进重建。而Han等人[8]将整体结构的推断与局部几何特征相结合,直接生成高分辨率的完整三维体积形状。最近,引入变分自动编码器来学习形状先验,以推断完整形状的潜在表示[39]。尽管三维体数据的研究领域已经取得了令人瞩目的进步,但计算成本与输入数据的分辨率成立方关系,使得处理黑色形状变得困难。
点云完成
基于点云的三维形状完成是一个蓬勃发展的研究领域,得益于PointNet[33]和PointNet++[34]的开创性工作。点云作为三维形状的一种紧凑表示方法,可以表示三维形状的任意细节结构,与三维体数据相比,存储成本较小。最近一些著名的研究如PCN[47]、FoldingNet[45]和AtlasNet[7]通常从局部点云中学习全局表示,并根据学习到的全局特征生成完整的形状。遵循同样的实践,TopNet[41]中提出了一种树结构解码器,以更好地生成结构感知的点云。通过将强化学习与对抗网络相结合,RL-GAN网络[36]和Render4Completion[21]进一步提高了生成的完整点云与地面真实的真实性和一致性。然而,这些研究大多受到结构细节信息丢失的影响,因为它们只能从单个全局形状表示来预测整个点云。
3.SA-Net网的体系结构
图2显示了SA网络的总体架构,它由一个编码器和一个保留结构的解码器组成。在编码器和译码器之间,跳转注意作为连接局部区域特征(从编码器不同分辨率中提取)和解码器相应分辨率中的点特征的管道。
在给定输入点云大小N=2048及其三维坐标的情况下,SA网络编码器的目标是从不完全输入点云中提取特征。在SA-Net中,我们采用PointNet++[34]框架作为我们的点云特征编码器的骨干。如图2所示,有三个级别的特征提取。
考虑到编码器从不同分辨率水平提取局部区域特征,解码器通常采用相同的方法生成点特征,但分辨率水平是相反的。这允许跳过注意在编码器中提取的局部区域特征和解码器中生成的点特征之间建立一个水平到水平的连接。受此启发,我们提出了结构保持解码器,其目的是逐步生成完整的点云,并在所有分辨率下保持局部区域的结构细节。具体来说,如图2所示,结构保持解码器将点云分层折叠为三个分辨率级别,这等于编码器中的分辨率级别数。译码器的每一分辨率级包括一个跳转注意和一个折叠块以增加点特征的数目。
在SA-Net中,我们借鉴了文献[26]中上下向上框架的思想来解决这个问题,并将其作为折叠块的基础。图3显示了第i级解码器中折叠块的详细结构。
以上两个目的都是通过注意机制实现的,如图4所示,其中解码器中的点特征和编码器中的局部区域特征之间的语义相关性是通过注意分数来衡量的,分数越高表示模式相似度越大(飞机的机翼)。然后,通过加权和将局部区域特征融合为点特征,最终用于预测完整点云中的相关区域(也包括平面机翼)。
4.实验测试
在图5中,我们展示了使用SA网络完成点云的可视化结果,并与其他方法进行了比较,从中我们可以发现SA网络预测的形状更合理,同时保留了现有零件更一致的几何形状。例如,在图5(a.2)和图5(a.3)中,与其他三种方法相比,SA网络在预测灯座和桌腿缺失时生成更真实的形状,SA网络生成的点排列更紧密,形状更接近地面真实。在图5(a.1)和图5(a.4)中,与其他三种方法相比,SA网更能保持机翼和横梁的形状。通过对形状完成任务的定量和定性改进,证明了技巧引入局部区域特征的有效性,以及结构保持解码器利用局部区域特征重构完成点云的能力。此外,在表2中,我们比较了不同方法的网络中可训练参数的数量,这表明SA网络的参数数目最少,同时取得了显著的更好的性能。
KITTI数据集
KITTI数据集是从真实世界的激光雷达扫描中收集的,在那里,地面真相缺失,无法进行定量评估。因此,我们通过可视化结果对SA网络的性能进行了定性的评价。对于图6中的所有方法,使用ShapeNet数据集中在car category下训练的参数来预测完整的汽车。请注意,在KITTI数据集中,不完整车的点数有很大的变化范围。为了获得一个固定的输入点数,对于超过2048个点的不完整车辆,我们随机选择2048个点,否则,我们从输入中随机选择点来弥补2048个点。结果如图6所示,从中我们可以发现,我们的SA网络预测了更多的结构细节(汽车层)和更高质量的形状(汽车行李箱)。
注意的效果
我们开发了三个SA网变体来验证SA Net中注意的有效性:(1)“No-skip”是从SA网中删除技巧的变体。(2) “Skip-L”是用可学注意代替跳跃注意中余弦注意的变化。(3) “Fold-C”是折叠块自我注意中用余弦相似性代替可学习注意的变化。除已移除/更换的模块外,所有三种变体的结构与SA Net相同。结果如表3所示,其中原始SA网的性能最好。实验结果证明了注意在SA网络中的有效性。在skip attention(skip-L)和self attention(Fold-C)中替换注意的性能下降可用于两个模块的不同设计目的。
优化损失效应
为了评估EMD损失和CD损失对SA网络的影响,我们开发了两个变量:(1)“SA-Net-EMD”是仅使用EMD损失训练的SA网络的变化;(2)“SA-Net-CD”是仅使用CD损失训练的变化量。比较结果如表4所示,证明EMD和CD对SA-Net的性能都有贡献。
输入点数的影响
分析了SA网络对不同输入分辨率的鲁棒性,特别是对稀疏输入的鲁棒性。在这个实验中,我们将输出点云的数量固定到2048个,并在256到2048个分辨率的输入点云上评估SA网络的性能。对于小于2048的点,我们使用KITTI数据集中相同的策略从输入中随机选择点,并将点数提升到2048。表5报告了以每点CD表示的模型性能。在图7中,我们将不完整点云的不同点数下的完成质量可视化,其中SA网络显示了在所有输入分辨率上的健壮性能。
跳跃注意的可视化
在图8中,我们将注意力集中在解码器的第二个分辨率级别,即预测一个完整的平面。我们比较了学习的生成尾翼和两翼部分的技巧。在图8(a)和图8(b)的左半部分,由同一点特征生成的点用红色表示,并在右半部分显示该点特征分配给不完整点云局部区域的相应注意得分。如图8(a)所示,当生成属于尾翼的点时,跳过注意搜索输入点云中的相对局部区域(也就是尾翼)进行预测。在图8(b)中,当预测翅膀的点(右翅膀缺失的地方),跳跃注意在不完全点云中选择左翼区域(通过分配更高的注意力)来预测两个翅膀的形状。在其他类别上也可以观察到类似的模式,如图8所示。
层次折叠的可视化
在图9中,我们将解码器中的分层折叠可视化。我们跟踪一个特定的蓝色向量的折叠过程,并用蓝色矩形表示从这个蓝色向量导出的点。从局部的角度,我们观察到每个初始点特征成功地学习在平面上生成特定区域。在蓝色初始点特征的情况下,它生成飞机的左翼。另一方面,从全局的角度,我们可以观察到SA网的折叠过程并不像FoldingNet一样严格遵循2D流形假设[45]。正如[41]所指出的,从二维流形结构中加强学习对于训练来说可能不是最优的,因为可能解的空间是受限的。因此,在SA网络中观察到的与二维流形的细微偏差,对于学习生成不同的形状和保存更好的结构细节更为灵活。这两个观察结果都证明了层次折叠的有效性。此外,我们还将图9中car和table类别下的折叠过程可视化。
表6显示了部分平均相交于并集(pIoU,%)和平均每类pIoU(mpIoU,%)的比较[27],从中我们可以发现,SA Net seg与PointNet++的基线方法相比,显著提高了分割性能。具体来说,跳过注意可以将骨干点网++的性能提高0.6%(以百万为单位)。在图10(a)中,我们将分割结果可视化,并将SANet seg与基准PointNet和PointNet++进行了比较,从中我们可以发现SA-Net seg可以更精确地预测语义标签。尤其是,SA Net seg显著提高了摩托车层上的分割精度,其中车身和车身层彼此严重重叠。这种改进源于编码器的跳跃注意所传递的局部区域特征,这有助于插值层在局部区域做出更具区分性的预测。图10(b)给出了更多的分割结果。