PF-Net: Point Fractal Network for 3D Point Cloud Completion 2020 论文笔记


上海交通大学,商汤科技

自己的想法:拿这个作为数据预处理模块挺好的,不知道速度怎么样。GAN的损失函数不太了解,导致其中GAN鉴别器的应用部分有点没看懂,一般设计网络的时候可能到计算Chamber loss就可以了,但是这样生成的点云不够自然,所以加入了GAN让点云看起来更像真的,试验结果也显示GAN对性能提升有一定作用。

论文简介

从激光雷达等设备中获取的点云往往有所缺失,这给点云的后续处理带来了一定的困难,也凸显出点云补全作为点云预处理方法的重要性。

传统的点云补完方法基于物体基础结构的先验信息,如对称性信息或语义类信息等,通过一定的先验信息对缺失点云进行修补。这类方法只能处理一些点云缺失率很低、结构特征十分明显的缺失点云。

近年来,一些工作也尝试使用深度学习来实现点云补全,如 LGAN-AE,PCN, 和 3D-Capsule 等,这些工作以不完整点云作为输入,输出完整点云,造成网络过于关注到物体的整体特征而忽略了缺失区域的几何信息。另一方面,这些网络会生成偏向于某类物体共性特征的点云,而失去某个物体的个体特征。

本文提出 unsupervised Point Fractal Network,即PF-Net,采用了类似分形几何的思想,同样以不完整点云作为输入,但是仅输出缺失部分点云,并且较好地保留了某个物体的个体特征。

主要特征有:

  1. 输出为缺失部分的点云,可以更多保留物体点云的空间结构,对物体的局部特性感知更好
  2. 提出了更优的点云特征提取器:多分辨率编码器(Multi-Resolution Encoder),多尺度的方法提升了高低层次点云语义信息提取的效率;
  3. 提出了金字塔解码器(Point Pyramid Decoder,PPD)用于生成点云,利用多阶段补全损失 (Multi-stage completion loss) 监督其中关键点云的生成,从而减少了几何结构瑕疵。
  4. 利用 GAN 鉴别器(Descriminator)优化网络,改善了同一类别不同物体间的特征会相互影响的现象(Genus-wise Distortions Problem)
论文方法

网络总结构:
PF-Net: Point Fractal Network for 3D Point Cloud Completion 2020 论文笔记_第1张图片

网络结构分三大块:

  • 多分辨率编码器:MRE, Multi-Resolution Encoder
  • 金字塔解码器:PPD, Point Pyramid Decoder
  • GAN鉴别器:Descriminator

1. IFPS模块

使用迭代最远点采样( iterative farthest point sampling,IFPS)来从点云数据中提取特征点。该算法也在PointNet++ 中被用于提取点云的骨架。相比CNN方法IFPS更加高效,相比随机采样方法IFPS可以更好的表示整个点云的分布。

PF-Net: Point Fractal Network for 3D Point Cloud Completion 2020 论文笔记_第2张图片

上图结果说明即使我们提取了6.25%的点,这些点仍然可以描述灯的外形,并具有与原始灯相似的密度分布,证实了IFPS的有效性

2. 多分辨率编码器模块 MRE

2.1 特征提取器CMLP: Combined Multi-Layer Perception

顾名思义,CMLP将最后四层的输出拿出来连接在一起,作为最后的特征输出,同时照顾了high-level和low-level的特征。相比只输出最后一层特征的PointNet-MLP效果更好
PF-Net: Point Fractal Network for 3D Point Cloud Completion 2020 论文笔记_第3张图片

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通过卷基层得到主要中心点的预测 Y p r i m a r y , ( M 1 ∗ 3 ) Y_{primary},(M_1*3) YprimaryM13
  • 通过FC2和$Y_{primary} $ 得到次要中心的相对坐标 Y s e c o n d a r y Y_{secondary} Ysecondary
  • 通过FC1和 Y s e c o n d a r y Y_{secondary} Ysecondary得到细节点云 Y d e t a i l Y_{detail} Ydetail

同时, Y d e t a i l Y_{detail} Ydetail将尝试匹配从真值中采样得到的特征点

将点云中的数据点分为主要中心点、次要中心点以及细节点三个层级,这种将具有自相似的“层次”结构分开处理的思想有点类似于分形几何的思想,模型的名字Point Fractal Network中的“Fractal”由此得来。(牛逼的人起的名字也很牛逼)
PF-Net: Point Fractal Network for 3D Point Cloud Completion 2020 论文笔记_第4张图片

4. 损失函数

网络的输出是预测的点云的缺失部分,因此真值也是点云的缺失部分,记为 Y g t Y_{gt} Ygt。损失函数由两部分吧组成:
L = λ c o m L c o m + λ a d v L a d v L=λ_{com}L_{com}+λ_{adv}L_{adv} L=λcomLcom+λadvLadv

4.1 Multi-stage Completion Loss : L c o m L_{com} Lcom

该损失衡量输出点云与真值之间的差别。

