之前两次分别介绍了video analysis中的action recognition 以及 temporal action detection 这两个领域。这两个领域算是对视频mid-level的理解,而我最近看论文主要在关注如何去理解视频的高层语义(high-level)信息,这方面一个重要的领域就是video captioning。video captioning的任务是给视频生成文字描述,和image captioning(图片生成文字描述)有点像,区别主要在于视频还包含了时序的信息。关于video captioning,我目前还没有自己动手做过实验,所以文章内容如有问题麻烦指出~

数据库

首先介绍一下近几年最常用的两个数据库。

MSR-VTT dataset: 该数据集为ACM Multimedia 2016 的 Microsoft Research - Video to Text (MSR-VTT) Challenge。该数据集包含10000个视频片段(video clip),被分为训练,验证和测试集三部分。每个视频片段都被标注了大概20条英文句子。此外,MSR-VTT还提供了每个视频的类别信息(共计20类),这个类别信息算是先验的,在测试集中也是已知的。同时,视频都是包含音频信息的。该数据库共计使用了四种机器翻译的评价指标,分别为:METEOR, BLEU@1-4,ROUGE-L,CIDEr。

YouTube2Text dataset(or called MSVD dataset):该数据集同样由Microsoft Research提供。该数据集包含1970段YouTube视频片段(时长在10-25s之间),每段视频被标注了大概40条英文句子。

可以看出,这两个数据库都是trimmed video clip 到 sentences的翻译。而这两年的论文基本上使用这两个数据库为主,说明目前的研究还主要集中在trimmed video clip 到 sentences的翻译。

任务关键点分析

video captioning任务可以理解为视频图像序列到文本序列的seq2seq任务。在近年的方法中,大部分文章都使用了LSTM来构造encoder-decoder结构,即使用lstm encoder来编码视频图像序列的特征,再用lstm decoder解码出文本信息。这样的video captioning模型结构最早在ICCV2015的”Sequence to Sequence – Video to Text”一文中提出,如下图所示。

基于上图中的结构,构造一个encoder-decoder结构的模型主要包括几个关键点:

1.输入特征:即如何提取视频中的特征信息,在很多篇文章中都使用了多模态的特征。主要包括如下几种:

基于视频图像的信息:包括简单的用CNN(VGGNet, ResNet等)提取图像(spatial)特征,用action recognition的模型(如C3D)提取视频动态(spatial+temporal)特征

基于声音的特征:对声音进行编码,包括BOAW(Bag-of-Audio-Words)和FV(Fisher Vector)等

先验特征:比如视频的类别,这种特征能提供很强的先验信息

基于文本的特征:此处基于文本的特征是指先从视频中提取一些文本的描述,再將这些描述作为特征,来进行video captioning。这类特征我看到过两类,一类是先对单帧视频进行image captioning,将image captioning的结果作为video captioning的输入特征,另外一类是做video tagging,将得到的标签作为特征。

2.encoder-decoder构造:虽然大部分工作都是用lstm做encoder-decoder,但各个方法的具体配置还是存在着一定的差异。

3.输出词汇的表达:主要包括两类,一类是使用Word2Vec这种词向量表示,另外就是直接使用词袋表示。

4.其它部分:比如训练策略,多任务训练之类的。

论文介绍

论文介绍部分只简要介绍我最近看的几篇近两年的文章,可以大概了解这个领域的进展情况。

ACM Multimedia 2016: MSR-VTT Challenge

首先介绍一下上述数据库MSR-VTT这个竞赛当时的前5名的方案。Team指竞赛中的队伍名称,rank为竞赛的M1排名,paper为对应的方案描述,可以通过google scholar搜到。

(1) Team- Aalto; Rank-1; Paper: Frame- and Segment-Level Features and Candidate Pool Evaluation for Video Caption Generation

这个方法的思路很有趣。它先用多个基于不同特征的video caption方法(均为encoder-decoder结构)对视频生成多段描述。再构造了一个基于CNN的评价网络,如下图所示,输入为video caption方法得到的句子和视频的特征,输出为两者之间的匹配度。这个评价网络实际上是作为多个video caption模型的ensemble方法。

