上海交通大学,商汤科技
自己的想法:拿这个作为数据预处理模块挺好的,不知道速度怎么样。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通过卷基层得到主要中心点的预测 Y p r i m a r y , ( M 1 ∗ 3 ) Y_{primary},(M_1*3) Yprimary,(M1∗3),
- 通过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”由此得来。(牛逼的人起的名字也很牛逼)
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)=S11x∈S1∑miny∈S2‖x−y‖22+S21y∈S2∑minx∈∈S1‖y−x‖22
由于有三个分辨率的点云输出,因此总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,Y′gt)+2αdCD3(Ysecondary,Y′′gt)
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=1≤i≤S∑log(D(yi))+1≤j≤S∑log(1−D(yi′))
实验结果显示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 实现了缺失点云数据下的精细补全,在不同缺失率和多个缺失位置的情况下的补全效果均较好,可以作为点云预处理方法,提高点云分割、点云识别的准确率.如果该方法得到深入应用,将大大提高三维识别的精度,为自主车辆的研究和三维重建带来新的可能性。