关注公众号,发现CV技术之美

 写在前面

视频字幕(Video captioning)是一项具有挑战性的任务,因为它需要生成描述各种不同复杂视频的句子。现有的视频字幕模型由于忽略了视频和文本之间的差异,缺乏足够的视觉表现力。

为了弥补这一差距,在本文中,作者提出了一个基于CLIP的增强视频文本匹配网络(VTM)来改进视频字幕的CLIP4Caption框架。该框架充分利用了来自视觉和语言的信息,以学习与文本生成密切相关的视频特征。

此外,与大多数使用LSTM或GRU作为句子解码器的现有模型不同,作者采用Transformer结构的解码器网络来有效地学习远程视觉和语言依赖性。此外,作者还提出了一种新的字幕任务集成策略。

实验结果证明了本文的方法在两个数据集上的有效性:

1) 在MSR-VTT数据集上,本文的方法获得了SOTA的结果,在CIDEr中的显著增益高达10%;

2) 根据私有测试数据中,本文的方法在2021年ACM MM multimedia grand challenge:Pre-training for Video Understanding Challenge中排名第二。

 1. 论文和代码地址

CLIP4Caption: CLIP for Video Caption

论文地址:https://arxiv.org/abs/2110.06615

代码地址:未开源

 2. Motivation

描述视频内容对人类来说是一项劳动密集型任务。因此,计算机科学家们投入了大量精力将人类语言与视觉信息联系起来,开发出一种使用自然语言句子自动描述视频的系统。视频字幕技术的进步增强了各种实际应用,例如自动视频字幕、帮助视力受损者、人机交互以及改进在线视频搜索或检索。

早期的视频字幕研究使用了基于模板的方法,将预测的单词与预定义的模板对齐。S2VT提出了一种基于LSTM的序列间视频字幕模型。此后,许多序列学习方法被引入,它们采用编码器-解码器结构来灵活地生成字幕。

RecNet提出了一种重建网络,该网络利用视频到文本和文本到句子流进行视频字幕。在最近几年的研究中,一些研究人员还成功地将视觉语言(VL)预训练用于VL理解,这在图像字幕的下游任务中取得了重大进展。

上述所有方法都使用基于CNN的网络构建视频编码器,由于它们仅利用视觉模态的信息,因此缺乏足够的视觉表示。在本文中,作者提出了一个视频文本匹配网络,该网络通过一个良好的预训练CLIP模型来学习视频嵌入,充分利用视觉和语言模态。

作者首先对视频-文本匹配模型进行预训练,得到文本相关的视频嵌入,然后将这些增强的视频嵌入作为输入,在经过良好训练的transformer解码器网络中进行微调。

值得注意的是,本文的Transofrmer解码器是由预训练Uni-VL模型的部分权重初始化的。大量实验表明,在MSR-VTT数据集上,本文的方法优于SOTA的视频字幕方法。

此外,本文的方法在《ACM MM multimedia grand challenge2021:Pre-training for Video Understanding Challenge》中排名第二,在视频字幕预训练赛道中排名第一。

 3. 方法

上图展示了本文提出的用于视频字幕的CLIP4Caption的框架。作者分两个阶段训练本文的模型。

首先,作者在MSR-VTT数据集上预训练一个视频文本匹配网络,以获得更好的视觉特征 (上图的下半部分)。

然后,作者将预先训练好的匹配网络作为微调阶段的视频特征提取器 (上图的上半部分)。将嵌入的帧序列输入到视频编码器,与生成文本的解码器连接。

对于集成,作者使用不同的编码器和解码器层训练多个字幕模型,并集成所有生成的字幕文本以获得最终的强结果

3.1 Video-text matching pre-training

基于CLIP的CLIP4Clip模型在视频文本检索任务中表现出出色的性能。首先,作者在CLIP4Clip上对视频文本匹配网络(VTM)进行了预训练。CLIP4Clip以1fps的帧率从视频中提取图像帧,每个epoch的输入视频帧来自视频的固定位置。

作者将帧采样方法改进为TSN采样,该方法将视频分成K个分割,并在每个分割中随机采样一帧,从而增加有限数据集上的采样随机性。TSN采样后,输入帧由预训练的CLIP(ViT-B/32)视频编码器编码。将视频的输入视频帧表示为, 视频帧嵌入可以表示为。

文本编码器使用深度为12,宽度为512,带有八个注意头的Transformer编码器,其权重源自预训练的CLIP文本编码器。基于CLIP和CLIP4Clip,[EOS] token对Transformer最高层的激活被用作输入文本的特征表示。输入文本表示为, 相应的文本嵌入表示为。

在视频编码之后,作者使用平均池化层来聚合所有帧的嵌入,获得平均帧嵌入。然后定义相似度函数进行视频文本匹配。与CLIP4Clip相似,作者采用余弦相似性来度量联合视频帧嵌入和文本嵌入之间的相似性 , 表示如下:

视频文本匹配采用自监督的方式进行训练。给定一个batch的N个视频文本对,VTM生成N×N个相似度,优化目标是最大化成对视频文本之间的相似度和最小化未成对文本的相似度。因此,损失函数定义如下:

其中和分别表示视频到文本和文本到视频的损失函数。

作者使用ViT视频编码器的输出,一系列帧嵌入,作为视频的表示。每个帧都映射到512d的视觉特征,从而对于每个视频,生成

