Zero-Shot Temporal Action Detection via Vision-Language Prompting概述
1.针对的问题
现有的方法在推断时只能识别之前见过的类别,即训练时出现过的类别,而为每个感兴趣的类收集和注释大型训练集是昂贵的。
2.主要贡献
(1)研究了如何利用大量预训练的ViL模型进行未修剪视频中的zero-shot时序动作定位(ZS-TAD)的问题。
(2)提出了一种新的one-stage分类定位模型STALE,该模型在并行分类和定位设计的同时引入了一个可学习的class-agnostic掩码组件,以实现zero-shot迁移到未见过的类。为了增强跨模态任务的自适应能力,在Transformer框架中引入了流间对齐正则化。
(3)在标准ZS-TAD视频基准上的大量实验表明,STALE优于最先进的类似方法,通常有很大的优势。此外,模型也可以应用于全监督TAD设置,并取得比最近的其他工作更优越的性能。
3.方法
主要特点是采用并行定位(掩码生成)和分类结构,以解决传统ZS-TAD模型的定位误差传播问题
模型结构如下:

给定一个未裁剪的视频V,首先通过预训练的冻结视频编码器提取一组T个片段特征序列,包括RGB Xr ∈Rd×T和光流特征Xo ∈Rd×T,然后将它们连接为E = [Xr;Xo]∈R2d×T。虽然E(论文中是F,但是个人感觉这里应该是E)包含局部时空信息,但它缺乏对TAD至关重要的全局上下文,作者利用自注意力机制来学习全局上下文,将多头注意力编码器Τ()的输入(查询,键,值)设置为特征(E,E,E)得到最终的视频片段嵌入Fvis。
对于文本上下文,将其输入文本编码器,即带有可学习的提示的标准CLIP预训练的Transformer,得到嵌入Gke∈RC',由于背景类的文本嵌入不能直接从CLIP词汇表中获得,所以学习一个特定的背景嵌入,表示为Gbge∈RC',将其附加到嵌入的动作类Gke,得到包含K+1类的嵌入Flan。以上组成了输入和编码部分。
然后是时序表示掩码部分。将Fvis(代码中这里是E)输入一个transformer解码器来生成Nz潜在嵌入,然后将每个潜在嵌入通过一个掩码投影层(从代码中看是一个MLP),得到每个片段的掩码嵌入Bq ∈Rq×C,其中q代表query,将Bq与Fvis(图中的投影层论文中似乎并没有介绍)相乘再通过sigmoid函数得到关于每个查询的一个二进制预测Lq,将Lq输入一个线性层和sigmoid函数得到
(代码中好像没有这个线性层),在阈值θbin处对这个掩码进行二值化,并选择前景掩码,用
表示,使用
检索嵌入Fvis的片段,获得前景特征Ffgvis。
将Ffgvis和Flan输入跨模态自适应模块,该模块由自注意层,co-attention层和前馈网络组成,公式为:
,其中Tc为transformer层,以Flan为查询,Fvisfg为键和值。该模块鼓励文本特征在前景片段中找到最相关的视觉线索。然后,通过残差连接Flan和
更新文本特征得到
。
最后是解码部分,该部分包括并行的分类流和定位流,定位流将Fvis输入动作掩码定位器,即3个(代码中是2个)1-D动态卷积层Hm的叠加,得到M,M的第t列是通过第t个片段进行的时序掩码预测。分类流的动作分类为器将更新后的文本特征
和掩码前景特征Fvisfg相乘得到分类输出P∈R(K+1)×T,其中每个片段定位t∈T被赋予一个概率分布pt∈R(K+1)×1。
类标签和掩码标签在前景方面有结构上的一致性,通过一致性损失来利用这种一致性,表示为
,
= topk(argmax((Pbin∗Ep)[: K,:]))是从阈值分类得到的得分最高的前景片段中获得的特征,输出Pbin := η(p−θc)与θc 阈值,将嵌入E传递到一个1D conv层得到Ep,用于匹配p的维度。从掩码输出M中获得的最高评分特征类似于:
= topk(σ(1DPool(Em * Mbin))),其中Mbin:= η(M−θm)是掩码预测M的二值化,Em通过将嵌入E传递到一维conv层以匹配维数M得到,σ为sigmoid激活函数。
Zero-Shot Temporal Action Detection via Vision-Language Prompting概述的更多相关文章
- Temporal Action Detection with Structured Segment Networks (ssn)【转】
Action Recognition: 行为识别,视频分类,数据集为剪辑过的动作视频 Temporal Action Detection: 从未剪辑的视频,定位动作发生的区间,起始帧和终止帧并预测类别 ...
- 论文笔记之 SST: Single-Stream Temporal Action Proposals
SST: Single-Stream Temporal Action Proposals 2017-06-11 14:28:00 本文提出一种 时间维度上的 proposal 方法,进行行为的识别.本 ...
- 论文阅读: End-to-end Learning of Action Detection from Frame Glimpses in Videos
End-to-End Learning of Action Detection from Frame Glimpses in Videos CVPR 2016 Motivation: 本 ...
- TURN TAP: Temporal Unit Regression Network for Temporal Action Proposals(ICCV2017)
Motivation 实现快速和准确地抽取出视频中的语义片段 Proposed Method -提出了TURN模型预测proposal并用temporal coordinate regression来 ...
- SST:Single-Stream Temporal Action Proposals论文笔记
SST:Single-Stream Temporal Action Proposals 这是本仙女认认真真读完且把算法全部读懂(其实也不是非常懂)的第一篇论文 CVPR2017 一作 论文写作的动机m ...
- Background Suppression Network for Weakly-supervised Temporal Action Localization [Paper Reading]
研究内容:弱监督时域动作定位 结果:Thumos14 mAP0.5 = 27.0 ActivityNet1.3 mAP0.5 = 34.5 从结果可以看出弱监督这种瞎猜的方式可以PK掉早些时候的一些全 ...
- CTAP: Complementary Temporal Action Proposal Generation论文笔记
主要观点:基于sliding window(SW)类的方法,如TURN,可以达到很高的AR,但定位不准:基于Group的方法,如TAG,AR有明显的上界,但定位准.所以结合两者的特长,加入Comple ...
- CTAP: Complementary Temporal Action Proposal Generation (ECCV2018)
互补时域动作提名生成 这里的互补是指actionness score grouping 和 sliding window ranking这两种方法提proposal的结合,这两种方法各有利弊,形成互补 ...
- C 语言高效编程的几招——A few action of efficient C language programming
编写高效简洁的C 语言代码,是许多软件工程师追求的目标.本文就工作中的一些体会和经验做相关的阐述,不对的地方请各位指教. 第1 招:以空间换时间 计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个 ...
- LPAT: Learning to Predict Adaptive Threshold for Weakly-supervised Temporal Action Localization [Paper Reading]
Motivation: 阈值分割的阈值并没有通过模型训练学出来,而是凭借主观经验设置,本文通过与背景得分比较提取对应的proposal,不用阈值的另一篇文章是Shou Zheng的AutoLoc,通过 ...
随机推荐
- Oracle备份脚本(数据泵)-Windows平台
将以下内容根据自己想要备份的库修改后保存为expdp.bat,加入到计划任务中 set NLS_LANG=AMERICAN_AMERICA.AL32UTF8set filename=%date:~0, ...
- 前端使用axios如何提交表单请求
//使用FormData创建参数 let formData = new FormData(); formData.append("jsonData", JSON.stringify ...
- ubuntu 安装php7.2 oracle扩展
一:介绍 php要连接访问oracle需要安装三个东西 1:Oracle Instant Client:即时客户端库 2:php的Oracle数据库扩展:oci8 3:php连接pdo的oci扩展:p ...
- Centos 7.9 部署Kubernetes集群 (基于containerd 运行时)
前言 当Kubernetes社区宣布1.20版本之后会逐步弃用 dockershim ,当时也有很多自媒体在宣 传Kubernetes弃用Docker.其实,我觉得这是一种误导,也许仅仅是为了蹭热度. ...
- canvas 学习笔记
1.利用上下文对象进行绘制画笔 var canvas=canvas.getContext('2d') 2.绘制路径 canvas.rect(30,30,300,300) 3.填充 canvas.fil ...
- java后台接收参数为枚举,postman的json如何传入
使用postman测试接口,其中一个参数为枚举类型,如何传入参数? 1 枚举类型: public enum UserCourseOrderSourceType{ USER_BUY(1,"用户 ...
- spider_爬取斗图啦所有表情包(图片保存)
"""爬取斗图吧里面的所有表情包知识点总结: 一.使用requests库进行爬取,随机请求头(网站反爬措施少.挂个请求头足矣) 二.具体思路: 1.先爬取所有的图片url ...
- WPF图片的缩放节省内存
一.前言 正好项目用到要加载大量图片,虽然说可以使用WPF提供的自带的UI虚拟化功能,但是直接加载大量的图片到内存还是会 消耗很多的内存,而且WPF支持UI虚拟化的ListBox等容器的布局是Virt ...
- Java笔记_变量作用域
变量作用域 在Java中主要的变量就是属性(成员变量)和局部变量. 局部变量一般是指在成员方法中定义的变量. 全局变量作用域:整个类体.局部变量(除属性意以外的其他变量)作用域:为定义它的代码块中! ...
- Spyder无法使用搜狗输入中文的解决办法
Ubuntu 18.04 LTS系统下,spyder4编辑器无法使用搜狗输入中文.系统输入法为fcitx+搜狗拼音,chrome浏览器无此问题.网上答案: Spyder (以及其他PyQt程序) 无法 ...