分享好友 最新动态首页 最新动态分类 切换频道
【转载】细嚼慢咽读论文:点云上采样GAN的实践——PU-GAN
2024-12-26 11:57

首先我们来分析一下文章题目:PU-GAN: a Point Cloud Upsampling Adversarial Network

【转载】细嚼慢咽读论文:点云上采样GAN的实践——PU-GAN

PU即Point Upsampling,也就是本文要做的任务是点云上采样。关于点云上采样的介绍,我在介绍PU-Net的这篇文章中介绍过,可参考

刘昕宸:细嚼慢咽读论文:点云上采样网络开天辟地PU-Net​zhuanlan.zhihu.com

GAN即现在大名鼎鼎的GAN(生成对抗网络,也就是本文使用的网络是GAN,依赖GAN来实现点云的上采样。上采样任务其实也是一种生成式任务,因此很自然地想到可以使用GAN来尝试一下。关于GAN的基本原理介绍,可参考


上采样的意义我在PU-Net那篇文章中详细介绍过

点云处理任务存在极大挑战,很重要的一点是点云这种数据形式的稀疏性和不规则性。
而本文要做的上采样任务,正是为了解决点云数据稀疏性这一问题,为下游各种特征学习任务提供更“高质”的数据。
点云上采样任务,简单来说就是输入某一点云,生成保持基本形状的“更稠密”点云。

单就上采样效果而言,之前基于深度学习的方法如PU-Net、MPU在现实场景扫描点云上取得的效果均非常有限。我们来看看PU-GAN论文在开头放的图Kitti数据集上测试

点云上采样本质也是一种生成式任务,在视觉领域做生成任务,自然而然地就会想到:不妨试试GAN

  1. 针对点云上采样任务,提出了GAN框架的解决方案,并且取得了非常好的效果。(原文指出:the difficulty to balance between the generator and discriminator and to avoid the tendency of poor convergence.
  2. 局部网络结构设计非常有新意:比如up-down-up unit用来expand point features,self-attention unit用来feature integration quality等
  3. 设计了compound loss,特别是设计了用来约束上采样点云均匀分布uniform loss,让人眼前一亮。
  4. PU-GAN不仅在一般点云模型上做了实验,还在KITTI这样真实扫描的场景点云上做了上采样实验,依然取得了非常好的效果,这也进一步验证了PU-GAN强大的泛化能力。

本文的目标就是上采样,也就是给定有N个点的稀疏点集  ,我们期望生成有 rN 个点的稠密点集 .

Q 并不需要是 P 的超集,但是需要满足以下2个条件

  1. Q 应该能够和 P 表达一样的underlying geometry of latent target object.
  2. Q 内的点应该是在target object surface上均匀分布的,即使甚至输入 P 都是非均匀的。

PU-GAN的网络结构图如下所示

因为是GAN,所以网络分成了Generator和Discriminator两部分。

Generator用于从稀疏点云 P 生成稠密点云 Q .

Discriminator用于区分真实稠密点云和generator生成的点云

看出来了嘛,其实generator的整体框架还是PU-Net那一套patch --> feature extraction --> feature expansion --> coordinate reconstruction ;-)

Generator全局代码

 

Ⅰ Patch Extraction

对每个3D mesh,在表面随机选择200个种子点,对每个种子点根据测地线距离生成patch,并将每个patch normalize到一个unit sphere中。

对每个patch,使用Poisson Disk Sampling生成  ,作为有 rN 个点的目标点云

我们动态地对  随机采样 N 个点生成输入点云 P .

 

Ⅱ Feature Extraction

本模块旨在提取point-wise feature

输入点云 N*d ( d 包括点云的原始数据,坐标、颜色、法向量等, d 一般为 3 ,输出point-wise feature N*C

本模块直接借鉴了论文Patch-based progressive 3D point set upsampling特征提取方法,使用了dense connection集成不同层的特征。

网络结构如下,处理过程非常明晰了:

我们再来看看代码加深理解

 

核心dense_conv的实现

 

Ⅲ Feature Expansion

和PU-Net一样,PU-GAN也设计了自己的feature expansion模块,这也应该是上采样算法的核心了吧

PU-Net的做法是 直接复制点的特征,然后使用不同的 MLP来分别独立处理各自的点特征备份。
即使PU-Net使用了诸如 repulsion loss这样的约束,但这种上采样方式仍然会导致 扩展的点特征过于接近彼此,影响上采样质量。

输入point-wise feature N*C ,输出 

PU-GAN还设计了up-down-up expansion unit增强特征扩展的效果,以实现enabling the generator to produce more diverse point distributions.

网络结构图如下所示,还包括了Up-feature operator和Down-feature operator的结构

看代码是比较明晰的,点特征输入到Up-feature operator生成  ,再输入Down-feature operator将其降采样回.

计算降采样点特征与原输入之间的difference  .

输入  到Up-feature operator生成  ,将 作为  的偏移量,得  . 

 

Up-feature operator

不像PU-Net直接复制,PU-GAN在复制点特征时使用了grid结构(可参考FoldingNet: Point Cloud Auto-encoder via Deep Grid Deformation,这等价于在输入点附近增加一些新的点.

整合复制点特征使用了self attention机制

 

1)grid机制

为每个feature-map copy生成一个唯一的2D vector,然后将该2D vector拼接给其对应feature-map copy内的每一个点。

因为该2D vector的存在,因此复制的点特征还是有些细微差别的。

 

2)attention机制

 

Down-feature operator

Down结构比较简单

对expanded features降采样,对特征reshape,然后使用一系列MLPs来拟合原特征

 

Ⅳ Coordinate Reconstruction

最后是坐标重建

 

Discriminator的目标是分辨上采样点云是否是Generator生成的

首先使用一个轻量的网络结构整合local和global信息提取global feature

另外Discriminator还使用了self-attention unitenhance the feature integration and improve the subsequent feature extraction capability

最后使用MLP和pooling得到了最后的confidence value,可以理解成是Discriminator判断输入上采样点云是真实上采样点云的可能性。

 

因为GAN的原因,PU-GAN的loss设计得比较多,主要分为了Generator loss和Discriminator loss

Ⅰdiscriminator loss

 

discriminator_loss只包括了adversarial loss.

discriminator_loss设计的adversarial loss很简单

 是真实点云, Q 是generator生成的fake点云, D(Q) 表示判别器输出的confidence value.

 

Ⅱ generator loss

 

generator loss包括了reconstruction loss,repulsion loss,uniform loss和adversarial loss.

1)adversarial loss

