AnimateAnything:Fine-grained open domain image animation with motion guidance

1.Introduction

        本文旨在借助视频扩散模型的motion prior来解决开放领域图像动画问题,提出了一种可控扩散图像动画方法,能够在保留细节的同时对图像中的任意对象进行动画处理。为了增强用户对动画过程的控制能力,引入了motion area guidance和motion strength guidance,实现了对多个对象的运动速度的精确和交互式控制。

为了准确识别图像中可移动对象及其对应的可移动区域,引入了motion area mask,将mask沿video latent representation的通道维度添加,并将卷积权重初始化为0,使其能够在训练中逐步调整。

2.related work

2.1 Image Animation

图像动画涉及从静态图像创建视频序列。Make-it-move通过动作锚点捕捉动作模式,然后用于条件VQ-VAE,模型受限于训练数据中特定的运动-对象对的依赖。LFDM采用两阶段过程进行人为中心视频生成。

2.2 Video generation with diffusion models

VDM(3DUnet)、Imagen Video、Make-A-Video、Tune-A-Video、Text2Video-Zero、ControlVideo、VideoCraft、VideoComposer、DragNUMA

3.Method

3.1 Background

视频扩散模型在图像LDM的基础上,引入了3DUnet,3DUnet在每个空间卷积之后加入了额外的时间卷积,并在每个空间注意力之后加入了时间注意力块,为了集成来自图像数据的生成能力,3DUnet同时训练和视频数据。

3.2 Image Animation with video diffusion model

采用LDM VAE将参考图像编码成潜在表示Zref,以保留更多的外观细节,VAE被训练用于图像重建,因此抱恨了丰富的低层次图像特征,比CLIP,可能包含更少的语义信息,但扩散模型本身对语义的理解不错。如图2所示,训练流程采用参考图作为初始帧,并采用自回归策略来预测后续帧,实现图像动画而无需额外的模型参数,第一帧的内容通过temporal conv和temporal attention传播到后面帧,只有temporal layer被微调,空间层保持冻结,在每个时间步t,将干净的Zref和含有N帧噪声潜在Zt进行连接,得到一个具有N+1帧的输入潜在code,然后从去噪后的Zt中选出最后N帧。

稍微描述一下网络结构:

conv layer、temporal conv、temporal attention、cross attention中,conv对应ResBlock,接受各种embedding,本文中接受timestep和motion strength,spatialTransformer对应cross attention,这个其实比较复杂的,有self attention,也有cross attention,文本增加的是temporal layer层。

3.3 Motion area guidance

        这块其实再说构造数据集时如何做的,如何生成运动区域motion area,通过多帧之间的灰度图的差异构建了mask,至于生成的图除了笔画区域之外的其他地方为什么会有抖动,和此处无关,训练时,只有像素变化大的区域才会成为mask,推理时纯粹是生成的不好。

        为了准确识别图像中可移动对象及其对应的可移动区域,引入了motion area mask,为用户提供对输入图像的可移动区域的精准控制。通过在通道维度将运动mask与视频潜在code进行串联,借鉴controlnet,将mask通道的卷积核初始化为0,以保持原始的视频生成能力。

        使用以下方法从真实视频中构建训练对,包括视频和相应的运动区域mask,首先,将给定的N帧视频样本转换为灰度图像,计算超过阈值Tm的帧差异,这些差异被合并为创建差异二值mask,

前一帧和后一帧中的灰度值差异,阈值Tm确定了可移动区域和不可移动区域中的运动强度,如果Tm设置的太高,非移动区域的物体可能出现运动,Tm设置的太低,不可移动的区域中的物体可能完全冻结,可能导致运动区域边界出现伪影,在d中识别这些差异区域的轮廓,并通过将标签1分配给这些轮廓内包含的像素,构建运动区域mask,表示可移动区域m。对视频潜在表示Z0进行后处理,将非移动区域的像素充值为第一帧的值。

Zti表示视频在时间步t中的第i帧,为了处理人眼无法察觉的微小运动,这些运动不应被标记为可移动区域,显式指示模型保持这些像素不变,运动阈值Tm被调整以确保重建视频Z0‘与Z0之间的视觉差异保持相对较小。

3.4 Motion strength guidance

        在训练中,采样帧速率会影响生成视频中移动物体的运动速度,然后,仅使用帧速率作为视频生成中运动速度的指导是不够的,因为相同帧速率的视频可能会基于其内容表现出不同的运动速度,提出了motion strength s指标,用户丁强测量目标运动区域的运动速度。

运动强度s量化了潜在空间中帧之间的差异,和timesteps类似,将motion strength投射到positional embedding中,并将其添加到每个残差块中的每个帧中,以确保运动强度均匀的应用于每个帧。

不好收敛,新增了一个loss,直接监督帧间差异。

3.5 Guidance composition

图像动画模型融合了来自参考图像、文本、motion area和motion strength,在训练是,会变化文本提示和运动区域,如果文本指示与参考图像的内容不一致,模型会优先保证对图像的忠实性,通过对motion area guidance,运动区域之外的对象完全被冻结。

3.6 Shared noise inference

在训练中,通过在视频潜变量上添加噪声来构建输入潜变量,在推理中,从随机高斯噪声中进行采样而没有任何真实数据信号时,扩散模型无法在测试生成忠实的图像动画,通过使用DDPM的前向过程在Zref上添加噪声来获取基础噪声,将基本噪声和Zref结合起来,保留参考图像信息的同时引入帧特定的多样性。

4.Experiments

4.1 Experimental setup

数据集 模型从VideoComposer中初始化,在webvid10M中预训练,在HD-VILA-100M中随机抽取了20000个视频进行微调,以取出水印,在MSR-VTT上评测,MSR-VTT是一个开放检索的视频检索数据集,其中每个视频片段都有20个自然语言语句作为描述,通常,其测试集中的2990个视频片段对应的文本描述被用作生成视频的提示。

评测指标,FVD

实现细节,AdamW,lr为5x10-5,一块A10GPU,训练20G显存,推理6G显存,训练中进行了多帧率采样获得384x384分辨率的8帧训练片段,bs为2,10k迭代,耗时1天,Tm为5.

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

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

相关文章

vue3 添加编辑页使用 cron 表达式生成

示例效果图 1、添加组件 <template><div class"v3c"><ul class"v3c-tab"><li class"v3c-tab-item" :class"{ v3c-active: tabActive 1 }" click"onHandleTab(1)">秒</li><li class&qu…

小航助学2023年9月电子学会Scratch三级真题(含题库答题软件账号)

需要在线模拟训练的题库账号请点击 小航助学编程在线模拟试卷系统&#xff08;含题库答题软件账号&#xff09; 单选题2.00分 删除编辑附件图文 答案:C 第1题运行下面程序后&#xff0c;角色的x坐标值是&#xff1f;&#xff08; &#xff09; A、100B、90C、110D、120 答…

【前端学习记录】记一次分片上传逻辑的调试过程

前言 在项目开发的过程中&#xff0c;经常会遇到上传和下载&#xff0c;对于上传来说&#xff0c;如果是小文件的话&#xff0c;接口响应会比较快&#xff0c;但是对于大文件&#xff0c;则需要对其分片以减少请求体的大小和上传时间。 小文件上传 以Vue框架使用<el-uplo…

官宣 鸿雁成为2023汇丰世界羽联世界巡回赛总决赛官方供应商

全屋智能和羽毛球运动能擦出怎样的火花&#xff1f; 鸿雁给你答案&#xff01; 12月13日&#xff0c;2023汇丰世界羽联世界巡回赛总决赛将在杭州举行。 鸿雁签约成为2023汇丰世界羽联世界巡回赛总决赛官方供应商&#xff0c;将携手世界羽联&#xff0c;为广大羽毛球爱好者们…

Yolov5双目测距-双目相机计数及测距教程(附代码)

引言 在计算机视觉领域&#xff0c;Yolov5-Binocular相机距离计数及测距是一个引人注目的研究方向。本教程将为小白用户提供一个简明扼要的学习指南&#xff0c;涵盖了关键步骤&#xff0c;包括标定、公示推倒以及重要的代码片段。 第一步&#xff1a;环境搭建 首先&#x…

【Geoserver】将geoserver迁移到jetty的发行包中

之前讲了在Geosever的二进制发行包中升级jetty的内容&#xff0c;我测试之后发现有些问题&#xff0c;本地运行可能没有问题&#xff0c;但是在linux上运行报错了。 于是我想着换个思路好了&#xff0c;总是想着将Geosever中的jetty包替换掉&#xff0c;干脆反过来&#xff0c;…

2023_Spark_实验二十六:编写Shell模拟生成点击实时数据

引言&#xff1a;流式数据处理主要处理实时数据&#xff0c;由于实验教学过程中&#xff0c;每个同学无法拿到实时数据&#xff0c;因此我们开发shell脚本模拟实时数据生成&#xff0c;支持后续实验。 实验目的&#xff1a;通过开发模拟实时点击流shell脚本&#xff0c;模拟实时…

【Database】什么是数据库?常见的数据库类型有哪些?

什么是数据库&#xff1f;常见的数据库类型有哪些&#xff1f; 首先&#xff0c;什么是数据库&#xff1f;把它想象成一个数字游乐场&#xff0c;我们以结构化的方式组织和存储大量信息。现在&#xff0c;让我们来谈谈数据库的主要类型。 关系型数据库&#xff1a; 想象一下…

深度学习的目标检测算法综述

信息记录材料 2022年10月 第23卷第10期 【摘要】目标检测是深度学习的一个重要应用&#xff0c;目前在智能驾驶、工业检测相关领域都获得应用&#xff0c;具有重要的现实意义。本文对基于深度学习目标检测算法原理和应用情况进行简述&#xff0c;首先介绍结合区域提取和卷积神经…

Spring上IOC之@EnableAspectJAutoProxy

博主介绍&#xff1a;✌全网粉丝5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

3分钟,掌握“曲面屏显示屏”

在3分钟内掌握“曲面屏显示屏”的概念和特点&#xff0c;可以按照以下步骤进行&#xff1a; 一、了解曲面屏显示屏的基本概念 曲面屏显示屏是一种采用柔性塑料的显示屏&#xff0c;主要通过OLED面板来实现。相比直面屏幕&#xff0c;曲面屏幕弹性更好&#xff0c;不易破碎。此外…

扫描电镜(SEM)样品在进行扫描电镜观察前需要进行哪些处理

对于扫描电镜&#xff08;Scanning Electron Microscope&#xff0c;SEM&#xff09;样品的制备&#xff0c;需要经过一系列处理步骤以确保样品表面的干净、导电性好&#xff0c;并且能够提供高质量的显微图像。以下是一些常见的处理步骤&#xff1a; 1. 固定样品&#xff08;…

锂电3V升12V1A升压芯片WT3209

锂电3V升12V1A升压芯片WT3209 WT3209是一款高功率密度全集成BOOST升压转换器&#xff0c;具备高效能解决方案。3V升12V1A,5V升12V1A WT3209内部集成的功率MOSFET管导通电阻为上管13mΩ和下管11mΩ&#xff0c;具备2A开关电流能力&#xff0c;并且能够提供高达12.6V的输出电压。…

算法:只出现一次的数字(位运算:异或运算)

异或运算 时间复杂度 O(n) 空间复杂度 O(1) /*** param {number[]} nums* return {number}*/ var singleNumber function (nums) {let item nums[0]if (nums.length > 1) {for (let i 1; i < nums.length; i) {// 将10进制转成2进制进行异或运算&#xff08;相同得0&…

CB400X即将停产?NX400上线,本田最新的外观设计直接就国产了?

NX500 之前米兰车展的时候给大家分享过本田对于500系列的升级&#xff0c;并且宣布NX500代替CB500X&#xff0c;采用了全新的外观设计&#xff0c;没有看过的小伙伴可以查阅下之前的文章内容&#xff0c;不过最新的工信部的信息&#xff0c;可以看到NX500的外观设计应用到了CB…

光栅化渲染:光栅化算法实现

光栅化是将图元转换为二维图像的过程。 该图像的每个点都包含颜色和深度等信息。 因此&#xff0c;对图元进行光栅化由两部分组成。 第一个是确定窗口坐标中整数网格的哪些方格被图元占据。 第二个是为每个这样的方块分配颜色和深度值。 &#xff08;OpenGL 规范&#xff09; N…

CTD测试流程

连接 连接17Plus&#xff0c;用usb转232线&#xff0c;db9公针2、3分别接Data I/O的2、3。DB9的5接Data I/O的1。尼龙塞子打开状态。不用闭合。 软件连接 打开SeaTermAF V2&#xff0c;注意打开前先把串口插上&#xff0c;否则软件读不到串口。如果读不到&#xff0c;就在插…

C/C++ 快乐数: 编写一个算法来判断一个数n是不是快乐数

题目&#xff1a; 编写一个算法来判断一个数n是不是快乐数。 快乐数的定义&#xff1a; 对于一个正整数&#xff0c;每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为 1&#xff0c;也可能是 无限循环 但始终变不到 1。 如果这个过…

使用不同的颜色映射绘制热力图Seaborn

使用不同的颜色映射绘制热力图 一、使用 Seaborn 库创建热力图二、cmap关于其他颜色的设置三、自己设置颜色映射 一、使用 Seaborn 库创建热力图 选择Seaborn颜色官网 使用 Seaborn 库创建热力图&#xff0c;你可以使用 seaborn.heatmap() 函数。下面是一个示例代码&#xf…

网络基础(七):传输层协议介绍

目录 一、TCP协议&#xff08;传输控制协议&#xff09; 1、TCP协议介绍 2、TCP协议特性 3、TCP报文格式 4、TCP的三次握手 4.1TCP三次握手的概念 4.2TCP三次握手流程图 4.3 TCP三次握手阐释说明 5、TCP的四次挥手 5.1TCP四次挥手的概念 5.2TCP四次挥手的流程图 5.…