Amazing!精准可控新视角视频生成+场景级3D生成!北大港中文腾讯等开源ViewCrafter

论文链接: https://arxiv.org/abs/2409.02048
GitHub链接:https://github.com/Drexubery/ViewCrafter
项目链接: https://drexubery.github.io/ViewCrafter/
Demo链接: https://huggingface.co/spaces/Doubiiu/ViewCrafter

亮点直击

  • 本文提出了一种迭代视图合成策略,并结合内容自适应相机轨迹规划算法,以逐步扩展新视图覆盖的区域和重建的点云,从而实现远距离和大范围的新视图合成。

  • 本文的方法在多个具有挑战性的数据集上表现出色,不仅在合成新视图的质量方面表现优异,还在相机姿态控制的精确度方面表现出色。该方法不仅适用于新视图合成,还可以通过高效优化基于3D-GS的表示,实现实时渲染的沉浸式体验,以及用于场景级别的文本到3D生成,以创造更具想象力的艺术作品。

来自北大、港中文、腾讯等机构的研究人员提出ViewCrafter,可以从根据单张或稀疏输入图像生成精确相机可控的新视角视频,并支持场景级图生3D文生3D稀疏视角重建等应用。

传统的新视生成方法如NeRF和3D-GS等技术依赖于密集的多视角训练数据,这限制了它们在仅有稀疏甚至单张输入视角的情况下的应用。同时,这些方法没有需要逐场景优化,不具备范化能力,限制了他们在训练资源受限场景下的应用。

在实际应用中,一个更理想的问题场景是从稀疏视角甚至单张输入图像中生成任意规模场景的新视角。这项任务相当具有挑战性,因为它需要模型对3D物理世界有全面的理解。而本文提出的新视角生成方法,ViewCrafter,能够对任意输入图像实现相机轨迹精确可控的新视角视频生成,并进一步支持图生3D,文生3D和稀疏视角重建等应用。

目前论文和代码均已开源,并提供了在线Huggingface demo供玩用户使用。

效果展示

相机轨迹可控的视频生成,单视角输入

相机轨迹可控的视频生成,单视角输入

相机轨迹可控的视频生成,2视角输入

相机轨迹可控的视频生成,2视角输入

文生3D

文生3D

文生3D

文生3D

单图生3D

单图生3D

单图生3D

单图生3D

方法介绍

视频扩散模型

Sora等在大规模真实场景视频数据集上训练得到视频扩散模型能够学到对3D物理世界的深入理解,从而使其从单张图像或文本提示中生成复合物理规律和现实世界规则的视频内容。然而,由于它们缺乏场景的底层3D信息,因此难以在视频生成过程中实现精确的相机视角控制。

点云先验

快速多视图/单视图stereo技术的发展使得仅从单张或稀疏图像中快速重建点云表征成为可能。点云表征能够提供粗略的3D场景信息,支持自由视角渲染和精确的相机位置控制。然而,由于其表示能力较差,以及极其稀疏的输入图像所提供的3D线索非常有限,它在处理遮挡、缺失区域和几何变形方面存在问题,限制了其在新视角合成中的应用。

ViewCraftr

研究者们提出将视频扩散模型的生成能力与点云表征提供的粗略3D先验相结合,以实现相机精准可控的任意场景高保真度新视角视频生成。

如上图所示, 给定单张或稀疏视角输入图像,我们首先使用快速多视图Stereo方法构建其点云表示,这样可以准确地移动相机进行自由视角渲染。随后,为了解决点云渲染结果中存在的大面积缺失区域、几何失真和点云伪影,我们训练了一个以点云渲染结果为控制信号的视频扩散模型,作为增强渲染器,以便根据粗糙的点云渲染结果生成高保真且一致的新视角。利用点云中的显式3D信息以及视频扩散模型的生成能力,我们的方法能够实现6自由度的精准相机位姿控制,并生成高保真度、一致性强的新视角视频。

迭代生成

视频扩散模型在生成长视频时往往面临挑战,因为长视频推理会造成巨大的计算成本开销。为了解决这一问题,我们提出了一种迭代式的新视角生成策略,并提出了一种内容自适应的摄像机轨迹规划算法,以逐步扩展重建的点云和新视图覆盖的区域。具体来说,从输入图像构建的初始点云开始,我们首先使用摄像机轨迹规划算法,从当前点云预测一段相机轨迹,以有效揭示遮挡区域。接着,根据预测的轨迹渲染点云,并利用ViewCrafter根据渲染的点云生成高质量的新视角。随后,我们用生成的新视角更新点云,以扩展全局点云表征。通过迭代执行这些步骤,我们最终可以获得覆盖大视场范围和扩展点云的高保真新视图。

D高斯重建

基于研究者们提出的迭代新视角生成算法,可以从单张图像/稀疏视角甚至一段文字描述中中进行3D高斯重建。

实验结果

零样本新视角生成

研究者们在Tanks-and-Temples,CO3D, RealEstate10K这三个真实世界数据集上与发表在CVPR2024,SIGGRAPH2024等顶会上的SOTA方法进行了定量和定性比较,实验结果证明我们的方法在相机位姿控制的精准程度,以及生成新视角的视觉质量上都大幅超过对比方法。