(2) Team- v2t_navigator; Rank-2; Paper: Describing Videos using Multi-modal Fusion

方法框架图如下图所示,可以看出是标准的encoder-decoder模式。

特征方面:这篇文章基本用上了所有能用到的多模态特征,包括视频,图像,声音,类别信息等等。

encoder:为了结合各类特征,该方法使用了单层的无激活函数(应该也可以叫线性激活?)的全连接层作为编码器。

decoder:单层单向LSTM

其他:各种用于特征提取的模型都是预先训练好的,encoder和decoder同时训练。

(3) Team- VideoLAB; Rank-3; Paper: Multimodal Video Description

方法框架图如下图所示,同样也是encoder-decoder模式,与v2t_navigator的方法比较像

特征方面:使用了视频,图像,声音,类别信息等,基本和v2t_navigator队相同

encoder and decoder: 均为lstm

(4) Team- Fudan-ILC; Rank-4; Paper:…

略。没有找到他们提交的报告,可能最后没有提交报告?但看队伍名称的组合,后面要介绍的CVPR2017上的“Weakly Supervised Dense Video Captioning” 应该就是他们团队做的。

(5) Team- ruc-uva; Rank-5; Paper:Early Embedding and Late Reranking for Video Captioning

这篇文章的方法复杂一些,在使用CNN提取了视频特征后,该方法使用了Video tagging方法提取视频的关键词,这些关键词和视频CNN特征一同作为decoder的输入。此外,tagging产生的关键词还在最后用于生成句子的排序。

2017年的几篇新论文

(1) Multi-Task Video Captioning with Video and Entailment Generation(ACL2017)

这篇文章的想法很有趣,其方法结构图如下图所示。整个框架共包括三个任务:1)Unsupervised video prediction:无监督的未来帧预测,使用video encoder 和video decoder;2) Entailment Generation: 同义句生成/句子含义生成,也就是给句子生成含义相似的新句子,使用language encoder和 language decoder;3)Video Captioning:也就是视频语义生成,使用了video encoder和language decoder。在这几个任务中,video encoder和laguange decoder的参数是共享的。在训练中,该方法在mini-batch层面对三个任务进行迭代训练(不同任务的训练次数比例由参数确定)。

(2)Weakly Supervised Dense Video Captioning(CVPR2017)

这篇文章主要研究的是dense video captioning问题,dense video captioning是要产生对一段视频所有可能的描述。本文提出了一种弱监督方法,Multi-instance multi-label learning(MIMLL) 。MIMLL直接从视频-句子 数据(这样的数据对于该问题算是弱监督的)中学习每个视频图像区域对应的描述词汇向量。之后将这些词汇描述向量结合起来作为encoder-decoder的输入,实现video captioning。在MSR-VTT数据集中,该方法是目前的state-of-the-art 方法。


小结与讨论

从以上的论文介绍可以看出,基于基础的encoder-decoder结构,不同的方法在不同的方面对提高模型效果进行了探索,包括多模态特征,多任务学习等等。该领域现在也处在快速发展阶段,新的方法层出不穷,改进模型的核心思想我认为还是如何去更好的挖掘视频中局部的语义信息,并将其有效的组合成自然语言。同时,我觉得这个方向也是很有前景的一个方向,给视频生成文字描述有很多的应用场景。

原文发布时间为:2017-05-05

本文作者:林天威

本文来自云栖社区合作伙伴极市网,了解相关信息可以关注极市网。

