【论文阅读】UntrimmedNets for Weakly Supervised Action Recognition and Detection

Abstract

提出 UntrimmedNet ,从Untrimmed视频的视频级标签中直接学习动作识别和检测模型,分为 classificationselection 两个模块,可端到端训练。

Introduction

动作识别通常是基于trimmed video 的全监督学习,而不是较长的untrimmed video。在长视频中标注并剪切动作发生位置费时费力,而untrimmed video在网站上很容易获得。

提出两个新问题: weakly supervised action recognition (WSR)weakly supervised action detection(WSD) ,即训练时只给出untrimmed video的视频级类别标签,学习可以用于新视频的动作检测和定位模型。这种弱监督方法不仅需要学习视频视觉特征,而且要找出动作instance的时序位置。

包括两个module: classification module 负责学习动作分类, selection module 负责动作检测。

输入->proposal生成(shot clip)->每个clip提取feature->每个clip进行排序->分类、排序模块融合获得整个untrimmed video的预测->结合视频级标注,进行端到端训练

Method

在这里插入图片描述

1、生成 clip proposal

动作instance是较短的视频片段。首先从完整的untrimmed 视频中生成shot clip action proposal,用于训练

输入视频V, 生成proposal集合 C = { c i } i = 1 N C=\{c_i\}^N_{i=1} C={ci}i=1N, N是proposal数目 , c i = ( b i , e i ) c_i=(b_i,e_i) ci=(bi,ei)是一个proposal的起止位置

生成proposal的两种方法:
1、平均采样(Uniform sampling),即把视频均匀分成N段,如: b i = i − 1 N T + 1 , e i = i N T b_i=\frac{i-1}{N}T+1, e_i=\frac{i}{N}T bi=Ni1T+1,ei=NiT。没有利用到动作信息的连续性,生成proposal不准确
2、Shot-based 采样,先对每帧提取HOG特征,计算每一个当前帧与相邻帧之间的特征距离(绝对值),以此衡量视觉信息变化的程度。如果超过一定阈值,则视为检测到一个shot change,并划分出不同的shot(即以shot为单位粗略划分为不同动作段)。对每个shot内部再采样固定长度为K(设为300)帧的多个shot clips(这是为了避免出现过长的shot)。 得到所有shot(用 s i = ( s i b , s i e ) s_i=(s^b_i,s^e_i) si=(sib,sie)表示)后,根据

C ( s i ) = { ( s i b + ( i − 1 ) × K , s i b + i × K ) } i : s i b + i × K < s i e C(s_i)=\{(s_i^b+(i-1)\times K, s_i^b+i\times K)\}_{i:s_i^b+i\times K<s^e_i} C(si)={(sib+(i1)×K,sib+i×K)}i:sib+i×K<sie

从每个shot中生成一个clip proposal。将这些proposal合并起来,作为UntrimmedNet的训练输入

2、UntrimmedNets

包括3部分。整个网络的预测都以上面提取的proposals为单位,下面的分类score也都是proposal级别的分类。

Feature extraction module

将生成的clip propsals分别经过特征提取网络(双流网络,或TSN)提取特征表示(类似于多个proposal组成一个长视频,每个proposal内部进行相同的采样)。

根据后面的Implementation得知,这里的输入是对每个proposal采样1帧RGB和5帧光流。

对proposal集合 C = { c i } i = 1 N C=\{c_i\}^N_{i=1} C={ci}i=1N里的每个c,生成特征表示 ϕ ( V ; c ) ∈ R D \phi(V;c)\in \mathbb{R}^D ϕ(V;c)RD

Classification module

通过 ϕ ( c ) \phi(c) ϕ(c)对每个proposal c进行分类。假设有C个动作类别,将 ϕ ( c ) \phi(c) ϕ(c)通过线性层 W c ∈ R C × D W^c\in \mathbb{R}^{C\times D} WcRC×D,再经过softmax层得到这个proposal的(而不是帧级别的)分类概率 x ˉ i c ( c ) \bar{x}^c_i(c) xˉic(c)(也即classicifation score, 上标c代表classification):

x c ( c ) = W c ϕ ( c ) x^c(c)=W^c\phi(c) xc(c)=Wcϕ(c)

