Diffusion Probabilistic Models for 3D Point Cloud Generation——点云论文阅读(8)

此内容是论文总结,重点看思路!!

文章概述

该文献介绍了一种用于3D点云生成的概率模型。点云是表示3D物体和场景的常用方式,但由于其不规则的采样模式,与图像相比,点云生成更具挑战性。现有方法如GANs、流模型和自回归模型在点云生成方面取得了进展,但它们在训练稳定性、生成顺序假设和可逆性要求上存在不足。因此,作者提出了基于扩散概率模型的生成方法,旨在克服这些局限。

主要贡献

  1. 提出了新颖的扩散概率模型:受非平衡热力学中的扩散过程启发,作者将点云视为在热浴系统中的粒子,通过扩散从初始分布转化为噪声分布。点云生成相当于学习逆向扩散过程,从噪声生成目标点云形状。

  2. 引入马尔科夫链进行逆向扩散建模:逆向扩散过程通过马尔科夫链建模,该链基于形状潜变量,逐步将噪声分布转换为目标点云分布。

  3. 推导出可行的训练目标:通过变分推导,作者得出了训练目标,最大化条件在形状潜变量上的点云似然,并提出了简化的训练算法。

  4. 实验结果验证模型性能:通过对ShapeNet数据集的实验,作者展示了该模型在点云生成和自动编码任务上优于现有方法,同时在无监督表示学习任务中也表现出色。

噪声到形状的转换过程

图一展示了三个不同层次的内容,具体如下:

  1. Top(上层): 展示了扩散过程如何将噪声逐渐转换为有意义的形状。从左到右,点云逐渐从无序的噪声分布演化为清晰的形状,图中依次为椅子、飞机和沙发的形状。这说明了逆扩散过程能够有效地将随机噪声转换为特定形状。

  2. Middle(中层): 这一层展示了通过所提出的扩散概率模型生成的点云。可以看到,生成的点云呈现了明确的物体形状,包括椅子、飞机和沙发,证明了该模型在生成高质量3D点云方面的能力。

  3. Bottom(下层): 展示了两端点云之间的潜在空间插值过程。两个端点的点云形状(例如两个不同姿态的飞机或不同形状的椅子)通过逐渐过渡生成一系列中间形状,表明该模型可以在形状空间中进行插值,从而生成介于两者之间的点云形状。

基于扩散概率模型的生成框架

核心思想来源于非平衡热力学中的扩散过程,将点云生成任务视为逆向扩散过程,从噪声逐步还原出目标形状。

1. 前向扩散过程

前向扩散是将原始的点云逐渐扩散成随机噪声的过程。我们将点云中的每个点视为热力学系统中的粒子,这些粒子随着时间的推移随机地扩散。通过扩散过程,点云的原始结构会逐渐被扰动,并最终变成噪声分布。作者使用马尔科夫链来模拟这个过程,其公式如下:

其中 q(xi(t)​∣xi(t−1)​) 是马尔科夫扩散核,控制每个时间步 t 的点的分布。具体而言,作者采用了一个高斯核来执行这个扩散过程:

其中 βt​ 是控制扩散速率的方差超参数。这个前向过程的目的是逐步将有意义的点云结构转换为随机噪声。

2. 逆向扩散过程

逆向扩散过程是该模型的核心任务,它通过逆向马尔科夫链,从噪声中逐步恢复出目标点云的形状。在生成任务中,我们从一个简单的噪声分布(如标准高斯分布)中采样一组点作为输入,经过逆向扩散后得到重建的点云。逆向扩散过程的公式如下:

其中,p(x(T)) 是标准高斯分布 N(0,I),表示初始噪声分布,z 是形状潜变量,用来控制生成的目标点云的形状。逆向扩散核 pθ​(x(t−1)∣x(t),z) 是一个由神经网络预测的条件高斯分布:

其中 μθ​ 是通过神经网络学习的均值函数,参数 θ 控制网络的权重。逆向过程的目的是逐步减少噪声,恢复点云的结构。

3. 形状潜变量 z

为了保证生成的点云具有多样性和目标结构,模型引入了形状潜变量 z,用于编码目标点云的全局形状信息。通过学习这个潜变量,模型能够生成各种不同形状的点云。

潜变量学习:在训练过程中,z 的分布可以通过变分自编码器(VAE)或正规化流(Normalizing Flow)来进行建模。具体而言,潜变量的后验分布 qϕ​(z∣X(0)) 由一个编码器(如PointNet)生成,而先验分布 p(z) 可以通过正规化流进行参数化,使其具有更高的灵活性。

正规化流是一种常用的概率模型,它通过一系列可逆的映射将一个简单的分布(如标准高斯分布)转换为复杂的分布。通过这个过程,潜变量的先验分布可以更好地适应数据的复杂性。

4. 训练目标

为了训练这个模型,作者推导出了变分下界,最大化条件在形状潜变量 z 上的点云似然函数。由于直接优化对数似然是不可行的,模型优化的是其变分下界。具体的训练目标为:

该公式中的KL散度项衡量了前向和逆向过程中的分布差异,并通过最小化这些差异来训练模型,使得逆向过程能够有效地生成逼真的点云。

