【论文阅读】PU-GAN:点云上采样的对抗生成网络

【论文阅读】PU-GAN:点云上采样的对抗生成网络


在本文中,作者提出了一种点云上采样的对抗网络模型,那么什么是点云的上采样任务呢?
简单来说,点云上采样任务就是输入稀疏点云,输出稠密点云,同时需要保持住点云的基本形状、均匀程度等特征。
GAN就是生成对抗网络,点云上采样作为生成式任务,使用GAN来实现点云的上采样是自然而然的想法。

1 motivation
由深度相机和激光雷达传感器产生的原始点云常常是稀疏的、有噪声的并且不均匀的,这为下游任务的后续处理造成了困难。而就上采样而言,PU-Net和MUP等方法取得的效果十分有限。

而PU-GAN在kitti数据集上的表现也十分出色。

2 contribution
1. 文章针对点云上采样任务提出了一种GAN框架的解决方案,并取得了良好的效果
2. 局部结构具有新意,提出了一个up-down-up unit来expand point features,使用self attention unit来enhance features integration quality。
3. 设计了复合损失来提高结果的均匀性并且支持对抗网络的训练
4. 在KITTI这样的真实扫描的场景中做了上采样实验,并且依然取得了良好的效果,展现了强大的泛化能力。

3 solution
目标是上采样,给定N个点的无序稀疏点集 P = { p i } i = 1 N P=\{p_i\}_{i=1}^N P={pi}i=1N,生成包含rN个点的稠密点集 Q = { q i } i = 1 r N Q=\{q_i\}_{i=1}^{rN} Q={qi}i=1rN,但输出点集Q并不要求是P的超集,但Q要满足两个条件:
(i) Q要和P一样能够描述潜在目标的基础几何,因此Q中的点要位于且覆盖目标表面;
(ii) Q中的点要在目标表面均匀分布,即使输入点集P中的点是稀疏且不均匀的。

4 architecture
在这里插入图片描述
Generator部分负责由稀疏点云进行点云上采样输出稠密点云
Discriminator部分负责区分真实稠密点云和Generator生成的点云。

4.1 Generator
在这里插入图片描述
生成器部分大体使用了PU-Net的架构,但与PU-Net又有所不同。
PU-Net共有四个部分:

  1. patch extraction,从给定的点云中提取不同尺度和分布的点块
  2. point feature embedding,分层特征学习和多层特征聚合将原始的3D坐标映射到特征空间
  3. feature expansion,拓展特征数量
  4. coordinate reconstruction,全连接层重建输出点云的三维坐标

而PU-Gan的Generator共有3部分:

  1. Feature Extraction,本部分采用了Patch-based Progressive 3D Point Set Upsampling(3PU)(也即后文中的MPU)中的方法,使用稠密连接层来提取特征,以此获得长程和全局信息
  2. Feature Expansion,作者在这里设计了up-down-up expansion unit来增强特征的变化,以此生成更多不同的点分布
  3. Point Set Generation,首先将特征还原为3D坐标,使用最远点采样保留相距更远的rN个点,保证点集的均匀性

在实际训练中,作者首先对训练数据进了预处理,在每个点云模型表面随机生成200个种子位置,并在种子周围利用测地线距离生成一个patch,将每个patch normalize到一个unit sphere上,在每个patch上利用Poisson disk sampling生成目标点集,在训练时从中随机选择N个点生成输入点集P。
在这里插入图片描述
Feature Extraction借鉴了Patch-based Progressive 3D Point Set Upsampling(3PU)中的方法,使用稠密连接层提取特征
在这里插入图片描述
在Feature Expansion部分中,作者设计了up-down-up expansion unit,PU-Net直接复制点的特征,并且利用独立的MLP对特征进行处理,这样导致扩展后的特征与输入过于相似,从而影响上采样质量。而3PU将16×的上采样分成4个2×上采样,成功地保留了丰富的细节,但训练过程十分复杂。
作者设计的up-down-up expansion unit将MLP生成的特征 F 1 F_1 F1先进行一次上采样得到 F u p ′ F'_{up} Fup,再对 F u p ′ F'_{up} Fup进行下采样得到 F 2 F_2 F2,计算上下采样后特征 F 1 F_1 F1 F 2 F_2 F2的差值∆,对∆进行一次上采样得到 ∆ u p ∆_{up} up,将 ∆ u p ∆_{up} up F u p ′ F'_{up} Fup相加得到 F u p F_{up} Fup,这种方法既避免了冗长的多步训练,同时又能够促进细粒度特征的生成。
在这里插入图片描述
在Feature Expansion部分里,上采样过程中PU-GAN并没有使用PU-Net里直接复制点特征的方式,而是使用了采用了Folding Net中的grid机制,在每个复制后的特征后加上唯一的2D向量,以增加其形状特征。(复制的点特征所使用的2D向量相同?)
在特征整合方面使用了自注意力机制。
在这里插入图片描述
在这里插入图片描述
而在down的部分中没有什么特别的地方,先将特征进行reshape,而后利用MLP拟合原特征
最后利用1×1卷积进行降维来三维重建

