PU-Net: Point Cloud Upsampling Network
代码:https://github.com/yulequan/PU-Net
论文:请点击这里
参考:https://www.sohu.com/a/247735208_715754
一、摘要
由于点云数据的稀疏性和不规则性,所以用深度神经网络学习和分析3D点云一直以来是一个具有挑战性的工作。这篇文章中我们提出了一种数据驱动的点云上采样技术。核心思想是学习每个点的多层次特征,然后利用不同的卷积分支在特征空间的中进行扩充,然后将扩充后的特征进行分解并重建为上采样点云集。我们的网络应用于块状点云上,并且使用了联合的损失函数使得上采样后的点在潜在的曲面上分布一致。我们的方法在合成与真实的扫描数据上进行了大量的实验并且证明了它是一种比部分基础模型更加有效的基于优化的方法。实验结果显示,我们的上采样点云具有更好的一致性分布并且和潜在的曲面更加贴合。
二、模型介绍
图一是上采样网络的结构图(最好从颜色上观察):N个点输入网络,相应的有 r N rN rN个点输出网络,这里 r r r是上采样率。 C表示特征通道数目。我们用插值恢复N个点不同特征层次特征然后利用卷积网络将不同层次的特征变为C. 点云特征集成模块中红色显示原来的和逐步降采样的点,绿色显示恢复的特征。我们联合使用重建损失函数和互斥损失函数用来端到端地训练上采样网络。
我们的网络架构(见图1)有四个组件:小块提取Patch Extraction、点特征嵌入Point Feature Embedding、特征扩展Feature Expansion和坐标重建 Coordinate Reconstruction。首先,我们从给定的一组先前的3D模型中提取不同比例和分布的点补丁(见2.1)。然后,点特征嵌入组件通过分层特征学习和多级特征聚集将原始3D坐标映射到特征空间。(见2.2)。之后,我们使用特征扩展组件扩展特征的数量(见2.3)并通过坐标重建组件中的一系列完全连接的层重建输出点云的3D坐标(见2.4)。
2.1 Patch Extraction
我们收集一组3D对象作为训练的先验信息。这些物体覆盖了各种各样的形状,从光滑的表面到棱角分明的形状。本质上,为了让我们的网络对点云进行上采样,它应该从对象中学习局部几何图形。这促使我们采取基于小块(patch)的方法来训练网络和学习几何语义。
详细来说,我们随机选择这些物体表面的M个点。从每个选定的点,我们生成一个一个曲面的小块(surface patch),使得这样小块上的任何点都在曲面上选定点一定的测地线距离(d)内。然后,我们使用Poisson disk采样的方法在每个小块上随机生成N个点,作为小块上的真实点分布。在我们的上采样任务中,局部和全局信息被被一起用来平滑和统一的输出。因此,我们用不同的尺寸设置d,这样我们就可以在先前的物体上提取不同比例和密度的点。
2.2 Point Feature Embedding
为了同时从小块学习局部与全局的几何信息,我们考虑了一下两种特征学习的策略,它们的优势互补:
Hierarchical feature learning
Multi-level feature aggregation
神经网络浅层特征一般反映着局部的小尺度特征,反之亦然。为了更好的上采样结果,我们采用skip-connection(参考资料ResNet)来聚集不同层的特征。但是在实验中我们发现,这样的设计让正向传播非常得不效率,因此我们直接拼接来自不同层的特征。
2.3 Feature Expansion
2.4 Coordinate Reconstruction
三、模型训练
3.1 训练数据的生成
由于上采样点云的不确定性或模糊性,点云上采样是一个不确定的问题。给定稀疏的输入点云,有许多可行的输出分布。因此,我们没有将输入和输出作为 “correct pairs”的问题来对待。为了解决这个问题,我们提出了一种动态输入生成方案。具体而言,训练小块的ground truth分布是固定的,而输入点在每个训练时期以 r r r的下采样速率从ground truth集中随机采样。直观地说,对于给定的稀疏输入点分布,该方案相当于模拟许多可行的输出点分布。此外,该方案可以进一步扩大训练数据集,允许我们依赖相对较小的数据集进行训练。
3.2 联合损失函数
我们提出了一种新的联合损失函数,以端到端的方式训练网络。正如我们前面提到的,函数应该鼓励生成的点以更均匀的分布位于底层物体表面上。因此,我们设计了一种结合重建损失Reconstruction loss和排斥损失Repulsion loss的联合损失函数。
Reconstruction loss
Repulsion loss
Joint Loss Function
四、实验
4.1 数据集
由于没有用于点云上采样的公共基准,我们从Visionair存储库收集了60种不同模型的数据集,从平滑的非刚性物体(如兔女郎)到陡峭的刚性物体(如椅子)。其中,我们随机选择40个用于训练,其余用于测试。我们为每个训练对象裁剪了100个小块,并且我们总共使用M=4000个小块来训练网络。对于测试对象,我们使用Monte-Carlo随机采样方法对每个对象上的5000个点进行采样作为输入。为了进一步展示我们网络的泛化能力,我们直接在SHREC15数据集上测试我们训练有素的网络,该数据集包含来自50个类别的1200个形状。详细来说,考虑到每个类别包含24个不同姿势的相似物体,我们从每个类别中随机选择一个模型进行测试。至于ModelNet40和ShapeNet,我们发现由于网格质量低(例如,孔洞、自相交等),很难从这些对象中提取补丁。因此,我们使用它们进行测试。
4.2 实现细节
4.3 度量指标
4.4 模型比较
五、结论
在这篇论文中,我们提出了一个深度点云上采样网络,目标是从一组稀疏的点中生成一组更密集、更均匀的点。我们的网络是在小块级别使用多级特征聚合方式进行训练的,从而捕获局部和全局信息。我们的网络设计通过对包含非局部几何图形的单个特征进行操作来允许上下文感知的上采样,从而绕过了对点之间指定顺序的需求。我们的实验证明了我们方法的有效性。作为第一次使用深度网络的尝试,我们的方法仍然有许多局限性。毕竟,它不是为填补而设计的,所以我们的网络不能填补大的漏洞和缺失的部分。此外,我们的网络可能无法为采样严重不足的微小结构添加有意义的点。
将来,我们希望研究和开发更多的方法来处理不规则和稀疏的数据,既用于回归目的,也用于合成。一个直接的步骤是开发下采样方法。尽管下采样看起来更简单,但仍有余地设计适当的损耗和架构,最大限度地保留抽取点集中的信息。我们认为,总的来说,为不规则结构开发深度学习方法是一个可行的研究方向。
作者:小执着~
文章来源:CSDN
推荐阅读
更多芯擎AI开发板干货请关注芯擎AI开发板专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。