作者选择了可导、计算高效的chamber distance(CD)作为度量,衡量预测点云S1与真值点云S2之间的平均最近平方距离:
d C D ( S 1 , S 2 ) = 1 S 1 ∑ x ∈ S 1 m i n y ∈ S 2 ‖ x − y ‖ 2 2 + 1 S 2 ∑ y ∈ S 2 m i n x ∈ ∈ S 1 ‖ y − x ‖ 2 2 d_{CD}(S_1, S_2) =\frac{1}{S_1}\sum_{x\in S_1}min_{y\in S_2}‖x−y‖_2^2+\frac{1}{S_2}\sum_{y\in S_2}min_{x∈\in S_1}‖y−x‖_2^2 dCD(S1,S2)=S11xS1minyS2xy22+S21yS2minxS1yx22
由于有三个分辨率的点云输出,因此总Loss为三项的加权和:
L c o m = d C D 1 ( Y d e t a i l , Y g t ) + α d C D 2 ( Y p r i m a r y , Y ′ g t ) + 2 α d C D 3 ( Y s e c o n d a r y , Y ′ ′ g t ) L_{com}=d_{CD1}(Y_{detail},Y_{gt}) +\alpha d_{CD2}(Y_{primary},Y′_{gt})+ 2\alpha d_{CD3}(Y_{secondary},Y′′_{gt}) Lcom=dCD1(Ydetail,Ygt)+αdCD2(Yprimary,Ygt)+2αdCD3(Ysecondary,Ygt)

4.2 Adversarial Loss: L a d v L_{adv} Ladv:

该损失优化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
L a d v = ∑ 1 ≤ i ≤ S l o g ( D ( y i ) ) + ∑ 1 ≤ j ≤ S l o g ( 1 − D ( y i ′ ) ) L_{adv}=\sum_{1≤i≤S}log(D(y_i)) +\sum_{1≤j≤S}log(1−D(y'_i)) Ladv=1iSlog(D(yi))+1jSlog(1D(yi))

实验内容

实验结果显示PF-Net大部分对比中都是占优的,达到了 SOTA:

PS:

Pred→GT error误差用于衡量预测与真实情况之间的差异,

GT→Pred error表示真值表面被预测的点云覆盖的程度。

PF-Net( vanilla)是指没有GAN鉴别器模块的版本

PF-Net: Point Fractal Network for 3D Point Cloud Completion 2020 论文笔记_第5张图片

PF-Net: Point Fractal Network for 3D Point Cloud Completion 2020 论文笔记_第6张图片

对GAN鉴别器(Discriminator)的分析:

鉴别器的功能是区分预测形状与缺失区域的真实轮廓,并优化网络以生成更“真实”的配置。

上图两个表明,Discriminator可以帮助最小化Pred→GT error。 如上所述,Pred→GT衡量的是预测与实际情况之间的差异。 因此,Discriminator使PF-Net生成与地面实况更相似的点云

对CMLP的分析:

为了证明CMLP的有效性,作者在ModelNet40 上训练了遵循相同线性分类模型的CMLP和其他提取器,并评估了它们的总体分类准确性。

PF-Net: Point Fractal Network for 3D Point Cloud Completion 2020 论文笔记_第7张图片

结果表明,CMLP对语义信息有更好的理解

对MRE与PPD的分析:

作者进一步将PF-Net(vanilla)与三种不同的基线进行了比较:单分辨率MLP,单分辨率CMLP, 和多分辨率CMLP。
PF-Net: Point Fractal Network for 3D Point Cloud Completion 2020 论文笔记_第8张图片

结果表明多分辨率对性能有提高

鲁棒性测试:

作者以三个分别损失了25%,50%和75%的不完整点云作为输入。 注意,三个输入的Pred→GT误差和GT→Pred误差基本上是相同的,这意味着当处理具有不同缺失程度的不完整输入时,我们的网络具有很强的鲁棒性。实验结果如表5所示。

PF-Net: Point Fractal Network for 3D Point Cloud Completion 2020 论文笔记_第9张图片

PF-Net: Point Fractal Network for 3D Point Cloud Completion 2020 论文笔记_第10张图片

实验证明PF-Net可以准确地“识别”不同类型的飞机,即使在大规模不完整的情况下,也可以保留原始点云的几何细节:

PF-Net: Point Fractal Network for 3D Point Cloud Completion 2020 论文笔记_第11张图片

注意第二个两个机翼都缺失的情况下仍然可以补全。

结论

总体来说,PF-Net 实现了缺失点云数据下的精细补全,在不同缺失率和多个缺失位置的情况下的补全效果均较好,可以作为点云预处理方法,提高点云分割、点云识别的准确率.如果该方法得到深入应用,将大大提高三维识别的精度,为自主车辆的研究和三维重建带来新的可能性。

Reference

https://baijiahao.baidu.com/s?id=1660761185133509149&wfr=spider&for=pc

你可能感兴趣的:(点云处理)