video analysis -- 弱监督的动作检测-UntrimmedNets
首先说一下什么是基于弱监督的动作检测,下图是一个视频的标注信息,包含动作类别和每个动作发生的时间信息。强监督就是利用所有信息对视频进行动作识别和定位;而弱监督是单单利用动作类别的信息进行训练,不使用动作时间段的标注。
这篇文章是一篇很经典的基于弱监督动作检测的论文,现在的很多方法也是由此发展而来的。简单来说的,作者作者提出了两个模型:分类模型和选择模型来分别实现动作分类和动作定位。这俩模型都是简单地前馈网络,虽然模型简单,但是整体的思路却一直被人沿用。 awesome
这里作者将视频先进行剪辑为clip proposals(相当于把视频分段)。
1 介绍
UntrimmedNet直接将未修剪作为输入,首先生成clip proposal(相当于将视频分段,分段方法有均匀采样和基于镜头采样);接着将clip proposal输入UntrimmedNet提取特征;然后将特征输入到分类模型(对每一个clip proposal预测分类分数)和选择模型(对clip proposals选择或者分等级);最后通过将分类和选择模型的结果融合生成视频级别的预测。
2 方法
首先介绍生成clip proposals,接着介绍UntrimmedNet架构,最后以端到端的方式调整模型参数。
2.1 Clip sampling
给定一个未裁剪共TTT帧的视频VVV,生成一系列clip proposalsC={ci}i=1NC={\{c_i \}}^N_{i=1}C={ci}i=1N,这里N是proposals的数量,ci=(bi,ei)c_i=(b_i,e_i)ci=(bi,ei)表示第iii个proposal cic_ici的开始和结束定位。文章介绍了两种采样方法:均匀采样和基于镜头的采样
Uniform sampling. 假设一个视频中动作实例所占时间比例很少,将一个长视频分为NNN个等长的clips,即
bi=i−1NT+1,,ei=iNTb_i=\frac{i-1}{N}T+1 , ,e_i=\frac{i}{N}Tbi=Ni−1T+1,,ei=NiT
但是这种采样方法忽略了动作的连续和一致性,容易生成不精确的proposals。
Shot-based sampling 这种采样方法希望每一个动作实例专注于一个镜头内一致的运动。
镜头改变检测方法:对每一帧提取HOG特征并且计算相邻帧间的HOG特征差异;然后,用这个差值的绝对值来测量视觉内容的变化,如果大于阈值,就代表镜头的变化。
之后,对于每个镜头按顺序采样K帧固定长度的镜头clips(在训练时k=300)。对于每个镜头可以表示为si=(sib,sie)s_i=(s_i^b,s_i^e)si=(sib,sie),分别表示开始和结束动作定位,从这个镜头生成的proposals可以表示为:
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*K<s_i^e}C(si)={(sib+(i−1)×K,sib+i×K)}i:sib+i∗K<sie
最后,合并所有从不同的镜头得到的clip proposals 用于UntrimmedNet培训。
2.2 UntrimmedNets
如图2所示,UntrimmedNets架构包含一个特征提取模块,一个分类模块,一个选择模块。
Feature extraction module.
在生成proposals之后,将这些clips输入到特征提取模块。给定一个视频VVV,其一系列clip proposalsC={ci}i=1NC={\{c_i \}}^N_{i=1}C={ci}i=1N,每个clip proposalccc提取的表征为ϕ(V;c)∈R\phi(V;c)\in\Bbb{R}ϕ(V;c)∈R。文章选择了两种架构:Two-Stream CNN 和Temporal Segment Net-work这两种网络都是经典的关于视频特征提取网络。链接: Two-Stream CNN. Temporal Segment Net-work.
Classification module.
该模块基于提取的特征ϕ(c)\phi(c)ϕ(c)将每个clip proposal c 分类为预定义的类别。假定共有CCC个动作类,学习一个线性映射Wc∈RC×D\mathbf W^c\in\Bbb{R}^{C\times D}Wc∈RC×D将特征表示ϕ(c)\phi(c)ϕ(c)转化为一个c维分数向量xc(c)\mathrm x^c(c)xc(c),即xc(c)=Wcϕ(c)\mathrm x^c(c)=\mathbf W^c\phi(c)xc(c)=Wcϕ(c),C是动作类别数,Wc\mathbf W^cWc是模型参数。这个分
数向量也可以通过一个softmax层:
xˉic(c)=exp(xic(c))∑k=1Cexp(xkc(c))(1)\bar{x}^c_i(c)=\frac{exp(x_i^c(c))}{\sum^{C}_{k=1}exp(x_k^c(c))} \tag{1} xˉic(c)=∑k=1Cexp(xkc(c))exp(xic(c))(1)
xic(c)x_i^c(c)xic(c)表示xc(c)\mathrm x^c(c)xc(c)的第iii个维度。这里的xc(c)\mathrm x^c(c)xc(c)表示clip proposal c 的原始分类分数,xˉc(c)\bar{\mathrm x}^c(c)xˉc(c)表示softmax分类分数。原始分类分数代表原来的类别激活分数,它反映包含某个动作类的程度。在不包含操作实例的情况下,对于所有类,它的值可能非常小。而softmax分类分数经过标准化操作,把它的和变成1。如果在一个clip中有一个动作实例,该评分表示动作类别分布信息。但是对于背景clips,会放大噪声。
Selection module.
选择模块旨在选择那些最有可能包含动作实例的clip proposals。文章设计了两种选择机制:基于多示例学习(MIL)原则的硬选择和基于注意力建模的软选择。
在硬选择方法中,为每个动作类找出k个clip proposals,选择前k个最高分类分数,然后对这些选择的clip proposals进行平均。这里使用原始的分类分数,因为它的值能够正确地反映包含某些动作实例的可能性。形式上用xis(cj)=δ(j∈Sik)x^s_i(c_j)=\delta(j\in S^k_i)xis(cj)=δ(j∈Sik)来表示为类别iii和实例cjc_jcj标记为被选择,这里SikS^k_iSik是对于类别iii从clip proposals中选出的最高的k个clip proposals 的索引集合。
在软选择方法中,联合所有clip proposals的分类分数学习一个重要性权重参数来为不同的clip proposals排等级。这些clip proposals并不都与动作类相关,我们可以学习一个注意力权重来突出有区别的clip proposals并抑制背景clip proposals。对于每个剪辑提名,我们基于特征表示ϕ(c)\phi(c)ϕ(c)和一个线性转化来学习这个注意力权重,即xis(c)=wsTϕ(c)x^s_i(c)=\mathbf w^{sT}\phi(c)xis(c)=wsTϕ(c),其中ws∈RD\mathbf w^{s}\in \Bbb{R}^Dws∈RD是模型参数。然后将不同clip proposal的注意力权值通过softmax层进行比较:
xˉis(ci)=exp(xs(ci))∑n=1Nexp(xs(cn))(2)\bar{x}^s_i(c_i)=\frac{exp(x^s(c_i))}{\sum^{N}_{n=1}exp(x^s(c_n))} \tag{2} xˉis(ci)=∑n=1Nexp(xs(cn))exp(xs(ci))(2)
xs(c)x^s(c)xs(c)表示clip proposal c 的原始选择分数,xˉs(c)\bar{x}^s(c)xˉs(c)表示softmax选择分数。需要注意的是,在分类模块中,针对每个clip proposal,分别对不同action类的分类分数应用softmax操作(Eq.(1)),而在selection模块中,这个操作(Eq.(2))是针对不同的clip proposal执行的。尽管具有相似的数学公式,但这两个softmax层的设计目的是分别进行分类和选择。
Video prediction.
通过联合分类和选择分数生成预测分数xˉp(V)\bar{\mathbf x}^p(V)xˉp(V),对于硬选择,简单地集合前K个proposals:
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)对于类别iii是这个视频标签的概率或分数
xˉip(ci)=exp(xir(V))∑k=1Cexp(xkr(V))(3)\bar{x}^p_i(c_i)=\frac{exp(x^r_i(V))}{\sum^{C}_{k=1}exp(x^r_k(V))} \tag{3} xˉip(ci)=∑k=1Cexp(xkr(V))exp(xir(V))(3)
这里的xs(cn)x^s(c_n)xs(cn)是选择模块给出的标量,表示clip proposal cnc_ncn片段是否在top-k,xc(cn)x^c(c_n)xc(cn)是clip proposal cnc_ncn的分类分数。由于硬选择模块是基于原始的分类分数,所以需要执行一个softmax操作来对汇总的视频级别分数进行规范化。
在软选择的情况下,我们学习了一个注意力权重来对这些剪辑建议进行排序,我们简单地使用一个加权求和来结合分类和选择模块的得分,如下所示:
这里,与硬选择不同的是,我们对每个clip proposal使用softmax分类分数,因为这个标准化的分数会使注意力权重的学习更加容易和稳定。注意,式(4)是概率向量的凸组合。因此,不需要进一步的标准化。
需要注意的是这里得出的分数维度是1*C的也就是对每个类别都打了分,不要犯迷糊
2.3 Training
特征提取模块、分类模块和选择模块采用前馈神经网络实现,这些神经网络都是可微的,具有模型参数。因此,采用强监督架构的训练方法,如采用交叉熵损失的标准反向传播方法:
其中,如果视频ViV_iVi包含第k类动作实例,则yiky_{ik}yik设置为1,如果不包含第k类动作实例,则yiky_{ik}yik设置为0,M为训练视频的数量。在训练过程中,权重衰减率为0.0005。对于包含多个类的动作实例的视频,我们首先用l1\mathcal l_1l1norm对标签向量y进行标准化,即yˉ=y/∣∣y∣∣1\bar y =y/||y||_1yˉ=y/∣∣y∣∣1。然后使用这个标准化的标签向量yˉ\bar yyˉ来计算交叉熵损失。
3 Action Recognition and Detection
3.1 Action recognition.
在未裁剪的视频中对动作识别进行了snippet-wise评估。在实际中,每30帧采样一帧(或5帧叠加光流)。将采样帧的识别分数通过top-k池化(k设置为20)或加权和进行聚合,从而得到最终的视频级预测。
3.2 Action detection.
带有软选择模块的UntrimmedNet不仅提供了一个识别评分,还输出了每个片段的关注权重。当然,这种注意力权重可以用于动作检测(时间定位)在未经修剪的视频。为了获得更精确的定位,我们每15帧进行一次测试,并保留每一帧的预测分数和注意权重。在注意权值的基础上,通过阈值(设置为0.0001)去除背景。最后,在去除背景后,通过对类进行阈值化(设置为0.5)得到最终的检测结果。
Experiments
总结
从头捋一捋这篇文章,
数据:
很多未裁剪的视频且标签是只有包含动作的名称(还不止一个)
网络:
先采样分段,再提取特征,然后经过分类网络得到段级别的分类分数(xc(c)∈RC\mathbf x^c(c)\in\Bbb{R}^{C}xc(c)∈RC),再通过选择模块得到段级别选择分数(可以简单地理解为片段c适合哪一个类别就把哪个维度置1,xs(c)∈RCx^s(c)\in\Bbb{R}^{C}xs(c)∈RC);**以上都是针对片段级别的分数,而数据中给出的都是视频级别的标签,而且是没有办法直接划分到片段级别标签的。**最后再预测时候,直接将段级别的选择分数与分类分数相乘得到段级别的最终预测分数,最后将段级别的分数累加作为视频级别的分数,维度是RC{R}^{C}RC。
训练网络
由于是视频级别的标签,所以将网络合起来优化。标签数据生成,是否包含某个实例将相应维度置1。优化目标,特征提取模块、分类模块和选择模块。
video analysis -- 弱监督的动作检测-UntrimmedNets相关推荐
- 【弱监督显著目标检测论文】Weakly-Supervised Salient Object Detection via Scribble Annotations
2020年发表在CVPR上的一篇使用涂鸦注释的弱监督显著目标检测论文 论文原文 代码地址 文章目录 摘要 一.创新点 二.Related Work 1.Learning Saliency from W ...
- 【弱监督显著目标检测论文】Weakly-Supervised Salient Object Detection Using Point Supervison
2022年在AAAI上发表的一篇使用点监督的弱监督显著目标检测论文 论文原文 代码地址 文章目录 摘要 一.创新点 二.方法 1.Adaptive Flood Filling 2.Non-Salien ...
- 【论文阅读】【弱监督-3D目标检测】Weakly Supervised 3D Object Detection from Point Clouds
前言 ACM MM 2020录用的一篇文章.不使用任何真实的3D框来进行训练.通过采用归一化的点云密度来生成目标候选框.不过性能一般,算是第一个吃螃蟹的人 MIT和微软合作的论文,模型简称为VS3D ...
- 基于可解释人工智能和深度学习的组织病理学图像中的副结核病诊断;用于恶意软件检测的安全稳健的认知系统设计;带有涂鸦注释的弱监督伪装对象检测;Time Majority Voting:一种面向非专家用户的
可解释的机器学习 中文标题:基于可解释人工智能和深度学习的组织病理学图像中的副结核病诊断 英文标题:Diagnosis of Paratuberculosis in Histopathological ...
- Weakly Superised video anomaly detection弱监督视频异常检测
关于弱监督的一些论文记录.(以便自己学习总结) 目录 Consistency-based Self-supervised Learning for Temporal Anomaly Localizat ...
- 【弱监督视频异常检测】2020-SPL-A Self-Reasoning Framework for Anomaly Detection Using Video-Level Labels
基于视频级别标签的异常检测自推理框架 论文地址 摘要 监控视频中的异常事件检测是图像和视频处理领域中一个具有挑战性和实用性的研究问题.与异常事件的帧级注释相比,获得视频级注释非常快速且便宜,尽管此类 ...
- 【弱监督视频异常检测】2019-BMVC-用于改进视频异常检测的运动感知功能
2019-BMVC-Motion-Aware Feature for Improved Video Anomaly Detection 用于改进视频异常检测的运动感知功能 摘要 1. 引言 2. 相关 ...
- 时序动作定位 | RSKP:基于代表片段知识传播的弱监督时间动作定位(CVPR 2022)
关于<Weakly Supervised Temporal Action Localization via Representative Snippet Knowledge Propagatio ...
- 时序动作定位|使用 ‘注意力机制’ 的弱监督时序动作定位顶会论文理解笔记(Weakly-Supervised Temporal Action Localization)
目录 Weakly Supervised Action Localization by Sparse Temporal Pooling Network(CVPR 2018) W-TALC: Weakl ...
最新文章
- error: RPC failed; curl 18 transfer closed with outstanding read
- shell 调用mysql 存储过程_shell调用mysql的存储过程以及SQL
- c语言模拟java面向对象_面向对象设计模式C语言实现.PDF
- PS教程第十九课:移动工具
- python视频处理代码_python如何实现视频转代码视频
- 数据结构相关代码-简介
- 92款jQuery图片展示/幻灯插件开源软件
- python进程池一个进程卡住_python进程池,每个进程都有超时
- php 连接oracle乱码,PHP查询oracle数据显示乱码问题
- MySQL 简单语句(2)
- android内存脚本教程,安卓内存
- lisp 左手钢筋_左手键配置程序
- WIN10上使用VM部署虚拟机NAT网络模式下域名解析失败
- 这几个 GitHub 项目真带劲
- 计算机机房防火门,弱电机房门为防火门吗
- wifi android透传源代码,【终极版】ESP8266远程控制wifi透传模块带调试app
- 12_微信小程序之微信视频号滚动自动播放视频效果实现
- 2019年全国电子设计竞赛H题电磁炮之定点打击
- n核CPU为什么计算速度达不到单核n倍
- 什么叫黑链-SEO zuobi手法解析