视频描述(VideoCaptioning)近年重要论⽂总结
视频描述
顾名思义视频描述是计算机对视频⽣成⼀段描述,如图所⽰,这张图⽚选取了⼀段视频的两帧,针对它的描述是"A man is doing stunts on his bike",这对在线的视频的检索等有很⼤帮助。近⼏年图像描述的发展也让⼈们思考对视频⽣成描述,但不同于图像这种静态的空间信息,视频除了空间信息还包括时序信息,同时还有声⾳信息,这就表⽰⼀段视频⽐图像包含的信息更多,同时要求提取的特征也就更多,这对⽣成⼀段准确的描述是重⼤的挑战。
⼀、long-t erm Recurrent Convolut i onal N et w orks for V i sual Recogni t i on and
D escri pt i on --- 2015.2.17
1. 在本⽂中提出了Long-term Recurrent Convolutional Network (LRCN)模型,包含了⼀个特征提取器(例如CNN),以及时序学
习器,该模型不是专门⽤于视频描述的,该⽂章使⽤该模型的三种类型⽤在不同的任务上⾯。
2. 帧画⾯通过特征变换参数(特征提取器)得到⼀个固定长度向量来表⽰该帧画⾯的特征,在得到帧画⾯的特征值后输⼊到序列模型
(例如LSTMs),然后经过softmax进⾏选词:
3. 该模型可以适应多种模式:
1. Sequential inputs, fifixed outputs: many-to-one的模型,实现⽅式是对于序列模型,在最后步骤合并之前步长所学习到的
特征成为⼀个总的特征y,这样就得到了⼀个输出。
2. Fixed inputs, sequential outputs: one-to-many的模型,实现⽅式是在所有序列模型的输⼊步长都使⽤同⼀个x,由于个步
长都会得到⼀个输出,因此得到了⼀个序列的输出。
3. Sequential inputs and outputs: many-to-many的模型,实现⽅式是采⽤encoder-decoder的⽅法,在encoder的时候,
每个步骤依次输⼊不同的x,最终encoder会的到⼀个固定长度的向量,然后输⼊到decoder中,产⽣不固定长度的输出。
4. 训练⽅法:
1. 使⽤随机梯度下降⽅法对模型进⾏训练,使输出y落在真实单词位置的可能性最⼤,也就是最⼤似然⽅法。
2. 采⽤交叉熵公式:
3. 使⽤负对数的⽅法,变成最⼩化问题。
5. 指标:
1. Activity recognition
2. Image description
3. Video description:
在视频描述⽅⾯使⽤了模型如下:
主要在LSTM之前使⽤了CRF对视频进⾏处理,得到如下评估数据(BLEU4):
⼆、Translat i ng V i deos t o N at ural L anguage U si ng D eep Recurrent N eural N et w orks --- 2015.4.30
模型介绍:
先对所有视频帧画⾯使⽤卷积神经⽹络进⾏图⽚特征提取,获取fc7层的特征向量(4096固定长度),然后将所有帧画⾯提取到的特征向量做meanpooling得到⼀个最终向量(类似图⽚描述中的输⼊向量)。在LSTMs⽹络中,每个步长都输⼊同样的向量,并在每个步长都得到LSTMs的⼀个输出作为当前输出单词的编码,直到输出结束符为⽌。
在本⽂中提到,在Donahue et al. (2014)提出两层的LSTM⽐四层或者单层的LSTM效果好。
对于单词的处理⽅式:one-hot编码
训练⽅法:
采⽤最⼤似然法,优化参数的值,来最⼤化⽣成正确句⼦的概率。 given the corresponding video V and the model parameters θ,对应的交叉熵公式:
上式是对于整个句⼦做交叉熵,在本⽂中还可以对每个单词做交叉熵后相加得到损失值:
对于将LSTM的输出映射到one-hot词库还是使⽤softmax函数:
评估指标:
数据集使⽤:MSVD
指标:
在本⽂中去掉了mean pooling,直接输⼊单个帧特征到模型中,查看mean pooling的影响,最终效果:
相对没有mean pooling差。
总结:
缺点:
1. 使⽤mean pooling对所有视频帧整合,丢失了视频序列上的部分信息。
三、S equence t o S equence – V i deo t o Text --- 2015.10.19
模型介绍:
本⽂是早期经典⽂章,思路相对简单,如图所⽰,对视频的特征提取也仅仅对每帧的图像使⽤CNN⽹络进⾏2D特征的提取,同时加⼊了另外的特征——光流图像提取的特征,因为可以更好的表⽰视频中
的动作,整个视频encoder和decoder过程在⼀个LSTM模型上完成,考虑到了视频的时序特征,因此使⽤LSTM⽹络来顺序进⾏图像特征的输⼊,⽤隐含层来表⽰整个视频,再接着输⼊单词来逐个预测单词,之后是详细介绍。
本⽂提出的模型,对于视频抽取帧画⾯之后,使⽤训练好的VGG16模型对帧画⾯进⾏特征提取,得到fc7层的输出向量(4096长度),然后按视频帧顺序依次输⼊到LSTMs⽹络中,在输⼊过程中不产⽣输出,做encoding操作,并将第⼀层得到的输出向量输⼊到第⼆层LSTM,当所有视频帧输⼊完毕,开始获取第⼆层LSTM的输出(也就是对应的描述句⼦单词),直到获得为⽌。
训练⽅法:
采⽤最⼤似然法,优化参数的值,来最⼤化⽣成正确句⼦的概率,对于第⼆层LSTM的输出,经过softmax到one-hot词库中取词,并通过交叉熵的⽅式来计算误差值:
评估指标:
使⽤视频数据集:MSVD
总结:
由于是早期的⽂章,忽略了很多东西,⽐如在image caption中有显著贡献的attention机制,更好的时序特征提取技术,其他的特征⽐如语⾳、背景⾳等特征。可以说这篇⽂章极⼤的依赖LSTM⽹络本⾝的性质,时序特征也就是image feature之间的关联也靠模型⾃动学习,包括最终的视频特征和之后单词之间的关联也都靠LSTM模型⾃动学习,作者只加了⼀个光流图像特征进⾏加权平均。
四、V i deo P aragraph Capt i oni ng U si ng Hi erarch i cal Recurrent N eural N et w orks ---2016.4.6
模型介绍:
1. 在之前的⽂章中都是⽣成⼀句话对视频描述。在这篇⽂章中提出了⽣成对⽂章的长⽂本描述,包含多个句⼦的段落,这就要求能对视
频提取更详细的特征以及语句之间关系的学习。还有⼀点不同的是在训练的时候,句⼦也会作为训练数据输⼊到模型中学习语句之间的关系。
2. 整个模型分为句⼦⽣成器和段落⽣成器:
1. 句⼦⽣成器:对⼀个句⼦所有单词做embedding得到⼀个低维(512)的表⽰,按顺序输⼊到RNNⅠ(GRU,512)中,得到
整个句⼦的表⽰h和最后的⼀个state,然后将h和所有视频帧画⾯的特征⼀起输⼊到两个Attention中,第⼀个Attention将视频特征v和h转换成低维表⽰(32到256长度),然后第⼆个Attention将其再压缩成⼀个标量来表⽰这⼀特征的权重,两个
Attention公式如下:
2. 然后将得到的所有特征对应的权重计算softmax:
最后得到
来作为每个特征的最终权重。
3. 在 weighted averaging层(temporal mean pooling的复杂版本)使⽤下式计算特征总和:
4. 以上到最终特征向量的获得,整个流程在模型中存在多个,也就是最后获得多个u来表⽰特征。每个特征通道通过学习不同的参数来学
习特征的偏差值。在本⽂中使⽤两个通道,⼀个来提取视频的物体特征,⼀个来提取动作⾏为特征。
5. the multimodal layer:将weighted averaging得到的u(两个通道就有两个u)以及RNNⅠ的h输⼊到multimodal layer得到⼀个
1024维的表⽰:
在此为了降低过拟合,使⽤了0.5⽐例的dropout。
要注意的是:在1中的式⼦是使⽤h的t-1时刻,在这⾥使⽤的是h的t时刻,初步判断是RNNⅠ的到的h的t-1时刻是整个句⼦的最后表⽰,输⼊到段落⽣成器后得到⼀个新的输⼊导致RNNⅠ往前⼜⾛了⼀步,所以这时候是h的t时刻。
6. 在5步得到1024维表⽰后,通过⼀个hidden层(512*N)得到⼀个与词库单词向量长度⼀样的输出,然后通过softmax做归⼀化,
最后通过MaxID(在向量中最⼤的值)得到对应one-hot的单词。
7. 段落⽣成器:在RNNⅠ处理完⼀个句⼦的时候,段落⽣成器才开始计算。通过embedding average对当前句⼦单词做计算得到更紧
凑的表⽰,以及处理完⼀个句⼦的RNNⅠ的最后状态state,作为句⼦的紧凑表⽰。
8. 在sentence Embedding中将7中得到的两个表⽰连接在⼀起,得到⼀个完整的句⼦表⽰(512维),并将其输⼊到RNNⅡ(GRU)
中。
9. paragraph state layer:使⽤该单元将RNNⅡ的隐藏状态以及sentence Embedding得到的句⼦表⽰整合成⼀个最终的句⼦表⽰输
⼊到RNNⅠ中作为其处理下⼀个句⼦的初始化隐藏状态。
训练⽅法:
1. 本⽂⽤随机初始化的参数从零开始训练分层框架中的所有组件。
2. 本⽂利⽤时间反向传播(BPTT)[53]计算参数的梯度,⽤随机梯度下降(SGD)寻最优解。
3. 为了更好地收敛,本⽂根据RMSPROP算法[44]将梯度除以其最近⼤⼩的运⾏平均值。为了避免RNN训练过程中常见的问题:梯度爆
炸,我们设置了⼀个⼩的学习速率10E-4。
4. ⽣成单词的概率:![1567136475507]
输⼊包含视频特征,在此之前输⼊的句⼦,当前句⼦单词前的所有单词。
5. 句⼦⽣成损失函数:
单词⽣成的损失之(交叉熵)之和除以句⼦的单词数量。
6. 段落⽣成损失函数:
所有句⼦⽣成的损失值之和除以句⼦数量。
评估指标:
1. 使⽤YouTubeClips训练集,该数据集由从youtube下载的1,967个短⽚(平均9秒)组成。
2. 使⽤TACoS-MultiLevel训练集:该数据集包含185段长视频(平均6分钟),拍摄于室内环境。
总结:
1. ⽐较之前提出了⽣成视频长句⼦描述的⽅案,对视频的特征提取需要更⾼的要求以及对段落⽣成的实现。
2. Attention不仅得到时间上的关系,还得到空间上的关系(本⽂还通过计算视频帧上不同位置的多图像块的特征来将空间注意⼒集中在
⼀起,并将这些特征汇集在⼀起)。
五、D ense-Capt i oni ng Event s i n V i deos --- 2017.5.2
模型介绍:
训练⽅法:
评估指标:
总结:
六、V i deo Capt i oni ng vi a Hi erarch i cal Rei nforcem ent L earni ng --- 2018.3.29
模型介绍:
1. 遵循encoder-decoder框架,使⽤CNN加上RNN来对视频和语句信息进⾏encoder,使⽤HRL Agent来decoder。
2. 使⽤预训练好的CNN模型来加速训练,使⽤预训练好的Internal Critic模块。
3. 使⽤CNN对视频帧进⾏特征提取后给两层LSTM,分别产⽣h1和h2的输出。将h2和Attention的输出c2输⼊到Manager模块
(RNN)产⽣gate值,将gate,Worker模块上⼀个输⼊a以及Attention(使⽤到h1)的输出c1输⼊到Worker模块来产⽣单词(⼀个gate值对应多个单词),产⽣单词的动作也叫action,将action输⼊到Environment来获得这次得到单词的奖励,同时也将action 输⼊给Internal Critic模块来判断是否需要Manager模块给出新的gate信号以及是否达到了语句的结尾。
4. 获得⼀个由Manager产⽣的gate信号,Worker会产⽣不定长的句⼦段落。
训练⽅法:
1. reinforcement learning agent在最开始的时候使⽤交叉熵来做最初策略:
之后再使⽤6的⽅法。
2. 在增强学习中的Reward的给出由评估⽅法(CIDEr, BLEU or METEOR)给出,Worker模块本次⽣成的单词(action)的Reward
由之前产⽣的单词加本次单词的CIDEr得分减去之前产⽣的单词CIDEr得分,具体公式:
所以Worker得到的Reward是:
⽽Manager得到的Reward是:
3. 训练Manager和Worker的时候是异步的:在训练Manager的时候固定Worker的参数,训练Worker的时候固定Manager的参数。评估指标:
1. 使⽤MSR-VTT数据集(10,000 video clips (6,513 for training, 497 for validation, and the remaining 2,990 for testing):
2. 使⽤Charades Captions 数据集( 9,848 videos of daily indoors activities):
总结:
1. 使⽤了增强学习来实现视频描述,实现长⽂本的描述,能描述长视频。
七、Move F orw ard and Tell: A P rogressi ve Generat or of V i deo D escri pt i ons ---
2018.7.26
模型介绍:
1. encoder-decoder的模型:
2. 单纯的⼀个句⼦不⾜以描述含有复杂信息的视频。
3. ⽣成多句⼦模型:
1. 句⼦之间缺乏连贯性和⾼度冗余。
2. 原因:
1. ⽆法将给定视频的时间结构与所⽣成的描述的叙事结构对齐
2. 忽略句⼦之间的依存性
4. 本⽂提出⼀个LSTM的变种,来学习时间上和语⾔上的结构----渐进式⽣成
5. 使⽤RNN⽹络对齐了视频时间结构和⽣成的⽂字结构;基于视频时间结构以及已经产⽣的单词序列来⽣成下⼀个单词,保证⽣成句⼦
之间的连贯性;通过强化学习来进⾏学习,使⽤句⼦的Reward和段落Reward。
decoder6. Event Localization:使⽤论⽂ Temporal action detection with structured segment networks. In: ICCV (2017) 中的⽅法对
整个视频进⾏事件定位和剪辑,之后也是通过刚才论⽂中的⽅法计算帧的重要性的得分,最终得到⼀个剪辑的集合,每个剪辑⾥⾯包含事件,⽤于选择视频中具有独⽴事件的⽚段,
7. Progressive Event Selection and Captioning:包含两个LSTM:
1. Event Selection :第⼀个LSTM⽤于挑选具有独⽴事件且不与之前事件重叠的⽚段,以免⽣成的描述存在⼤量冗余:
pt表⽰该⽚段存在相关和独特的信息的概率,σ是超参数,当概率⾼于整个阈值的时候,该⽚段就成为将要⽣成描述的⽚段。
输⼊的Vt是视频帧画⾯经过时态分段⽹络(TSN)提取的视觉特征。rt是距离特征,类似于图像掩码,由⼀个⼆进制掩码表⽰,该掩码指⽰该⽚段相对于整个持续时间的规范化时间跨度。ckt是已经输出的句⼦的特征(⽣成前⼀句的字幕⽣成⽹络的最后⼀个潜在状态),这样在进⾏事件选择的时候也考虑到已经说出的话。
2. Caption Generation :第⼆个LSTM使⽤这些具有独⽴事件的⽚段,得到对于该⽚段事件的单句描
述:
$$
g_l^{(k)}表⽰在描述第k个事件时候的第l步。 u_l^{(k)}表⽰事件的⼀个次区域的视觉特征。 w_{l-1}^{(k)}表⽰上⼀步产⽣的单词。
$$
8. 将第⼆层LSTM输出的所有句⼦拼接成为长的段落来表⽰对整个长视频内容进⾏描述。
训练⽅法:
1. event localization:根据这篇Temporal action detection with structured segment networks⽂章的训练⽅法来训练。
2. caption generation:通过两个阶段来训练该模块,初始有监督学习(交叉熵函数),之后使⽤增强学习,在使⽤增强学习的时
候,Reward有两种级别,第⼀种是句⼦级别:当⽣成⼀个句⼦的时候,使⽤CIDEr来计算句⼦的Reward;第⼆种是段落级别,当⽣成完整段落的时候,使⽤CIDEr来计算整个段落的Reward。
3. event selection:固定caption generation的参数,使⽤其输出来训练event selection模块。本⽂以监督的⽅式训练这个⽹络。
1. 标签由训练集提供e1,e
<,使⽤event localization模块获得⽚段集合,对于标签e1,在集合中到与之重叠帧最多的⽚段,
该⽚段就是⼀个独⽴事件,y=1。
2. 训练集:保留所有y=1的⽚段,随机抽取相同数量的y=0的⽚段。
评估指标:
1. 数据集: ActivityNet Captions dataset,包含10009个视频⽤于训练,4917个视频⽤于验证。平均每个视频有三分钟长度。
总结:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论