4.2 Discriminator
判别器中并没有十分特别的地方,本部分大体借鉴了PCN的架构,将池化后的特征与提取的特征直接进行连接以结合局部和全局信息,使用自注意力机制进一步增强特征提取能力,最后通过MLP回归最终的置信值。
在这里插入图片描述

4.3 Loss
由于是GAN网络,本文设计了较多Loss Function,主要分为Generator和Discriminator两部分。
4.3.1 Discriminator Loss
Discriminator中的loss只有一个,即adversarial loss
L g a n ( D ) = 1 2 [ D ( Q ) 2 + ( D ( Q ^ ) − 1 ) 2 ] ] L_{gan} (D)=\frac{1}{2}[D(Q)^2+(D(\hat{Q})-1)^2] ] Lgan(D)=21[D(Q)2+(D(Q^)1)2]]
其中 Q ^ \hat{Q} Q^是真实点云, Q Q Q是生成的fake点云, D ( Q ) D(Q) D(Q)表示判别器输出的置信度。

4.3.2 Generator
Generator Loss包括了reconstruction loss,repulsion loss,uniform loss和adversarial loss.

  1. Adversarial Loss
    L g a n ( G ) = 1 2 [ D ( Q ) − 1 ] 2 L_{gan}(G)=\frac{1}{2}[D(Q)-1]^2 Lgan(G)=21[D(Q)1]2

  2. Reconstruction Loss
    PU-GAN的Reconstruction Loss直接使用EMD loss以鼓励生成的点落在物体表面
    L r e c = min ⁡ ϕ : Q → Q ^ ∑ q i ∈ Q ∣ ∣ q i − ϕ ( q i ) ∣ ∣ 2 L_{rec}=\min_{\phi:Q\to\hat{Q}}\sum_{q_i\in Q}||q_i - \phi(q_i)||_2 Lrec=ϕ:QQ^minqiQqiϕ(qi)2
    其中 ϕ : Q → Q ^ \phi:Q\to\hat{Q} ϕ:QQ^是一个双射

  3. Uniform Loss
    U-GAN最为突出的贡献就是设计了Uniform Loss来控制生成的点云的均匀性。
    为了评估一个点集的均匀性,PU-Net中的NUC度量在对象表面上划分相同大小的disk,并计算disk中点的数量。因此,NUC忽略了点的局部均匀性。图6显示了三个点的patch,这些点的分布差异很大,但它们包含相同数量的点,NUC度量不能区分它们的分布均匀性。
    在这里插入图片描述
    本文设计的Uniform Loss则同时考虑了全局和局部均匀性
    第一项:
    对于有rN个点的点集 Q Q Q,也就是一个patch
    Step1:在 Q Q Q中最远点采样选择M个seed points
    Step2:使用很小的半径 r d r_d rd进行ball query得到一个子集 S i S_i Si,i=1,…,M
    由于在最初数据的预处理中我们将每一个patch进行了初始化,也就是说每一个patch的大小为 π × 1 2 \pi\times 1^2 π×12,而 S i S_i Si的面积为 π × r d 2 \pi\times r_d^2 π×rd2
    所以S_i中的点所占比例期望为 p = π × r d 2 / π × 1 2 = r d 2 p=\pi\times r_d^2 /\pi\times1^2=r_d^2 p=π×rd2/π×12=rd2那么 S i S_i Si中点的数量自然就是 n ^ = r N p \hat{n} =rNp n^=rNp
    利用卡方检验模型计算 ∣ S i ∣ |S_i | Si n ^ \hat{n} n^的偏差 U i m b a l a n c e ( S j ) = ( ∣ S j ∣ − n ^ ) 2 n ^ U_{imbalance}(S_j)=\frac{(|S_j|-\hat{n})^2}{\hat{n}} Uimbalance(Sj)=n^(Sjn^)2通过第一项控制全局点的数量的分布

第二项
计算S_i中第k个点最近邻居结点的距离d_(j,k),假设相邻点为六边形,且S_i表面平整,则预期距离为 d ^ = 2 π r d 2 ∣ S j ∣ 3 \hat{d} =\sqrt\frac{2\pi r_d^2}{|S_j|\sqrt3} d^=Sj3 2πrd2 ,再次利用卡方检验模型计算二者偏差 U c l u t t e r ( S j ) = ∑ k = 1 ∣ S j ∣ ( d j , k − d ^ ) 2 d ^ U_{clutter}(S_j)=\sum_{k=1}^{|S_j|}\frac{(d_{j,k}-\hat{d})^2}{\hat{d}} Uclutter(Sj)=k=1Sjd^(dj,kd^)2通过第二项控制局部点的均匀性
将二者合起来,便得到了Uniform Loss
L u n i = ∑ j = 1 M U i m b a l a n c e ( S j ) ∙ U c l u t t e r ( S j ) L_{uni}=\sum_{j=1}^MU_{imbalance}(S_j)\bullet U_{clutter}(S_j) Luni=j=1MUimbalance(Sj)Uclutter(Sj)最后将上述结合,得到Generator和Discriminator所用到Compound Loss L G = λ g a n L g a n ( G ) + λ r e c L r e c + λ u n i L u n i L_G = \lambda_{gan}L_{gan}(G) + \lambda_{rec}L_{rec} + \lambda_{uni}L_{uni} LG=λganLgan(G)+λrecLrec+λuniLuni L D = L g a n ( D ) L_D = L_{gan}(D) LD=Lgan(D)

5 Experiments
5.1 Data Set
本文采用PU-Net和MPU的数据集147个3D模型,随机选择其中120个模型进行训练,剩下的作为测试

5.2 Evaluation Metric
本文使用了四个metric进行评估:
i) point-to-surface distance(P2F)
ii) Chamfer distance(CD)
iii) Hausdorff distance(HD)
iv) 上文所使用的Uniform loss

5.3 Result
在这里插入图片描述
在这里插入图片描述
消融实验
在这里插入图片描述

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: GAN(Generative Adversarial Network)是一种深度学习模型,在许多任务中都有广泛应用。在 GAN 中,有一个生成器和一个判别器。生成器尝试生成与真实数据类似的新数据,判别器则尝试区分生成的数据与真实数据。生成器和判别器通过对抗的方式共同训练。 Matlab-GAN 是一种基于 Matlab 的 GAN 实现,可以实现生成图片,视频等任务。在 Matlab-GAN 中,可以使用不同的损失函数和正则化技术,来改善生成的质量和稳定性。 除了 GAN,Pixel2Pixel 和 CycleGAN 也是常用的深度学习模型,在计算机视觉任务中具有重要的应用。Pixel2Pixel 是一种基于卷积神经网络的图像翻译模型,可以将一个图像转换为另一个图像,如将黑白图像转换为彩色图像。CycleGAN 是一种无需成对匹配的图像转换模型,可以用于跨域图像转换,如将马的图像转换为斑马的图像。 Matlab-GAN 支持 Pixel2Pixel 和 CycleGAN 的实现,可以帮助更方便地进行图像转换任务。Pixel2Pixel 和 CycleGAN 也可以与 GAN 结合使用,产生更高质量、更可控的生成结果。 总之,Matlab-GAN 是一种实现生成对抗网络的工具,支持不同类型的 GAN深度学习模型,可以实现图像、视频等多种任务。Pixel2Pixel 和 CycleGAN 作为深度学习模型中常用的工具,可以帮助更好地完成图像转换任务。 ### 回答2: GAN,即生成对抗网络,是近年来流行的一种机器学习算法模型,它可以通过两个深度神经网络模型(生成器和判别器)来生成具有类似于真实图像的虚拟图像。 在Matlab中,GAN也有自己的实现——matlab-gan。该实现提供了一系列的GAN示例,如最基础的MNIST手写数字图像生成、使用DCGAN和Wasserstein GAN生成图像,甚至还提供了Pix2Pix和CycleGAN,让用户能够在MATLAB环境中成功加载这些GAN应用。 Pix2Pix是基于条件对抗网络(CGAN)的扩展,它可以将给定的输入图像转换为输出图像。例如,它可以将黑白照片转换成彩色照片,或将景象翻译成抽象画作。该示例合成城市街景并将它们转换为艺术风格的图像。 CycleGAN是一种通用的无监督图像到图像转换器,它可以将两个域之间的图像转换成另一个域。例如,它可以将马的图像转换成斑马的图像。CycleGAN在图像风格转换、模型综合、目标转换等方面表现出色,是GAN的重要变种。 总体来说,matlab-gan是一个适合于GAN初学者的绝佳平台。它不仅提供了简单的GAN实现,还包括两个复杂的GAN变种——Pix2Pix和CycleGAN。这些示例不仅能够教授GAN的基础理论,还能够为研究者提供一个练习环境来测试并扩展这些算法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值