《PDVC》论文笔记

news/2024/5/14 7:46:14

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的突出优点以及贡献:

  1. 端到端

(2) PDVC不依赖启发式非极大值抑制或循环事件序列选择网络来去除冗余,直接产生大小合适的事件集;

(3)与采用两阶段方案相比,我们将增强的事件查询表示并行馈送到定位头和标题头,通过优化使这两个子任务深度关联和相互促进;

(4)提出了event counter计数器

(5)ActivityNet CaptionsYouCook2上的大量实验表明,PDVC能够产生高质量的字幕结果,在定位精度与两阶段方法相当的情况下,超过了最先进的两阶段方法。

Why:

以前的方法遵循复杂的定位-描述方案,存在着一些关键性问题,

细致的来说:

  1. Temporal Event proposal模块(事件定位模块)主要基于两种技术,
  1. 一种是基于锚点的一种是基于边界划分的 其余锚点的方法事先定义不同长度的锚点 之后跟一个评估网络,然而预先定义的尺度和间隔不能副高所有时序模式尤其是当视频中有不同长度的事件的时候;
  2. 另一种基于边界的方法(例如上礼拜看的BSN)将边界帧与高评分结合,采用一种local-to-global的方式,

上述这两种设计都需要包含手工设计(锚点的长度以及边界方法的NMS),这需要自己的手动阈值选择,参在一些误差,而且不是端到端的模式

  1. 这种“定位-描述”的方式从架构上存在以下问题
  1. 由于将字幕作为下游任务,该方案的性能高度依赖于生成的事件提议的质量
  2. 限制了这两个子任务的相互促进。(定位模块不能从从生成模块中学习到知识)

Challenges

Dence Video Caption通用挑战,不多赘述

Idea

如图所示,作者提出的PDVC实现端到端训练的核心是通过强制两个子任务共享相同的中间特征来利用任务间交互。

为了简化密集视频字幕任务,并探索定位任务 和字幕任务 之间的互相促进,作者直接检测一组具有适当时间长度的标题,其中分别表示事件的开始时间、结束时间和事件的标题。事件数量也由PDVC预测。

具体来说,作者采用具有编码器-解码器结构的deformable transformer,通过注意机制捕获帧间、事件间和事件-帧交互,并产生一组事件查询特征。然后,两个并行的预测头同时预测每个事件查询的边界和标题。事件计数器从全局视图中预测事件数量。最后,选择置信度最高的个事件作为最终的结果。本文的结构图如上图所示。

3.1. Preliminary: Deformable Transformer

Deformable Transformer是一种基于多尺度可变形注意(MSDAtt)的编码器-解码器结构。MSDAtt通过关注参考点周围的一组稀疏采样点,缓解了Transformer在处理图像特征映射时自注意收敛慢的问题。给定多尺度特征映射(其中),查询元素和标准化参考点,MSDAtt将跨L个尺度特征映射的个采样点进行加权求和,输出一个上下文向量:

其中,和分别为第个查询元素在第个尺度上的第个采样key的位置和注意权重。是key元素的投影矩阵。φ将标准化的参考点投影到第层的特征图中。为采样偏移量。和都是通过在查询元素上的线性投影得到的。

Deformable Transformerdeformable 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结果作为输入。单词的概率是在上由带SoftmaxFC层获得的。随着LSTM迭代,就能够得到一个句子,,,其中为句子长度。

Event counter

太多的事件会导致重复的标题和可读性差;检测到的事件太少意味着信息缺失和不完整的故事 。因此作者提出了事件计数器 ,用于检测视频的事件数量。它包含一个最大池化层和一个具有softmax激活的FC层,该层首先将事件查询的最显著信息压缩到一个全局特征向量,然后预测一个固定大小的向量,其中每个值表示一个特定数字的可能性。在推理阶段,预测的事件数。最终的输出是通过从N个事件查询中选择具有精确边界和良好标题的Top 个事件来获得的。每个事件查询的置信度的计算方法为:

其中是生成的单词的概率。但是,每个单词的置信度不能反映整句话的置信度,因为标题头对短的句子会有更高的置信度。因此,作者添加了一个调制因子γ来纠正标题长度的影响。µ是平衡因子。

Set prediction loss

在训练过程中,PDVC会产生一组N个事件的位置和标题。为了匹配ground truth和生成的事件,作者采用了Hungarian algorithm。匹配损失为:

其中,为预测片段和ground truth片段上的IOU,表示预测的分类得分与ground truth标签之间的焦点损失 focal loss

最终,选择匹配的对来计算集合预测损失,即gIOU损失、分类损失、计数损失和标题损失的加权之和:

原文翻译:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.tangninghui.cn.cn/item-12733.htm

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

redis的键值基本操作

设置数据 首先设置键值对 删除age,会得到nil,表示这个键已经被删除掉了 判断age键还在不在 查找所有键 查找所有以me结尾的键 删除所有键 redis的键和值都是二进制存储的,所以默认不支持中文。 但是,我们重新登录客户端&#xff…

豆瓣9.7,这部Java神作第3版重磅上市!

Java 程序员们开年就有重磅好消息,《Effective Java 中文版(原书第 3 版)》要上市啦! 该书的第1版出版于 2001 年,当时就在业界流传开来,受到广泛赞誉。时至今日,已热销近20年,本书…

uniapp选择退出到指定页面

方法一:返回上n层页面 onUnload(){uni.navigateBack({delta:5,//返回上5层})},方法二:关闭当前页面,跳转到应用内的某个页面。 uni.redirectTo({url: "../home/index"//页面地址}) 方法三:关闭所有页面,打…

OpenHarmony实战:轻量级系统之启动恢复子系统移植

启动恢复子系统负责在内核启动之后到应用启动之前的系统关键进程和服务的启动过程的功能。 移植指导 针对轻量系统主要提供了各服务和功能的启动入口标识。在SAMGR启动时,会调用bootstrap标识的入口函数,并启动系统服务。 适配完成后,调用…

深度学习学习日记4.7

1.梯度下降 w 新 w旧 - 学习率梯度 训练的目的就是让 loss 减小 2.前向传播进行预测, 反向传播进行训练(每一个参数通过梯度下降进行更新参数),(1前向传播 2求 loss 3反向传播 4梯度更新) 能够让损失下降的参数,就是更好的参数。 损失…

分布式链路追踪与云原生可观测性

分布式链路追踪系统历史 Dapper, a Large-Scale Distributed Systems Tracing Infrastructure - Google Dapper,大规模分布式系统的跟踪系统大规模分布式系统的跟踪系统:Dapper设计给我们的启示 阿里巴巴鹰眼技术解密 - 周小帆京东云分布式链路追踪在金…