《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.mzph.cn/news/790380.shtml

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

相关文章

蓝牙BLE开发——如何实时监听蓝牙适配器状态变化及回调

uniapp 监听蓝牙适配器状态变化事件 近年来开发项目中接触比较多的与硬件设备对接,通过蓝牙与设备通讯;开发 App、微信小程序,今天分享其中如何监听蓝牙适配;近期比较忙,不定时更新,有时间会分享 uniapp开发…

全球范围内2nm晶圆厂建设加速

随着人工智能浪潮席卷而来,先进制程芯片的重要性日益凸显。当前,3nm工艺节点是行业内最先进的节点。与此同时,台积电、三星、英特尔、Rapidus等厂商正积极布局建设2nm晶圆厂。台积电与三星此前计划于2025年量产2nm芯片,而Rapidus则…

02-JDK新特性-Stream流

Stream流 什么是Stream流 Stream流是Java 8中的一个新特性,它提供了一种处理集合和数组的方式。Stream流可以让我们以一种更加简洁、高效、可读性更强的方式来处理数据。 Stream流可以用于过滤、映射、排序、聚合等操作,它可以让我们避免使用循环和条件…

实验2:CLI的使用与IOS基本命令

1、实验目的 通过本实验可以掌握: CLI的各种工作模式个CLI各种编辑命令“?” 和【Tab】键使用方法IOS基本命令网络设备访问限制查看设备的相关信息 2、实验拓扑 CLI的使用与IOS基本命令使用拓扑如下图所示。 3、实验步骤 (1)CLI模式的切…

openwrt开发包含路由器基本功能的web问题记录

1.这里的扫描怎么实现的先找一些luci代码,在openwrt21版本后,luci用js替换了lua写后台,先找一些代码路径 在openrwt15这部分代码是在这个目录下 feeds/luci/modules/luci-mod-admin-full/luasrc/view/admin_network/wifi_join.htm 里面包含…

自然语言处理NLP概述

大家好,自然语言处理(NLP)是计算机科学领域与人工智能领域中的一个重要方向,其研究能实现人与 计算机之间用自然语言进行有效通信的各种理论和方法。本文将从自然语言处理的本质、原理和应用三个方面,对其进行概述。 一、NLP的本质 NLP是一…

[HackMyVM]靶场Boxing

难度:Medium kali:192.168.56.104 靶机:192.168.56.143 端口扫描 ┌──(root㉿kali2)-[~/Desktop] └─# nmap 192.168.56.143 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-04-03 19:25 CST Nmap scan report for staging-env.boxing.hmv (192.168.56.143) Host …

v-text 和v-html

接下来&#xff0c;我讲介绍一下v-text和v-html的使用方式以及它们之间的区别。 使用方法 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-widt…

计算机网络_工具

从你的电脑到指定ip网站&#xff0c;用时3ms ttl TTL Time To Live 数据包存活时间 指一个数据包在经过一个路由器时&#xff0c;可传递的最长距离&#xff08;跃点数&#xff09;。每当数据包经过一个路由器时&#xff0c;其存活次数就会被减一 256 - 249 7&…

软件设计师28--SQL语言

软件设计师28--SQL语言 考点1&#xff1a;普通查询SQL语言SQL语言 - 查询例题&#xff1a; 考点2&#xff1a;分组查询SQL语言 - 查询例题&#xff1a; 考点3&#xff1a;权限控制SQL语言例题&#xff1a; 考点1&#xff1a;普通查询 SQL语言 SQL语言 - 查询 例题&#xff1a;…

远程登录服务器(ubuntu20.04)在自己账号下的虚拟环境(python3.6)安装Jupyter并连接pycharm使用

参考&#xff1a;Jupyter notebook/lab安装及远程访问 1、安装jupyter pip install notebook遇到的问题&#xff1a; &#xff08;1&#xff09;运行这个指令之前尝试了好多方法都安不上 此前还尝试了更新pip之类的&#xff0c;大家安不上也可以先更新pip试试。 &#xff0…

职场聚餐:搭建沟通桥梁,促进团队凝聚力

在职场中&#xff0c;聚餐作为一种非正式的社交活动&#xff0c;不仅能够增进同事间的了解&#xff0c;还有助于提升团队凝聚力。本文将探讨职场聚餐的重要性以及如何组织一场成功的职场聚餐。 一、职场聚餐的重要性 1. 搭建沟通桥梁&#xff1a;职场聚餐为员工提供了一个轻松愉…

电商好评语整理与优化:让繁琐工作变得轻松高效

在电子商务领域&#xff0c;客户的好评是店铺信誉和产品质量的重要体现。然而&#xff0c;整理和优化这些好评语却是一项既繁琐又需要细致耐心的工作。本文将探讨如何高效地进行电商好评语的筛选、分类和优化&#xff0c;让这一工作变得更加轻松和高效。 一、明确整理目的 在开…

webapi 允许跨域

1.在Nuget安装webapi.cors 添加完会有这个包 然后在项目App_Start 目录下的WebApiConfig.cs里面添加 // Web API 配置和服务// 添加跨域设置config.EnableCors(new EnableCorsAttribute("*", "*", "*"));

[C++ ]21:哈希+海量数据处理

[C ]21:哈希海量数据处理 一.哈希&#xff1a;1.位图&#xff1a;1.题目一&#xff1a;方法一&#xff1a;方法二&#xff1a; 2.题目二&#xff1a;方法一&#xff1a;补充&#xff1a; 3.题目三&#xff1a;方法一&#xff1a;双位图 4.题目四&#xff1a; 二.布隆过滤器&…

k8s的pod访问service的方式

背景 在k8s中容器访问某个service服务时有两种方式&#xff0c;一种是把每个要访问的service的ip注入到客户端pod的环境变量中&#xff0c;另一种是客户端pod先通过DNS服务器查找对应service的ip地址&#xff0c;然后在通过这个service ip地址访问对应的service服务 pod客户端…

如何使用Java语言发票查验接口实现发票真伪查验、票据ocr

随着时代潮流的发展&#xff0c;企业也在寻找更加便捷、高效的办公模式&#xff0c;尤其是针对财务工作人员而言&#xff0c;繁琐的发票录入、查验工作占据了财务人员的大部分时间。对此&#xff0c;翔云提供了发票识别接口、发票查验接口&#xff0c;那么企业应当如何将这些接…

数据结构算法题(力扣)——链表

以下题目建议大家先自己动手练习&#xff0c;再看题解代码。这里只提供一种做法&#xff0c;可能不是最优解。 1. 移除链表元素&#xff08;OJ链接&#xff09; 题目描述&#xff1a;给一个链表的头节点 head 和一个整数 val &#xff0c;删除链表中所有满足值等于 val 的节点…

【 书生·浦语大模型实战营】学习笔记(一):全链路开源体系介绍

&#x1f389;AI学习星球推荐&#xff1a; GoAI的学习社区 知识星球是一个致力于提供《机器学习 | 深度学习 | CV | NLP | 大模型 | 多模态 | AIGC 》各个最新AI方向综述、论文等成体系的学习资料&#xff0c;配有全面而有深度的专栏内容&#xff0c;包括不限于 前沿论文解读、…

linux 回收站机制(笔记)

Linux下回收站机制https://mp.weixin.qq.com/s/H5Y8VRcaOhFZFXzR8yQ7yg 功能 &#xff1a;设立回收站&#xff0c;并且可定时清空回收站。 一、建议将alias rm 改成别的。 比如alias rmm &#xff0c;同时修改rm -rf ~/.trash/* 改成 rmm -rf ~/.trash/* 不然影响rm 的正常使…