【MVDiffusion】完美复刻场景,可多视图设计的生成式模型

news2024/12/29 8:45:30

文章目录

  • MVDiffusion
    • 1. 自回归 生成 全景图
      • 1.1 错误积累
      • 1.2 角度变换大
    • 2. 模型结构
      • 2.1 多视图潜在扩散模型(mutil-view LDM)
        • 2.1.1 Text-conditioned generation model
        • 2.1.2 Image&text-conditioned generation model
        • 2.1.3 额外的卷积层
      • 2.2 Correspondence-aware Attention(CAA)
    • 3. Train 阶段
      • 3.1 全景生成任务
      • 3.2 多视图图像生成任务
    • 4. 应用场景
    • 5. 代码部分

MVDiffusion

论文链接:https://arxiv.org/pdf/2307.01097.pdf

项目地址:https://huggingface.co/spaces/tangshitao/MVDiffusion

代码仓库:https://github.com/Tangshitao/MVDiffusion

MVDiffusion的目标是产生内容高度一致且全局语义统一的多视角图片,其方法的核心思想是同步去噪(simultaneous denoising)和基于图片之间对应关系的全局意识(global awareness)。

1. 自回归 生成 全景图

自回归生成过程时,可以将其类比为一种逐步构建图像的方式。其中第n个图像的生成取决于第n-1图像,通过图像变形和修复技术来实现。这种自回归方法会导致 错误的累积,并且 不能处理循环闭合

1.1 错误积累

构建一张全景图:

  1. 通过文本描述生成视图A
  2. 基于视图A的内容进行变形和修复,进而生成视图B
  3. 参照前一张图片,持续过程2

例如,在视图A中有一张桌子;生成B时,可能会将桌子的一部分移到另一个位置,以模拟从不同角度看到的效果。这个过程会一直持续,生成视图C、D、E,以及其他可能的视图,每次都依赖于前一个视图。如果在视图A中对桌子的变形不准确,那么这个错误将在生成视图B、C、D等时逐渐累积,导致最终的多视图图像可能看起来不真实或不连贯。这就是所谓的"错误累积"问题。

1.2 角度变换大

视图之间的角度变化很大,比如从一个房间的一侧到另一侧,那么自回归方法可能会遇到困难。

因为它依赖于前一个视图,要正确地生成从一个角度到另一个角度的视图,需要处理复杂的角度变化和背景内容的改变,这可能会导致生成的结果不准确。

2. 模型结构

全景图像是由8张重叠的透视图像组成的。每一对相邻的图像之间,像素之间的对应关系是通过一个3x3的单应矩阵来确定的。在全景图像中,不同的透视图像需要通过这个矩阵来进行像素级的对应,以便它们能够正确地拼接在一起,形成一个连续的全景图。

在文中,水平视场角为90度,这意味着每两张连续的图像之间有45度的重叠。这种设置通常用于全景图像拼接,其中每张图像捕获了一个广阔的水平视野,并且为了确保图像之间的连续性,它们有一定的重叠部分,以便在拼接时能够正确对齐。

在这里插入图片描述

  1. 多视图图像的潜变量同时(即并行)通过共享的UNet进行去噪。
  2. 将新的对应感知注意(CAA)块插入到UNet中,学习跨视图几何一致性,实现全局感知。

2.1 多视图潜在扩散模型(mutil-view LDM)

MVDiffusion设计了两种模型变体。文本条件的生成模型将文本提示作为条件;图像和文本条件的生成模型将文本提示以及一个或两个附加源图像作为条件。

全景图生成

根据用户输入的类型,将只使用两个模型中的一个。

  • 如果只提供文本,文本条件模型将并行生成八个多视图
  • 如果提供了附加的源视图,则文本和图像条件模型可以考虑图像和文本条件,从而生成七个多视图

多视图深度到图像生成
文本条件生成模型首先 将稀疏的深度图集子采样为“关键帧” 并生成纹理图像。然后,图像和文本条件模型 就像 插值模型一样,它以两个连续的关键帧图像作为附加条件,生成中间的图像。这些生成的图像应该与深度图和两个条件图像一致,同时还与文本提示对齐。

2.1.1 Text-conditioned generation model

对于全景图像生成任务,图像分辨率为512×512,而对于多视图深度到图像的任务,图像分辨率为192×256。

全景图生成

多个图像的潜在表示(latent)使用独立的高斯噪声进行初始化。在每个去噪步骤中,这些带噪声的潜在表示被送入多分支的UNet,以同时对所有多视图的潜在表示进行去噪。
生成全景图像需要同时合成多个视图,以覆盖整个全景。这可能需要更高的图像分辨率512 ×512,以确保生成的图像在细节上足够清晰,并且不会出现明显的像素化。

