1.Unsupervised learning of video representations using LSTMsgit
方法:从先前的帧编码预测将来帧序列github
类似于Sequence to sequence learning with neural networks论文数据库
方法:使用一个LSTM编码输入文本成固定表示,另外一个LSTM解码成不一样语言网络
2.Describing Videos by Exploiting Temporal Structure分布式
该论文发表在iccv2015,是第一篇使用时间关注解决视频描述的文章。ide
方法:①使用融合时空运动特征的3D回旋网络工具
②引入attention机制 学习
3.Long-term recurrent convolutional networks for visual recognition and description 优化
方法:①使用CRFs得到活动物体工具位置的语义元组编码
②使用一层LSTM将元组翻译成句子
缺点:仅用于有限域
4.Translating videos to natural language using deep recurrent neural networks
①CNN抽取视频帧特征
②平均池化产生单一特征向量表明整个视频
③使用LSTM做为序列编码器产生基于向量的描述
缺点:①彻底忽略视频帧顺序
②未利用时间信息
5. Sequence to Sequence -Video to Text
出现问题:1.现实世界视频复杂(物件场景行为属性多样化,而且难以肯定主要内容正确用文本描述事件)
2.对视频描述须要对时间结构敏感以及容许可变长度的输入(视频帧)输出(文本)
方法:端到端序列到序列模型,使用LSTMs
模型:S2VT,学习直接将序列帧映射成序列句子。使用一层LSTM编码视频帧序列成分布式向量表示。这层单一的LSTM对输入编码并解码,容许在编码和解码时分享权重。
①LSTM对帧逐一编码,帧由CNN输出。为模拟时间活动方面,计算连续帧对之间的光流。流图像经过CNN输出给LSTM做为输出
②读取了全部帧,模型就逐句生成句子。
同时加入了另外的特征——光流图像提取的特征,由于能够更好的表示视频中的动做。
本篇详细方法:
1.LSTMs for sequence modeling
在编码阶段,给一个输入序列X(1,2,…n),LSTM计算一个隐藏状态序列(h1,h2,…hn)
解码阶段,给定输入序列X的输出序列Y定义分布为p(Y|X)
2.序列到序列视频到文本
其余方法:第一个LSTM将输入序列编码成一个固定长度向量,第二个LSTM将向量映射成序列输出。
本篇方法:一个单一的LSTM进行编码解码。
①在前几时间步里,首层LSTM得到序列帧,进行编码,二层LSTM得到隐藏表示ht联结成空的输入句子,而后编码
②当视频帧结束后,第二层LSTM会嵌入一个句子开始(BOS)标签,提示开始编码现有的隐藏表示为句子序列
3.视频和文本表示
(1)RGB frames:使用CNN输入图片提供输出为LSTMs的输入。输入视频帧为256256,裁剪为227227
本篇还移除了原始的最后一层全链接分类层,学习新的特征线性嵌入成一个500维空间。这个低维特征构成到第一层LSTM的输入
(2)Optical Flow:
①抽取经典变分光流特征
②创造流图像
③计算流强度并做为第三频道增长到流图像
④使用CNN初始化在UCF101视频集上的权重来将光流图像分类为101个活动类别。CNN的fc6层活性被嵌入到一个低于500维空间里并做为LSTM的输入。
在组合模型中,使用浅融合技术来组合流和RGB特征。
(3)文本输入
目标输出单词序列使用one-hot向量解码表示。
①经过应用线性变换嵌入单词成低于500的维空间成输入数据,而后经过反向传播学习参数。
②嵌入的单词向量链接第一层LSTM的输出ht来构成第二层LSTM的输入。
③对于LSTM输出应用softmax成完整的词汇
总结:对视频的特征提取也仅仅对每帧的图像使用CNN网络进行2D特征的提取,同时加入了另外的特征——光流图像提取的特征,由于能够更好的表示视频中的动做,整个视频encoder和decoder过程在一个LSTM模型上完成,考虑到了视频的时序特征,所以使用LSTM网络来顺序进行图像特征的输入,用隐含层来表示整个视频,再接着输入单词来逐个预测单词,以后是详细介绍。
6. Frame- and Segment-Level Features and Candidate Pool Evaluation for Video Caption Generation(2016)
这篇文章提出的方法就是用不一样的模型在不一样种类的特征上进行训练从而来生成视频的描述,再使用一个评估网络来评估生成句子和视频特征之间的关联性,选择关联性最好的为最终的视频描述。
选择的特征有三种:第一种是针对帧的特征,使用GoogleNet来提取特征;第二种是基于视频片断的特征,这里文章使用了两种特征,人工特征dense trajectories和使用C3D网络提取的特征;第二种是数据库给出的视频类别信息,一共20类。
在decoder上使用了LSTM的改进版,深层的LSTM,而且一个模型使用两种特征来进行训练,一种来init,另外一种来persist。
7.Describing Videos using Multi-modal Fusion(2016)
这篇文章使用了多种类型的特征,好比:图像特征、视频特征、环境音特征、语音特征和种类特征,将它们融合做为视频的表示。其中的的fusion network其实是单层的FC网络,即对各种型的特征进行加权平均,在输入到decoder的LSTM模型来生成描述。
8.Multi-Task Video Captioning with Video and Entailment Generation 2017 ICCV
这篇文章的主要贡献是提出了使用多任务学习来优化视频描述任务,做者认为单独使用一个模型来训练视频描述任务不能很好的提取时序特征也就是动做序列,同时他把视频描述当成了一个推演过程,经过视频特征序列来推演出对应的描述,给出前提(视频特征)得出结果(描述),做者认为单任务单模型不能很好的拟合这种推演过程。所以他提出了用多任务来弥补视频描述中缺少时序表示和逻辑推演这两方面。
这篇文章模型是没有创新的,仍是2015年提出的attention加LSTM模型,每一个任务的模型还有视频提取特征方法还有待提高。主要贡献是提出了多任务学习方法,其实我的认为仍是加入更多的模型,更多的数据从而获得更好的特征来提高效果。
9.Weakly Supervised Dense Video Captioning 2017 CVPR
接下来这篇论文就比较厉害了(同时比较复杂),能够说开启了视频描述的新篇章,基于区域序列的多视频描述生成,由于做者以为视频包含的信息不少,一句话是描述不清楚的,视频中也包含这各类对象,每一个对象有着不一样的动做,所以提出了基于区域序列的视频描述,同时这些描述要保证多样性,全方位的描述整个视频。如图,对同一个视频,先提取出不一样的区域序列,对每一个区域序列生成一句描述。至于为何是弱监督学习,由于如今的视频描述数据库没有针对区域序列的描述数据,只有视频级的描述,要用视频级的描述来学习区域级的描述,所以是弱监督学习。
参考文献: