大模型实战讲师叶梓:通过视频生成实现基于物理的3D对象交互——PhysDreamer

news2024/11/25 12:19:30

随着虚拟现实(VR)和增强现实(AR)技术的飞速发展,用户对于虚拟体验的真实性提出了更高的要求。在这样的背景下,PhysDreamer应运而生,它是一项创新的技术,能够为静态3D对象赋予逼真的物理交互动态,极大地丰富了虚拟环境的互动性和沉浸感。

PhysDreamer系统旨在解决虚拟体验中逼真3D对象交互动态的合成问题。具体来说,它针对如何使静态3D对象在虚拟环境中对用户交互或外力作用时产生符合物理规律的动态响应进行研究。这一问题的核心挑战在于准确估计物体的物理材质属性,如刚度,而这些属性对于真实物体来说测量困难且数据稀缺。PhysDreamer通过利用视频生成模型学习到的动态先验知识来估计这些物理属性,并采用可微分的模拟和渲染技术,生成逼真的3D动态,从而显著提升了虚拟体验的沉浸感和交互性。

方法

PhysDreamer是一种创新的方法,它通过视频生成技术,为静态3D对象赋予逼真的物理交互特性。这一技术的核心在于模拟物体对外部力或代理操作等新颖交互的响应,进而提升虚拟体验的真实性。

3D对象的高斯表示

PhysDreamer使用3D高斯函数集合来精确表示3D场景中的静态物体。每个3D高斯代表场景中的一个点,携带位置、透明度、颜色和协方差矩阵等信息,这些点合在一起能够描述整个物体的几何和光学特性。通过这种方式,3D高斯不仅能够高效地表示物体的复杂表面,还能为后续的动态模拟和渲染提供必要的数据结构。

静态图像的渲染

在3D高斯表示的基础上,PhysDreamer首先渲染出3D场景的静态图像。这一步骤是后续动态模拟的起点,需要从特定的视角出发,确保光照、遮挡等视觉因素都被精确捕捉。渲染出的静态图像将作为视频生成模型的输入,用于生成物体运动的参考视频。

动态先验知识的提炼与视频生成

视频生成模型负责将静态图像转化为展示物体运动的视频序列。这一步骤是PhysDreamer方法的核心,它利用了大量视频数据训练得到的视频生成模型,该模型隐式地学习了物体外观与动态之间的关系。通过这个模型,PhysDreamer能够生成物体在受力或其他交互下的参考视频,这些视频序列作为后续物理模拟优化的目标。

物理模拟与材质属性的优化

得到了参考视频后,PhysDreamer采用可微分的材质点方法(MPM)来模拟物体的物理动态。MPM是一种用于模拟物体在受力后的变形和运动的计算框架,它通过粒子携带的质量和速度等物理属性来描述物体的动态行为。PhysDreamer通过优化这些物理属性,使得模拟出的动态与参考视频之间的差异最小化。优化过程包括两个阶段:初始速度场的优化和物理材质属性(如杨氏模量)的优化。

子采样策略与模拟加速

由于直接对所有3D高斯粒子进行模拟计算量巨大,PhysDreamer采用了子采样策略来加速模拟过程。通过K-Means聚类算法,从所有3D高斯粒子中选出一组代表性的“驱动粒子”进行模拟。这些驱动粒子的数量远少于全部粒子,从而显著减少了模拟的计算量。在渲染阶段,对于非驱动粒子,PhysDreamer通过插值驱动粒子的运动来推算其位置和旋转,以此重建整个物体的动态。

优化与渲染的闭环

在物理模拟和材质属性优化完成后,PhysDreamer使用可微分渲染技术来生成最终的动态视频。这一步骤将模拟得到的物理状态转换为像素空间的图像,并通过与参考视频的比较来进一步优化材质属性,形成一个闭环的优化流程。通过这种方式,PhysDreamer能够生成与真实物理交互高度一致的动态效果。

实验

数据集构建

研究者们首先构建了一个包含多个真实世界静态场景的数据集,这些场景由多种物体和相应的背景组成。每个场景都通过多视角图像捕获来创建,以确保3D模型的准确性。所选物体包括不同类型的花卉、植物、电话线和帽子等,这些都是在虚拟体验中常见的交互对象。

基线方法选择

为了评估PhysDreamer的性能,研究者们选择了两个基线方法:PhysGaussian和DreamGaussian4D。这两种方法分别代表了不同的动态3D生成技术,可以为PhysDreamer提供一个公平且具有挑战性的比较环境。

用户研究设计

研究者们采用了两种选择被迫选择(2AFC)协议来进行用户研究。在这项研究中,参与者被展示了两个同步视频,一个由PhysDreamer生成,另一个由基线方法生成。参与者的任务是选择他们认为视觉质量更高和动作真实性更强的视频。为了减少偏差,视频的左右顺序是随机的,并且每个场景都有多个样本供参与者评估。