稀疏视角3D高斯重建

研究者们在Tanks-and-Temples数据集上与发表在CVPR2024,ECCV2024等顶会上的SOTA方法进行了定量和定性比较,实验结果证明我们的方法在生成新视角的视觉质量上大幅超过对比方法

文生3D效果

启发

一些同期工作采用普吕克坐标作为视频生成模型的控制信号,实现相机可控的新视角生成。作为对比,为了验证点云控制信号的优越性,我们训练了一个以普吕克坐标为控制信号的新视角生成模型,并进行控制变量实验,保证除了控制信号外其他模型结构与ViewCrafter一致。两个模型在新视角生成任务上对比结果如下所示:

实验结果证明,不管是在新视角生成质量还是在相机控制的精准程度上,我们使用的基于点云的控制信号都要优于基于普吕克坐标的控制信号。

结论

本文提出了 ViewCrafter,一种结合视频扩散模型和点云先验的高保真度和准确的新视图合成框架。本文的方法通过为各种场景类型提供泛化能力和对单幅图像及稀疏图像输入的适应性,同时保持新视图的质量一致性和准确性,克服了现有方法的局限性。此外,引入了迭代视图合成方法和自适应相机轨迹规划程序,促进了长范围新视图合成和多样场景的自动相机轨迹生成。除了新视图合成外,还探索了 3D-GS 表示的高效优化,以实现实时、高帧率的新视图渲染,并将本文的框架适配于文本到 3D 生成。

未来计划

研究者们验证了ViewCrafter对于静态场景的强大新视角生成能力。在未来的工作中,将探索和视频深度估计方法结合,实现单目动态视频的新视角生成和4D重建。

更多精彩内容,请关注公众号:AI生成未来

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

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

相关文章

java设计模式(持续更新中)

1 设计模式介绍 设计模式代表了代码的最佳实践,被有经验的开发人员使用。设计模式是很多被反复使用并知晓的,主要是对代码和经验的总结。使用设计模式是为了重用代码,并让代码更容易被人理解,保证代码的可靠性。对接口编程而不是…

双向dfs,多次dfs

前言&#xff1a;这个答案给我们提供了一种多次dfs的思路&#xff0c;记录queue的size&#xff0c;每次只取size个&#xff0c;就刚刚好只处理了上一次的‘ 题目地址 #include<bits/stdc.h> using namespace std;//定义队列节点 struct node {int x,y; }rear,front; //Q[…

JVM 调优篇2 jvm的内存结构以及堆栈参数设置与查看

一 jvm的内存模型 2.1 jvm内存模型概览 2.2 pc计数器 它是一块很小的内存空间&#xff0c;集合可以忽略不记&#xff0c;也是运行速度最快的存储区域。不会随着程序的运行需要更大的空间。 在jvm规范中&#xff0c;每个线程都有它自己的程序计数器&#xff0c;是线程私有的&…

二、栈和队列-算法总结

