计算机视觉: 三维物体生成

三维物体生成与编辑

论文地址: Controllable Mesh Generation Through Sparse Latent Point Diffusion Models



背景

数据是目前数字化和AI领域最宝贵的财富之一,但是对于目前的开发者来说,收集数据都意味着极大的成本。所以建立一个高效的生成模型能极大的提高开发者的效率降低生产成本。

生成模型简单来说就是一个概率模型,其学习真实世界的数据分布从而去生成新的数据样本。其中目前主流的图像的生成模型包括stable difussion模型, 其原理主要可以分成两个过程

  1. 扩散过程: 将原本清晰的数据(可以是声音/图片/点云等)逐步添加高斯噪声,直至其最终成为一个完全的高斯噪声
  2. 逆扩散: 也就是步骤一的反向过程,也就是将步骤一得到的高斯噪声逐步重新回溯成清晰的数据

![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=image%2F%E4%B8%89%E7%BB%B4%E7%89%A9%E4%BD%93%E7%94%9F%E6%88%90%E4%B8%8E%E7%BC%96%E8%BE%91%2F1695453734003.png&pos_id=img-1q7KRqmt-1695459349198

而根据stable diffusion的思想的三维物体生成模型主要也分成了两个流派:

  • 建立一个2D的扩散生模型,然后融合成3D模型。eg: Dreamfusion, Magic3D 以及ProlificDreamer等
    • 优点: 无需昂贵的3D数据
    • 缺点: 因为是由2D -> 3D 数据,中间涉及的优化过程十分耗时。初始结构一般是球体所以对一些复杂不规则的3D结构不是十分鲁棒
  • 直接建立一个3D生成模型。 eg: Point-E , LION, Mesh Diffusion, 3DGen等
    • 优点: 生成速度快,对复杂几何结构更加鲁棒
    • 缺点: 需要3D数据做训练

上述这些3D生成模型根据是否需要输入条件分成有条件生成模型& 无条件生成模型, 这些生成条件可以是文本 或者图片等。但是这些都不能提供使用者对生成的3D模型进行细粒度的微调。



可控三维生成模型

根据前人的工作,以及目前的业务需求,提出了Controllable Mesh Generation Through Sparse Latent Point Diffusion Models , 其主要目的是可控的细粒度的生成3D模型。其主要的贡献在于:

  1. 提供了一个细粒度的可控的3D mesh生成模型
  2. 提供了一个可供用户交互细粒度改变局部或者全局结构的思想
  3. 更加快速的生成速度


其整体思路是首先将Mesh下采样选择用稀疏的点云去表达整个Mesh,从而提高处理速度。再将采样后的点云通过Encoder的结构, 将点云处理成数量一致的sprase latent points再经过Decoder结构后上采样,从而实现整个3D生成模型。这样的好处在于这些sprase latent points 更适合与用户交互,从而实现细粒度的微调或者说是控制生成的形状

在这里插入图片描述

而整个生成的结构是由两个扩散模型构成,其中第一个扩散模型是根据经过encoder的sparse latent points去学习其点云的位置,第二个是根据第一个扩散模型生成的位置从而去学习其位置上的特征。从而实现整个生成模型结构。可以把整个生成的过程分为以下3步:

  1. 利用位置扩散模型去生成sparse latent points的点的位置
  2. 利用特征扩散模型去生成给定位置下的sparse latent points的特征
  3. 利用autoencoder去将这些特征和位置decoder后重构一个mesh 结构

在这里插入图片描述



最终用户可以根据自己的需要去改变sprase latent points的点的位置或者进行一些形状上的插值,从而可以改变整个最终生成结构或者对应的只改变更变点的局部结构。除此之外,作者提供了一种融合形状的思维,就是将生成的不同物体的sprase latent points的部分点的特征进行融合,从而实现整体3D拼接生成结构,例如A物体的轮子和B物体的车身拼接成一个整车。

在这里插入图片描述




未来方向

  • 提供可变的latent point的点的数量,更加灵活更精确的去控制生成结构
  • 从生成不同的物体geomertry 到texture生成
  • 从单个物体级别的生成到整个场景的生成

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传



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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构-----堆(完全二叉树)

目录 前言 一.堆 1.堆的概念 2.堆的存储方式 二.堆的操作方法 1.堆的结构体表示 2.数字交换接口函数 3.向上调整(难点) 4.向下调整(难点) 5.创建堆 6.堆的插入 7.判断空 8.堆的删除 9.获取堆的根(顶)元素 10.堆的遍历…

如何看待Unity新的收费模式?

文章目录 背景Unity的论点开发者的担忧如何看待Unity新的收费模式?1. 理解Unity的立场2. 考虑小型开发者3. 探索替代方案4. 对市场变化保持敏感5. 提高游戏质量 结论 🎉 如何看待Unity新的收费模式? ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x1…

Jenkins “Trigger/call builds on other project“用法及携带参数

1.功能 “Trigger/call builds on other project” 功能是 Jenkins 中的一个特性,允许您在某个项目的构建过程中触发或调用另一个项目的构建。 当您在 Jenkins 中启用了 “Trigger/call builds on other project” 功能并配置了相应的触发条件后,当主项…

计算机视觉与深度学习-循环神经网络与注意力机制-Attention(注意力机制)-【北邮鲁鹏】

目录 引出Attention定义Attention-based model通俗解释应用在图像领域图像字幕生成(image caption generation)视频处理 序列到序列学习:输入和输出都是长度不同的序列 引出Attention 传统的机器翻译是,将“机器学习”四个字都学…

八大排序(二)快速排序

一、快速排序的思想 快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法,其基本思想为:任取待排序元素序列中的某元素作为基准值,按照该排序码将待排序集合分割成两子序列,左子序列中所有元素均小于基准值,右…

【新版】系统架构设计师 - 案例分析 - 软件工程

个人总结,仅供参考,欢迎加好友一起讨论 文章目录 结构化分析SA数据流图DFD数据流图平衡原则答题技巧例题1例题2 面向对象的分析OOA用例图用例模型细化用例描述用例关系【包含、扩展、泛化】分析模型定义概念类确定类之间的关系类图与对象图实体类 - 存储…

【音视频】MP4封装格式

基本概念 使用MP4box.js查看MP4内部组成结构 整体结构 数据索引(moov)数据流包(mdat) 各个包的位置,大小,信息,时间戳,编码方式等全在数据索引 数据流包只有纯二进制码流数据 数据…

C++ - 红黑树 介绍 和 实现

前言 前面 学习了 AVL树,AVL树虽然在 查找方面始终拥有 O(log N )的极高效率,但是,AVL 树在插入 ,删除等等 修改的操作当中非常的麻烦,尤其是 删除操作,在实现当中细节非常多,在实现上非常难掌控…

第52节:cesium 3DTiles模型特效+选中高亮(含源码+视频)

结果示例: 完整源码: <template><div class="viewer"><vc-viewer @ready="ready" :logo="false"><vc-navigation

云上亚运:所使用的高新技术,你知道吗?

作者简介&#xff1a;一名云计算网络运维人员、每天分享网络与运维的技术与干货。 公众号&#xff1a;网络豆云计算学堂 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a; 网络豆的主页​​​​​ 目录 前言 一.什么是云上亚运会 二.为什么要使用云…

【Newman+Jenkins】实施接口自动化测试

一、是什么Newman Newman就是纽曼手机这个经典牌子&#xff0c;哈哈&#xff0c;开玩笑啦。。。别当真&#xff0c;简单地说Newman就是命令行版的Postman&#xff0c;查看官网地址。 Newman可以使用Postman导出的collection文件直接在命令行运行&#xff0c;把Postman界面化运…

负载均衡原理及应用

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

AI AIgents时代 - (三.) AutoGPT和AgentGPT

前两篇讲解了Agent的原理和组件&#xff0c;这节我将给大家介绍两个agent项目&#xff0c;给出它们的工作原理和区别&#xff0c;并教大家亲手尝试使用 Agents&#x1f389; &#x1f7e2; AutoGPT&#x1f916;️ 我们的老朋友&#xff0c;之前文章也专门写过。AutoGPT 是一…

【C++杂货铺】一颗具有搜索功能的二叉树

文章目录 一、二叉搜索树概念二、二叉搜索树的操作2.1 二叉搜索树的查找2.2 二叉搜索树的插入2.3 二叉搜索树的删除 三、二叉搜索树的实现3.1 BinarySearchTreeNode&#xff08;结点类&#xff09;3.2 BinarySearchTree&#xff08;二叉搜索树类&#xff09;3.2.1 框架3.2.2 in…

108. 将有序数组转换为二叉搜索树

给你一个整数数组 nums &#xff0c;其中元素已经按 升序 排列&#xff0c;请你将其转换为一棵 高度平衡 二叉搜索树。 高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。 示例 1&#xff1a; 输入&#xff1a;nums [-10,-3,0,5,9] 输…

【Spark】win10配置IDEA、saprk、hadoop和scala

终于&#xff0c;要对并行计算下手了哈哈哈。 一直讲大数据大数据&#xff0c;我单次数据处理量大概在1t上下&#xff0c;是过亿级的轨迹数据。 用python调用multiprogress编写的代码&#xff0c;用多线程也要一个多月跑完。 我对这个效率不太满意&#xff0c;希望能快一点再快…

Python_ithheima_第二阶段

第一章 01-初识对像 02 类的成员方法 03 类和对象 04 构造方法 05 魔术方法 06 封装 07 封装的课后练习题讲解 08 继承的基础语法 pass关键字的功能是“语法补全” 同名成员或方法&#xff0c;谁先来谁优先级高 09 复写父类成员和调用父类成员 10 变量的类型注解 11 函数和方法…

Qt---day4---9.20

qt完成时钟&#xff1a; 头文件&#xff1a; #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QPaintEvent> #include <QtDebug> #include <QPainter> #include <QTimerEvent> #include <QTime>QT_BEGIN_NAMESPACE names…

ROS2 的行为树 — 第 1 部分:解锁高级机器人决策和控制

一、说明 在复杂而迷人的机器人世界中&#xff0c;行为树&#xff08;BT&#xff09;已成为决策过程中不可或缺的一部分。它们提供了一种结构化、模块化和高效的方法来对机器人的行为进行编程。BT起源于视频游戏行业&#xff0c;用于控制非玩家角色&#xff0c;他们在机器人领域…

Kafka 常见问题

文章目录 kafka 如何确保消息的可靠性传输Kafka 高性能的体现利用Partition实现并行处理利用PageCache 如何提高 Kafka 性能调整内核参数来优化IO性能减少网络开销批处理数据压缩降低网络负载高效的序列化方式 kafka 如何确保消息的可靠性传输 消费端弄丢了数据 唯一可能导致…