CVPR 2024最佳论文:“神兵”的组合器 Generative Image Dynamics

CVPR 2024的最佳论文来自谷歌、美国·加州大学圣迭戈分校。两篇都来至于视频生成领域,可见今年外界对视频生成领域关注度很高。今天的这篇是“Generative Image Dynamics”,Google Research发布的。它的研究成果令人震惊,从单张RGB图像生成连续的视频,模拟自然界中物体的长时间运动轨迹,如树木、花朵、蜡烛等。先来看一段生成视频:

Generative Image Dynamics

这项开创性技术是对场景动力学的图像空间建模。目的是全面了解图像中的对象和元素在各种场景下的动态交互时行为。当然这项研究基本上是之前各种“神兵利器”的技术组合,所以随着时间轴一起来看看~

神兵1:Spectral Volume

自然界中的场景总是在运动,即使是看起来静止的场景也包含由于风、水流等自然节奏引起的微小振动。模拟这些运动对于视觉内容合成非常重要,因为缺乏运动或运动不真实会让图像显得怪异或不真实。

2015年的Image-Space Modal Bases for Plausible Manipulation of Objects in Video就上场了。这里会涉及到Spectral Volume的概念,具体就是将输入的视频提炼不同的振动模式。

Spectral Volume

而本次的研究首先从真实视频序列中提取的运动轨迹训练模型,这些轨迹的时域傅里叶变换就是频域中的“Spectral Volume”。

从左边的第一张图获取一行,然后进行动力学算法分解

具体的过程就是从输入图像中提取的每个像素点在未来时间的位移(运动轨迹)。上面的第一张图取了一行,然后取得这一行的每个像素点在视频中的运动轨迹(肯定对应一条曲线),然后对曲线进行离散傅里叶变换,得到不同频率成分的幅度和相位。

大白话:“可以想象一杯N种水果的混合果汁,通过离散的傅里叶变化可以分离给各种果汁”。一个像素T个时间点的运动轨迹,按照离散傅里叶变化,可以拆分成多条具有特定频率的复数组合。Spectral Volume是从视频中提取的每像素轨迹的时间傅里叶变换。

原本T个时间点,T个数据点,进行离散的傅里叶变化,在降低复杂度的同时也可以提炼不同的低频运动规律。因此这个方法在低频运动还有规律运动中的生成占据优势,也的确比较适合振荡动态的场景。

从真实视频中提取的X和Y 运动分量的平均功率谱可以看出,自然振荡运动主要由低频分量组成,因此使用前K=16个项,左图的红点。

右图是放大3.0 Hz下傅里叶项振幅的直方图,这些振幅经过按图像宽度和高度缩放,以及频率自适应归一化来避免系数集中在极值。

Spectral Volume中的每个具体的元素代表一个特定频率下的运动信息,包括:频率(运动的周期性特征)、幅度(在该频率下的运动强度)、相位(运动的初始位置或时间偏移)。

神兵2Latent Diffusion Model

上图中间部分就是属于Diffusion Model的方法,ξ是代表着Encoder,Zn代表着噪声。重复利用扩散模型<可以链接回去温习!>进行训练。值得注意的是中间红色部分是由2D spatial Layer和Attension Layer交叉组合而成,一个负责捕获空间特征,一个负责捕获不同空间位置之间的依赖和关系。

训练好的模型可以在频域利用中逐个频率生成Spectral Volume。生成的Spectral Volume可以进一步处理转换为“运动纹理”,即每个像素的长时间运动轨迹。

神兵3光流插值

最后利用基于图像的渲染技术,将预测的运动纹理应用于输入的RGB图像,生成连续的视频帧。这里首先使用在每个像素 F(p) =FFT−1(S(p)) 上应用的逆时间的FFT进而在时间域中生成运动纹理。由于前向扭曲可能导致空洞,并且多个源像素可以映射到相同的输出 2D 位置,因此采用2020年的Softmax Splatting for Video Frame Interpolation关于帧插值的工作中提出的特征金字塔softmax splatting策略。

在2020年的这篇文章中涉及到光影的概念。若图中的每个像素都看成一个主题,在视频中的移动就形成了光流。这个研究展示了一个帧插值框架。帧插值的目的是在两个给定的帧I0和I1之间生成中间帧It,以创建平滑的过渡。

