编者按:随着网络性能的不断提升,视频已经成为越来越多人获取信息、娱乐休闲的主要方式,与此同时也涌现出了不少视频的创作人员,他们将喜欢的人、事、物,以具有创意的视频形式呈现出来,这让和小编一样毫无视频创作细胞的小白羡慕不已。不过,这样的能力你很快就可以借助技术实现了,微软亚洲研究院提出的开放领域视频生成预训练模型 GODIVA,基于 3D 注意力机制,克服了视频帧连续性建模的挑战,可秒级实现基于文字脚本生成视频。

提问:将大象放进冰箱……?(bushi)再来一遍。

提问:从文字脚本到生成创意视频一共分几步?

回答:那步骤是相当繁多,需要画面构思、分镜设计、色彩搭配、场景筛选、元素点缀、实地拍摄、动画制作等等… 可以说是跋山涉水、上天入地……

然而随着人工智能技术的不断发展,今后我们只需要输入文字脚本便可直接生成视频,一步即可完成。

近日,微软亚洲研究院自然语言计算组发布了一项创新的研究成果——开放领域视频生成预训练模型 GODIVA(论文链接:https://arxiv.org/abs/2104.14806),实现了文字到视频的秒级生成,在视频日渐成为主流传播介质的今天,未来每个人都有机会成为视频制作达人。

是的,你没有看错,这是自然语言处理(NLP)领域研究员们的成果。为什么研究 NLP 的科学家们开始研究视频了?他们又是如何实现这项技术的?接下来让我们一探究竟。

自然语言与视觉的跨模态智能

事实上,通过文字阅读、语言对话获取信息,只是人类成长学习过程中的一部分,还有一部分信息来自于视觉方面的输入,比如我们看到马会在地上跑,不会在天上飞;鸟会在天上飞,不会在水里游,等等。由于这类信息被人们认为是理所当然的常识,基本不会频繁体现在文字和语言中,所以研究员们在基于大规模文本训练 NLP 模型时,愈发感受到现有模型中常识类知识的缺乏,因为这些知识通常更多出现在图片、视频中。

此前受限于计算能力和 AI 跨领域处理方法的差异,跨领域、多模态的内容学习很难。而近年来 NLP 技术快速发展,一些新的底层模型不断涌现,并且已经开始被应用于计算机视觉(CV)等其他领域的模型训练中,如 Transformer。

随着自然语言处理与计算机视觉两个领域之间底层模型共性的增多,两个领域的研究人员也正在越来越多地尝试对方领域的算法,以提升模型的表示能力、推理能力。在 NLP 领域的全球顶会 ACL 上,这些年出现了不少多模态问答、多模态摘要生成、多模态内容检索相关的论文;而在 CVPR 等计算机视觉领域的顶会上同样也出现了很多融合了 NLP 任务的跨模态方法。跨领域、多模态的机器学习初见成效。

“从 NLP 领域的研究角度看,我们希望能够从视频或图片的信号中学习到在文本中不太会做出描述的常识信息,以补充现有 NLP 模型所缺乏的常识或物理知识,最终让 NLP 模型取得更好的效果。同时,这也可以让 NLP 与图片和视频任务建立起内在联系,”微软亚洲研究院自然语言计算组高级研究员段楠表示,“这是我们进行视频生成研究的初衷所在。”

GODIVA创新3D注意力机制,攻克视频连续建模挑战

目前常见的视频生成技术主要基于生成式对抗网络(GAN)进行,而微软亚洲研究院此次的视频生成则是基于 VQ-VAE 技术。对 NLP 领域的研究人员来说,后者的技术路线与 NLP 领域的研究思路更加接近,它可以将视频/图片信息映射为文本,再通过序列化生成符号的角度进行处理。

视频和图片在这里并没有本质区别,因为视频可以被切分成很多个视频帧,即图片。利用 VQ-VAE 算法模型可以将每一个视频帧编码成离散向量表示,这样图片信息就可以对应到相应的文本,从而序列化为 NLP 最擅长处理的 token,充分利用现有的 NLP 模型和算法。在大规模数据预训练之后,再基于 VQ-VAE 模型将离散序列反向还原成视频帧,并将所有帧连在一起,就形成了可视化的视频。

该方法的好处是,所生成的每个视频帧与文本的关联性都很高,但如何确保生成视频帧之间的流畅性以及如何解决生成视频时遇到的长序列建模问题,则成为研究员们必须攻克的技术难点。针对上述两个挑战,研究员们在帧与帧之间引入了一个 3D 稀疏注意力机制,在生成当前帧的某一区域时,同时考虑该区域的行(Row)、列(Column)、时(Temporal)三个维度的视觉信息(如图1所示)。

图1:3D 稀疏注意力的掩码矩阵

图1给出了输入文本长度为3个 token、输出视频为2帧、每帧由4个 token 组成时的 3D 稀疏注意力掩码矩阵。其中,行表示模型需要生成的8个视觉 token (v_1, v_2,…, v_8),列表示生成该视觉 token 需要关注哪些 token。红色、蓝色、紫色分别表示行、列、时三种稀疏关注机制的独有的关注,绿色表示三种关注机制共享的关注,黑色则表示不关注。例如,第一行前三列为绿色,表示在生成 v_1 的时候,三种关注机制都关注了所有的语言 token t_1, t_2, t_3。第二行表示前三列为绿色,第四列为蓝色,表示在生成 v_2 的时候,除了三种关注机制都关注了 t_1, t_2, t_3 外,列关注机制还专门关注了 v_1。这是由于当视频的一帧由4个 token 组成时,v_1 是 v_2 的先前列 token(如图2,对于 Column 轴而言,1在2之前)。再例如第4行就表示在生成 v_4 时,模型除了关注 t_1, t_2, t_3 外,行关注专门关注了 v_2,列关注专门关注了 v_4。从图2可以看出,这是由于 v_2 是 v_4 的先前行 token,v_3 是 v_4 的先前列 token。值得一提的是,为了减少计算,模型不再关注与 v_4 间隔比较远的 v_1。

图2:每帧视频由4个 token 组成时的 token 排列

这样有三个好处:其一,通过稀疏的注意力建模,模型省去了大量的运算(可以从图1看出,大量的位置都是黑色的),从而可以进行长序列的建模。其二,行、列、时三个维度的关注使得模型在生成某一视觉区域时,同时考虑空间和时间的依赖性,从而能够生成帧内更平滑、帧间更流畅的视频。其三,由于在生成每个视觉 token 的时候都会关注全部文本信息(图1前3列都是绿色的),则生成的视频和文本的一致性会比较好。

图3:GODIVA 模型图

图3给出了 GODIVA 的整个模型图。可以看到,通过上述的行、列、时稀疏注意力的循环堆叠,模型可以迭代地生成视觉 token 序列。这些 token 组装之后,通过 VQ-VAE 的解码器就可以一帧一帧地输出视频了。

除了以上几个技术方面的挑战,基于文字生成视频的另一个难点是,对视频生成效果的评价会相对主观。同样一段小孩与小狗在游泳池边嬉戏的文字,对应的视频可能有千万种呈现方式,很难通过标注数据对生成的视频进行衡量,这给视频生成研究的自动评价机制带来了巨大挑战。为了解决这个问题,微软亚洲研究院的研究员们采用了人工审核与技术判别相结合的方式。在技术判别方面,研究员们基于 CLIP(论文链接:https://arxiv.org/abs/2103.00020)设计了自动评测指标 RM(Relative Matching):

其中,t 表示输入文字描述,v^(l) 和 v ̂^(l) 分别表示真实视频 v 和生成视频 v ̂ 中的第 l 帧,CLIP(t, v^(l) ) 表示基于 CLIP 模型计算的 t 和 v^(l) 之间的相似度。实验数据表明,该指标能够很好地将生成视频所对应的输入文字描述从若干文字描述集合中选取出来(按照 RM 得分最大值,如图4所示),从而证明了 GODIVA 生成的视频内容和输入文字描述之间具有很好的相关性。

图4:输入文本和视频标准答案之间的相似度

目前,GODIVA 在 HowTo100M 的公开数据集预训练,并在 MSR-VTT 公开数据集上 finetune(微调),取得了不错的测试结果。尽管现有版本仅生成了十帧的视频,但可以看出视频有着较高的连贯性,而且与文本的相关性也很高,初步验证了基于文字生成视频技术的可行性。随着未来算法的更新和计算能力的提升,研究员们将进一步完善视频长度、画质分辨率等更多细节。

下面让我们一起来看看目前 GODIVA 基于文字所生成的视频效果:

输入文本:Digit 9 is moving down then up. (数字9先向下,再向上移动)

输出视频:

输入文本:Digit 7 moves right then left while digit 3 moves down then up. (数字7先向右,再向左移动;同时数字3先向下,再向上移动)

输出视频:

输入文本:A baseball game is played. (正在举行的棒球比赛)

输出视频:

输入文本:A girl on the voice kids talks to the judges. (The Voice Kids 节目上,一个女孩在和评委说话)

输出视频:

多技术融合是趋势,“无中生有”的视频还远吗?

对于视频的生成,大家或许会有一个疑惑:AI 模型到底是根据文本去搜索、筛选了一个相符合的视频,还是完全原创地生成了一个全新的视频?这个问题有点哲学,毕加索曾经说过“Good artists copy, great artists steal(杰出的艺术家模仿,伟大的艺术家窃取)”,艺术家的艺术创作都会把他们吸收到的各方精髓进行融合、创新,所以 AI 也不能免俗。

通常,文字到视频的生成可以分为三种:第一种,基于搜索,筛选出最相符的视频(相关论文链接:https://arxiv.org/abs/2104.08860),这与在搜索引擎中查找图片和视频类似;第二种,根据文字描述搜集大量已有视频,从不同的视频中裁剪出与文字相符的部分,再进行拼接,至于转场、衔接是否丝滑,就要看模型的自身“功力”了;第三种,也是视频生成的最高境界——从无到有地生成视频,这就类似于我们经过繁多的步骤去拍摄或制作一个视频。

目前微软亚洲研究院所做的基于文字生成视频的技术 GODIVA,大致介于第二种与第三种生成方式之间——部分是由 AI 模型截取于已有视频,部分则是 AI 模型自身生成的。然而,分别以 VQ-VAE 和 GAN 为核心技术进行的文字生成视频,都存在一定的不足,但也各具优势。

“未来,VQ-VAE 和 GAN 两个技术的相互融合、优势互补将会成为文字生成视频的一个研究方向。我们也在尝试创新地结合多种 AI 技术,以提升生成视频的内容质量和长度,并希望通过聚焦视频理解与生成研究来促进 NLP 预训练模型在多模态处理和常识知识获取等前沿领域的进步,”段楠表示。

论文:GODIVA: Generating Open-DomaIn Videos from nAtural Descriptions

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

论文作者:吴晨飞、黄伦(杜克大学)、张虔熙、李镔洋、纪蕾、杨凡、GuillermoSapiro(杜克大学)、段楠

备注:GAN

GAN

生成对抗网络、GAN等技术,

若已为CV君其他账号好友请直接私信。

在看,让更多人看到  

GODIVA:只需一步,文字到视频秒级生成,微软亚洲研究院最新成果相关推荐

  1. 文字生成视频,只需一步(附论文下载)

    编者按:随着网络性能的不断提升,视频已经成为越来越多人获取信息.娱乐休闲的主要方式,与此同时也涌现出了不少视频的创作人员,他们将喜欢的人.事.物,以具有创意的视频形式呈现出来,这让和小编一样毫无视频创 ...

  2. 文字生成视频,只需一步

    [CSDN 编者按]随着网络性能的不断提升,视频已经成为越来越多人获取信息.娱乐休闲的主要方式,与此同时也涌现出了不少视频的创作人员,他们将喜欢的人.事.物,以具有创意的视频形式呈现出来,这让和小编一 ...

  3. 微信新玩法,只需三步就可以在朋友圈发送竖排文字,好看又酷炫!

    很多小伙伴喜欢用微信朋友圈来记录生活中的点点滴滴,那么如何才能让自己的动态在朋友圈中看起来与众不同呢? 今天给小伙伴们分享一个有意思的微信小程序,只需几步就能设置竖排文字,效果超棒,赶快一起学起来吧! ...

  4. 手机如何去视频水印?只需几步轻松搞定

    手机如何去视频水印?只需几步轻松搞定 很多人对于ps相关的功能有极大的误解,认为必须通过专业的软件才能够实现,而且很多专业的ps软件并不是仅仅拥有一部手机就能够使用的,还需要具备一定配置的电脑. 其实 ...

  5. c++ class struct同名_如何把C++的源代码改写成C代码?而C改C++只需一步!

    ★ 如何把C++的源代码改写成C代码? C++解释器比C语言解释器占用的存储空间要大,想要在某些特定场合兼容C++代码,同时为了节省有限的存储空间,降低成本,也为了提高效率,将用C++语言写的源程序用 ...

  6. 只需几步,用Python3实现属于自己的搜索引擎

    只需几步,用Python3实现属于自己的搜索引擎 打开浏览器,输入google.com,就能成功进入世界上最大的搜索引擎--谷歌搜索.不过,你是否想过,自己写一个搜索引擎呢?本篇教程,就是用来帮助你制 ...

  7. 还在为动态太大不能用发愁么?只需3步学会高效压缩GIF动图

    不管是做自媒体,还是上传文件到网页上,总是会遇到一些文件大小限制的情况. 如何在保障动图质量的情况下,可以最大程度上压缩动图的体积呢?别急,小编这就带你瞧瞧Mac只需3步快速压缩GIF图片,亲测将6. ...

  8. (只需两步)让ChatGPT免费帮你制作出漂亮的PPT

    目录 第一步:生成 PPT 代码 第二步:将代码转化为 PPT 还在为制作PPT而烦恼吗? 让ChatGPT来帮您! 本篇文章介绍如何利用ChatGPT一键生成PPT文字和样式,省时省力又专业! (真 ...

  9. html写的代码投屏到LED屏,LED大屏无线投屏器,只需一步,轻松实现笔记本电脑投屏显示...

    原标题:LED大屏无线投屏器,只需一步,轻松实现笔记本电脑投屏显示 笔记本电脑不用接HDMI线,也不用接音频线,能将笔记本的画面和声音投屏在LED大屏上显示吗?当然可以,您没有看错,而且操作非常方便快 ...

最新文章

  1. 大脑奖获得者Peter Dayan:生物决策机制为生存铺路,预编程是本能!
  2. 人脸识别是怎么识别人脸的?
  3. videoview全屏播放
  4. Android 混淆打包不混淆第三方jar包
  5. 网络营销激烈竞争下,网站被黑了怎么办?
  6. java-统计字符串中各字符次数
  7. 两台centos之间传送文件
  8. day8 网络编程 异常处理
  9. 最后两周!60万奖金AI攻防赛进入冲刺(附baseline代码及实操)
  10. hdfs读写流程_深度探索Hadoop分布式文件系统(HDFS)数据读取流程
  11. angular 点菜_JavaScript实现的select点菜功能示例
  12. 3. 使用Keras-神经网络来拟合非线性模型
  13. 汽车电子技术——ECU/MCU嵌入式软件开发
  14. 通过maven命令获取参数值
  15. 用VS编译出不依赖VC运行库的可独立运行的程序
  16. 液晶电视英文linux使用教程,Arduino 1602液晶屏实验和程序
  17. 计算机专业就业方向小结
  18. Android - 批量发送短信的实现方式
  19. 路由协议(实例讲解)
  20. 红石外汇|每日汇评:黄金多头在美国CPI指数之前仍保持希望

热门文章

  1. python中matlab函数图像处理,MATLAB图像处理--同态滤波(代码及示例)
  2. pytorch对卷积神经网络常见操作
  3. Apache Shiro入门
  4. mysql 工时统计_有如下数据,要统计1月3号工时不足8小时的员工姓名及总工时,该sql语句该怎么写(用的mysql哈)...
  5. linux php pdo server,linux服务器用PHP的PDO链接myql方法(php pdo)
  6. mysql floor报错_【学习笔记】MYSQL的floor报错原理分析总结
  7. linux防火墙ddos,Linux iptables防火墙详解 + 配置抗DDOS***策略实战
  8. python 字典排序 lambda_Python使用lambda表达式对字典排序操作示例
  9. python 判断时间是否大于6点_python - 在dataframe中,如何检查时间增量是否大于一分钟?_pandas_酷徒编程知识库...
  10. java新人_JAVA新人之——专有名词