《PDVC》论文笔记

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.hqwc.cn/news/590066.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[C#]使用OpencvSharp去除面积较小的连通域

【C介绍】 关于opencv实现有比较好的算法,可以参考这个博客OpenCV去除面积较小的连通域_c#opencv 筛选小面积区域-CSDN博客 但是没有对应opencvsharp实现同类算法,为了照顾懂C#编程同学们,因此将 去除面积较小的连通域算法转成C#代码。 方…

医学图像处理 利用pytorch实现的可用于反传的Radon变换和逆变换

医学图像处理 利用pytorch实现的可用于反传的Radon变换和逆变换 前言代码实现思路实验结果 前言 Computed Tomography(CT,计算机断层成像)技术作为如今医学中重要的辅助诊断手段,也是医学图像研究的重要主题。如今,随…

【WebSocket】快速入门 springboot中使用

WebSocket 介绍 WebSocket缺点: 服务器长期维护长连接需要一定的成本 各个浏览器支持程度不一 WebSocket 是长连接,受网络限制比较大,需要处理好重连 结论: WebSocket并不能完全取代HTTP,它只适合在特定的场景下使用…

C++ 2024-4-2 作业

1.模板类实现顺序栈 #include <iostream> #define MAX 8 using namespace std; template<typename T> class stack {T data[MAX];int top; public:stack():top(-1){}bool empty_stack();bool full_stack();void push_stack(T data);void pop_stack();void show();…

Phpstorm配置Xdebug

步骤 1、先去官网找到对应的php xdebug的版本 2、配置phpstorm断点调试 网址&#xff1a;https://xdebug.org/ 查看php对应的xdebug版本&#xff1a;Xdebug: Support — Tailored Installation Instructions 1.1查看对应php xdebug版本 全选&#xff0c;复制到目标网址 我…

Flutter中setState函数的使用注意事项

文章目录 Flutter中setState函数的使用注意事项只能在具有State对象的类中使用不要在build方法中使用将状态更新逻辑放在setState方法内部避免频繁调用使用回调函数更新状态 Flutter中setState函数的使用注意事项 setState()函数是Flutter中非常重要的一个函数&#xff0c;它用…

antd/x6-graph——实现流程图绘制功能——技能提升

效果图&#xff1a; 解决步骤1&#xff1a;安装"antv/x6": "^1.35.0" npm install antv/x61.35.0安装指定版本的antv/x6插件 解决步骤2&#xff1a;配置tools文件 在assets/js中新增一个graphTools.js文件 内容如下&#xff1a; /* antv x6图谱相关…

基于深度学习的吸烟检测系统(网页版+YOLOv8/v7/v6/v5代码+训练数据集)

摘要&#xff1a;本文深入研究了基于YOLOv8/v7/v6/v5等深度学习模型的吸烟行为检测系统&#xff0c;核心采用YOLOv8并整合了YOLOv7、YOLOv6、YOLOv5算法&#xff0c;进行性能指标对比&#xff1b;详述了国内外研究现状、数据集处理、算法原理、模型构建与训练代码&#xff0c;及…

目标跟踪——行人车辆数据集

一、重要性及意义 首先&#xff0c;目标跟踪对于个人和组织的目标实现至关重要。无论是个人职业发展、企业业务增长还是政府的社会发展&#xff0c;目标跟踪都能够帮助我们明确目标&#xff0c;并将其分解为可行的步骤和时间表。这有助于我们保持动力和专注&#xff0c;提高效…

WPF文本框TextEdit不以科学计数法显示

WPF文本框TextEdit不以科学计数法显示 一个float或者double类型的数值&#xff0c;如果小数点后0的个数≥4&#xff0c;在界面上就会自动以科学计数法显示&#xff0c; 比如&#xff1a;0.00003会显示成这样 但是很多时候我并不希望它这样显示&#xff0c;因为这样不方便编辑…

js手持小风扇

文章目录 1. 演示效果2. 分析思路3. 代码实现 1. 演示效果 2. 分析思路 先编写动画&#xff0c;让风扇先转起来。使用 js 控制动画的持续时间。监听按钮的点击事件&#xff0c;在事件中修改元素的animation-duration属性。 3. 代码实现 <!DOCTYPE html> <html lang…

[计算机效率] 格式转换工具:格式工厂

3.14 格式转换工具&#xff1a;格式工厂 格式工厂是一款功能强大的多媒体格式转换软件&#xff0c;可以实现音频、视频、图片等多种格式的转换。它支持几乎所有类型的多媒体格式&#xff0c;包括视频、音频、图片、字幕等&#xff0c;可以轻松实现格式之间的转换&#xff0c;并…