以下是这个框架的工作流程:

  1. 首先估计这两个帧之间的双向光流。光流是一种测量两个帧之间物体运动的方法。图中绿色的方框和箭头表示光流估计过程。

  2. 特征金字塔提取:每个输入帧通过特征金字塔提取器,提取出多层次的特征。这一步骤在图中用蓝色虚线方框表示。

  3. Softmax Splatting:将提取的特征金字塔和光流信息前向传播到目标时间位置t∈(0,1)。使用Softmax Splatting实现端到端的训练,从而允许特征金字塔提取器学习到对图像合成重要的特征。这个过程在图中用灰色虚线方框表示。

  4. 最终经过变形的输入帧和特征金字塔被送入图像合成网络,生成插值结果帧It。

本次研究的生成效果在“微风”领域的确不赖。上图第一列为原图,取了一行作为对比观察点。第二列为这一行像素值在原始视频的震动效果,第三列开始时就是各种视频生成算法的震动效果。

当然目测还是最后一列(本次研究)更加的符合和贴近。最后总结一下,这个项目给读者的带来的启示是,读懂每种研究的核心点,通过创意组合和微创新,也能带来令人意想不到的收获~

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

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

相关文章

c语言回顾-内存操作函数

目录 前言 1.memcpy 函数 1.1函数介绍 1.2与strcpy的区别 1.3memcpy的模拟 2.memmove 函数 2.1函数介绍和使用 2.2函数的模拟 3.memset函数 3.1函数介绍 3.2函数的模拟 4.memcmp函数 4.1函数的使用 4.2函数的模拟 结束语 前言 在动态内存的章节中小编详细讲解了动…

【代码随想录】【算法训练营】【第51天】 [115]不同的子序列 [583]两个字符串的删除操作 [72]编辑距离

前言 思路及算法思维&#xff0c;指路 代码随想录。 题目来自 LeetCode。 day 51&#xff0c;周四&#xff0c;又是不能坚持的一天~ 题目详情 [115] 不同的子序列 题目描述 115 不同的子序列 解题思路 前提&#xff1a;转换为t为s的子序列的个数&#xff0c;元素的相对…

flask项目部署总结

这个部署的时候要用虚拟环境&#xff0c;cd进项目文件夹 python3 -m venv myenv source myenv/bin/activate激活 之后就安装一些库包之类的&#xff0c;&#xff08;flask&#xff0c;requests,bs4,等等&#xff09; 最重要的是要写.flaskenv文件并且pip install 一个能运行…

【MySQL】InnoDB的存储结构

InnoDB的存储结构&#xff1a;每个表都会生成一个表空间文件&#xff0c;这个文件里面最小结构就是行&#xff0c;存储的真正的数据&#xff0c;一个页来管理若干行&#xff0c;一个区来管理若干页&#xff0c;一个区组来管理若干区。段并不是真正的物理存储结构&#xff0c;它…

计组期末复习

本内容是我在计组期末复习时的记录&#xff0c;可能对你的复习帮助不大。下面是我复习时看的一些资料和视频&#xff1a; 知识体系&#xff1a; 【【计算机组成原理】计算机组成原理期末考试速成课&#xff0c;不挂科&#xff01;&#xff01;】https://www.bilibili.com/video…

轻松跨越国界:使用WildCard畅享全球AI服务

大家好&#xff0c;现在AI技术已经深入到我们的日常生活中。然而&#xff0c;许多朋友仍然难以获取优质的AI工具和应用。那么&#xff0c;如何才能使用像ChatGPT这样的AI服务呢&#xff1f; 今天我为大家介绍一个“一劳永逸”的解决方案&#xff0c;它就是我们的主角——WildC…

spdlog一个非常好用的C++日志库(四): 源码分析之logger类

目录 1.简介 2.类图关系 3.logger数据成员 4.logger函数成员 4.1.构造与析构 4.1.1.构造函数 4.1.2.拷贝构造、移动构造 4.2.交换操作 4.3.log()记录日志消息 4.3.1.格式串 4.3.2.普通字符串 4.3.3.日志级别 4.3.4.宽字符支持 4.4.sink_it_&#xff1a;将log消息…

【内网渗透】从0到1的内网渗透基础概念笔记

目录 域 域的介绍 单域 父域和子域 域树 域森林 域名服务器 活动目录 活动目录介绍 域内权限 组 域本地组 全局组 通用组 总结 示例 A-G-DL-P策略 重要的域本地组 重要的全局组、通用组 安全域划分 域 域的介绍 Windows域是计算机网络的一种形式&#xf…

币界网讯,预计以太坊现货 ETF 将于 7 月中旬推出

刚刚 ETF Store 总裁 Nate Geraci 在 X &#xff08;前Twitter&#xff09;平台上宣布&#xff0c;备受数字货币市场期待的SEC以太坊现货 ETF提案&#xff0c;将于7 月中旬通过美国证券交易委员会&#xff08;SEC&#xff09;批准。Nate Geraci透露修订后的 S-1 文件将于 7 月 …