5. 简化的训练算法

为了提高训练效率,作者没有在每次迭代中计算完整的时间步轨迹,而是随机选择一个时间步来进行优化。这种方法加速了训练过程,降低了计算复杂度。

简化的训练过程如下:

  1. 从数据分布中采样点云 X(0)。

  2. 编码得到形状潜变量 z。

  3. 从均匀分布中随机选择一个时间步 t。

  4. 根据前向扩散过程从 X(0) 中采样中间状态 X(t)。

  5. 计算KL散度并更新模型参数。

6. 生成点云的过程

生成过程相对简单:

  1. 从标准高斯分布 N(0,I) 中采样潜变量 w,并通过正规化流 Fα​ 得到形状潜变量 z。

  2. 从噪声分布 p(x(T)) 中采样点云的初始点集。

  3. 通过逆向马尔科夫链逐步将噪声点云转换为目标形状的点云。

点云生成过程的有向图模型

描述了点云在扩散过程中的前向和逆向过程,以及与形状潜变量 z 之间的关系。

  • 左侧(从噪声到形状): 图中展示了扩散过程如何将一个无序的噪声点云 xi(T)​ 逐渐转化为有意义的形状 xi(0)​,如图中的椅子形状。这个转换过程通过多个时间步 t 进行,形成一系列中间点云 xi(t)​。

  • 马尔科夫链: 这个生成过程使用了马尔科夫链模型,点云的生成通过递归的条件概率进行。点云的逆向扩散过程由 pθ​(xi(t−1)​∣xi(t)​,z) 控制,而前向扩散过程由 q(xi(t)​∣xi(t−1)​) 控制。

  • 形状潜变量 z: 形状潜变量 z 在整个生成过程中起到了重要作用。它对逆向扩散过程中的每个时间步 pθ​(xi(t−1)​∣xi(t)​,z) 进行条件化,从而确保生成的点云符合特定的形状。形状潜变量 z 是通过编码器 qϕ​(z∣X(0)) 从初始点云 X(0) 中学习得到的。

  • 右侧的初始点云 X(0): 该图还展示了点云 X(0) 的生成,它是通过逆向扩散从初始的噪声点云 xi(T)​ 逐步生成的,最终形成目标形状。

训练和采样过程

(a) 训练过程

  • 编码器 φ: 首先,点云数据 X(0) 通过编码器 φ,编码为形状潜变量 z,同时生成了均值 μ 和方差 σ 参数,用于描述潜变量的高斯分布。通过重新参数化技巧,潜变量 z 是通过从标准正态分布 N(0,I) 中采样得到的。

  • 前向扩散(Forward Diffusion): 在训练过程中,点云逐步通过前向扩散过程(从 xi(0)​ 到 xi(T)​),生成一系列带有噪声的点云。前向扩散过程由马尔科夫链控制,具体表现为 q(xi(t)​∣xi(t−1)​)。

  • 逆向扩散(Reverse Diffusion): 逆向扩散过程试图从噪声 xi(T)​ 逐步恢复到目标点云 xi(0)​。这一过程由网络参数 μθ​ 控制,通过最大化似然估计或最小化损失 L 来优化参数 θ。

  • 损失函数 L: 在训练过程中,损失函数 L 用于评估模型的生成效果,指导模型通过逆向扩散从噪声中恢复点云。

(b) 采样过程

  • 采样过程中的潜变量 z: 在生成新点云时,首先从标准高斯分布 N(0,I) 中采样一个潜变量 w,然后通过正规化流 Fα−1​ 映射得到形状潜变量 z,保证了生成的灵活性和多样性。

  • 逆向扩散(Reverse Diffusion): 从噪声分布 xi(T)​ 开始,逐步通过逆向扩散马尔科夫链还原出目标点云 xi(0)​,整个过程依赖于潜变量 z 和神经网络参数 μθ​。

相关推荐
无脑敲代码,bug漫天飞37 分钟前
COR 损失函数
人工智能·机器学习
盼海40 分钟前
排序算法(五)--归并排序
数据结构·算法·排序算法
幽兰的天空41 分钟前
Python 中的模式匹配:深入了解 match 语句
开发语言·python
HPC_fac130520678162 小时前
以科学计算为切入点:剖析英伟达服务器过热难题
服务器·人工智能·深度学习·机器学习·计算机视觉·数据挖掘·gpu算力
网易独家音乐人Mike Zhou4 小时前
【卡尔曼滤波】数据预测Prediction观测器的理论推导及应用 C语言、Python实现(Kalman Filter)
c语言·python·单片机·物联网·算法·嵌入式·iot
安静读书4 小时前
Python解析视频FPS(帧率)、分辨率信息
python·opencv·音视频
小二·6 小时前
java基础面试题笔记(基础篇)
java·笔记·python
小喵要摸鱼7 小时前
Python 神经网络项目常用语法
python
Swift社区8 小时前
LeetCode - #139 单词拆分
算法·leetcode·职场和发展
Kent_J_Truman8 小时前
greater<>() 、less<>()及运算符 < 重载在排序和堆中的使用
算法