Video Captioning 综述
1.Unsupervised learning of video representations using LSTMs
方法:从先前的帧编码预测未来帧序列
相似于Sequence to sequence learning with neural networks论文
方法:使用一个LSTM编码输入文本成固定表示,另一个LSTM解码成不同语言
2.Describing Videos by Exploiting Temporal Structure
该论文发表在iccv2015,是第一篇使用时间关注解决视频描述的文章。
方法:①使用融合时空运动特征的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
接下来这篇论文就比较厉害了(同时比较复杂),可以说开启了视频描述的新篇章,基于区域序列的多视频描述生成,因为作者觉得视频包含的信息很多,一句话是描述不清楚的,视频中也包含这各种对象,每个对象有着不同的动作,因此提出了基于区域序列的视频描述,同时这些描述要保证多样性,全方位的描述整个视频。如图,对同一个视频,先提取出不同的区域序列,对每个区域序列生成一句描述。至于为什么是弱监督学习,因为现在的视频描述数据库没有针对区域序列的描述数据,只有视频级的描述,要用视频级的描述来学习区域级的描述,因此是弱监督学习。
参考文献:
Video Captioning 综述的更多相关文章
- 视频描述(Video Captioning)调研
Video Analysis 相关领域介绍之Video Captioning(视频to文字描述)http://blog.csdn.net/wzmsltw/article/details/7119238 ...
- 视频描述(Video Captioning)近年重要论文总结
视频描述 顾名思义视频描述是计算机对视频生成一段描述,如图所示,这张图片选取了一段视频的两帧,针对它的描述是"A man is doing stunts on his bike", ...
- [ Continuously Update ] The Paper List of Image / Video Captioning
Papers Published in 2018 Convolutional Image Captioning - Jyoti Aneja et al., CVPR 2018 - [ Paper Re ...
- SCA-CNN: Spatial and Channel-wise Attention in Convolutional Networks for Image Captioning
题目:SCA-CNN: Spatial and Channel-wise Attention in Convolutional Networks for Image Captioning 作者: Lo ...
- NLP(Natural Language Processing)
https://github.com/kjw0612/awesome-rnn#natural-language-processing 通常有: (1)Object Recognition (2)Vis ...
- Awesome Deep Vision
Awesome Deep Vision A curated list of deep learning resources for computer vision, inspired by awes ...
- RNN 与 LSTM 的应用
之前已经介绍过关于 Recurrent Neural Nnetwork 与 Long Short-Trem Memory 的网络结构与参数求解算法( 递归神经网络(Recurrent Neural N ...
- Deep Learning Papers
一.Image Classification(Recognition) lenet: http://yann.lecun.com/exdb/publis/pdf/lecun-01a.pdf alexn ...
- rnn应用
Weather Recognition plays an important role in our daily lives and many computer vision applications ...
随机推荐
- Javascript绑定事件的两种方式的区别
命名函数 <input type="button" onclick="check()" id="btn"/> <scrip ...
- wireshark 分析过滤数据
1.过滤IP,如来源IP或者目标IP等于某个IP例子:ip.src eq 192.168.1.107 or ip.dst eq 192.168.1.107或者ip.addr eq 192.168.1. ...
- struts 漏洞
安装shop++ 安装成功 访问 http://127.0.0.1:8080 即网站首页 访问 http://127.0.0.1:8080/admin 即网站后台
- TensorFlow C++接口编译和使用
部分内容from: Tensorflow C++ 从训练到部署(1):环境搭建 在之前的编译中,已经编译好了tensorflow_pkg相关的wheel.现在有一个需求,需要按照C++的代码进行模型加 ...
- About Spring MVC
一.简介 1.Springmvc是什么 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解 ...
- CentOS开机启动进度条卡死问题
centos为例 一, 如下: 如果这个地方卡住了的话也许是你上次改了passwd文件,这个是其中一个情况. 如果刚刚开机就卡住了或者怎么卡住了的话在开机的读条时候摁esc显示读取的进程,根据显示的错 ...
- mysql启动失败“MySQL Daemon failed to start”
CentOS上,用命令:service mysqld restart 启动mysql报错: # service mysqld restart Stopping mysqld: [ OK ] MySQL ...
- 菜单项(Menu)的初步认识 以及 多级菜单(SubMenu)的初步认识
MainActivity.class public class MainActivity extends AppCompatActivity { private TextView textView; ...
- Hadoop_16_MapRduce_MapTask并行度(切片)的决定机制
MapTask的并行度决定map阶段的任务处理并发度,进而影响到整个job的处理速度那么,mapTask并行实例是否越多 越好呢?其并行度又是如何决定呢?Mapper数量由输入文件的数目.大小及配置参 ...
- Matlab---绘制柱状图
Matlab---绘制柱状图 目录: hist()函数 histc( )函数 bar()函数 正文: 注意区分:频率.频数分布直方图. 一. hist()函数 hist():实 ...