文章目录 二、栈和队列2.1 基本应用2.1.1 逆波兰表达式求值2.1.2 有效的括号 2.2 单调栈2.2.1 柱状图中最大的矩形 二、栈和队列 2.1 基本应用 2.1.1 逆波兰表达式求值 150. 逆波兰表达式求值 class Solution {/**思路分析&#xff1a;遇到数则压栈&#xff0c;遇到运算符…

【深度学习】线性回归的从零开始实现与简洁实现

前言 我原本后面打算用李沐老师那本《动手学深度学习》继续“抄书”&#xff0c;他们团队也免费提供了电子版(https://zh-v2.d2l.ai/d2l-zh-pytorch.pdf)。但书里涉及到代码&#xff0c;一方面展示起来不太方便&#xff0c;另一方面我自己也有很多地方看不太懂。 这让我开始思…

Arm GIC-v3中断原理及验证(通过kvm-unit-tests)

一、参考连接 gic-v3相关原理可参考https://zhuanlan.zhihu.com/p/520133301 本文主要通过开源测试工具kvm-unit-tests&#xff0c;针对GIC的中断进行一系列验证&#xff0c;这样可以直入中断底层&#xff0c;熟悉整个原理。 kvm-unit-tests官网为kvm-unit-tests / KVM-Unit…

labview禁用8080端口

需求背景 最近电脑上安装了labview全家桶,发现idea的8080端口项目启动报错,一直提示8080端口被占用。最简单的办法就是找到8080端口的服务,然后关闭这个服务。但是我不想这么做,我想把labview的web服务器的端口给修改了。 操作教程 1、cmd查看8080端口 2、windows进程 同…

022.PL-SQL进阶—分页过程

课 程 推 荐我 的 个 人 主 页&#xff1a;&#x1f449;&#x1f449; 失心疯的个人主页 &#x1f448;&#x1f448;入 门 教 程 推 荐 &#xff1a;&#x1f449;&#x1f449; Python零基础入门教程合集 &#x1f448;&#x1f448;虚 拟 环 境 搭 建 &#xff1a;&#x1…

Flask 实现用户登录功能的完整示例:前端与后端整合(附Demo)

目录 前言Demo 前言 对于python用户的登录&#xff0c;以下只是提供一个Demo用于学习 更多的python知识点可从我的专栏中进行学习 python专栏详细分析Flask中的蓝图Blueprint&#xff08;附Demo&#xff09;详细分析Flask部署云服务器&#xff08;图文介绍&#xff09;构建F…

2024 年 GitLab Global DevSecOps 报告解读

近日 GitLab 正式发布了 2024 年 GitLab Global DevSecOps 报告&#xff0c;报告主题为 What’s next in DevSecOps。在全球有超 5000 位 IT 人员参与了该报告的调研&#xff0c;超 70% 为企业管理者&#xff0c;50% 以上的受访者所在企业规模超过 500人。该报告深刻揭示了在 A…

深度学习_GPT2Block详解(casual attention)

一、GTP2Block 整体结构 1.1 block准备 import torch from torch import nn from transformers import GPT2Model, GPT2Config from transformers.models.gpt2.modeling_gpt2 import GPT2Blockcfg GPT2Config() print(cfg.add_cross_attention) blk GPT2Block(cfg, layer_…

《ECMAScript 与 JavaScript:差异与共通》

一、概念辨析 《ECMAScript 与 JavaScript&#xff1a;差异与共通》 ECMAScript&#xff08;简称 ES&#xff09;是一种由 Ecma International 标准化的脚本语言规范。它定义了脚本语言的核心特性&#xff0c;包括语法、类型、语句、关键字等。例如&#xff0c;ECMAScript 规定…

被要求撤回Blackwell?一家初创企业称英伟达侵权自家技术,忍无可忍!英伟达和伙伴微软被齐齐告上法庭,赔偿或高达数十亿!

刚刚&#xff0c;一家初创公司居然把巨头英伟达和微软一起告了&#xff01; 名为Xockets的初创公司在诉讼中称&#xff0c;英伟达和微软公司窃取了其DPU技术&#xff0c;用以开发AI产品&#xff0c;并相互串通以压低其技术的价格&#xff0c;是名副其实的垄断行为&#xff01;…

智汇创想pytest接口自动化测试框架

本测试框架是基于pytest搭建的接口自动化框架&#xff0c;对象为深圳智汇创想官方网站。深圳智汇创想科技有限责任公司&#xff08;深圳智汇创想科技有限责任公司&#xff09;&#xff0c;是一家专注于跨境电子商务的集团公司&#xff0c;全球电商平台多品类多品牌的零售商&…

MATLAB | R2024b更新了哪些好玩的东西?

Hey, 又到了一年两度的MATLAB更新时刻&#xff0c;MATLAB R2024b正式版发布啦&#xff01;&#xff0c;直接来看看有哪些我认为比较有意思的更新吧! 1 小提琴图 天塌了&#xff0c;我这两天才写了个半小提琴图咋画&#xff0c;MATLAB 官方就出了小提琴图绘制方法。 小提琴图…

客户端负载均衡Ribbon实例

文章目录 一&#xff0c;概述二&#xff0c;实现过程三&#xff0c;项目源码1. 源码放送&#xff1a;2. 部署方式 四&#xff0c;功能演示五&#xff0c;其他 一&#xff0c;概述 一般来说&#xff0c;提到负载均衡&#xff0c;大家一般很容易想到浏览器 -> NGINX -> 反…

加密与安全_ sm-crypto 国密算法sm2、sm3和sm4的Java库

文章目录 Presm-crypto如何使用如何引入依赖 sm2获取密钥对加密解密签名验签获取椭圆曲线点 sm3sm4加密解密 Pre 加密与安全_三种方式实现基于国密非对称加密算法的加解密和签名验签 sm-crypto https://github.com/antherd/sm-crypto 国密算法sm2、sm3和sm4的java版。基于js…

PMP--一模--解题--21-30

文章目录 9.资源管理21、 [单选] 项目经理发现一个不可预料的高影响风险已经成为项目的一个因素&#xff0c;团队成员之间的自身利益导致问题得不到解决&#xff0c;项目经理必须快速行动&#xff0c;让团队重新集中精力&#xff0c;以便项目恢复进度&#xff0c;项目经理应该使…

vue3项目实现全局国际化

本文主要梳理vue3项目实现全项目格式化&#xff0c;例如在我前面文章使用若依创建vue3的项目中&#xff0c;地址&#xff1a;若依搭建vue3项目在导航栏中切换&#xff0c;页面中所有的组件的默认语言随之切换&#xff0c;使用的组件库依旧是element-plus&#xff0c;搭配vue-i1…

09-排序1 排序(C)

这一节&#xff0c;测试各类排序算法的运行速度&#xff08;没有基数排序&#xff08;桶&#xff09; 其实在实际学习中&#xff0c;还是有意义的 给定 n 个&#xff08;长整型范围内的&#xff09;整数&#xff0c;要求输出从小到大排序后的结果。 本题旨在测试各种不同的排序…