【论文阅读】UntrimmedNets for Weakly Supervised Action Recognition and Detection
Abstract
提出 UntrimmedNet
,从Untrimmed视频的视频级标签中直接学习动作识别和检测模型,分为 classification
和 selection
两个模块,可端到端训练。
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−1T+1,ei=NiT。没有利用到动作信息的连续性,生成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=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取平均。
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=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取加权平均:
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∑Nxis(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=1Cexp(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∑Nxˉ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∑Mk=1∑Cyiklogxˉ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相关推荐
- 【论文阅读】TAPAS: Weakly Supervised Table Parsing via Pre-training
目录 TAPAS: Weakly Supervised Table Parsing via Pre-training 前言 Abstract Introduction TAPAS Model Pre- ...
- 【CV论文阅读】Rank Pooling for Action Recognition
这是期刊论文的版本,不是会议论文的版本.看了论文之后,只能说,太TM聪明了.膜拜~~ 视频的表示方法有很多,一般是把它看作帧的序列.论文提出一种新的方法去表示视频,用ranking function的 ...
- 【深度学习论文翻译】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) ...
- Weakly Supervised Video Salient Object Detection
Weakly Supervised Video Salient Object Detection 摘要 1. Introduction 2. Related Work 3. Our Method 3. ...
- 百度飞桨顶会论文复现(5):视频分类论文之《Representation Flow for Action Recognition》篇
这次老师在课上总共领读了4篇分类论文,我这里分享其中的一篇论文,是关于使用神经网络对光流进行学习. 课程地址是:https://aistudio.baidu.com/aistudio/educatio ...
- NetVLAD: CNN architecture for weakly supervised place recognition
背景知识: Vector of Locally Aggregated Descriptors(VLAD)image retrieval. [CC]是广泛使用的图像提取方式,本文是在在这个提取器上做改进 ...
- 论文笔记-Two-Stream Convolutional Networks for Action Recognition in Videos
原文地址:http://blog.csdn.net/lk274857347/article/details/73559112 论文贡献: 提出了结合空域和时域网络的two_stream卷积网络结构. ...
- 虚假新闻检测的论文阅读笔记——sigir2021:User Preference-aware Fake News Detection
文章目录 1.虚假新闻检测的相关简介 2.本篇论文引言 3.模型介绍 3.1.内生偏好编码器 3.2.外生内容编码器 3.3.二者信息融合 4.实验 4.1.各模型的实验结果 4.2.消融实验 5.结 ...
- 【论文阅读】Neural Transformation Learning for Deep Anomaly Detection Beyond Images 异常检测,可学习变换,时间序列,表格数据
本博客系博主阅读论文之后根据自己理解所写,非逐字逐句翻译,预知详情,请参阅论文原文. 论文标题:Neural Transformation Learning for Deep Anomaly Dete ...
最新文章
- 判断JS对象是否拥有某属性两种方式
- ISME Comm:南农韦中等-菌群移植筑建根际免疫新防线
- Ubuntu 11.10 开机让 Varnish 跟随 Nginx 一起启动
- 第四篇: python函数续
- C++函数指针使用总结
- 随谈---------多年之后,我又回来了
- 从零开始搭二维激光SLAM --- 基于g2o的后端优化的代码实现
- python用for循环求平均分_Python中for循环的一些非常规操作
- DigWS 短消息和WapPush 快速开发指南-功能介绍
- 从文案到配音,只需要一部手机!5分钟掌握影视解说制作流程
- 如何批量将图片转换为 Excel 文档
- ST板块大幅下跌 不少ST股逆势上涨
- 又一家边缘计算公司融资啦!!!
- java 使用CA认证
- 秒杀排列组合(上)————排列篇
- 【网络是怎么连接的】—— 1.1 生成 HTTP 请求消息
- ruoyi-UI (若依)微服务版 vue前端使用及分析(2021-4-13更新)
- 阿里互联网一线大厂Java岗面试题库(2022年版)这次38k 稳了
- Oracle JDE 财务实时对账程序概览
- matlab由补码反码原码求值
热门文章
- js监听浏览器关闭事件(区分刷新和关闭,兼容IE9,10,11,Edge,Chrome和Firefox)
- 程序员 撩妹java6_程序员撩妹终极攻略——快速获取码农把妹密码
- 微信订阅号之政府认证
- Ant design vue pro 添加多页签
- 4PS-4CS--4RS
- pyscripter支持python什么版本_PyScripter|PyScripter(Python集成开发环境)下载v3.4.2.0官方版64位/32位 - 欧普软件下载...
- 2021-09-19婴儿抚触,助力宝宝健康成长
- ACC-C++组初赛
- 屏蔽ENTER键、ESC键的使用
- 数据库原理题型 - 选择题