Motion Guidance: 扩散模型实现图像精确编辑的创新方法

在深度学习领域,扩散模型(diffusion models)因其能够根据文本描述生成高质量图像而备受关注。然而,这些模型在精确编辑图像中对象的布局、位置、姿态和形状方面仍存在挑战。本文提出了一种名为“运动引导”(motion guidance)的零样本技术,允许用户指定密集的复杂运动场,以指示图像中每个像素的移动方向。通过结合现成的光流网络,运动引导通过梯度引导扩散采样过程,实现对图像的精确编辑。

运动引导的概念
给定一个源图像和一个目标运动场,生成一个相对于原始图像具有期望运动的新图像。这些图像展示了零样本技术的应用,通过光流网络实现引导,并适用于真实和合成图像

方法

在扩散模型中引入引导技术是为了在图像生成过程中实现更精确的控制。该技术的原理为通过向去噪估计中添加来自损失函数的梯度信息,来微调生成的样本。分类器引导是这种方法的一个实例,它利用分类器的梯度来指导样本生成,使其更符合特定的分类目标。

为了增强引导信号,研究者们在损失函数中加入了额外的项,这允许在去噪过程中考虑更多的条件信息。损失函数中不同项的权重可以动态调整,以优化生成样本的质量。这种方法的一个关键优势是它的通用性,可以适用于多种类型的扩散模型,从而实现对图像的精细控制。

递归去噪是提高引导效率的策略之一,通过在去噪的每一步重复应用引导,有助于提高样本的质量和引导的稳定性。然而,引导技术也带来了一些挑战,包括优化过程中可能的不稳定性,以及对损失函数设计和权重选择的敏感性。尽管存在这些挑战,引导技术为图像编辑和生成提供了强大的工具,尤其是在需要精确控制图像内容时。

研究者们提出了一种新颖的方法,允许用户通过指定复杂的运动场来精确编辑图像中对象的布局、位置、姿态和形状。这种方法利用了现成的光流网络来引导扩散模型的采样过程,实现了对图像的精细控制。

研究者们设计了一个指导损失函数,该函数基于用户指定的运动场来衡量生成图像与期望运动的一致性。通过最小化这个损失函数,可以引导图像编辑过程,使得生成的图像在视觉上与源图像相似,同时满足特定的运动要求。损失函数包括两部分:一部分是流损失,用于确保图像中的像素按照指定的运动场移动;另一部分是颜色损失,用于保持图像编辑过程中的颜色一致性。

为了实现运动引导,研究者们采用了一个可微分的光流估计器来计算源图像和生成图像之间的运动。在每个扩散采样步骤中,他们估计了生成图像与源图像之间的运动,并测量了实际运动与用户指定运动场之间的偏差。然后,通过在损失函数中加入这些偏差的梯度,实现了对生成过程的引导。

研究者们还引入了一个掩码来处理遮挡问题,确保在对象移动并遮挡背景像素时,颜色损失不会对这些区域产生负面影响。通过这种方式,运动引导技术能够在保持源图像视觉质量的同时,实现对图像中对象的精确操控。

在单一源图像上进行的各种运动编辑,包括缩放和拉伸等多种变形

在实现运动引导方面,研究者们采取了一系列技术手段来确保高质量和高效率的图像编辑过程。这些技术手段主要包括以下几个方面:

处理遮挡问题:在对象移动时可能会遮挡背景像素,这些像素在生成图像中没有直接对应的点。为了解决这个问题,研究者们引入了遮罩技术,通过分析目标流来确定哪些区域会被遮挡,并在这些区域中忽略颜色损失,以避免不自然的图像效果。

编辑掩码的构建:为了精确控制图像编辑的范围,研究者们开发了一种自动构建编辑掩码的方法。这个掩码标识了需要根据运动场进行编辑的像素区域,允许模型在这些区域内应用运动引导,而在其他区域则保留源图像的内容。

噪声图像的处理:由于光流网络通常只在干净图像上训练,研究者们采用了一种技术来适应噪声图像。通过计算对干净图像的一步近似的引导函数的梯度,使得即使在噪声存在的情况下也能有效地进行引导。

递归去噪:为了提高优化的稳定性和图像质量,研究者们采用了递归去噪技术。这种方法通过重复去噪步骤多次,使得模型能够更细致地调整图像,从而提高最终结果的质量和一致性。

引导梯度裁剪:为了防止在优化过程中出现不稳定现象,研究者们实施了梯度裁剪策略。通过限制梯度的大小,可以减少引导过程中可能发生的剧烈变化,从而提高生成过程的稳定性。

运动引导的实现:研究者们将运动引导函数集成到了扩散模型的去噪步骤中。在每个去噪步骤中,模型不仅考虑如何去除噪声,还要考虑如何根据用户指定的运动场调整像素,以实现运动引导。

用户界面的开发:为了提高运动引导技术的可用性,研究者们开发了一个图形用户界面,允许用户通过直观的操作来指定运动场。这个界面支持平移、旋转、缩放和复杂变形等操作,极大地简化了运动场的创建过程。

通过这些技术手段的结合,研究者们成功实现了一种灵活且强大的图像编辑方法,它不仅能够处理复杂的运动编辑任务,还能够保持图像的高质量和自然性。

结果

研究者选用了RAFT作为光流模型,该模型能够精确估计两幅图像之间的像素运动。为了构建目标流场,他们采用了基础流的组合,并利用分割模型生成掩码,确保流场仅作用于图像的特定区域。在超参数的选择上,研究者确定了颜色损失和流损失的权重,并应用了全局权重和梯度裁剪阈值来优化引导过程。

实验设置中,研究者采用了Stable Diffusion v1.4模型,并在单个NVIDIA A40 GPU上进行操作,生成512×512分辨率的图像。他们还开发了一个图形用户界面,使用户能够通过直观的点击和拖动来创建复杂的流场。在去噪过程中,研究者采用了递归去噪技术,并发现在去噪的最后阶段关闭引导可以提高图像质量。

为了适应Stable Diffusion模型的潜在空间,研究者对编辑掩码进行了下采样处理。他们还制定了一个指导计划,在去噪的前期阶段应用引导,而在后期阶段则关闭引导,以便模型能够集中于生成高质量的细节。

为了理解各个组件对最终结果的贡献,研究者进行了消融实验,移除了关键组件并展示了它们对结果的影响。例如,他们展示了在没有递归去噪、颜色损失或流损失时的编辑结果,以及没有遮挡掩码时的影响。

通过定性分析,展示了引导函数的关键组件移除后的影响

研究者将他们的运动引导技术与其他几种基线方法进行了比较,包括InstructPix2Pix、SDEdit和RePaint等。通过直观的示例,展示了不同方法在处理相同任务时的效果差异,并强调了运动引导技术相对于这些方法的优势。

不同基线方法与作者方法的定性比较
与DragGAN方法的比较

研究者使用了两个指标来评估方法的性能:流损失(Flow Loss)和CLIP相似度(CLIP Similarity)。他们在两个不同的数据集上进行了评估,结果显示运动引导技术在满足目标流和保持源图像忠实度之间提供了一个有吸引力的权衡。

不同方法在流损失和CLIP相似性指标上的性能

研究者探讨了在难以手动指定流时,如何将视频中提取的运动应用到图像上。通过几个示例,展示了即使提取的流与目标图像不完全重叠,也能实现所需的运动。这表明了运动引导技术在运动转移方面的潜力。

从视频中提取运动并将其应用于完全不同的图像的能力

尽管运动引导技术在多个方面表现出色,但它仍然面临着采样速度慢、优化过程中的不稳定性以及对特定目标流的局限性等问题。未来的研究需要在提高算法效率、增强模型鲁棒性以及拓展技术适用性方面进行更深入的探索。

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【LLM】一、利用ollama本地部署大模型

目录 前言 一、Ollama 简介 1、什么是Ollama 2、特点: 二、Windows部署 1.下载 2.安装 3.测试安装 4.模型部署: 5.注意 三、 Docker部署 1.docker安装 2.ollama镜像拉取 3.ollama运行容器 4.模型部署: 5.注意: 总结 前言…

【C++】哈希表 ---开散列版本的实现

你很自由 充满了无限可能 这是很棒的事 我衷心祈祷你可以相信自己 无悔地燃烧自己的人生 -- 东野圭吾 《解忧杂货店》 开散列版本的实现 1 前言2 开散列版本的实现2.1 节点设计2.2 框架搭建2.3 插入函数2.4 删除函数2.5 查找操作2.6 测试 Thanks♪(・ω&#x…

OpenCV 灰度直方图及熵的计算

目录 一、概述 1.1灰度直方图 1.1.1灰度直方图的原理 1.1.2灰度直方图的应用 1.1.3直方图的评判标准 1.2熵 二、代码实现 三、实现效果 3.1直方图显示 3.2 熵的计算 一、概述 OpenCV中的灰度直方图是一个关键的工具,用于分析和理解图像的灰度分布情况。直…

Excel多表格合并

我这里一共有25张表格: 所有表的表头和格式都一样,但是内容不一样: 现在我要做的是把所有表格的内容合并到一起,研究了一下发现WPS的这项功能要开会员的,本来想用代码撸出来的,但是后来想想还是找其他办法,后来找到"易用宝"这个插件,这个插件可以从如下地址下载:ht…

图像处理中的二维傅里叶变换

图像处理中的二维傅里叶变换 问题来源是对彩色图像进行压缩时得出的傅里叶系数的图像如何解释,导入图片,转化为灰度图片: #彩色图片一般是由RGB组成,其实就是3个二维数组叠加而成,当RGB时,彩色图片就会变成…

【线性代数的本质】矩阵与线性变换

线性变化要满足两点性质: 直线(连续的点)在变换后还是直线。原点不变。 假设有坐标轴(基底) i ^ \widehat{i} i 和 j ^ \widehat{j} j ​: i ^ [ 1 0 ] , j ^ [ 0 1 ] \widehat{i}\begin{bmatrix} 1 \…

【leetcode】双指针算法题

文章目录 1.算法思想2.移动零3.复写零方法一方法二 4.快乐数5.盛水最多的容器方法一(暴力求解)方法二(左右指针) 6.有效三角形的个数方法一(暴力求解)方法二(左右指针) 7.两数之和8.…

ONLYOFFICE 8.1版本震撼来袭,让办公更高效、更智能

官网链接: 在线PDF查看器和转换器 | ONLYOFFICE 在线办公套件 | ONLYOFFICE 随着科技的不断发展,办公软件已经成为现代企业提高工作效率、实现信息共享的重要工具。在我国,一款名为ONLYOFFICE的在线办公套件受到了越来越多企业的青睐。今天…

Prompt-Free Diffusion: Taking “Text” out of Text-to-Image Diffusion Models

CVPR2024 SHI Labshttps://arxiv.org/pdf/2305.16223https://github.com/SHI-Labs/Prompt-Free-Diffusion 问题引入 在SD模型的基础之上,去掉text prompt,使用reference image作为生成图片语义的指导,optional structure image作为生成图片…

深入理解【 String类】

目录 1、String类的重要性 2、常用方法 2、1 字符串构造 2、2 String对象的比较 2、3 字符串查找 2、4字符转换 数值和字符串转换: 大小写转化: 字符串转数组: 格式转化: 2、5 字符串替换 2、6字符串拆分 2、7 字符串…

知名品牌因商标痛失市场:114家直营店山寨店7000多家!

奶茶知名品牌“鹿角巷”当年红遍大江南北,是最早的新茶饮品牌,但是当年商标注册存在问题,被同行奶茶品牌抢占了先机,发声明“对大陆商标注册细则不详,在商标注册过程中让假店钻了法律空档”,最夸张的时候全…

python如何不保留小数

1、int() 向下取整(内置函数) n 3.75 print(int(n)) >>> 3 n 3.25 print(int(n)) >>> 3 2、round() 四舍五入(内置函数) n 3.75 print(round(n)) >>> 4 n 3.25 print(round(n)) >>> 3 …

JavaScript(5)——数据类型和类型检测

字符串类型String 通过单引号( )、双引号(" ")或反引号( )都叫字符串,单引号和双引号本质上没有区别,一般使用单引号。 注意: 无论单引号或是双引号必须成对使用单引号和…

人工智能系列-NumPy(二)

🌈个人主页:羽晨同学 💫个人格言:“成为自己未来的主人~” 链接数组 anp.array([[1,2],[3,4]]) print(第一个数组:) print(a) print(\n) bnp.array([[5,6],[7,8]]) print(第二个数组:) print(b) print(\n) print…

PHP智慧门店微信小程序系统源码

🔍【引领未来零售新风尚】🔍 🚀升级启航,智慧零售新篇章🚀 告别传统门店的束缚,智慧门店v3微信小程序携带着前沿科技与人性化设计,正式启航!这个版本不仅是对过往功能的全面优化&a…

【trition-server】运行一个pytorch的ngc镜像

ngc 提供了pytorch容器 号称是做了gpu加速的 我装的系统版本是3.8的python,但是pytorch似乎是用conda安装的3.5的: torch的python库是ls支持gpu加速是真的 英伟达的pytorch的说明书 root@a79bc3874b9d:/opt/pytorch# cat NVREADME.md PyTorch ======= PyTorch is a python …

【C++航海王:追寻罗杰的编程之路】关联式容器的底层结构——AVL树

目录 1 -> 底层结构 2 -> AVL树 2.1 -> AVL树的概念 2.2 -> AVL树节点的定义 2.3 -> AVL树的插入 2.4 -> AVL树的旋转 2.5 -> AVL树的验证 2.6 -> AVL树的性能 1 -> 底层结构 在上文中对对map/multimap/set/multiset进行了简单的介绍&…

C++基础21 二维数组及相关问题详解

这是《C算法宝典》C基础篇的第21节文章啦~ 如果你之前没有太多C基础,请点击👉C基础,如果你C语法基础已经炉火纯青,则可以进阶算法👉专栏:算法知识和数据结构👉专栏:数据结构啦 ​ 目…

短视频父亲:成都柏煜文化传媒有限公司

短视频父亲:镜头背后的温情与力量 在这个信息爆炸的时代,短视频以其短小精悍、直观生动的特点,迅速占据了人们碎片化的时间,成为情感交流与文化传播的重要平台。而在这些纷繁复杂的短视频中,有一类内容尤为触动人心—…

如何让自动化测试更加灵活简洁?

简化的架构对于自动化测试和主代码一样重要。冗余和不灵活性可能会导致一些问题:比如 UI 中的任何更改都需要更新多个文件,测试可能在功能上相互重复,并且支持新功能可能会变成一项耗时且有挑战性的工作来适应现有测试。 页面对象模式如何理…