推广 热搜: page  红书  搜索  小红  哪些  考试  数据  论文  数据分析  关键词 

【转载】细嚼慢咽读论文:点云上采样网络开天辟地PU-Net

   日期:2025-01-02     移动:https://sicmodule.kub2b.com/mobile/quote/17966.html

首先回答一个问题

什么是点云的上采样任务呢

简单来说,点云上采样任务就是输入稀疏点云输出稠密点云,同时需要保持住点云的基本形状、均匀程度等特征。

如下图所示,某上采样算法输入稀疏骆驼点云,输出稠密骆驼点云。

上采样的最主要应用就是作为一种数据增强的方式为下游任务(比如分类、分割等)提供高质量的数据。

相关任务:点云补全、图像超分辨率


点云处理任务存在极大挑战,很重要的一点是点云这种数据形式的稀疏性和不规则性

而本文要做的上采样任务,正是为了解决点云数据稀疏性这一问题,为下游各种特征学习任务提供更“高质”的数据。

点云上采样任务,简单来说就是输入某一点云,生成保持基本形状的“更稠密”点云

上采样任务似乎有点像图像中的超分辨率任务,但似乎点云上采样会面对更多的挑战

  • 首先,图像空间的基本单元——像素是一个个规则的格子(regular grid),而点云这种结构则没有任何空间顺序和规则结构。
  • 其次,生成的点云应该能够描述目标object的根本形状,意味着生成的点能够严格落在目标object的表面上。
  • 再次,生成的点应该是保持均匀,而不是会聚集到一起去。

基于以上这些考量,我们不能像“图像超分辨率”那样直接使用简单的“插值”这种传统方法来做。Why not deep learning?!!!

怎么做的呢?我们接着往下看

以上这张图片比较好地概括了PU-Net的完整网络结构。

整个网络作为一个整体pipeline,将四个模块首尾相接拼凑而成

  • Patch Extraction
  • Point Feature Embedding
  • Feature Expansion
  • Coordinate Reconstruction

在shape object的表面上随机选择M个中心点,对于每个中心点我们都生成一个patch(patch内任何点与中心点的测地线距离被限制在d以内,然后我们使用Poisson disk sampling(泊松盘采样在每个patch上采样N个点,作为训练数据的groundtruth

测地线就是在一个三维物体的表面上找出两个点的最短距离。

这里是一个feature提取器,对点云进行point-wise表征,从而为后面的upsampling做好准备。

PU-Net在这里参考PointNet++的网络结构,使用PointNet++ encoder-decoder的结构在不同的层次上对点表征,后面的feature expansion模块会将这些不同层次的point-wise feature拼接起来使用。

PointNet++的解析可参考之前的文章

搞懂PointNet++,这篇文章就够了

从代码中不难看出,基本上就是完全使用了PointNet++作为point-wise feature extractor,下面的up_l2_points, up_l3_points, up_l4_points均是后面会使用到的point-wise feature.

pointnet_sa_module函数就是pointNet++中PointNet Set Abstraction (SA) Module模块。

 
 

现在是点的特征都有了,但是我们做的是上采样任务,关键是要增加点的数量

基本思路其实很简单,就是在特征空间expansion point-wise feature来等价于实现增加点的数量。

令Feature Expansion模块输入为,维度为,其中N表示输入点的数量,表示concat point-wise feature,也就是对上面代码中的up_l2_points, up_l3_points, up_l4_points的拼接的结果,对应代码就是

 

Feature Expansion模块输出为 ,维度为  ,其中 r 是上采样率,是输出的新的point-wise feature 

在图像领域,我们通常使用deconvolution或者interpolation来实现类似"upsampling"的效果。但这些方法直接用在点云上是不合适的,因为点云的排列是不规则且无序的。

本文采取了如下解决方案

  和  分别是两个1*1卷积,在特征空间操作。

 RS)是reshape操作,将  转换成  .

如下图:我们将复制 r 份,然后分别送入到 r 个不同的卷积操作 中,再分别送入到第二组卷积 中。 

从第一个卷积  生成的r  features有很高的关联性(high correlation),也就是生成的结果很相似,这样的话会导致最终生成的点(reconstructed 3D points)在位置上非常接近。因此作者进一步提出再加一组卷积  ,这样生成的features就能够更diverse。 

 
 

这里就比较容易了,就是直接使用一系列  卷积将point-wise的特征维度从 降至 3 ,得到reconstructed points. 

 
 

本文使用了多个loss组合在一起

这里可供选择的loss包括EMD loss和CD loss

关于EMD loss和CD loss的介绍,参见这篇文章

刘昕宸:点云距离度量:完全解析EMD距离(Earth Mover's Distance)​zhuanlan.zhihu.com

本文选择了EMD loss,因为参考A Point Set Generation Network for 3D Object Reconstruction from a Single Image这篇paper,EMD loss能够使得输出点更接近underlying object surfaces.

生成点还是比较容易更加接近原始输入点,导致会出现若干个点堆叠在一起的情况,这样生成的上采样点云均匀性会比较差。

因此本文作者设计了repulsion loss,目的是使得各点之间的距离拉得远一些,保证生成点云的均匀性。

repulsion loss计算公式

 
 

因此综合loss为

 
 
 

PU-Net的数据集是作者自己做的。

作者收集了60个models,来自数据集Visionair repository.

挑选model尽可能考虑多样性:ranging from smooth non-rigid objects (e.g., Bunny) to steep rigid objects (e.g., Chair)

60个models中,40作为训练,20个作为测试。

对于训练数据:对每个model提取100个patch,一共提取了4000个patch

对于测试数据:每个model随机采样5000个点作为输入

其他测试数据集:SHREC15、ModelNet40、ShapeNet

本文提出了2种评价指标来分别衡量输出点云groundtruth mesh之间的偏差以及生成点分布的均匀性。

metric 1.

用来衡量输出点云和groundtruth mesh之间的偏差。

对于每一个预测的点,在groundtruth mesh上找到其最近点,并计算它们之间的距离。最后,我们计算得到所有预测点距离的均值和标准差。

metric 2. normalized uniformity coefficien(NUC)

用来衡量生成点分布的均匀性。

在object表面随机设置D个大小相等的disk(本文中设置 D=9000,计算disk内点的数量的标准差。

NUC确实可以在一定程度上衡量生成点云的均匀性

本文地址:https://sicmodule.kub2b.com/quote/17966.html     企库往 https://sicmodule.kub2b.com/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


0相关评论
相关最新动态
推荐最新动态
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号