CAA块的使用:
SD UNet包括多个下采样和上采样块,每个块都伴随着一个CAA块,用于强化多视图一致性。CAA块的作用是确保生成的多视图图像在外观和几何上保持一致。

CAA块初始化:
将CAA块的最终线性层初始化为零,这是根据ControlNet 的建议,以确保修改不会破坏SD模型的原始功能。

多视图深度到图像生成

从深度信息生成多个视图,通常用于文本生成多视图图像。相对于全景图像,这个任务可能对图像分辨率的要求较低,因为生成的图像通常不需要涵盖整个全景。

2.1.2 Image&text-conditioned generation model

全景图生成

在这个任务中,图像&文本条件生成模型的目标是基于单个透视图像(一个条件图像)和每个视角的文本提示生成完整的360度全景视图(七个目标图像)。

在生成全景图像时,模型需要使用一个条件图像作为参考,以便在生成新视角的图像时保留一些内容的一致性。
为了做到这一点,将一个由1组成的掩码连接到条件图像的通道中,这样掩码的像素值就变成了1,而条件图像的原始像素值则保持不变 (改变阿尔法通道)。这个操作将条件图像与生成的图像的一些像素对应起来,以确保在新生成的图像中保留了与条件图像相同的内容。

在目标图像的UNet分支中,我们将一个由零值像素组成的黑色图像与一个由零组成的掩码连接在一起作为输入,因此需要修复模型基于文本条件和与条件图像的对应关系生成全新的图像。

多视图深度到图像生成

这个任务中的目标是在文本条件生成模型生成的关键帧图像之间进行稠密化,并且附加条件是一对关键帧图像。由于SD的图像修复模型不支持深度条件,因此我们必须在这里采用不同的方法。

受到VideoLDM的启发,我们重用了深度条件UNet,该UNet带有CAA块,来自文本条件生成模型,已经训练用于生成给定深度图和相机姿态的稀疏关键帧图像。额外的卷积层被插入以注入两个条件图像的信息。

2.1.3 额外的卷积层

条件图像分支(两个条件图像)
首先,将条件图像本身与一个由1组成的掩码(总共4个通道)连接起来。然后,使用零卷积操作来降采样连接后的图像,使其与UNet块的特征图大小相匹配。降采样后的条件图像与UNet块的输入相加。这个过程的目的是训练模型,当掩码为1时,分支可以重新生成条件图像;而当掩码为0时,分支可以生成两者之间的目标图像。这种方法通过卷积层的操作,使模型能够根据掩码的不同值来执行不同的生成任务。

目标图像分支
对于目标图像分支,将一个由零值像素组成的黑色图像与一个由零组成的掩码连接在一起,然后使用相同的零卷积操作来降采样图像,使其与UNet块的特征图大小相匹配。降采样后的条件图像与UNet块的输入相加。这个过程的目的与条件图像分支类似,根据掩码的值来执行不同的生成任务,其中掩码为1时生成条件图像,为0时生成目标图像。

零卷积操作通常用于降采样或上采样中的填充操作,它的作用是将输入的特征图的分辨率减小到与UNet块期望的特征图大小相匹配。

2.2 Correspondence-aware Attention(CAA)

(CAA)机制是 MVDiffusion 在多视图特征图之间强制对应约束的关键。

在这里插入图片描述
相关原理这里就不过多解释了,直接看原文吧。这里举个简单易懂的例子吧。

