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={ci}i=1NC=\{c_i\}^N_{i=1}C={ci​}i=1N​, N是proposal数目 , ci=(bi,ei)c_i=(b_i,e_i)ci​=(bi​,ei​)是一个proposal的起止位置

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

C(si)={(sib+(i−1)×K,sib+i×K)}i:sib+i×K<sieC(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​+(i−1)×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={ci}i=1NC=\{c_i\}^N_{i=1}C={ci​}i=1N​里的每个c,生成特征表示ϕ(V;c)∈RD\phi(V;c)\in \mathbb{R}^Dϕ(V;c)∈RD

Classification module

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

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

xˉic(c)=exp(xic(c))∑k=1Cexp(xkc(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=1C​exp(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取平均。

xis(cj)=δ(j∈Sik)x^s_i(c_j)=\delta(j\in S^k_i) xis​(cj​)=δ(j∈Sik​)

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

soft selection

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

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

xˉs(ci)=exp(xs(ci))∑n=1Nexp(xs(cn))\bar{x}^s(c_i)=\frac{exp(x^s(c_i))}{\sum^N_{n=1}exp(x^s(c_n))} xˉs(ci​)=∑n=1N​exp(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取加权平均:

xip(V)=∑n=1Nxis(cn)xic(cn)x^p_i(V)=\sum^N_{n=1}x^s_i(c_n)x^c_i(c_n) xip​(V)=n=1∑N​xis​(cn​)xic​(cn​)

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

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

for soft selection:

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

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

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

Training

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

l(w)=∑i=1M∑k=1Cyiklogxˉkp(Vi)l(w)=\sum_{i=1}^M \sum_{k=1}^C y_{ik}log \bar{x}^p_k(V_i) l(w)=i=1∑M​k=1∑C​yik​logxˉkp​(Vi​)

M:训练视频数目

C:类别数目

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

注意,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了。

【论文阅读】UntrimmedNets for Weakly Supervised Action Recognition and Detection相关推荐

  1. 【论文阅读】TAPAS: Weakly Supervised Table Parsing via Pre-training

    目录 TAPAS: Weakly Supervised Table Parsing via Pre-training 前言 Abstract Introduction TAPAS Model Pre- ...

  2. 【CV论文阅读】Rank Pooling for Action Recognition

    这是期刊论文的版本,不是会议论文的版本.看了论文之后,只能说,太TM聪明了.膜拜~~ 视频的表示方法有很多,一般是把它看作帧的序列.论文提出一种新的方法去表示视频,用ranking function的 ...

  3. 【深度学习论文翻译】Weakly Supervised Action Localization by Sparse Temporal Pooling Network全文翻译

    Phuc Nguyen(University of California Irvine, CA, USA) Ting Liu,Gautam Prasad(Google Venice, CA, USA) ...

  4. Weakly Supervised Video Salient Object Detection

    Weakly Supervised Video Salient Object Detection 摘要 1. Introduction 2. Related Work 3. Our Method 3. ...

  5. 百度飞桨顶会论文复现(5):视频分类论文之《Representation Flow for Action Recognition》篇

    这次老师在课上总共领读了4篇分类论文,我这里分享其中的一篇论文,是关于使用神经网络对光流进行学习. 课程地址是:https://aistudio.baidu.com/aistudio/educatio ...

  6. NetVLAD: CNN architecture for weakly supervised place recognition

    背景知识: Vector of Locally Aggregated Descriptors(VLAD)image retrieval. [CC]是广泛使用的图像提取方式,本文是在在这个提取器上做改进 ...

  7. 论文笔记-Two-Stream Convolutional Networks for Action Recognition in Videos

    原文地址:http://blog.csdn.net/lk274857347/article/details/73559112 论文贡献: 提出了结合空域和时域网络的two_stream卷积网络结构. ...

  8. 虚假新闻检测的论文阅读笔记——sigir2021:User Preference-aware Fake News Detection

    文章目录 1.虚假新闻检测的相关简介 2.本篇论文引言 3.模型介绍 3.1.内生偏好编码器 3.2.外生内容编码器 3.3.二者信息融合 4.实验 4.1.各模型的实验结果 4.2.消融实验 5.结 ...

  9. 【论文阅读】Neural Transformation Learning for Deep Anomaly Detection Beyond Images 异常检测,可学习变换,时间序列,表格数据

    本博客系博主阅读论文之后根据自己理解所写,非逐字逐句翻译,预知详情,请参阅论文原文. 论文标题:Neural Transformation Learning for Deep Anomaly Dete ...

最新文章

  1. 判断JS对象是否拥有某属性两种方式
  2. ISME Comm:南农韦中等-菌群移植筑建根际免疫新防线
  3. Ubuntu 11.10 开机让 Varnish 跟随 Nginx 一起启动
  4. 第四篇: python函数续
  5. C++函数指针使用总结
  6. 随谈---------多年之后,我又回来了
  7. 从零开始搭二维激光SLAM --- 基于g2o的后端优化的代码实现
  8. python用for循环求平均分_Python中for循环的一些非常规操作
  9. DigWS 短消息和WapPush 快速开发指南-功能介绍
  10. 从文案到配音,只需要一部手机!5分钟掌握影视解说制作流程
  11. 如何批量将图片转换为 Excel 文档
  12. ST板块大幅下跌 不少ST股逆势上涨
  13. 又一家边缘计算公司融资啦!!!
  14. java 使用CA认证
  15. 秒杀排列组合(上)————排列篇
  16. 【网络是怎么连接的】—— 1.1 生成 HTTP 请求消息
  17. ruoyi-UI (若依)微服务版 vue前端使用及分析(2021-4-13更新)
  18. 阿里互联网一线大厂Java岗面试题库(2022年版)这次38k 稳了
  19. Oracle JDE 财务实时对账程序概览
  20. matlab由补码反码原码求值

热门文章

  1. js监听浏览器关闭事件(区分刷新和关闭,兼容IE9,10,11,Edge,Chrome和Firefox)
  2. 程序员 撩妹java6_程序员撩妹终极攻略——快速获取码农把妹密码
  3. 微信订阅号之政府认证
  4. Ant design vue pro 添加多页签
  5. 4PS-4CS--4RS
  6. pyscripter支持python什么版本_PyScripter|PyScripter(Python集成开发环境)下载v3.4.2.0官方版64位/32位 - 欧普软件下载...
  7. 2021-09-19婴儿抚触,助力宝宝健康成长
  8. ACC-C++组初赛
  9. 屏蔽ENTER键、ESC键的使用
  10. 数据库原理题型 - 选择题