实施细节

在实验的实施阶段,研究者们使用了一系列技术来优化PhysDreamer的性能。例如,为了提高模拟效率,他们采用了子采样策略,通过K-Means聚类来选择一组代表性的“驱动粒子”进行模拟。此外,他们还使用了不同的神经场模型来参数化物质场和初始速度场,并通过正则化技术来增强空间平滑性。

结果分析

用户研究的结果显示,PhysDreamer在动作真实性和视觉质量方面均优于基线方法。相比于PhysGaussian,80.8%的2AFC样本倾向于PhysDreamer;相比于DreamGaussian4D,70.0%的2AFC样本在视觉质量上更倾向于PhysDreamer,而在动作真实性方面,这一比例为63.5%。即使与真实捕获的视频相比,PhysDreamer在动作真实性上也获得了53.7%的偏好率,这表明其合成动态的质量已经接近真实世界的水平。

实验结果表明,PhysDreamer在合成动态的真实性方面显著优于现有的技术。用户研究的反馈也显示,PhysDreamer在动作真实性和视觉质量方面得到了用户的高度评价。这些结果证明了PhysDreamer在创建逼真的虚拟体验方面的潜力。

尽管PhysDreamer在模拟逼真物理交互方面取得了显著进展,但该方法仍存在一些局限性。例如,它需要用户手动分离出要模拟的物体,并为静止部分(如花盆)设定边界条件。此外,尽管采用了子采样策略,PhysDreamer的计算成本依然较高,且目前只适用于没有碰撞的弹性物体。未来的工作将致力于解决这些问题,进一步提高PhysDreamer的效率和适用性。

论文链接:https://arxiv.org/abs/2404.13026

项目地址:https://physdreamer.github.io/

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

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

相关文章

Vue的router.addRoutes不起作用

Vue的router.addRoutes()不起作用解决方案 最近在学习制作后台管理系统的时候,涉及到了权限,在通过后台获取到数据后使用router.addRoutes()时不起作用。 最终发现左侧菜单组件中的路由是根据this.$router.options.routes来渲染的,最终使用…

C++ | Leetcode C++题解之第110题平衡二叉树