假设正在生成一个全景图像,其中包括 8 个透视图像。对于 CAA,我们关注其中一个像素位置( S S S)在源特征图中,现在我们想要计算这个像素与目标特征图(8 个透视图像的其中一个)之间的注意力。

  1. 首先,我们选择一个目标特征图( F l F^l Fl),然后选择目标图像中的一个像素位置( t l t^l tl
  2. 在这个位置附近形成一个局部邻域,假设 k = 3 k=3 k=3 考虑以目标像素 t l t^l tl 为中心的 3x3 邻域
  3. 对于源特征图中的像素位置( s s s)计算一个消息( m m m),该消息利用源特征图中的信息与目标特征图中的 t l t^l tl以及其周围的像素进行交互
  4. 消息 m 帮助我们确定在生成目标图像的过程中,如何受到源图像中相应位置的影响。

3. Train 阶段

在这里插入图片描述
ϵ θ i {\epsilon_\theta^i} ϵθi 表示第 i 个图像的估计噪声。 Z t i Z_t^i Zti是第 i 张图像的噪声潜在值。由于训练数据集远小于 SD 模型的预训练数据集,因此尽可能地冻结训练中的原始 SD 参数以保留原始泛化能力。

3.1 全景生成任务

只训练插入的 CAA 块。

3.2 多视图图像生成任务

(与原始 SD 的 512 × 512 相比,这部分任务的分辨率为192 × 256),SD 模型必须进行微调。

在第一阶段,我们使用所有ScanNet数据微调SD UNet模型,以调整分辨率。此阶段是没有 CAA 块的单视图训练(等式 1)。
在第二阶段,我们将CAA块和图像条件块集成到UNet中,只训练这些添加的参数。

4. 应用场景

全景生成 and 多角度深度图像生成

在使用过程中,推荐使用ChatGPT进行强化https://huggingface.co/spaces/tangshitao/MVDiffusion。

Text:

This bedroom is a harmonious fusion of classic and contemporary elements. It boasts a spacious reclaimed wood bed frame with a plush upholstered headboard, creating a cozy yet stylish centerpiece. On one side of the bed, there's a sleek modern nightstand with a minimalist lamp, while on the other side, a vintage-inspired dresser adds a touch of timeless charm. The color palette is soothing, with soft neutral tones that promote relaxation. Sunlight filters in through sheer curtains, casting a gentle glow on the room. This bedroom offers a perfect balance between comfort and elegance, making it an inviting space for rest and relaxation.

在这里插入图片描述

5. 代码部分

由于dropbox官网的预训练权重确实比较难下载,我将把权重放至网盘链接,稍后给出。

亮点工作的CAA机制代码详解后期更新……

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

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

相关文章

使用 TensorFlow 创建 DenseNet 121

一、说明 本篇示意DenseNet如何在tensorflow上实现,DenseNet与ResNet有类似的地方,都有层与层的“短路”方式,但两者对层的短路后处理有所不同,本文遵照原始论文的技术路线,完整复原了DenseNet的全部网络。 图1&#x…

评价指标篇——IOU(交并比)

什么是IoU(Intersection over Union) IoU是一种测量在特定数据集中检测相应物体准确度的一个标准。 即是产生的候选框(candidate bound)与原标记框(ground truth bound)的交叠率 即它们的交集与并集的比值。最理想情况是完全重叠…

CVE-2023-5129:libwebp开源库10分漏洞

谷歌为libwebp漏洞分配新的CVE编号,CVSS评分10分。 Libwebp是一个用于处理WebP格式图像编解码的开源库。9月6日,苹果公司安全工程和架构(SEAR)部门和加拿大多伦多大学研究人员在libwebp库中发现了一个0 day漏洞,随后&…

Linux SSH连接远程服务器(免密登录、scp和sftp传输文件)

1 SSH简介 SSH(Secure Shell,安全外壳)是一种网络安全协议,通过加密和认证机制实现安全的访问和文件传输等业务。传统远程登录和文件传输方式,例如Telnet、FTP,使用明文传输数据,存在很多的安全…

水果种植与果园监管“智慧化”,AI技术打造智慧果园视频综合解决方案

一、方案背景 我国是水果生产大国,果园种植面积大、产量高。由于果园的位置大都相对偏远、面积较大,值守的工作人员无法顾及到园区每个角落,因此人为偷盗、野生生物偷吃等事件时有发生,并且受极端天气如狂风、雷暴、骤雨等影响&a…

NOSQL Redis 数据持久化 RDB、AOF(二) 恢复

redis 执行flushall 或 flushdb 也会产生dump.rdb文件,但里面是空的。 注意:千万执行,不然rdb文件会被覆盖的。 dump.rdb 文件如何恢复数据 讲备份文件 dump.rdb 移动到redis安装目录并启动服务即可。 dump.rdb 自动触发 和手动触发 自…

Android 更新图标

什么是Android Multidex热更新 • Worktile社区 在不重启app的情况下热更新 &#xff0c;在所有新文件下载完成后&#xff0c;提示用户&#xff0c;是否重启 在不频繁新增图标的情况下可以使用 <adaptive-icon>在AndroidManifest.xml中设置app别名&#xff0c;以实现…

PCB走线的传输延时有多少

信号在PCB上的传输速度虽然很快&#xff0c;但也是存在延时的&#xff0c;一般经验值是6mil/ps。 也就是在PCB上&#xff0c;当信号线走线长度为6mil的时候&#xff0c;信号从驱动端到达接收端需要经过1ps。 信号在PCB上的传输速率&#xff1a; 其中C为信号在真空中的传播速率…

2023年【煤炭生产经营单位(安全生产管理人员)】证考试及煤炭生产经营单位(安全生产管理人员)模拟考试题库

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 煤炭生产经营单位&#xff08;安全生产管理人员&#xff09;证考试是安全生产模拟考试一点通生成的&#xff0c;煤炭生产经营单位&#xff08;安全生产管理人员&#xff09;证模拟考试题库是根据煤炭生产经营单位&…

记一次问题排查

1785年&#xff0c;卡文迪许在实验中发现&#xff0c;把不含水蒸气、二氧化碳的空气除去氧气和氮气后&#xff0c;仍有很少量的残余气体存在。这种现象在当时并没有引起化学家的重视。 一百多年后&#xff0c;英国物理学家瑞利测定氮气的密度时&#xff0c;发现从空气里分离出来…

练[BJDCTF2020]EasySearch

[BJDCTF2020]EasySearch 文章目录 [BJDCTF2020]EasySearch掌握知识解题思路关键paylaod 掌握知识 ​ 目录扫描&#xff0c;index.php.swp文件泄露&#xff0c;代码审计&#xff0c;MD5区块爆破&#xff0c;请求响应包的隐藏信息&#xff0c;.shtml文件RCE漏洞利用 解题思路 …

cpp primer plus笔记01-注意事项

cpp尽量以int main()写函数头而不是以main()或者int main(void)或者void main()写。 cpp尽量上图用第4行的注释而不是用第5行注释。 尽量不要引用命名空间比如:using namespace std; 函数体内引用的命名空间会随着函数生命周期结束而失效&#xff0c;放置在全局引用的命名空…

【LeetCode: 901. 股票价格跨度 | 单调栈】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

【代码随想录】LC 27. 移除元素

文章目录 前言一、题目1、原题链接2、题目描述 二、解题报告1、思路分析2、时间复杂度3、代码详解 三、知识风暴 前言 本专栏文章为《代码随想录》书籍的刷题题解以及读书笔记&#xff0c;如有侵权&#xff0c;立即删除。 一、题目 1、原题链接 27. 移除元素 2、题目描述 二、…

文创行业如何利用软文出圈?媒介盒子告诉你

经济快速发展与社会进步&#xff0c;带来的是人们消费观念的转型&#xff0c;人们的精神需求与文化自信不断增强&#xff0c;随着文化产业和旅游业的不断升级&#xff0c;文创产品凭借独特的概念、创新的形象&#xff0c;吸引许多消费者。那么新时代的文创行业应该如何强势出圈…

华为数通方向HCIP-DataCom H12-831题库(单选题:201-220)

第201题 DHCP Snooping是一种DHCP安全特性,这项技术可以防御以下哪些攻击? A、DHCP Server仿冒者攻击 B、针对DHCP客户端的畸形报文泛洪攻击 C、仿冒DHCP报文攻击 D、DHCP Server的拒绝服务攻击 答案:ABD 解析: 第202题 两台PE之间通过MP-BGP传播VPNv4路由,以下哪些场景…

csa从初阶到大牛(网络配置)

添加新的网络连接ens170&#xff0c;并设置静态IP地址 sudo vi /etc/sysconfig/network-scripts/ifcfg-ens170TYPEEthernet BOOTPROTOstatic DEFROUTEyes NAMEens170 DEVICEens170 ONBOOTyes IPADDR192.168.1.100 NETMASK255.255.255.02.向ens170网络连接添加2个ip地址 sudo …

2023年中国铁路通信系统发展历程、市场规模及行业发展趋势分析[图]

铁路通信技术是铁路行业发展的重要推动力&#xff0c;它不仅可以提高客运、货运、维修、安全等业务的运行效率&#xff0c;还能够有效提高铁路行业的客户服务水平&#xff0c;实现质量和效率的双重提升。我国通信技术在铁路领域的应用经历了三个阶段&#xff0c;分别是模拟通信…

VulnHub JANGOW

提示&#xff08;主机ip分配问题&#xff09; 因为直接在VulnHub上下载的盒子&#xff0c;在VMware上打开&#xff0c;默认是不分配主机的 所以我们可以在VirtualBox上打开 一、信息收集 发现开放了21和80端口&#xff0c;查看一下80端口 80端口&#xff1a; 检查页面后发现…

小白必看!上位机控制单片机原理

嗨&#xff0c;大家好&#xff01;今天&#xff0c;我们要探讨一个有趣的话题——"以上位机控制单片机"。不要担心&#xff0c;我们会用最简单的方式来解释这个概念。 首先&#xff0c;你可以把以上位机想象成一台超级聪明的电脑&#xff0c;就像你用来上网、玩游戏、…