上海交通大学,商汤科技
自己的想法:拿这个作为数据预处理模块挺好的,不知道速度怎么样。GAN的损失函数不太了解,导致其中GAN鉴别器的应用部分有点没看懂,一般设计网络的时候可能到计算Chamber loss就可以了,但是这样生成的点云不够自然,所以加入了GAN让点云看起来更像真的,试验结果也显示GAN对性能提升有一定作用。
从激光雷达等设备中获取的点云往往有所缺失,这给点云的后续处理带来了一定的困难,也凸显出点云补全作为点云预处理方法的重要性。
传统的点云补完方法基于物体基础结构的先验信息,如对称性信息或语义类信息等,通过一定的先验信息对缺失点云进行修补。这类方法只能处理一些点云缺失率很低、结构特征十分明显的缺失点云。
近年来,一些工作也尝试使用深度学习来实现点云补全,如 LGAN-AE,PCN, 和 3D-Capsule 等,这些工作以不完整点云作为输入,输出完整点云,造成网络过于关注到物体的整体特征而忽略了缺失区域的几何信息。另一方面,这些网络会生成偏向于某类物体共性特征的点云,而失去某个物体的个体特征。
本文提出 unsupervised Point Fractal Network,即PF-Net,采用了类似分形几何的思想,同样以不完整点云作为输入,但是仅输出缺失部分点云,并且较好地保留了某个物体的个体特征。
主要特征有:
- 输出为缺失部分的点云,可以更多保留物体点云的空间结构,对物体的局部特性感知更好
- 提出了更优的点云特征提取器:多分辨率编码器(Multi-Resolution Encoder),多尺度的方法提升了高低层次点云语义信息提取的效率;
- 提出了金字塔解码器(Point Pyramid Decoder,PPD)用于生成点云,利用多阶段补全损失 (Multi-stage completion loss) 监督其中关键点云的生成,从而减少了几何结构瑕疵。
- 利用 GAN 鉴别器(Descriminator)优化网络,改善了同一类别不同物体间的特征会相互影响的现象(Genus-wise Distortions Problem)
网络总结构:
网络结构分三大块:
- 多分辨率编码器:MRE, Multi-Resolution Encoder
- 金字塔解码器:PPD, Point Pyramid Decoder
- GAN鉴别器:Descriminator
1. IFPS模块
使用迭代最远点采样( iterative farthest point sampling,IFPS)来从点云数据中提取特征点。该算法也在PointNet++ 中被用于提取点云的骨架。相比CNN方法IFPS更加高效,相比随机采样方法IFPS可以更好的表示整个点云的分布。
上图结果说明即使我们提取了6.25%的点,这些点仍然可以描述灯的外形,并具有与原始灯相似的密度分布,证实了IFPS的有效性
2. 多分辨率编码器模块 MRE
2.1 特征提取器CMLP: Combined Multi-Layer Perception
顾名思义,CMLP将最后四层的输出拿出来连接在一起,作为最后的特征输出,同时照顾了high-level和low-level的特征。相比只输出最后一层特征的PointNet-MLP效果更好
2.2 MRE
模型使用IFPS采样后共有3个输入点云,每个都有独立的CMLP模块进行特征提取,得到三个独立的特征向量F1 F2 F3,然后输入到一个MLP中得到final vector V。
3. 金字塔解码模块 PPD
输入为final vector V, 输出M×3的点云,代表缺失的点云。
全连接的解码器擅长预测点云的整体几何信息,但是,由于它仅使用最后一层来预测形状,因此始终会导致局部几何信息丢失。先前的工作将全连接解码器与folding-based的解码器结合在一起,以增强预测局部几何形状。但是,如《Point cloud auto-encoder via deep grid de-formation》中所提到,如果原始表面相对复杂,folding-based解码器将无法很好地处理类属失真( genus-wise distortions,同一类别不同物体间的特征会相互影响的现象)并保留原始的详细几何形状。
受到FPN的启发作者设计了金字塔解码模块PDD:
使用全连接层以final vector V为输入得到三个特征FC1,FC2, FC3。
- FC3通过卷基层得到主要中心点的预测,
- 通过FC2和$Y_{primary} $ 得到次要中心的相对坐标 ,
- 通过FC1和得到细节点云
同时,将尝试匹配从真值中采样得到的特征点
将点云中的数据点分为主要中心点、次要中心点以及细节点三个层级,这种将具有自相似的“层次”结构分开处理的思想有点类似于分形几何的思想,模型的名字Point Fractal Network中的“Fractal”由此得来。(牛逼的人起的名字也很牛逼)
4. 损失函数
网络的输出是预测的点云的缺失部分,因此真值也是点云的缺失部分,记为。损失函数由两部分吧组成:
4.1 Multi-stage Completion Loss :
该损失衡量输出点云与真值之间的差别。
作者选择了可导、计算高效的chamber distance(CD)作为度量,衡量预测点云S1与真值点云S2之间的平均最近平方距离:
由于有三个分辨率的点云输出,因此总Loss为三项的加权和:
4.2 Adversarial Loss: :
该损失优化MRE和PPD来使输出看起来更加真实。
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
实验结果显示PF-Net大部分对比中都是占优的,达到了 SOTA:
PS:
Pred→GT error误差用于衡量预测与真实情况之间的差异,
GT→Pred error表示真值表面被预测的点云覆盖的程度。
PF-Net( vanilla)是指没有GAN鉴别器模块的版本
对GAN鉴别器(Discriminator)的分析:
鉴别器的功能是区分预测形状与缺失区域的真实轮廓,并优化网络以生成更“真实”的配置。
上图两个表明,Discriminator可以帮助最小化Pred→GT error。 如上所述,Pred→GT衡量的是预测与实际情况之间的差异。 因此,Discriminator使PF-Net生成与地面实况更相似的点云
对CMLP的分析:
为了证明CMLP的有效性,作者在ModelNet40 上训练了遵循相同线性分类模型的CMLP和其他提取器,并评估了它们的总体分类准确性。
结果表明,CMLP对语义信息有更好的理解
对MRE与PPD的分析:
作者进一步将PF-Net(vanilla)与三种不同的基线进行了比较:单分辨率MLP,单分辨率CMLP, 和多分辨率CMLP。
结果表明多分辨率对性能有提高
鲁棒性测试:
作者以三个分别损失了25%,50%和75%的不完整点云作为输入。 注意,三个输入的Pred→GT误差和GT→Pred误差基本上是相同的,这意味着当处理具有不同缺失程度的不完整输入时,我们的网络具有很强的鲁棒性。实验结果如表5所示。
实验证明PF-Net可以准确地“识别”不同类型的飞机,即使在大规模不完整的情况下,也可以保留原始点云的几何细节:
注意第二个两个机翼都缺失的情况下仍然可以补全。
总体来说,PF-Net 实现了缺失点云数据下的精细补全,在不同缺失率和多个缺失位置的情况下的补全效果均较好,可以作为点云预处理方法,提高点云分割、点云识别的准确率.如果该方法得到深入应用,将大大提高三维识别的精度,为自主车辆的研究和三维重建带来新的可能性。
Reference
https://baijiahao.baidu.com/s?id=1660761185133509149&wfr=spider&for=pc