x ˉ i c ( c ) = e x p ( x i c ( c ) ) ∑ k = 1 C e x p ( x k c ( c ) ) \bar{x}^c_i(c)=\frac{exp(x^c_i(c))}{\sum^C_{k=1}exp(x^c_k(c))} xˉic(c)=k=1Cexp(xkc(c))exp(xic(c))

Selection module

选出最有可能包含动作的clip proposal。分为基于MIL的 hard selection 和基于attention的 soft selection

hard selection

对每个动作分类都挑选出k个proposal(instance)。根据MIL,可以选择对某个类分类score最高的k个proposal,后续对选中的propsal(instance)的分类score取平均。

x i s ( c j ) = δ ( j ∈ S i k ) x^s_i(c_j)=\delta(j\in S^k_i) xis(cj)=δ(jSik)

x i s ( c j ) x^s_i(c_j) xis(cj)表示对分类i,clip c j c_j cj被选择的概率(也即hard selection score,上标s代表hard selection), S i k S^k_i Sik表示分类i的k个最高分类score的proposal下标集合

soft selection

利用注意力机制,对所有proposal学习一个用来排序的注意力权重,来突出更有可能包含动作的proposal,忽略大概率是背景的propsal。具体来说,对每个proposal的特征 ϕ ( c ) \phi(c) ϕ(c)用一个线性层 w s ∈ R D w^s\in R^D wsRD进行变换,然后通过softmax层求得注意力分数 x ˉ s ( c i ) \bar{x}^s(c_i) xˉs(ci)(也即soft selection score,上标s代表soft selection):

x s ( c ) = w s T ϕ ( c ) x^s(c)=w^{sT}\phi(c) xs(c)=wsTϕ(c)

x ˉ s ( c i ) = e x p ( x s ( c i ) ) ∑ n = 1 N e x p ( x s ( c n ) ) \bar{x}^s(c_i)=\frac{exp(x^s(c_i))}{\sum^N_{n=1}exp(x^s(c_n))} xˉs(ci)=n=1Nexp(xs(cn))exp(xs(ci))

一句话来说就是学习一个attention weight序列来区分前景和背景。后面再与分类score相乘,就可以突出动作proposal,忽略背景proposal。

Video prediction

结合classification score和selection score,生成untrimmed视频V的分类prediction score x ˉ p ( V ) \bar{x}^p(V) xˉp(V)

for hard selection:

对每个分类的top-k 个proposal(或instance)的classification score,根据hard selection score取加权平均:

x i p ( V ) = ∑ n = 1 N x i s ( c n ) x i c ( c n ) x^p_i(V)=\sum^N_{n=1}x^s_i(c_n)x^c_i(c_n) xip(V)=n=1Nxis(cn)xic(cn)

x ˉ i p ( V ) = e x p ( x i r ( V ) ) ∑ k = 1 C e x p ( x k r ( V ) ) \bar{x}^p_i(V)=\frac{exp(x^r_i(V))}{\sum_{k=1}^Cexp(x^r_k(V))} xˉip(V)=k=1Cexp(xkr(V))exp(xir(V))

其中, x i s ( c n ) x^s_i(c_n) xis(cn) x i c ( c n ) x^c_i(c_n) xic(cn)分别是propsal c n c_n cn 的hard selection score和classification score。注意这里是先利用原始的score(未经过softmax,不带bar),再对所有分类求softmax,得到整个视频V属于分类i的prediction score x ˉ i p ( V ) \bar{x}^p_i(V) xˉip(V),这个向量可以与视频V的标签y计算交叉熵损失。

for soft selection:

利用学习的注意力权重,对classification score取加权平均:

x ˉ p ( V ) = ∑ n = 1 N x ˉ s ( c n ) x ˉ c ( c n ) \bar{x}^p(V)=\sum^N_{n=1}\bar{x}^s(c_n)\bar{x}^c(c_n) xˉp(V)=n=1Nxˉs(cn)xˉc(cn)

注意这里计算是直接用的softmax以后的score。同样得到一个向量,表示视频的分类概率。

Training

所有模块均用feed-forward层实现,通过反向传播优化 cross-entropy loss:

l ( w ) = ∑ i = 1 M ∑ k = 1 C y i k l o g x ˉ k p ( V i ) l(w)=\sum_{i=1}^M \sum_{k=1}^C y_{ik}log \bar{x}^p_k(V_i) l(w)=i=1Mk=1Cyiklogxˉkp(Vi)

M:训练视频数目

