上海交通大学,商汤科技
从激光雷达等设备中获取的点云往往有所缺失,这给点云的后续处理带来了一定的困难,也凸显出点云补全作为点云预处理方法的重要性。
传统的点云补完方法基于物体基础结构的先验信息,如对称性信息或语义类信息等,通过一定的先验信息对缺失点云进行修补。这类方法只能处理一些点云缺失率很低、结构特征十分明显的缺失点云。
近年来,一些工作也尝试使用深度学习来实现点云补全,如 LGAN-AE,PCN, 和 3D-Capsule 等,这些工作以不完整点云作为输入,输出完整点云,造成网络过于关注到物体的整体特征而忽略了缺失区域的几何信息。另一方面,这些网络会生成偏向于某类物体共性特征的点云,而失去某个物体的个体特征。
本文提出 unsupervised Point Fractal Network,即PF-Net,采用了类似分形几何的思想,同样以不完整点云作为输入,但是仅输出缺失部分点云,并且较好地保留了某个物体的个体特征。
主要特征有:
网络结构分三大块:
使用迭代最远点采样( iterative farthest point sampling,IFPS)来从点云数据中提取特征点。该算法也在PointNet++ 中被用于提取点云的骨架。相比CNN方法IFPS更加高效,相比随机采样方法IFPS可以更好的表示整个点云的分布。
上图结果说明即使我们提取了6.25%的点,这些点仍然可以描述灯的外形,并具有与原始灯相似的密度分布,证实了IFPS的有效性
顾名思义,CMLP将最后四层的输出拿出来连接在一起,作为最后的特征输出,同时照顾了high-level和low-level的特征。相比只输出最后一层特征的PointNet-MLP效果更好
模型使用IFPS采样后共有3个输入点云,每个都有独立的CMLP模块进行特征提取,得到三个独立的特征向量F1 F2 F3,然后输入到一个MLP中得到final vector V。
输入为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。
同时, Y d e t a i l Y_{detail} Ydetail将尝试匹配从真值中采样得到的特征点
将点云中的数据点分为主要中心点、次要中心点以及细节点三个层级,这种将具有自相似的“层次”结构分开处理的思想有点类似于分形几何的思想,模型的名字Point Fractal Network中的“Fractal”由此得来。(牛逼的人起的名字也很牛逼)
网络的输出是预测的点云的缺失部分,因此真值也是点云的缺失部分,记为 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
该损失衡量输出点云与真值之间的差别。
作者选择了可导、计算高效的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)
该损失优化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′))
PS:
Pred→GT error误差用于衡量预测与真实情况之间的差异,
GT→Pred error表示真值表面被预测的点云覆盖的程度。
PF-Net( vanilla)是指没有GAN鉴别器模块的版本
鉴别器的功能是区分预测形状与缺失区域的真实轮廓,并优化网络以生成更“真实”的配置。
上图两个表明,Discriminator可以帮助最小化Pred→GT error。 如上所述,Pred→GT衡量的是预测与实际情况之间的差异。 因此,Discriminator使PF-Net生成与地面实况更相似的点云
为了证明CMLP的有效性,作者在ModelNet40 上训练了遵循相同线性分类模型的CMLP和其他提取器,并评估了它们的总体分类准确性。
结果表明,CMLP对语义信息有更好的理解
作者进一步将PF-Net(vanilla)与三种不同的基线进行了比较:单分辨率MLP,单分辨率CMLP, 和多分辨率CMLP。
结果表明多分辨率对性能有提高
作者以三个分别损失了25%,50%和75%的不完整点云作为输入。 注意,三个输入的Pred→GT误差和GT→Pred误差基本上是相同的,这意味着当处理具有不同缺失程度的不完整输入时,我们的网络具有很强的鲁棒性。实验结果如表5所示。
实验证明PF-Net可以准确地“识别”不同类型的飞机,即使在大规模不完整的情况下,也可以保留原始点云的几何细节:
注意第二个两个机翼都缺失的情况下仍然可以补全。
总体来说,PF-Net 实现了缺失点云数据下的精细补全,在不同缺失率和多个缺失位置的情况下的补全效果均较好,可以作为点云预处理方法,提高点云分割、点云识别的准确率.如果该方法得到深入应用,将大大提高三维识别的精度,为自主车辆的研究和三维重建带来新的可能性。
https://baijiahao.baidu.com/s?id=1660761185133509149&wfr=spider&for=pc