GeoNet: Deep Geodesic Networks for Point Cloud Analysis
论文: https://arxiv.org/pdf/1901.00680.pdf
代码:目前还没有开源
一、摘要
这是点云相关的深度学习任务中第一个提出去推断点云表面的拓扑结构的工作。3D物体的表面的拓扑结构往往能为其语义分割或者模型重建任务中带来强大的特征,但是这样的特征在点云中却往往丢失了。因此这篇文章提出了一个GeoNet的模型,用来推断点云表面的拓扑学特征。通过这样特征的学习,其可以运用在一些下游的任务上,例如语义分割(放在Pointnet++前面)、点云上采样(PU-Net)等等,这篇文章证明了,该模型学习出来的特征可以广泛的提升下游任务的水平。
二、模型简介
2.1 研究目的
确定点云中各点之间的邻域关系,即拓扑估计,是一个重要的工作,因为它揭示了点云的底层结构,可以进一步表示点云的语义和功能。考虑下图红色框框的部分,这两组点虽然看起来不相连,但实际上应该连接起来,形成一个椅子的腿。另一方面,座椅相对两侧的点,尽管在空间上彼此非常接近,但不应该连接起来,以免混淆可坐的上表面和不可坐的下表面。确定这样的拓扑结构似乎是一项非常低级的工作,但实际上它需要全局的、高级别的知识,这使得它成为一项非常具有挑战性的任务。尽管如此,从图中我们可以得出结论,只有在我们从大量点云中学习统计规律并观察到许多具有从身体延伸到地面的连接的细长且垂直元素的这种类型的物体之后,我们才能判断其两部分是应该连接的。这促使我们采用一种学习方法来捕捉点云中的拓扑结构。
因此这篇文章的初衷就是可以设计一种点云的升级版表示,这样的表示可以携带更多点云物体表面的拓扑学结构,这样的结构不仅不会改变点云的特性,还能帮助下游的任务更好的联合学习点云的特征(例如Pointnet++和PU-Net)。
总结一下,本文的核心贡献点:
- 第一次提出利用深度学习去估计点云的测地距离
- 通过学习测地距离的特征可以用在下游的任务去提高结果
2.2 相关工作
- Pointnet++为主的点云分割网络可以参考我的博文:从PointNet到PointNet++理论及pytorch代码
- PU-Net点云上采样网络可以参考我的博文:PU-Net:点云上采样网络(CVPR2018-6)
- 点云表面的法向量计算(即每个点表面的垂直向量)
- 点云模型上测地线的计算(即表面距离最短的线)
2.3 模型实现
首先要知道这篇文章的初中是通过点云的特征去计算点与点之间的测地距离(Geodesic)。那么问题来了,什么是测地距离?
测地距离,指的就是两个点在流形表面相连留下的路径的距离,可以先从下面这张图看起:
其中红色圆点到红色星星的欧几里得距离(即蓝色的虚线)非常得近,但是它们的测地线距离(粉色的虚线)非常得远。因此这样的测地线学习实际上是可以帮助模型去更好地处理下游任务的(毕竟新添加了特征)。
2.3.1 测地距离估计
本文的第一个任务及拓扑估计,建立测地性邻域估计网络,其通过使用 groundtruth测地距离作为监督(由于使用传统方法的错误率较小,因此本文直接采用了传统方法的测地距离来当作groudtruth)来学习点与点之间的测地距离,网络本身主要分成两个模块:
- 第一个模块通过一个auto-encoder去学习每个点的高维特征;
- 第二个模块引入了一个geodesic matching (GM) layer去通过高维特征学习一个核函数去估计每个点的测地邻域点;
因此,网络的输入本来是
的点云,通过了auto-encoder以后变成了
,其中3维为xyz的左边,C维为高维的语义特征。在geodesic matching (GM) layer中,网络将刚刚网络的输出作为输入,然后通过
种不同的半径去取邻居点,对于每个点,不同的半径
,取
个邻居点,因此对于
个点,在半径
下的邻居的特征为
的输出,这些邻居再拼接上
个点本身的特征,就是geodesic matching,输出为
。接着这样的特征再通过MLP(FC、Relu、Dropout等操作)得到了最后的输出
,其中3维为xyz维度,1为测地距离。最后可以通过这样的方式去计算loss并且更新网络:
借助于监督式的测地训练过程,GM层的中间特征包含丰富的点云拓扑学信息以及固有的曲面属性。本文注意到,尽管表示在测地距离上训练,但由于没有施加对称性、三角不等式等基于距离的约束,所学得的表示暂时并不适合作为标准测地距离。表示的目标是为整体几何学和拓扑学的后续处理过程提供点云潜在的网格曲面特征信息,而不是直接进行指标计算。
2.3.2 与下游任务融合
本文的第二个任务及将学习出来的拓扑学特征与下游任务结合:
具体而言,本文通过 PU-Net fusion (PUF) 进行点云上采样,通过 PointNet++ fusion (POF)进行法向量估计、网格重建以及非刚性形状分类。实验表明,这种来自 GeoNet 的已学习的测地表示同时有助于几何学和语义点云分析。
- 对于PU-Net来说,它相当于把学习测地距离的高维特征向量与点云通过MLP的特征向量进行了融合,并且计算两部分loss:
其中 可以写成
其具体的解释头可以看 PU-Net:点云上采样网络(CVPR2018-6) - 对于Pointnet++来说,其测地距离主要是用在了grouping&sampling的地方,当然也有高维特征的融合,详细的原理同样可以看 从PointNet到PointNet++理论及pytorch代码
三、实验效果
实验先于传统的测地距离计算方法进行了比较,发现效果会更好。
其次做了一些mesh重建或者法向量估计之类的任务: