首页 > 其他分享 >视频生成-MagicAnimate快读

视频生成-MagicAnimate快读

时间:2024-02-15 10:55:41浏览次数:25  
标签:视频 MagicAnimate 参考 建模 times 模块 快读 生成

概况

目标

  给定一张参考人物图\(I_{ref}\)和运动序列\(p^{1:N}=\{p_1, \cdots, p_N\}\),\(N\)是视频帧长度。论文目标是合成一个运动连贯的视频\(I^{1:N}=\{I_1, \cdots, I_N\}\),合成视频中人物与参考人物是一样的,且遵循所提供的运动。

现状

  • 现在的扩散模型是处理单帧图片的,无法抓住视频帧之间时序关系,无法保证生成视频帧之间的连贯性,导致动画闪跳现象。
  • 基于CLIP方法编码的参考图像,其提取的语义级特征较稀疏和极致(笼统与粗糙),难以抓住细节的特征。

方法总览

  • 建立视频扩散模型,通过Temporal Transformer建模时间序列
  • 引入新的外观编码器\(F_a\)编码参考图像\(I_{ref}\)为\(y_a\),条件建模论文中模型,实现人物ID和背景保留的动画。
  • 引入目标姿态序列,通过ControlNet编码为运动特征序列\(y_p^{1:K}\),条件建模论文中模型,使得目标对象按照这种运动生成视频

整个训练和推理过程参考Fig.1

Fig. 1

时序一致性建模

  如图Fig.1 所示,随机初始化\(K\)个隐变量噪音\(z_t^{1:K}\),在视频扩散模型内部数据先由\(\mathbb {R}^{N \times C \times K \times H \times W}\)转化为\(\mathbb {R}^{(NK) \times C \times H \times W}\),进入时序模块中,再转换为\(\mathbb {R}^{(NHW) \times K \times C}\),从而建模视频帧之间相同空间位置处的依赖关系,跳出时序模块再转换为原来形状。更细节解释可以参考视频生成-AnimateDiffusion快读

外观编码器

  参考图片指导下人像动画的生成,关键点在于保留下人物身份信息和背景信息。论文中的方法是,参考ControlNet的设计,复制基础UNet \(F_a(\cdot, \theta^a)\)的一个可训练的副本,计算其在每个时间步\(t\)下的依赖于参考图像\(I_{ref}\)的隐藏层输出,即

\[y_a = F_a(z_t | I_{ref}, t, \theta^a) \]

其中\(y_a\)是UNet模型的中间模块和上采样模块对应输出的归一化注意力隐藏状态。此处与ControlNet将其以残差相加方式不同。参考图Fig.1, 上部的Appearance Encoder结构中,只有中间模块和上采样模块的输出传递给中部扩散网络对应的中间模块和上采样模块。两个模块相对应部分的特征,在空间自注意力层计算过程中,进行特征拼接,公式化表示如下:

\[Attention(Q, K, V, y_a) = Softmax(\frac{QK^{'T}}{\sqrt(d)})V^{'} \\ Q = W^Qz_t, K^{'}=W^K[z_t, y_a], V^{'}=W^V[z_tm y_a] \]

其中的\([\cdot]\)就表示按照某个维度的拼接操作,通过这种操作,就可以将视频扩散模型中的空间自注意力机制扩展到混合多种数据源的混合空间自注意力机制。从而实现了服从不同分布的信息的交互融合。用在此处,在生成视频帧过程中,既考虑到用参考图片信息使得生成的图片和参考图片相近,又考虑到运动信息如姿态位置等使得生成的图片在姿态位置上又和建模用的运动数据集中的运动情况相近。总之通过这种方式,把希望呈现的信息都加入了。

运动编码

  ControlNet中条件引入OpenPose关键点常用于人类动画生成。虽然这个得到可以解释的结果,但是论文认为关键点很稀疏以及对特定运动如旋转等不鲁棒。因此选择DensPose输出作为运动监督信号。论文使用姿态ControlNet \(F_p(\cdot, \theta^p)\)计算第\(i\)帧DensPose运动信号\(p_i\)产生的UNet隐藏层状态值,即

\[y_{p,i} = F_p(z_t|p_i, t, \theta^p) \]

在后续扩散UNet结构中,将以残差连接方式加入到UNet中间模块和上采样模块的计算中。

其它

问题1: 论文中的公式(1)、(2)和(3)中的变量\(z_t\)指的是哪个?与公式(4)中\(z_t^{1:K}\)是什么关系?

参考

[1] MagicAnimate: Temporally Consistent Human Image Animation using Diffusion Model
[2] CBAM: Convolutional Block Attention Module

标签:视频,MagicAnimate,参考,建模,times,模块,快读,生成
From: https://www.cnblogs.com/wolfling/p/18005574

相关文章

  • 【译】Lumiere,谷歌令人惊叹的视频突破
    原作:伊格纳西奥·德格雷戈里奥引言:文本到视频的新境界著名商学教授斯科特·加洛韦(ScottGalloway)打赌,2024年将是谷歌的人工智能年。现在看起来似乎正在成为现实。今天,谷歌推出了Lumiere,这是文本到视频领域的巨大突破,是当今生成人工智能中最艰巨的任务之一。而且就其......
  • (视频)西方殖民简史
    委托监护1494哥伦布伊莎贝拉女王担心海外殖民地变成独立王国采邑制在奴役印第安人和放任海外殖民者之间的平衡:发明“委任监护制”(人身依附)1503,伊莎贝拉谕令,印第安人至少受到西班牙国王、监护主、收税官和酋长压迫限制大监护主:1549查理一世不能强制无偿劳动2比索米达......
  • Linux Firefox 无法播放网页H5视频解决方案
    系统版本:Fedora38解决方案来自官方文档:https://docs.fedoraproject.org/en-US/quick-docs/openh264/#_firefox_config_changes安装openh264sudodnfconfig-manager--set-enabledfedora-cisco-openh264sudodnfinstall-ygstreamer1-plugin-openh264mozilla-openh264......
  • 视频生成-Animate Anyone快读
    AnimateAnyone目标给定一张人物的图像和一个运动姿态序列,然后生成这种运动姿态的参考人物的视频片段。预备知识  视频生成依赖的基础知识如扩散模型、隐变量扩散模型等在此不再赘述,可以自行查阅相关知识。本博客可供参考的有扩散模型DiffusionModel和LatentDiffusionMod......
  • (视频)嵌入式学习
    嵌入式开发开发环境交叉开发环境:串行、局部以太网、OCD链接在一起,内部通过通信协议建立逻辑链接特点:运行在不同环境可以独立运行调试器完成装载外部通信调试器发出调试信号可以调试不同指令集兼有编译器:Glibc,KEIL调试方式插桩:增加一些器件,实现交叉调试片上调试:在......
  • 成功实现FaceTime语音,FaceTime视频,FaceTime数据筛选,检测手机号是否开通FaceTime的
    FaceTime是苹果公司iOS和macOS(以前称MacOSX或OSX)内置的一款视频通话软件,通过Wi-Fi或者蜂窝数据接入互联网,在两个装有FaceTime的设备之间实现视频通话。其要求通话双方均具有装有FaceTime的苹果设备,苹果ID以及可接入互联网的3G/4G/5G或者Wi-Fi网络。 一、Windows电脑上部署苹......
  • Python实现视频片头和片尾添加(不实用)
    参考的原代码,运行提示:RuntimeError:imageio.ffmpeg.download()hasbeendeprecated.Use'pipinstallimageio-ffmpeg'instead.'直接删除掉这行:imageio.plugins.ffmpeg.download()改为:importimageiofromdatetimeimportdatetimeimportosfrommoviepy.video.......
  • 「白嫖」免费的视频资源:片库网
    片库网网址:https://wfhbjxsb.com想要一个免费的在线追剧网站的,赶紧码住电视资源部分这一个区区小破免费网站(bushi小破站),竟然有如此多的资源:电影、电视剧、综艺、动漫有的是,并且还有最新连载的资源,就像《繁花》电视剧,ta竟然能做到每日一更,而且画质出奇的好!操作部分这个网......
  • 如何下载链接为blob类型的视频
    示例这里以央视网视频为例获取m3u8链接F12打开开发者工具,网络中搜索m3u8,有可能有多个,要区别出我们想要下载的那个注:有些网站不是m3u8格式,比如B站根据链接转为mp4并下载使用这个网站m3u8视频在线提取工具可以转换。参考关于VideoSrc带有blob:http的视频如何......
  • 【视频】互联网Java工程师面试突击训练(三季)
    视频下载地址 https://pan.quark.cn/s/c17e3da33a76目录一、Java集合包HashMap的底层数据结构是什么?JDK1.8中对hash算法和寻址算法是如何优化的?03.HashMap是如何解决hash碰撞问题的?04.说说HashMap是如何进行扩容的?05.ArrayList,LinkedList,TreeMap,LinkedHashMap,HashSet等底层......