PS:模型代码解释清明后出
原文链接:
[2108.07781v1] End-to-End Dense Video Captioning with Parallel Decoding (arxiv.org)
原文笔记:
What:
End-to-End Dense Video Captioning with Parallel Decoding
并行解码的端到端视频描述,
全文最核心的一句话:通过这样做,PDVC旨在直接利用特征级的任务间关联。
主要的核心思想是DETR在目标检测领域直接预测框,PDVC用DETR的框架直接预测事件
PDVC的突出优点以及贡献:
- 端到端
(2) PDVC不依赖启发式非极大值抑制或循环事件序列选择网络来去除冗余,直接产生大小合适的事件集;
(3)与采用两阶段方案相比,我们将增强的事件查询表示并行馈送到定位头和标题头,通过优化使这两个子任务深度关联和相互促进;
(4)提出了event counter计数器
(5)在ActivityNet Captions和YouCook2上的大量实验表明,PDVC能够产生高质量的字幕结果,在定位精度与两阶段方法相当的情况下,超过了最先进的两阶段方法。
Why:
以前的方法遵循复杂的“定位-描述”方案,存在着一些关键性问题,
细致的来说:
- Temporal Event proposal模块(事件定位模块)主要基于两种技术,
- 一种是基于锚点的一种是基于边界划分的 其余锚点的方法事先定义不同长度的锚点 之后跟一个评估网络,然而预先定义的尺度和间隔不能副高所有时序模式尤其是当视频中有不同长度的事件的时候;
- 另一种基于边界的方法(例如上礼拜看的BSN)将边界帧与高评分结合,采用一种local-to-global的方式,
上述这两种设计都需要包含手工设计(锚点的长度以及边界方法的NMS),这需要自己的手动阈值选择,参在一些误差,而且不是端到端的模式
- 这种“定位-描述”的方式从架构上存在以下问题
- 由于将字幕作为下游任务,该方案的性能高度依赖于生成的事件提议的质量
- 限制了这两个子任务的相互促进。(定位模块不能从从生成模块中学习到知识)
Challenges:
Dence Video Caption通用挑战,不多赘述
Idea:
如图所示,作者提出的PDVC实现端到端训练的核心是通过强制两个子任务共享相同的中间特征来利用任务间交互。
为了简化密集视频字幕任务,并探索定位任务 和字幕任务 之间的互相促进,作者直接检测一组具有适当时间长度的标题,其中分别表示事件的开始时间、结束时间和事件的标题。事件数量也由PDVC预测。
具体来说,作者采用具有编码器-解码器结构的deformable transformer,通过注意机制捕获帧间、事件间和事件-帧交互,并产生一组事件查询特征。然后,两个并行的预测头同时预测每个事件查询的边界和标题。事件计数器从全局视图中预测事件数量。最后,选择置信度最高的个事件作为最终的结果。本文的结构图如上图所示。
3.1. Preliminary: Deformable Transformer
Deformable Transformer是一种基于多尺度可变形注意(MSDAtt)的编码器-解码器结构。MSDAtt通过关注参考点周围的一组稀疏采样点,缓解了Transformer在处理图像特征映射时自注意收敛慢的问题。给定多尺度特征映射(其中),查询元素和标准化参考点,MSDAtt将跨L个尺度特征映射的个采样点进行加权求和,输出一个上下文向量:
其中,和分别为第个查询元素在第个尺度上的第个采样key的位置和注意权重。是key元素的投影矩阵。φ将标准化的参考点投影到第层的特征图中。为采样偏移量。和都是通过在查询元素上的线性投影得到的。
Deformable Transformer用deformable attention模块取代了Transformer编码器中的自注意模块和Transformer解码器中的交叉注意模块,实现了快速的收敛速度和更好的目标检测表示能力。
3.2. Feature Encoding
为了在视频中捕获丰富的时空特征,首先采用了一个预训练的动作识别网络来提取帧级的特征,并通过插值算法将特征图的时间维度缩放到固定长度,以方便batch处理。然后,为了更好地利用多尺度特征来预测多尺度事件,作者采用了L个时间卷积层来获得多个时间分辨率的特征序列。将多尺度帧特征及其位置编码输入Deformable Transformer编码器,提取跨尺度的帧-帧关系。输出帧级特征记为。
3.3. Parallel Decoding
解码网络包含一个 deformable transformer解码器和三个并行头,一个用于标题生成的标题头 ,一个用于用置信分数预测事件边界的定位头 ,以及一个预测事件数量的事件计数器 。解码器旨在直接用N个可学习的查询来学习事件级特征,及其对应的参考点。其中,是通过在上用带Sigmoid的线性层来预测的。输出查询特征和参考点记为。
Localization head
定位头对每个事件查询执行边界预测 和二分类 。边界预测 旨在基于参考点,预测与ground-truth的二维相对偏移量(即:中心和长度)。二分类 旨在生成每个事件查询的定位置信度。边界预测和二分类都是由多层感知机实现的。然后,就得到一组元组,,来表示检测到的事件,其中是事件查询的定位置信度。
Captioning head
作者提出了两个标题头,一个轻量级的和一个标准的。轻量级的头只是在每个时间步将事件查询输入到标准LSTM中。单词基于LSTM的隐藏层状态,用一个线性层和softmax来进行预测。
然而,轻量级标题头只接收事件级表示,缺乏语言线索和帧特征之间的交互作用。Soft Attention是视频字幕中广泛使用的模块,它可以在生成一个单词时动态地确定每一帧的重要性。传统的二阶段方法通过将注意力区域限制在事件边界内来对齐事件片段及其标题,但本文的标题头不能访问事件的边界,增加了学习语言单词和帧之间关系的优化难度。为了缓解这一问题,作者提出了可变形的Soft Attention(DSA)来强制将Soft Attention权重集中在参考点周围的一个小区域上。具体地说,当生成第t个单词时,首先基于语言查询和事件查询,从每个中生成K个采样点,其中表示LSTM中的隐藏状态。然后将K×L个采样点作为key/value,,作为Soft Attention中的query。由于采样点分布在参考点周围,因此DSA的输出特征被限制在在一个相对较小的区域上。LSTM将上下文特征、事件查询特征和前面的单词的concat结果作为输入。单词的概率是在上由带Softmax的FC层获得的。随着LSTM迭代,就能够得到一个句子,,,其中为句子长度。
Event counter
太多的事件会导致重复的标题和可读性差;检测到的事件太少意味着信息缺失和不完整的故事 。因此作者提出了事件计数器 ,用于检测视频的事件数量。它包含一个最大池化层和一个具有softmax激活的FC层,该层首先将事件查询的最显著信息压缩到一个全局特征向量,然后预测一个固定大小的向量,其中每个值表示一个特定数字的可能性。在推理阶段,预测的事件数。最终的输出是通过从N个事件查询中选择具有精确边界和良好标题的Top 个事件来获得的。每个事件查询的置信度的计算方法为:
其中是生成的单词的概率。但是,每个单词的置信度不能反映整句话的置信度,因为标题头对短的句子会有更高的置信度。因此,作者添加了一个调制因子γ来纠正标题长度的影响。µ是平衡因子。
Set prediction loss
在训练过程中,PDVC会产生一组N个事件的位置和标题。为了匹配ground truth和生成的事件,作者采用了Hungarian algorithm。匹配损失为:
其中,为预测片段和ground truth片段上的IOU,表示预测的分类得分与ground truth标签之间的焦点损失 focal loss。
最终,选择匹配的对来计算集合预测损失,即gIOU损失、分类损失、计数损失和标题损失的加权之和:
原文翻译:
略