与上面Discriminator的adversarial loss基本类似

 

2)reconstruction loss

PU-GAN默认使用的是EMD loss,EMD的详细理解见这篇文章

3)repulsion loss

repulsion loss设计来自PU-Net,想详细了解可参考这篇文章

4)uniform loss

PU-GAN这一工作的一大贡献就是设计了uniform loss来控制生成点云分布的均匀性。

首先PU-Net设计了NUC这一评价指标来衡量生成点云的均匀性,但是这一评价忽视了local clutter of points,因此不宜再被采纳。

什么叫“忽视了local clutter of points”呢

下面三个disk包含了相同数量的点(因此NUC都是一样的,但是它们的均匀程度显然是不同的。造成NUC衡量失效的原因,很大可能是局部点分布均匀程度NUC是无法刻画的。

而这里uniform loss的设计就是同时考虑了global和local

第一项

对于有 rN 个点的点集 Q (在实验中实际就是1个patch

step 1. 使用最远点采样(FPS)采样 M 个seed points

step 2. 以每个seed point为球心,使用半径为  的ball query得到point subset  .

分析

严格坐落在 Q 表面面积为  的local disk上。

还记得上面介绍的Ⅰ Patch Extraction?我们通过测地线距离+正则化提取patch,因此patch就已经被我们normalize到一个unit sphere中了,patch的表面积是 

并且  内expected number of points  就应该是 rNp 了

自然而然地,遵循chi-square model设计了uniform loss的第一项,用来衡量  与  的偏差

 

第二项

考虑local point clutter,对  中的每个点,找到其最近邻并计算距离  ( k 表示第  中的第 k 个点

 想象一下,如果  是均匀分布的,那么点与点之间的距离分布应该是这样的

 

此时expected point-to-neighbor distance

因此最终我们可得uniform loss

程序实现

 

PU-Net和MPU的数据集以及Visionair repository中挑选了147个模型,尽可能多地覆盖不同的类型。其中120个模型用于训练,27个用于测试。

训练数据的准备:因为PU-GAN是基于patch的,因此需要先对各个模型提取patch。在每个训练模型上提取200个patch120个模型就一共能提取24000个patch用于训练其中每个patch就是一个(input patch, groundtruth patch)的pairinput patch有256个点groundtruth patch有1024个点

评价指标包括了4类

  1. point-to-surface (P2F) distance
  2. Chamfer distance (CD)
  3. Hausdorff distance (HD)
  4. uniform metrics: 评估方法类同上面的uniform loss

  1. 定量比较

2. 定性比较

3. 真实扫描场景的上采样

针对KITTI数据集

4. 消融实验

PU-GAN基本延续了PU-Net的思路,但是在诸多细节上均做了非常明显的改进gridding, self-attention, dense connection, up-down-up, uniform loss,也确实取得了更加强大的效果。

最新文章
3D6月周五连号走势图近50期带连线
功能类福彩3D显示遗漏:显示/隐藏遗漏值,遗漏值是指自上期开出到本期间隔的期数。福彩3D遗漏分层:是将当前遗漏值用柱状图形标注。福彩3D分段线:是每五期使用分隔线,使横向导航更加清晰。福彩3D显示断区:在分区走势中使用,将开出0个号
12月前两周无锡二手房挂牌均价15795元/平 环比下跌0.85%
据房天下研究院监测,12月前两周无锡二手房挂牌均价为15795元/平方米,环比下跌0.85%。12月前两周无锡二手房各区县搜索排行榜中,滨湖区、梁溪区、锡山区占据热搜区县榜TOP3;梁溪区清扬版块的五星家园笑傲楼盘关注度榜单;价格方面,网友关
56万辆车!北京现代大规模召回
近期,北京现代宣布对旗下两款车型近56万辆汽车进行召回。北京现代表示,将免费对召回范围内车辆保险盒内保险丝更换为较低容量的保险丝,以消除安全隐患。若后续再出现HECU内部短路导致保险丝熔断问题,则为车辆免费更换HECU。早年热门车型
2023最新回合制手游排行榜最新榜
回合制手游因为操作简单且玩法丰富,因此受到了许多玩家的追捧和喜爱。其实每年都会有大量的新回合制手游上线,今年也不例外。如果你是回合制游戏的忠实玩家,或者对该类型的手游感兴趣,那么这几款2023年最新最好玩的回合制游戏千万不要错
2024年Python最全AI自动生成代码,那还需要程序员吗?
2代码补全工具再比如代码补全工具aixcoder,它不是那种关键词变量名的自动补全,而是整个代码语句进行补全 具体的实现方式就是基于深度神经网络在本地化边用边训练,然后便是越用越强,写出一个字母,边补全
AI大模型投放策略:如何实现用户留存与商业化闭环?
在当今数字化职场中,人工智能(AI)工具已经成为很多打工人的得力助手。这些工具不仅帮助用户快速制作PPT、编写简报、设计海报,而且在提升工作效率方面展现出不可替代的价值。然而,尽管AI应用产品的数量激增,真正的用户生态系统仍显得
ehviewer
ehviewer是一款漫画阅读平台!各位漫友们将会开启一段奇妙的漫画生活,在这里你可以自由观看许多精彩有趣的漫画,漫画画质也都是超高清,没有观看限制,没有广告出现,可以尽情无限看漫画;平台也将每天更新新的漫画,喜欢的大伙就请下载吧
360手机助手怎么下载旧版本的软件 360手机助手为什么没有QQ
360手机助手不仅可以下载当下最火爆热门的软件此外还可以下载以前旧版本的软件,在这里你想要的软件版本它都有。那么怎么使用360手机助手下载旧版本的软件呢?一起来看看吧!1、在浏览器里下载3602、在里面搜索微信最底下有历史版本3、下载
5分钟明白!!“JYEAPP”不能提出!受骗网络平台盘点!!
某天晚上,柳先生玩手机,浏览到一个网站,里面弹出一个链接被骗!不可信!细节回想就是猫腻揭开!!,在好奇心的驱使下,柳先生下载了被骗!不可信!细节回想就是猫腻揭开!!,进入之后,有被骗!不可信!细节回想就是猫腻揭开!!平台的客服来联系柳
相关文章
推荐文章
发表评论
0评