原创 | 文 BFT机器人
01
背景
从激光雷达等设备中获取的点云往往有所缺失(反光、遮挡等),这给点云的后续处理带来了一定的困难,也凸显出点云补全作为点云预处理方法的重要性。
点云补全(Point Cloud Completion)用于修补有所缺失的点云(Point Cloud),从缺失点云出发估计完整点云,从而获得更高质量的点云。点云有助于用较小的数据量描述三维物体,在三维物体的检测识别领域应用广泛。
02
相关工作
传统的点云补全方法基于一定的物体基础结构的先验信息,如对称性信息或语义类信息等,通过一定的先验信息对缺失点云进行修补。这类方法只能处理一些点云缺失率很低、结构特征十分明显的缺失点云。
在 PointNet 和 PointNet++ 使用深度学习网络实现了点云分割和点云分类之后,点云深度学习逐渐成为热门研究领域。
如 LGAN-AE,PCN, 和 3D-Capsule 等,这些工作以不完整点云作为输入,输出完整点云,造成网络过于关注到物体的整体特征而忽略了缺失区域的几何信息。
另一方面,这些网络会生成偏向于某类物体共性特征的点云,而失去某个物体的个体特征。(这些工作更注重于学习属性或者类别的一般特征,而不是学习某一特定对象的局部细节)容易改变原有物体的特性(位置错误、几何特征丢失、形状扭曲等)。
03
简介
文章提出一种基于深度学习的点云分形网络PF-Net。PF-Net采用了一些自己的思路和方法来改善现有的问题:
1.以不完整点云作为输入,仅输出缺失部分点云,可保留物体点云的空间结构,对物体的局部特性感知更好;
2.提出了更优的点云特征提取器:多分辨率编码器(Multi-Resolution Encoder),多尺度的方法提升了高低层次点云语义信息提取的效率;
3.提出了点云金字塔解码器(Point Pyramid Decoder)用于生成点云,利用多阶段补全损失加粗样式 (Multi-stage completion loss) 监督其中关键点云的生成,从而减少了几何结构瑕疵。
4.利用 GAN*结构的鉴别器(Descriminator)优化网络,改善了同一类别不同物体间的特征会相互影响的现象(Genus-wise Distortions Problem)。
04
PF-Net网络结构
4.1 MRE(多分辨率编码器)
对输入点云做迭代最远点采样(FPS),获得更小尺度且更具有轮廓特征的降采样点云,如图所示。
MLP(CMLP)主要采用MPL(多层感知机)的处理方式。不同的是,分别对最后四层网络(output_dim=128,256,512,1024)的输出做maxpooling。
再将这四层pooling后的输出拼接(concat)形成Latent Vector F (dim=1920x1),如图4。该方式能更充分的利用高层和底层特征。
拼接三个不同尺度点云的CMLP输出,获得Final Latent Map M(dim=1920x3)将M通过多层感知机MLP从(1920x3)变换成(1920x1),获得Final Feature Vector V。
4.2 PPD(点云金字塔解码器)
PPD 的主要思想是监督每一阶段的点云,提升关键点的生成质量,在关键点的基础上不断生成新的点云。
借鉴图像处理中经典的SIFT算法,采用特征金字塔加粗样式的方式,对编码出的特征,进行多尺度的解码,生成不同尺度的点云。
现有方法大都利用最后一个输出层的结果来做预测,导致只保留了全局特征而丢失了局部特征。为了更好地保留细节,网络中设计多层的特征解码,使不同粒度的特征更好地保留。
将上一步获得的Final Feature Vector V通过三个FC(全连接)层,产生三个不同尺度的点云特征。
以此为例,经过一系列操作(linear, reshape, convolution)生成与采样后的Ground Truth点云数相同的生成点云,用于后续Loss部分的构建。
4.3 损失函数(包含GAN鉴别器)
损失函数由两部分组成:Multi-stage Completion Loss 和 Adversarial Loss
1.Multi-stage Completion Loss(Lcom):
该损失衡量输出点云与真值之间的差别。
引入计算两个点云间的距离公式(公式1)其中,S1可以表示生成的点云,S2可以表示Ground Truth,对于S1中的每个点,找到其与S2中距离最近的点,计算欧氏距离后求和取平均,作为距离公式的第一部分;第二部分相似,对于S2中的每个点,找到其与S1中距离 最近的点,计算欧氏距离后求和取平均。
在PDD解码器中,生成了三个不同尺度的点云,将三个对应的值取不同权重相加,作为总体损失的一部分(公式2)
2.Adversarial Loss(Ladv):
该损失优化MRE和PPD,使输出看起来更加真实。
GAN鉴别器:GAN鉴别器是一个分类器,其结构与CMLP类似:对一个多层MLP[64−64−128−256]的最后三层的输出进行maxpool得到feature vector f_i, i= 1, 2, 3.将f_i连接得到F,F通过全连接层 [256,128,16,1]以及Sigmoid函数得带最终的预测值。
假设GAN 鉴别器的输出为D(), 其输入为残缺部分点云的预测值y’或对应真值y。
3.Joint Loss
将以上两部分的Loss以不同权重相加,获得完整的Loss Function。
05
实验分析
实验结果显示PF-Net大部分对比中都是占优的,达到了 SOTA:
可以看出PF-Net细腻地输出与GroudTruth最接近。
从上图的桌子、椅子中可以看出,PF-Net 没有学习桌子椅子这些类别的一般(共性)特征,可以输出个体差异,比如特殊的缺角的桌子和背靠5根的椅子。
1.Pred→GT error误差用于衡量预测与真实情况之间的差异。
2.GT→Pred error表示真值表面被预测的点云覆盖的程度。
3.PF-Net(vanilla)是指没有GAN鉴别器模块的版本。
对GAN鉴别器(Discriminator)的分析:
鉴别器的功能是区分预测形状与缺失区域的真实轮廓,并优化网络以生成更“真实”的配置。上图两个表明,Discriminator可以帮助最小化Pred→GT error。如上所述,Pred→GT衡量的是预测与实际情况之间的差异。因此,Discriminator使PF-Net生成与地面实况更相似的点云。
鲁棒性测试:
作者以三个分别损失了25%,50%和75%的不完整点云作为输入。注意,三个输入的Pred→GT误差和GT→Pred误差基本上是相同的,这意味着当处理具有不同缺失程度的不完整输入时,我们的网络具有很强的鲁棒性。实验结果如表所示。
实验证明PF-Net可以准确地“识别”不同类型的飞机,即使在大规模不完整的情况下,也可以保留原始点云的几何细节。
注意第二个两个机翼都缺失的情况下仍然可以补全。
作者 | 江诚
排版 | 居居手
更多精彩内容请关注公众号:BFT机器人
(公众号后台回复“优惠活动”查看BFT机器人年终钜惠福利内容)
本文为原创文章,版权归BFT机器人所有,如需转载请与我们联系。若您对该文章内容有任何疑问,请与我们联系,将及时回应。