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 和神经网络参数 μθ​。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/900070.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Flutter通过showDialog实现下拉筛选菜单效果

一、效果图 二、 实现方式 获取固定在顶部筛选头部Widget在屏幕上的位置和它的高度在弹窗中通过获取到的高度进行内容显示区域定位巧用AnimatedContainer组件实现下拉动画效果最后在底部加上黑色蒙层 unawaited(showDialog(context: context,useSafeArea: false,barrierColor…

Golang | Leetcode Golang题解之第503题下一个更大元素II

题目&#xff1a; 题解&#xff1a; func nextGreaterElements(nums []int) []int {n : len(nums)ans : make([]int, n)for i : range ans {ans[i] -1}stack : []int{}for i : 0; i < n*2-1; i {for len(stack) > 0 && nums[stack[len(stack)-1]] < nums[i%…

vue2-render:vue2项目使用render / 基础使用

一、本文内容 本文内容记录render常用的一些属性和方法的配置&#xff0c;以作参考 export default { data() {return { modelValue: ,key: 0,}; }, render(h) { return h(div, [ h(input, {class: input,attrs: { type: text }, key: this.key,props: { value: thi…

【MATLAB代码】EKF和CDKF的对比

目录 主要特点 应用场景 运行结果展示 本MATLAB程序实现了扩展卡尔曼滤波&#xff08;EKF&#xff09;与协方差差分卡尔曼滤波&#xff08;CDKF&#xff09;在三维状态估计中的效果对比&#xff0c;为需要高精度定位与动态系统分析的用户提供了一种实用工具。通过直观的结果…

CenterTrack算法详解

背景&#xff1a; 早期追踪器在缺乏强的低水平线索下&#xff0c;容易失败检测后跟踪的模型依赖于检测器&#xff0c;且需要一个单独的阶段匹配关联策略的时间长 简介&#xff1a; 基于点的跟踪思想&#xff0c;通过预测目标的中心点来进行跟踪&#xff0c;同时实现检测与跟…

【开源免费】基于SpringBoot+Vue.JS蜗牛兼职平台 (JAVA毕业设计)

本文项目编号 T 034 &#xff0c;文末自助获取源码 \color{red}{T034&#xff0c;文末自助获取源码} T034&#xff0c;文末自助获取源码 目录 一、系统介绍1.1 平台架构1.2 管理后台1.3 用户网页端1.4 技术特点 二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景…

SSCI/SCI/EI/Scopus/期刊合集,周期短,快速发表,见刊快!

【期刊合集专场】本期为计算机、材料、工程技术、医学、社科经管、农林科学类领域的SCI&SSCI、Scopus、EI&#xff0c;涵盖&#xff1a;人工智能、纳米材料、工程材料、肿瘤学、管理学、农作物保护等征稿方向&#xff01; 期刊推荐一、Intelligence & Robotics 学科领域…

【C++篇】继承之巅:超越法则束缚,领略面向对象的至臻智慧

文章目录 C 继承详解&#xff1a;虚拟继承与进阶实战前言第一章&#xff1a;继承与友元、静态成员1.1 继承与友元1.1.1 友元函数的定义 1.2 继承与静态成员1.2.1 静态成员的继承与访问 第二章&#xff1a;复杂的菱形继承及虚拟继承2.1 菱形继承问题2.1.1 菱形继承的基本结构 2.…

「漏洞复现」东胜物流软件 GetProParentModuTreeList SQL注入漏洞

0x01 免责声明 请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;作者不为此承担任何责任。工具来自网络&#xff0c;安全性自测&#xff0c;如有侵权请联系删…

数据结构——树——二叉树——大小堆

目录 1>>导言 2>>树 2.1>>树的相关术语 2.2>>树的表示和应用场景 3>>二叉树 3.1>>完全二叉树 3.2>>大小根堆 4>>结语 1>>导言 上篇小编将队列的内容给大家讲完了&#xff0c;这篇要步入新的篇章&#xff0c;请宝…

基于Spark的共享单车数据存储系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…

ML 系列:机器学习和深度学习的深层次总结(17)从样本空间到概率规则概率

一、说明 概率是支撑大部分统计分析的基本概念。从本质上讲&#xff0c;概率提供了一个框架&#xff0c;用于量化不确定性并对未来事件做出明智的预测。无论您是在掷骰子、预测天气还是评估金融市场的风险&#xff0c;概率都是帮助您驾驭不确定性的工具。本篇将讲授概率的原理和…

Linux使用Dockerfile部署Tomcat以及jdk

资源准备 首先提供本教程所有资源包。 当然也可以根据自己需求去官网下载。 链接&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;f31y #我们开始吧 首先我们需要一台linux操作系统的机器&#xff0c;当然windows也是可以的&#xff0c;本系列教程是基于Linux的&#…

【网络】H3C交换机配置

1. 网关配置&#xff08;web管理界面&#xff09; 默认S5048PV2_EI交换机 第一步&#xff1a;若是首次配置&#xff0c;通过Console口配置以太网交换机管理VLAN的IP地址&#xff0c;默认的网关是192.168.0.253。 system-view [H3C] interface Vlan-interface 1&#xff08;进入…

[mysql]聚合函数GROUP BY和HAVING的使用和sql查询语句的底层执行逻辑

#GROUP BY的使用 还是先从需求出发,我们现在想求员工表里各个部门的平均工资,最高工资 SELECT department_id,AVG(salary) FROM employees GROUP BY department_id 我们就会知道它会把一样的id分组,没有部门的就会分为一组,我们也可以用其他字段来分组,我们想查询不同jb_id…

ArcGIS计算多个面要素范围内栅格数据各数值的面积

本文介绍在ArcMap软件中&#xff0c;基于面积制表工具&#xff08;也就是Tabulate Area工具&#xff09;&#xff0c;基于1个面要素数据集与1个栅格数据&#xff0c;计算每一个面要素中各栅格数据分布面积的方法。 首先&#xff0c;来看一下本文的需求。现有一个矢量面的要素集…

水陆两栖车应对应急事件发挥的作用_鼎跃安全

随着气候变化&#xff0c;城市内涝等问题日益严重。为了应对可能出现的洪水灾害&#xff0c;许多城市开始将水陆两栖车纳入应急救援装备体系。在暴雨引发城市积水时&#xff0c;水陆两栖车可以作为一种高效的救援和运输工具&#xff0c;及时疏散被困群众&#xff0c;运送应急物…

Hallo2 长视频和高分辨率的音频驱动的肖像图像动画 (数字人技术)

HALLO2: LONG-DURATION AND HIGH-RESOLUTION AUDIO-DRIVEN PORTRAIT IMAGE ANIMATION 论文&#xff1a;https://arxiv.org/abs/2410.07718 代码&#xff1a;https://github.com/fudan-generative-vision/hallo2 模型&#xff1a;https://huggingface.co/fudan-generative-ai/h…

执行Django项目的数据库迁移命令时报错:(1050, “Table ‘django_session‘ already exists“);如何破?

一、问题描述&#xff1a; 当我们写Django时&#xff0c;由于自己的操作不当&#xff0c;导致执行数据库迁移命令时报错&#xff0c;报错的种类有很多&#xff0c;例如&#xff1a; 迁移文件冲突&#xff1a;可能你有多个迁移文件试图创建同一个表。数据库状态与迁移文件不同…

Javascript数据结构——哈希表

18_哈希表_深入链地址法_哔哩哔哩_bilibili 哈希表&#xff08;Hash Table&#xff09;&#xff0c;又称为散列表&#xff0c;是一种通过哈希函数组织数据以实现快速访问的数据结构。下面将从其概述、底层实现和前端应用场景等方面进行详细阐述。 概述 哈希表的基本思路是&a…