C:类别数目

y i k y_{ik} yik:ground truth向量,当视频 V i V_i Vi含有第k类动作时为1,否则为0。考虑到一个视频可能包含多个类的动作instance,对GT标签y会先用 l 1 l_1 l1-norm进行标准化处理: y ˉ = y / ∥ y ∥ 1 \bar{y}=y/\Vert y \Vert_1 yˉ=y/y1,然后再用来计算交叉熵。

注意,hard selection和soft selection两路可以分别进行训练优化、测试。

Action Recognition and Detection

网络训练时的输入分段为proposal,而测试时是以snippet为单位,(个人理解,即相当于把每个snippet看作训练时的一个propsal)。

Action recognition

由于训练时给双流或TSN网络输入动作proposals并优化,测试时,学习到的模型可以对untrimmed长视频进行snippet级别的动作分类(对每个snippet分别预测一个类别),最后将所有snippet的分类结果综合起来,得到视频级类别预测。

具体来说,每30帧为一个snippet,采样1帧RGB、5帧光流,分别预测一个类别。使用top-k pooling对不同snippet的分类进行汇合,得到最终的视频类别预测。

Action detection

Soft selection模块对每个snippet生成的attention weight可以用来进行动作定位。

测试时,每15帧为一个snippet(采样1帧),保留predicion score和每帧生成的attention weight。

基于attention weight,设定一个threshold(0.0001)来去除背景。

最后,对classification score设定一个threshold(0.5)来获得检测结果。即在保留的动作snippet中再筛选分类score大于0.5的得到该段的分类,小于的也丢弃。

Experiments

Implementation details

使用THUMOS14和ActivityNet两个数据集。注意:这两个数据集同样有用于TAD任务的动作时序标注,但在训练UntrimmedNet的时候并没有使用。

THUMOS14:使用validation集进行训练,使用test集进行测试。

ActivityNet:使用training训练,使用validation测试;或training+validation训练,提交到server上用test集测试。

性能指标:动作识别采用mAP,动作检测采用不同IoU上的mAP。

训练输入:根据TSN,每个proposal采样1帧RGB和5帧光流。

参数初始化:双流网络根据TSN的方法使用ImageNet预训练参数进行初始化。

训练细节:mini-batch SGD, batchsize=256, momentum=0.9,RGB训练10000个iteration,flow训练18000个iteration,dropout=0.8(RGB), 0.7(flow),数据增强采用cropping augmentation ,scale jittering.。

Results

proposal生成方式的对比(uniform/shot-based smapling),shot-based稍好一点:

在这里插入图片描述

特征提取网络的对比(two-stream/TSN),每个视频采样7个proposal进行训练,TSN较好(长距离时序建模能力)

在这里插入图片描述

每个视频采样的proposal数目的对比:对于THUMOS和ActivityNet,平均每个视频分别生成了40个20个proposal,由于GPU限制并没有全部用来训练。实验了每个视频选取5,7,9个propsal训练,结果如下(最后选择7):

在这里插入图片描述

weakly-supervised action recognition

selection module的有效性:使用文中的两种selection模块,在THUMOS14和ActivityNet的untrimmed视频上训练(没有使用时序标注),进行弱监督动作识别,结果超越了在untrimmed视频上直接使用TSN动作识别模型(一般用来对trimmed视频进行分类):

在这里插入图片描述

与sota的对比:将本文的弱监督动作识别(仅使用了视频级标签)的性能与THUMOS14和ActivityNet的untrimmed视频上的强监督方法(即不仅使用视频级标签,还使用了时序标注)进行对比,结果超过了这些强监督方法:

在这里插入图片描述

weakly-supervised action detection

使用soft selection进行弱监督动作检测的性能实验。

Qualitative results. 对attention weight进行可视化,每行代表一个视频,前4张是权重最大的帧,后4张是权重最小的帧。可以看到前4张主要是与动作相关的帧,后4张基本是背景,说明soft selection中的attention可以有效区分动作和背景。

在这里插入图片描述

Quantitative results. 使用弱监督语义分割在THUMOS的temporal action detection任务上取得了与全监督的sota方法相近的性能。

在这里插入图片描述
总结:这是第一篇WTAL的文章,与后面的文章不同的是网络训练时都是基于预先提取的proposal,而后面的网络通常都是帧级别的class activation sequence了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值