【论文阅读】Video Action Transformer Network

Abstract

提出Action Transformer,一种利用Transformer架构聚合视频中进行动作的人的spatiotemopral context feature的动作分类和定位模型。

实验表明,通过使用high-resolution, person-specific, class-agnostic queries,模型可以学会追踪视频中的个人,并将个人的动作从其他动作中挑选出来。

Introduction

动作识别的难点之一是:推断一个人的动作经常需要理解关注对象(person of interest)和它周围的物体。例如,判断一个人是否在”听某人说话“,需要找到附近的另一个正在说话的人。

提出Action Transformer,使用一个修改的Transformer架构作为head来分类关注对象的动作。它结合了两种模型的思路:(1) I3D模型抽取视频特征,(2) RPN网络提供一种采样机制,用来定位执行动作的人。将I3D特征和RPN生成的query输入到能够聚合视频中人和物体context信息的Transformer head中,进行动作识别。

使用AVA数据集,与UCF活HMDB等不同,它15分钟的长视频组成,含有多人多动作的标注。

Method

Action Transformer的目标是检测出视频中的所有人物,并在某个时间(keyframe)对他们的动作进行分类。它获取keyframe出的一个短视频段,并在central frame上生成一系列人体边界框,每个框都用框中人物的动作分类进行标注。

包含base 和 head网络(类似于Faster R-CNN)。base部分使用3D卷积提取特征,使用RPN提取proposal。head部分使用每个proposal的特征预测动作类别,以及进行边界框回归。具体来说,head网络使用主干网络(trunk)提取的feature map和RPN proposal,使用ROIPool对每个proposal生成一个特征表示,然后用这个特征表示进行C+1类(C类+背景)分类,以及回归一个4维的偏移offset向量,将proposal转化为边界框位置。

在这里插入图片描述

Base network

首先在原视频针对给出的keyframe位置,抽取长度维T帧(通常取64)的clip(形状为 T × H × W T\times H\times W T×H×W),大约包含3秒的context信息。

使用Kinetics-400预训练的I3D模型的前几层作为主干网络(trunk)抽取该clip的特征,得到形状为 T ′ × H ′ × W ′ = T 4 × H 16 × W 16 T'\times H'\times W'=\frac{T}{4}\times \frac{H}{16}\times \frac{W}{16} T×H×W=4T×16H×16W的输出特征。然后将时序上处于中间的帧切片出来,输入区域候选网络RPN。RPN生成多个可能包含人物的候选框(bounding box)和对应的置信度(objectness score)。选出置信度最高的R个候选框(R=300)输入到head网络,在proposal候选框的基础上进行分类预测和边界框回归。

Action Transformer Head

Transformer head以输入的RPN proposal框作为query来定位需要关注的位置,聚合(aggregate)整个clip的信息,进而对query中的动作进行分类。

简要回顾一下Transformer:在序列建模中,通过将序列中的一个feature与其他所有feature进行比较,计算self-attention。具体方法是,将每个feature通过线性映射获得query(Q)、和memory feature(K、V),每个Q会对应输出一个所有V加权和,权重(attention weight)由Q和所有K的内积得到。由于attention中每个位置是等价的,为了添加位置信息,还要添加位置编码。

Action Transformer

是作者提出的用于视频理解的Transformer。输入是clip视频特征以及RPN生成的box proposal,将它们分别映射为Q、K、V。在这里,Q由RPN proposal得到,K、V由clip的视频特征得到。

每个Transformer unit(由图中的Tx表示)会将本层的query向量Q与K、V进行处理,得到一个新的query向量,这可以直观理解为通过self-attention向输入的query向量增加视频中的其他部分的人物和物体context信息,从而辅助分类任务。

key和value通过将trunk输出的feature map进行线性投影得到,形状为 T ′ × H ′ × W ′ × D T'\times H'\times W'\times D T×H×W×D,实验中 D = 128 D=128 D=128.

query是将keyframe中由RPN经过RoiPool后提取的proposal特征传入一个query preprocessor(QPr)和一个线性层得到的,形状为 1 × 1 × D 1\times 1\times D 1×1×D。根据QPr不同,作者将获取query的过程分为HighRes和LowRes。在LowRes中,QPr的操作是:直接将RoiPool特征的空间维度 H × W H\times W H×W压缩为 1 × 1 1\times 1 1×1,即全局平均池化,但这样会丢失人物的空间信息;在HighRes中,QPr的操作是:首先RoiPool特征通过 1 × 1 1\times 1 1×1卷积降低通道数,然后将获得的 7 × 7 7\times 7 7×7特征图concat成一个向量,最后通过一个线性层将向量的维度降低至 D = 128 D=128 D=128,从而与key和value的维度保持一致。

计算attention的过程如下:

a x y t ( r ) = Q ( r ) K x y t T D ; A ( r ) = ∑ x , y , t [ S o f t m a x ( a ( r ) ) ] x y t V x y t a^{(r)}_{xyt}=\frac{Q^{(r)}K^T_{xyt}}{\sqrt{D}}; A^{(r)}=\sum_{x,y,t}[Softmax(a^{(r)})]_{xyt}V_{xyt} axyt(r)=D Q(r)KxytT;A(r)=x,y,t[Softmax(a(r))]xytVxyt

Q ( r ) Q^{(r)} Q(r):RPN 候选区域 r r r生成的query

a x y t ( r ) a^{(r)}_{xyt} axyt(r):候选区域r的attention权重,使用dot-product计算
A ( r ) A^{(r)} A(r):利用atention权重对V进行加权求和

Q和A都添加dropout=0.3,然后与标准transformer一样,经过LayNorm和FFN,以及残差连接得到本层的输出,也是下一层的输入 Q ( r ) ′ ′ Q^{(r)''} Q(r)

Q ( r ) ′ = L a y e r N o r m ( Q ( r ) + D r o p o u t ( A ( r ) ) ) Q^{(r)'}=LayerNorm(Q^{(r)}+Dropout(A^{(r)})) Q(r)=LayerNorm(Q(r)+Dropout(A(r)))

Q ( r ) ′ ′ = L a y e r N o r m ( Q ( r ) ′ + D r o p o u t ( F F N ( Q ( r ) ′ ) ) ) Q^{(r)''}=LayerNorm(Q^{(r)'}+Dropout(FFN(Q^{(r)'}))) Q(r)=LayerNorm(Q(r)+Dropout(FFN(Q(r))))

I3D Head

为了衡量Action Transformer head聚合context信息的有效性,作者也设计了一个简单的I3Dhead作为对照,如下图所示(不重要,不再详述):

在这里插入图片描述

Experiment

attention可视化:

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值