CLIP还能做视频字幕任务!腾讯清华提出CLIP4Caption,ACM MM2021挑战赛第二名!相关推荐

  1. 浅谈视频字幕格式---srt格式

    最近在做视频字幕这方面的工作,主要是研究一下字幕格式,搜索后发现有很多相关信息但是看起来太复杂所以这里简单总结一下,留作日后方便查阅,今天主要描述一下srt格式. 1.SRT字幕格式 每个字幕段有四部 ...

  2. ECCV2022|港中文MM Lab证明Frozen的CLIP 模型是高效视频学习者

    ECCV2022|港中文MM Lab证明Frozen的CLIP 模型是高效视频学习者 [写在前面] 视频识别一直以端到端学习范式为主--首先使用预训练图像模型的权重初始化视频识别模型,然后对视频进行端 ...

  3. [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之材质了解Materials...

    [我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之材质了解Materials 既上一篇分享了中文字幕的灯光介绍Lights后,本篇分享一下第3个已完工 ...

  4. 微信小程序实现vtt视频字幕

    微信小程序没有原生的视频字幕,由于需要,自己实现了字幕,字幕是由组件实现的,直接复制插件即可,index是引用Demo 代码地址 我在这里用了两行字幕,可控制中文和英文,如有需要,可删掉一个 1. 项 ...

  5. 怎样用计算机合并视频,怎么合并视频和字幕 格式工厂视频字幕合并教程-电脑教程...

    一般我们看到的视频都是由视频.字幕和声音组成,关于视频和声音的合并技巧,此前华强电子网也有过介绍.而对于视频和字幕合并,此前我们基本没怎么介绍过,那么怎么合并视频和字幕呢?对于一些专业的视频处理人士来 ...

  6. 做视频自媒体,选择一个合适的剪辑软件很重要,这些或许适合你

    做视频自媒体,选择一个合适的剪辑软件很重要,这些或许适合你 自媒体成为当今一个非常活跃的领域,因为自媒体不像传统媒体一样,只有官方才能够进行内容的生产和推送,自媒体让每个人都可能成为内容的创作者.随着 ...

  7. pr文字转语音有插件吗_Premiere pro 视频字幕的急速制作方法(语音转字幕)

    新时代的来临,人工智能的普及.如今你还在为视频的拍打字幕而烦恼吗?那么,是时候学习新技能了. 这里我用一个励志短片,来做个字幕生成的演示操作. 这个片子是两年前为国家电网做的一个小片子,当时人工智能还 ...

  8. 电脑怎么用照片做视频?哪个软件简单好用?3步教你轻松制作!

    现在都流行用照片随手记录生活.而把照片做成视频,又是现在刷爆抖音.朋友圈的形式.不仅有酷炫的图片切换效果,还带有动听的背景音乐,这样精美又吸睛的照片视频,肯定能让你获得超多赞.现在最方便的方式就是直接 ...

  9. 自学做视频剪辑用什么软件,5款软件推荐总有一个是你想要的

    每周一更的娜比牌vlog让vlog这个视频形式进入了大家的视野,不少好友纷纷也拿起了手机/相机跃跃欲试. 不过一番折腾下来不少同学扎心表示:我缺的是视频吗?不,是剪辑视频的软件和技术. 确实,好的后期 ...

最新文章

  1. Hyper-V 网卡 load failed
  2. 2009年总结-爱与快乐着
  3. 进阶学习(4.4) JVM GC Root 判定, 垃圾的判定
  4. html页面设置document类型,DOM-Document类型
  5. html制作棋盘,棋盘的制作方法
  6. FPGA进阶篇--SPI控制双通道16bit串行DAC8532
  7. Feign 简介和使用
  8. idea安装2019
  9. MockServer的测试思想与实现
  10. BUGKU 多次 手动注入+脚本盲注
  11. win10自动停用打印服务器,雨林木风win10系统添加打印机总是自动关闭打印服务的方法...
  12. DDD领域驱动设计实战(六)-领域服务
  13. HITB 2020:二进制漏洞挖掘仍是会议主流方向
  14. windows无法启动计算机上,windows无法启动解决方法汇总
  15. Java题-古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?
  16. Ubuntu 16.04 桌面字体太小让它大大大
  17. linux需要固态硬盘,SSD固态磁盘即将挂掉的5种征兆
  18. 华为手机怎么使用读卡器_华为手机怎么绑定门禁卡
  19. MYSQL配置初始化
  20. codeforces 546B Soldier and Badges

热门文章

  1. Gamma函数(伽玛函数)的一阶导数、二阶导数公式推导及java程序
  2. Matlab--三维散点插值成曲面
  3. [ARM] [基础][编译]ARM的浮点功能历史分类和对应的编译选项
  4. python调试工具中文版_Python调试工具(PySnooper)
  5. matlab6.1实用指南,MATLAB 6.1实用指南
  6. python软件打不开_ubuntu装python3.1.1之后出错,软件中心打不开,不能重装。尝试sudo apt-get -f install报error...
  7. python乐观锁代码实现_Django的乐观锁与悲观锁实现
  8. mysql 5.6 linux 64_Linux64位服务器编译安装MySQL5.6(CentOS6.4)
  9. MacOS 安装PHP5.6
  10. USACO12FEB Nearby Cows