题目: 题解: class Solution { public:int height(TreeNode* root) {if (root NULL) {return 0;}int leftHeight height(root->left);int rightHeight height(root->right);if (leftHeight -1 || rightHeight -1 || abs(leftHeight - rightH…

将Surface的分辨率减半以省电(二合一本\笔记本电脑适用)

【完全自定义分辨率教程】这篇教程用于将Surface之类的高分屏(高分辨率)的二合一本或笔记本等的分辨率调整为原来的一半,以实现省电等目的。 下载CRU(Custom Resolution Utility)解压后,打开CRU.exe选择当…

交叉编译——

什么是交叉编译 交叉编译 是在一个平台上生成临海一个平台可执行代码. eg.在windows上面编写C51代码,并编译生成可执行代码。如xx.hex 我们在Ubuntu上编写树莓派的代码,并编译成可执行代码。a.out. 是在树莓派上运行,不在Ubuntu Linux上面运…

每日练习之排序——链表的合并;完全背包—— 兑换零钱

链表的合并 题目描述 运行代码 #include<iostream> #include<algorithm> using namespace std; int main() { int a[31];for(int i 1;i < 30;i)cin>>a[i];sort(a 1,a 1 30);for(int i 1;i < 30;i)cout<<a[i]<<" ";cout&…

Redis实现热点数据排行榜或游戏积分排行榜

数据库中的某张表中存储着文章的浏览量&#xff0c;或者点赞数等&#xff0c;或者游戏积分等数据...... 这些数据的更新在redis中完成&#xff0c;并定时同步到mysql数据库中。 而如果要对这些数据进行排序的话&#xff1a; Redis中的Sorted Set(有序集合)非常适合用于实现排…

​​​【收录 Hello 算法】第 10 章 搜索

目录 第 10 章 搜索 本章内容 第 10 章 搜索 搜索是一场未知的冒险&#xff0c;我们或许需要走遍神秘空间的每个角落&#xff0c;又或许可以快速锁定目标。 在这场寻觅之旅中&#xff0c;每一次探索都可能得到一个未曾料想的答案。 本章内容 10.1 二分查找10.2 二…

Obsidian Git 多端同步

2023年6月&#xff0c;某云笔记限制了免费用户最多同时登录 2 台设备&#xff0c;想要增加设备数量需要付费开通会员。之后我一直想找一款合适的笔记本软件&#xff0c;年底尝试了Obsidian&#xff0c;断断续续摸索了好几天终于成功了。将那时的笔记拿来分享一下。 相关地址&am…

如何部署一个基本符合ERC20的智能合约

运行genache-cli 运行以下命令genache-cli下载MetaMask浏览器拓展钱包 添加账户 导入账户 输入genache-cli生成其中的密钥 选择【显示测试网络】点击【添加网络】 添加自己本地的网络 选择该测试网络&#xff0c;账号里就会有100RETH 在remix里接通这个测试帐号 …

【SQL Server001】SQLServer2016常用函数实战总结(已更新)

1.熟悉、梳理、总结下SQL Server相关知识体系。 2.日常研发过程中使用较少&#xff0c;随着时间的推移&#xff0c;很快就忘得一干二净&#xff0c;所以梳理总结下&#xff0c;以备日常使用参考 3.欢迎批评指正&#xff0c;跪谢一键三连&#xff01; 总结源文件资源下载地址&am…

《基于Jmeter的性能测试框架搭建》改进一

《基于Jmeter的性能测试框架搭建》文末笔者提到了不少待改进之处&#xff0c;如下所示。 Grafana性能图表实时展现&#xff0c;测试过程中需实时截图形成测试报告&#xff0c;不够人性化。解决方案&#xff1a;自动生成测试报告并邮件通知。 Grafana性能图表需测试人员实时监控…

128天的创意之旅:从初心到成就,我的博客创作纪念日回顾

文章目录 &#x1f680;机缘&#xff1a;初心的种子——回望创作之旅的启航&#x1f308;收获&#xff1a;成长的果实——128天创作之旅的宝贵馈赠❤️日常&#xff1a;创作与生活的交织&#x1f44a;成就&#xff1a;代码的艺术&#x1f6b2;憧憬&#xff1a;未来的蓝图 &…

【Pytorch】13.搭建完整的CIFAR10模型

项目源码 已上传至githubCIFAR10Model&#xff0c;如果有帮助可以点个star 简介 在前文【Pytorch】10.CIFAR10模型搭建我们学习了用Module来模拟搭建CIFAR10的训练流程 本节将会加入损失函数&#xff0c;梯度下降&#xff0c;TensorBoard来完整搭建一个训练的模型 基本步骤 搭建…

人类交互3 皮肤感觉与运动系统

皮肤感觉概述 皮肤是人体最大的器官之一&#xff0c;具有多种感觉功能&#xff0c;包括&#xff1a; 触觉&#xff1a;通过触觉&#xff0c;我们能感知物体的形状、质地&#xff0c;帮助我们与外界环境进行互动和感知周围物体的特征。 热觉&#xff1a;热觉使我们能感知周围环…

【笔记】Qt 按钮控件介绍(QPushButton,QCheckBox,QToolButton)

文章目录 QAbstractButton 抽象类(父类)QAbstractButton 类中的属性QAbstractButton 类中的函数QAbstractButton 类中的信号QAbstractButton 类中的槽 QPushButton 类(标准按钮)QPushButton 类中的属性QPushButton 类中的函数、槽 QCheckBox 类(复选按钮)QCheckBox 类的属性QCh…

CCF20221201——现值计算

CCF20221201——现值计算 代码如下&#xff1a; #include<bits/stdc.h> using namespace std; int main() {int n,a[1001];float i,sum0.0;scanf("%d %f",&n,&i);for(int j0;j<n1;j){scanf("%d",&a[j]);suma[j]*pow((1i),-j);}print…

Linux环境中部署docker私有仓库Registry与远程访问详细流程

目录 前言 1. 部署Docker Registry 2. 本地测试推送镜像 3. Linux 安装cpolar 4. 配置Docker Registry公网访问地址 5. 公网远程推送Docker Registry 6. 固定Docker Registry公网地址 前言 作者简介&#xff1a; 懒大王敲代码&#xff0c;计算机专业应届生 今天给大家聊…

用数据,简单点!奇点云2024 StartDT Day数智科技大会,直播见

在充满挑战的2024&#xff0c;企业如何以最小化的资源投入和试错成本&#xff0c;挖掘新的增长机会&#xff0c;实现确定性发展&#xff1f; “简单点”是当前商业环境的应对策略&#xff0c;也是奇点云2024 StartDT Day的核心理念。 5月28日&#xff0c;由奇点云主办的2024 S…

自定义全局变量3

变量删除 语法 unset var_name演示 自定义常量 介绍 就是变量设置值以后不可以修改的变量叫常量, 也叫只读变量 语法 readonly var_name演示 自定义全局变量 父子Shell环境介绍 例如: 有2个Shell脚本文件 A.sh 和 B.sh 如果 在A.sh脚本文件中执行了B.sh脚本文件, 那么A.…

重磅推荐!四信AI智能一体屏系列全网上线

近年来&#xff0c;随着物联网、云计算、人工智能等新兴技术快速发展&#xff0c;制造、能源、交通、零售、医疗等行业设备需要更高程度的自动化控制。 传统的计算机和控制设备早已无法满足如今高性能复杂任务的要求&#xff0c;越来越多主流行业的项目落地依靠工控机&#xff…