论文部分内容阅读
本文研究在视频级别标注的训练集下对视频片段进行区域级别字幕生成的问题。该密集视频字幕模型包括三个部分:第一个是视觉模型部分,主要对视频帧图像进行处理,生成区域特征图;第二个部分是区域序列生成部分,负责在每个帧图像的区域中挑选合适的区域拼凑成一个区域序列,将在第6章视频字幕模型中介绍;第三个部分是语言模型部分,主要对区域特征进行编码,然后输出句子字幕。首先对Faster R-CNN密集目标检测方法进行了分析,并基于Faster R-CNN和VGG-16结构设计了一个卷积神经网络为视觉部分的模型做基础。在Faster R-CNN中分析了其在生成固定大小区域特征向量时使用的RoI Pooling层中存在的缺陷:一是从RoI区域在原特征图上进行窗口划分生成固定大小的输出特征图时,坐标上存在的精度损失问题;二是梯度无法向坐标传导的问题。通过构造一个双线性采样层来替换RoI Pooling层,解决了Ro I Pooling层中存在的这两个问题。双线性采样层通过构造一个采样网格来计算Ro I区域映射到原始特征图上时所对应的坐标,并使用双线性插值解决坐标不为整数所带来的精度损失问题。对改进后的Faster R-CNN进行预训练得到了预训练模型,这个模型之后成为密集视频字幕模型中的视觉模型部分的基础。然后基于改进后的Faster R-CNN设计了一个Lexical R-CNN视觉模型,该视觉模型使用多实例多标签学习,将视频片段的每一帧图像经Faster R-CNN处理得到的区域集合作为实例包,从句子标记中提取得到的多个词汇标签作为标签集合,在之前Faster R-CNN预训练模型基础之上进一步进行训练。通过这种多实例多标签学习方式,将句子标记和视频片段中的密集区域进行了弱关联,即将句子标记中所包含的词汇信息经过训练与区域特征进行了结合。通过设置Faster R-CNN中候选区域采样的个数参数为B=16,视频片段的每个帧图像生成16个区域。而这些区域如何生成多个合适的区域序列是一个难题。由于视频片段是由多个帧图像组成,每个图像16个区域,对于一个30帧的视频片段来说,可能的区域序列个数有1630个,这是一个巨大的搜索空间。本文将区域序列生成问题转化为一个子集选择问题,通过构建次模函数,将子集选择问题组织为次模函数最大化生成子集的问题,利用CELF贪心算法执行子集生成的过程,从而生成了多个区域序列。在模型训练的过程中,需要将生成的区域序列与句子标记进行关联配对。这里通过一个“赢者通吃”的方式,为每一个区域序列选择一个最符合其内容描述的句子标记,从而每一个视频片段得到了多个(16个)区域序列-句子标记对。这一部分也将在第6章进行介绍。区域特征以及区域序列得到之后,将它们投入到语言模型当中,生成句子字幕。语言模型采用Encoder-Decoder结构的LSTM模型。但是由于单向的LSTM模型只考虑到了上文包含的信息对下文词语产生的影响,却没有考虑下文信息也会对上文词语的选择产生影响。因此使用双向的LSTM取代了Encoder部分的单向LSTM模型。通过实验表明,基于Faster R-CNN构建的Lexical R-CNN视觉模型在密集视频字幕生成的任务中表现良好,具有较高的AP精度。但是由于Faster R-CNN属于两阶段目标检测方法,虽然检测精度较高,但是其模型固有的原因导致检测速度非常慢。实验结果显示该密集视频字幕模型完全无法达到实时视频字幕生成的要求。将在将来的学习和工作中进行一阶段目标检测方法在密集视频字幕模型中的应用,争取在保证速度的同时能够达到较高的精度。