WonderWorld: Interactive 3D Scene Generation from a Single Image 论文解读

目录

一、概述

二、相关工作

1、新视图生成

2、单视图3D场景生成

3、视频生成

4、快速的3D场景表示

三、WonderWorld

1、FLAGS表示

2、引导深度扩散模块

3、单视角层次生成

4、基于几何的初始化

surfel表示

5、阶段一——生成3D场景部分

6、阶段二——用户交互控制部分

7、优化过程

四、实验

五、Limitation


一、概述

        该论文提出WonderWorld,用于交互式3D场景生成,通过单个图像生成广阔的沉浸式3D场景,实现用户交互地指定场景内容和布局,并实现低延迟创建场景。WonderWorld在A6000 上不到10秒就可以生成多样的3D场景,也为用户驱动内容创建和探索提供了新的潜力。

        相比于以往的3D场景生成基于离线的方式,需要大量的时间,适用于小型场景或视频,该方法考虑生成场景更大、更多样,更受到用户自由探索的交互式场景。

        对于阻碍交互性场景问题最大的问题就是生成速度慢,归根结底由于场景生成的方法步骤存在问题,通过单视图逐渐生成密集的多视图,在通过深度图进行对准,大量时间进行优化几何形状和外观,最终的场景边界处会出现失真,空白,未对准的情况。

        该论文:

(1)提出了WonderWorld,第一个支持交互式3D场景生成方法,并可以低延迟交互创建不同的、连接场景。

(2)提出快速场景生成FLAGS(快速分层高斯曲面表示),并且实现单个图像生成3D场景,解决速度问题。

(3)利用引导深度扩散模型来改善新生成场景与现有场景之间的几何对齐问题。

二、相关工作

1、新视图生成

        新视图生成上近期很多都是在不超出输入图像范围内进行静态场景的生成,比如利用深度图,辐射场,多视图,点云特征等等,而该论文提到使用FLAGS表示来结合深度图和辐射场,实现生成不局限于单个图像上的生成的多场景连接。

        近期工作还有做持续视图生成来实现类似的效果。

        持续视图生成:给定一个场景的单个输入图像,合成一组对应于所述场景任意长度的,由用户控制3D路径(轨迹)的逼真输出视图。如Infinite Images(最早的通过图片拼接的方法),Infinite Nature(通过图像生成,貌似是用的GAN)。后续考虑引入LLM和Diffusion来优化图像生成质量和实现用户交互。如SceneScape(通过简单的Prompt优化),WonderJourney(通过LLM来生成不同内容和生成点云表示)。

2、单视图3D场景生成

        在单视图3D场景生成中,大量的工作局限于室内环境,或者城市街区。如Text2NeRF,LucidDreamer,CAT3D生成多视角图像,RealmDreamer,DreamScene通过蒸馏多视角图像和深度图来生成3D场景。

        对于做场景生成的工作,使用离线方式来生成固定的场景,即不能用于用户交互,生成速度也慢,比如Genvs,Zeronvs等(主要是用利用3D特征和隐式辐射场表示,实现稀疏视角下的场景生成)。

3、视频生成

        近期工作考虑引入场景生成器或者引入相机参数的控制,允许用户在场景中“移动”,但不能保证3D一致性,如Stable Video Diffusion。

4、快速的3D场景表示

        主要依赖于3DGS和NeRF的场景表示,NeRF的包括InstantNGP,Plenoxels,3DGS相关包括3DGS,InstantSplat等等,该论文考虑使用surfel(曲面元素)并通过基于几何的初始化来促进场景表示优化。

三、WonderWorld

        WonderWorld分为两个部分:生成3D场景部分,系统从输入图像生成一个初始3D场景FLAGS表示。用户交互控制部分,用户可以通过移动相机视角来控制新场景的生成位置,通过文字提示控制新场景的内容,新生成场景作为现有场景的延伸,也可以作为独立的新场景。

1、FLAGS表示

        FLAGS(Fast LAyered Gaussian Surfels,快速分层高斯曲面),是一种3D场景表示方式,是3DGS的变体之一,每个高斯核的z轴被压缩到很小的数值,并且去除视角相关的颜色信息,而这种方式的渲染仍然使用3DGS相同的可微分渲染(包括3D到2D的投射,alpha渲染)

        每一个场景\varepsilon是用前景、背景、天空三个辐射场合并而来\varepsilon =\left \{ L_{fg},L_{bg},L_{sky} \right \},其中每一层都包含一系列参数。如L_{fg}=\left \{ p_i,q_i,s_i,o_i,c_i \right \}^{N_{fg}}_{i=1},其中三维空间位置p_i,旋转四元数q_i,x轴和y轴的放缩系数s_i=[s_{i,x},s_{i,y}],不透明度o_i,视角独立的颜色信息c_i

        另外对于协方差矩阵计算,也要在z轴上进行压缩:\Sigma=Qdiag(s_x^2,s_y^2,\epsilon ^2)Q^T,其中\epsilon表示远小于另外两个放缩系数的平方最小值的一个小数,防止最终无法反向传递权重。

2、引导深度扩散模块

        生成连续3D场景中,由于估计深度与现有几何之间存在不一致性而导致几何失真,所以引入了引导深度扩散的方式。该方法依赖于上一个场景已知的的深度和掩码来推断新的场景的深度。

        目的是:由于生成新场景一定与原场景(或者说原单个输入图像)之间一定存在重叠部分,我们依靠上一个场景生成的深度图在新场景投影下重叠的部分的深度图,作为新场景深度图生成的引导图,来保证新场景与原场景之间重叠部分的深度方向的一致性所以这也进一步解释了为什么FLAGS表示中拍扁z轴,也就是其他场景的深度,都依赖于深度扩散得到的深度,而不是RGB图像渲染出的深度。

        具体来说,首先输入RGB图像,并依赖外推场景的深度图作为引导,来估计带外场景的深度图。在生成3D场景部分和用户交互控制部分两个部分用到了不同的深度图作为引导,一个是地面深度图,相当于除去地面以外部分作为外场景,一个是第一阶段的视角深度图,相当于扩展出的图像作为外场景。

        对于扩散模型仍然使用去噪得U-Net模型,将原图I_{scene}作为输入,深度图d_t作为补充,时间步t下解码出预期噪声,但在该方法中引入了一个正则项s_tg_t来保证平滑的几何一致性。其中s_t是正则化权重,g_t是每一轮预测几何特征与引导几何特征的2范数的梯度值,或者说是t-1步的预测深度图D_{t-1}与原深度图掩码M_{guide}“引导图”)与原深度图D_{guide}与原深度图掩码M_{guide}的2范数对t步预测深度图d_t的梯度。(t-1步的预测深度图是先由已知深度图编码t步,得到含有图像信息的噪声图,之后解码1步,或者若干步得到的噪声,经过与噪声图相减得到的t-1步预测深度图)

3、单视角层次生成

        通过单视角图像I_{scene}来生成背景(F)、前景(B)、天空(S)三个视角下的FLAGS三维表示。这个过程可以用数学语言描述如下,其中\mathcal{J,U}分别代表,用户提示(如garden)和场景描述(如 You are an intelligent scene generator. Imagine you are wandering through a scene or a sequence of scenes ...)

                                                \mathcal{T}=\left \{ \mathcal{F,B,S} \right \}=g_{LLM}(\mathcal{J,U})

        接下来对于我们要生成的背景,前景,天空的RGB图像分别定义为I_{fg},I_{bg},I_{sky}

前景RGB图生成

        首先,我们能够通过预训练的分割网络得到每一个对象的掩码O_k,根据给定的预测深度图D,可以计算得到一个显式深度边缘掩码E,深度边缘掩码通过计算预测深度图各像素的梯度,如果大于阈值则使得该像素的掩码为1。

                        ​​​​​​​        ​​​​​​​        ​​​​​​​        E_{h,w}=1 \quad if||\nabla D_{h,w} ||_2 >T

        之后,我们计算前景掩码,通过图像中各对象与各对象显式深度边缘掩码的并集得到。

                                                M_fg=\bigcup_k O_k:||O_k \bigodot E||>0

        前景RGB图像通过前景掩码与原场景RGB图像点积得到。

                ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        I_{fg}=I_{scene} \bigodot M_{fg}