艺活网DIY手工制作网站源码 工艺制作教程平台源码,带数据

帝国CMS仿《手艺活》DIY手工制作网源码&#xff0c;仿手艺活自适应手机版模板。 带数据库和图片资源&#xff0c;一共5个G大小&#xff0c;下载需耐心。 92开发 手艺活网DIY手工制作网站源码 创意手工艺品制作教程平台系统帝国h5自适应手机端 是一套展示各种 DIY 小物品精美又…

初学Spring之自动装配 Bean

Bean 的作用域&#xff1a; 1.单例模式&#xff08;Spring 默认机制&#xff09; scope“singleton” 2.原型模式&#xff1a;每次从容器中 get 时&#xff0c;都会产生一个新对象 scope"prototype" 3. request、session、application&#xff0c;只能在 web 开…

webp2jpg网页在线图片格式转换源码

源码介绍 webp2jpg-免费在线图片格式转化器, 可将jpeg、jpg、png、gif、 webp、svg、ico、bmp文件转化为jpeg、png、webp、webp动画、gif文件。 无需上传文件&#xff0c;本地即可完成转换! 源码特点&#xff1a; 无需上传&#xff0c;使用浏览器自身进行转换批量转换输出we…

九、函数的声明和定义

函数声明&#xff1a; 1. 告诉编译器有一个函数叫什么&#xff0c;参数是什么&#xff0c;返回类型是什么。但是具体是不是存在&#xff0c;函数 声明决定不了。 2. 函数的声明一般出现在函数的使用之前。要满足先声明后使用。 3. 函数的声明一般要放在头文件中的。 定义的函…

视频监控平台web客户端的免密查看视频页:在PC浏览器上如何调试手机上的前端网页(PC上的手机浏览器的开发者工具)

目录 一、手机上做前端页面开发调试 1、背景 2、视频监控平台AS-V1000的视频分享页 3、调试手机前端页面代码的条件 二、手机端的准备工作 1、手机准备 2、手机的开发者模式 3、PC和手机的连接 &#xff08;1&#xff09;进入调试模式 &#xff08;2&#xff09;选择…

期权开户零门槛怎么操作?期权不满50w的开户方式

今天带你了解期权开户零门槛怎么操作&#xff1f;期权不满50w的开户方式。在股票期权市场上&#xff0c;期权交易是一种非常受欢迎的投资方式。它不仅可以增加投资组合的多样性&#xff0c;还可以为投资者提供一定的保护和利润机会&#xff0c;比如通过买入认股期权做空对冲大盘…

基于Springboot的智慧信息化机房管理系统

1 项目介绍 1.1 研究目的和意义 随着社会的快速发展&#xff0c;计算机的影响是全面且深入的。人们生活水平的不断提高&#xff0c;日常生活中人们对高校共享机房管理方面的要求也在不断提高&#xff0c;需要高校共享机房的人数更是不断增加&#xff0c;使得高校共享机房管理…

Swift Core Data 分阶段迁移

文章目录 前言什么是分阶段迁移&#xff1f;提供一些背景信息创建迁移管理器设置使用 Core Data 栈。总结 前言 在这之前&#xff0c;我发布了一篇文章&#xff0c;在其中解释了如何使用映射模型和自定义迁移策略执行复杂的 Core Data 迁移。虽然这种方法性能良好且运行良好&a…

阿里巴巴矢量图标库使用

阿里巴巴矢量图标库官网 添加图标到购物车 悬浮到图标上面会有个购物车icon,点击一下就可以添加购物车了 添加图标到项目 添加完购物车后,右上角会有当前在购物车的数量,点击右上角购物车icon,在新弹窗内点击添加至项目,选择添加到哪个项目(没有项目就创建一个),点击完成,…

C++ 教程 - 08 文件操作与异常处理

文章目录 文件操作文件对象其他方法异常处理 文件操作 需要头文件 <iostream><fstream> 读取文件 ifstream obj; obj.open(const char* filename, std::in)写入文件ofstream obj; obj.open(const char* filename, std::out)读、写文件 fstream&#xff0c;包含了i…

免杀笔记 ---> PE

本来是想先把Shellcode Loader给更新了的&#xff0c;但是涉及到一些PE相关的知识&#xff0c;所以就先把PE给更了&#xff0c;后面再把Shellcode Loader 给补上。 声明&#xff1a;本文章内容来自于B站小甲鱼 1.PE的结构 首先我们要讲一个PE文件&#xff0c;就得知道它的结构…