Video Analysis 相关领域解读之Video Captioning(视频to文字描述)相关推荐

  1. MPEG-CDVA标准概述论文粗译 Compact Descriptors for Video Analysis:the Emerging MPEG Standard

    文章翻译只是为了更好地理解论文--英语水平欠佳,谨慎参考. 面向视频分析的紧凑视觉描述子 Abstract 文章对正在制定中的MPEG-CDVA标准做了概述.MPEG-CDVA标准旨在定义标准的二进制 ...

  2. [视频相关1]页面中插入视频的方法---video/embed/iframe总结

    1. video标签 当前主流的方法当然是HTML5中的video标签了,但是 当前,video 元素只支持三种视频格式: Ogg = 带有 Theora 视频编码和 Vorbis 音频编码的 Ogg ...

  3. 计算机视觉、机器学习相关领域论文和源代码大集合--持续更新……(转载)

    计算机视觉.机器学习相关领域论文和源代码大集合--持续更新-- zouxy09@qq.com http://blog.csdn.net/zouxy09 注:下面有project网站的大部分都有pape ...

  4. [转载]计算机视觉、机器学习相关领域论文和源代码

    十二星女面对婚外情会说不吗? 新浪首页登录注册 苍茫大地的博客 http://blog.sina.com.cn/handphone [订阅][手机订阅] 首页博文目录图片关于我 个人资料 苍茫大地 微 ...

  5. 计算机视觉、机器学习相关领域论文和源代码大集合_拔剑-浆糊的传说_新浪博客...

    http://blog.csdn.net/zouxy09/article/details/8550952 顶] 计算机视觉.机器学习相关领域论文和源代码大集合--持续更新-- 计算机视觉.机器学习相关 ...

  6. jquery video全屏_用videojs让HTML5视频在移动端全屏的方法

    用videojs让HTML5视频在移动端全屏的方法 文章标签: 视频 : 04-10 19:23 : 1859次 : 0条 1赞 点赞 简介在使用videojs插件时,如何让HTML5的视频在移动端里 ...

  7. AI相关领域期刊会议列表

    相关领域重要会议 ACL, the Association for Computational Linguistics. SIGIR, the ACM Special Interest Group o ...

  8. Imagen Video Phenaki:谷歌提出的新AI视频生成技术

    本文来源  机器之心   编辑:张倩.杜伟  未经授权 不得二次转载 谷歌.Meta 等科技巨头又挖了一个新坑. 在文本转图像上卷了大半年之后,Meta.谷歌等科技巨头又将目光投向了一个新的战场:文本 ...

  9. html5 video修改默认样式,HTML5中将video设置为背景的方法

    主要用到了video标签,css样式,原理是先将video标签利用position:fixed;使video标签脱离文档流,在将他的z-index设置为最低的,比如-9999.再插入的内容自然就覆盖在 ...

最新文章

  1. python mysql 错误处理_Python-MySQL中的错误处理
  2. React 正常渲染后端返回的HTML代码
  3. c语言判断是否是回文字符串
  4. jquery在线预览PDF文件,打开PDF文件
  5. 浅谈微博营销如何吸引流量
  6. 两个条件一个为false就运行_【上古十大神马,其中一个以虎为食,一个诛杀相柳,两个龙王之子】缅怀金庸—射雕英雄传200...
  7. java匿名内部类范例
  8. idea生成类注释和方法注释的方法
  9. 谷歌FLASH无法添加保存网站
  10. 六轴传感器使用学习记录
  11. 2512 4.7K 5%贴片电阻识别方法
  12. 综述论文要写英文摘要吗_论文写作指导:本科学位毕业论文写作必备技巧
  13. allegro不规则焊盘制作
  14. 服务器系统漏洞rc4,服务器如何修复旧加密算法漏洞
  15. C# 调用Office Excel 接口方法Quit(),但是Excel进程不退出的解决办法
  16. 喜报!中国工商银行长春分行荣获吉林省“巾帼建功”先进集体称号
  17. 与微型计算机运算速度无关的是,四川大学《计算机应用基础0006》17春在线作业1...
  18. vcruntime140_1.dll无法继续执行代码,vcruntime140_1.dll丢失修复方法
  19. 程序访问中什么是临界区
  20. CSR8675学习笔记:从外部Flash读取bin文件

热门文章

  1. ORACLE11G在LINUX6下安装及报错 C [ld-linux-x86-64.so.2+0x14d70]的解决方法
  2. 《TCP/IP Sockets编程(C语言实现) (第2版)》 代码下载(链接以及文件打包)
  3. 同样可以建站,云服务器和虚拟主机的区别在哪?
  4. AngularJS第六课(路由)
  5. 阿里研究院:解读互联网经济十大议题
  6. NUC1214 回文素数
  7. 9个心理学研究,让你学习更高效
  8. [翻译] 物理引擎javascript实现
  9. Zabbix 神器——自动发现
  10. 通过ODBC连接Oracle