背景RGB图生成

        首先,通过预训练分割网络得到天空的掩码M_{vis}

        之后,计算背景掩码,通过1-天空的掩码得到。M_{bg}=1-M_{vis}

        最后,计算背景RGB图像,通过背景掩码M_{bg}和生成被前景遮挡的背景区域点积得到。        

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        I_{bg}=M_{bg} \bigodot I_{inpaint}(I_{scene},M_{fg},\left \{ B,S \right \})

        其中,I_{inpaint}是一个依靠文本引导的扩散模型,用于生成被前景层遮挡的背景和天空区域。

天空RGB图生成

        计算天空RGB图生成,直接生成被前景遮挡的天空区域得到。

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        I_{sky}=I_{inpaint}(I_{scene},1-M_{vis},\left \{ "sky",S \right \})

4、基于几何的初始化

        基于几何的初始化围绕两个关键设计步骤,像素对齐生成和surfel表示。

        初始化的目的达到了最小化渲染时的高频伪影和过度重叠(或者说无缝覆盖),另外加快了FLAGS表示的优化过程,防止从头开始优化,大大加快生成速度。

像素对齐生成

        第一个是像素对齐生成,保证像素级几何对齐。

        首先给定前景层RGB图像I_{fg},我们生成前景层场景L_{fg}

        对于每一个surfel应该对应一个有效像素,所以数量应该一致,N_{fg}=||M_{fg}||_F

        surfel颜色初始化为对应像素的RGB值。

        surfel的位置通过像素的坐标计算得到p=R^{-1}(d \cdot K^{-1}[u,v,1]^T)-T

surfel表示

        surfel表示部分主要针对于方向和尺度来进行初始化

        对于方向由,估计像素法线n_c来初始化旋转矩阵Q=[Q_x,Q_y,Q_z],计算如下:

        其中u=[0,1,0]^T,n=R^{-1}n_{cam} ,n_{cam}是相机视角下的估计法线,n世界视角下的估计像素法线

        对于尺度,考虑根据奈奎斯特定理中最大信号频率是\frac{1}{2T_N},那么将surfel的高斯核带宽的倒数设为信号频率\frac{1}{2ks_x},尺度初始化为s_x=d/(kf_xcos \theta_x)s_y=d/(kf_ycos \theta_y),其中d是像素深度,f是相机焦距,\theta是surfel法线n与图像平面法线[0,0,-1]^T夹角,超参数k=\sqrt{2}(相机坐标系下,图像平面法向量指向相机负z轴方向)

        对于不透明度,初始化o=0.1

        

5、阶段一——生成3D场景部分

        首先,输入单个图像生成地面深度图(应该是先分割地面,然后获得深度图)

        之后利用引导深度扩散方法,输入地面深度图,并基于原图的引导来生成该图像的完成深度图。

        接下来输入深度图和原图像到单视角层次生成模块,并依赖于VLM生成的前景,背景,天空的提示词来生成三张不同层的RGB图像,并依赖于这三张RGB图像来生成三维的FLAGS表示,也就是进行场景重建,得到原视角三维场景。

6、阶段二——用户交互控制部分

        首先通过用户移动相机位姿,得到与上一个场景重叠的图片,保证上一个场景的信息保留,其他用灰度填充的图像记作Rendered。

        之后用LLM输入用户的Prompt,并且通过扩散得到得到新视角下的图像(Text-guided outpainting)。

        接下来再依赖原来的Rendered图像生成深度图Rendered depth。再输入新视角图像到引导深度扩散模块,并依照Rendered depth图进行引导生成引导深度,也就是预测深度图。 

        最后与阶段一相同,进行单视角层次生成模块和FLAGS的优化(生成新视角FLAGS,改进原来场景FLAGS,计算损失)。

7、优化过程

        首先优化天空层L_{sky},用光度掩码损失L=0.8L_1+0.2L_{D-SSIM}计算,对比原图天空层I_{sky}和生成的天空层L_{sky}

        之后冻结天空层,优化背景层,对比背景层的L_{bg}和背景与天空组成的图像M_{bg} \bigodot I_{bg}+M_{vis} \bigodot I_{sky}进行优化。

        最后冻结背景层和天空层,对前景层L_{fg}优化。

四、实验

        放一个backbone之间的对比吧

五、Limitation

        局限性提到,一是相机视角基本在原视角方向的一个特定范围,不能看到场景的后面。二是对于细小的物体容易产生空洞。 

参考项目:WonderWorld

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

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

相关文章

kkfileview4.2.1 LibreOffice_7.1.4_Linux_x86-64_rpm.tar.gz

问题 java.lang.IllegalStateException: officeHome doesnt exist or is not a directory: optlibreoffice7.1 安装 kkfileview4.2.1 LibreOffice_7.1.4_Linux_x86-64_rpm.tar.gz 测试 全过程脚本 [zengwenfenglocalhost Desktop]$ pwd /home/zengwenfeng/Desktop [zengwe…

可编辑71页PPT | 企业架构及典型设计方案

荐言分享:企业架构(Enterprise Architecture, EA)是战略与技术之间的桥梁,旨在确保企业的信息系统、业务流程、组织结构和技术基础设施能够协同工作,以支持企业的整体战略目标。它通过定义一套标准化的框架、原则、模型…

python代码获取zabbix上机器磁盘使用率

1.需要先给机器打上标记os_type: Linux或者os_type: Windows 2.代码请求获取数据: 先装一下相关的数据包 pip install pyzabbix from pyzabbix import ZabbixAPI import requests import urllib3 import concurrent.futuresclass ZabbixInfo():def __init__(self…

一个完整的crm系统都应该具备哪些功能?CRM系统功能盘点

前段时间我们去拜访一位企业老板,正好他们在开会,团队正在讨论如何与一位潜在的大客户达成交易。 客户对产品表现出浓厚的兴趣,也提出了一些具体的问题,例如上一次交易的详细信息、服务响应时间以及可能的折扣方案,但…

导师双选系统开发:Spring Boot技术详解

第一章 绪论 1.1 选题背景 如今的信息时代,对信息的共享性,信息的流通性有着较高要求,尽管身边每时每刻都在产生大量信息,这些信息也都会在短时间内得到处理,并迅速传播。因为很多时候,管理层决策需要大量信…

CTF顶级工具与资源

《Web安全》http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247484238&idx1&snca66551c31e37b8d726f151265fc9211&chksmc0e47a12f793f3049fefde6e9ebe9ec4e2c7626b8594511bd314783719c216bd9929962a71e6&scene21#wechat_redirect 《网安面试指南》h…

数列分块入门

本期是数列分块入门。其中的大部分题目来自hzwer在LOJ上提供的数列分块入门系列。 Blog:here (其实是对之前分块的 blog 的整理补充) sto hzwer orz %%% [转载] ---------------------------------------------------------------------------------…

模型自动绑骨,在线生成动画,神奇的网站《Mixamo》

英文名mixamo 网站地址:Mixamohttps://www.mixamo.com/#/首先进入需要注册,国内的手机号就可以,但是会有一些慢,多试几次 1、进入界面如下 2、载入自己的模型 2、绑定骨骼 拖动这几个有颜色的圈圈分别对应右图位置,点…

2024 CSS保姆级教程四

CSS中的动画 CSS动画(CSS Animations)是为层叠样式表建议的允许可扩展标记语言(XML)元素使用CSS的动画的模块​ 即指元素从一种样式逐渐过渡为另一种样式的过程​ 常见的动画效果有很多,如平移、旋转、缩放等等&#…

Docker安装anythingllm

拉镜像 docker pull mintplexlabs/anythingllm 启动 anythingllm docker run -d --name anythingllm --add-hosthost.docker.internal:host-gateway --env STORAGE_DIR/app/server/storage --health-cmd "/bin/bash/usr/local/bin/docker-healthcheck.sh || exit 1"…

格行:从新晋网红到国货之光,它究竟做对了什么?

作为一家迅速崛起的新消费品牌,近两年来,格行饱受质疑。 无论是商家还是消费者,都有人对其爱之恨之,喜欢它的人,认为它是正义的化身,价格的屠夫,国货的骄傲,原本需要花几百才能买到…

小菜家教平台(二):基于SpringBoot+Vue打造一站式学习管理系统

目录 前言 今日进度 详细过程 一、数据库重构 二、编写登录接口 相关知识点 前言 昨天我们重启了小菜家教平台的开发,创建了新项目并初步进行了配置,今天我们继续。大家要是有需要源码的话可以在评论区跟我说,博客中就不添加源码了~ 今…

数学期望和联合概率密度

数学期望的定义 数学期望是描述随机变量平均趋势的一个重要统计量。根据随机变量的类型(离散或连续),数学期望的定义有所不同。 离散型随机变量的数学期望: 若离散型随机变量 X X X取值为 x 1 , x 2 , … , x n , … x_1,x_2,\do…

MRCTF2020:你传你ma呢

文件上传题先判断黑白名单过滤,先传个最简单的木马 这里上传不了php文件,猜测可能是对php文件进行了过滤,将文件改为任意后缀这里改为.abc 还是上传不成功,猜测可能对MIME也做了过滤,将Content-Type更改为image/jpeg再…

Harmony项目基础

项目基础 开发环境 DevEco Stuio下载和安装 DevEco Studio下载 下载链接:https://developer.huawei.com/consumer/cn/deveco-studio/ 安装IDE 直接运行安装文件即可 配置SDK及工具链 DevEco Studio 提供 SDK Manager 统一管理 SDK 及工具组件,包括如下组件包&…

《使用Gin框架构建分布式应用》阅读笔记:p307-p392

《用Gin框架构建分布式应用》学习第16天,p307-p392总结,总86页。 一、技术总结 1.AWS chapter 08讲使用AWS进行部署,可以根据需要选择是否阅读。因为使用到的概率很小,且还要绑卡,本人选择跳过。 2.CI/CD (1)什么…

新一代跟踪器StrongSORT: Make DeepSORT Great Again论文解析—让 DeepSORT 再次伟大

新一代跟踪器StrongSORT: Make DeepSORT Great Again论文解析—让 DeepSORT 再次伟大 时间:2023年 机构:北京邮电大学 发表在:IEEE TRANSACTIONS ON MULTIMEDIA, VOL. 25, 2023 代码源码地址: pytorch版本:https://github.com/dyh…

windows下安装jdk并配置环境

【1】安装jdk 这里建议傻瓜式安装,不要自定义路径,直接下一步下一步。 在Windows系统中安装JDK并设置环境变量(包括JAVA_HOME和CLASSPATH)是一个常见的任务。 1. 下载并安装JDK 访问Oracle官方网站或其他可信来源下载JDK安装包…

云安全真知实践 国内头部能源企业全面灵活云安全方案大公开

能源与安全,是两个紧密相连的齿轮,驱动着当今社会的运转与发展。能源是动力源泉,而安全则是守护这一动力的坚实支撑,保障着能源系统的运作与敏感数据的安全。 亚信安全一直以来为国内能源行业提供着安全保障,从石油、…

Photoshop 2025重磅来袭 :全新功能炫耀安装!Adobe全家桶

2024年10月,备受期待的Adobe Photoshop 2025正式版如约而至。每年的十月份,Adobe都会带来其软件的重要更新,而今年的Photoshop 2025则在改进和新功能方面做出了重磅升级,让创意工作者和设计师们倍感振奋。 新界面与核心功能 Ph…