关于<CoLA: Weakly-Supervised Temporal Action Localization with Snippet Contrastive Learning>论文学习
1 Introduction
2 Contrastive Representation Learning
作者是第一个将噪声对比估计(noise contrastive estimation)引入到WS-TAL任务中的人。实验结果表明,CoLA优化了硬片段表示,有利于动作定位。
3 Method
图2,所提出的CoLA示例,包括四个部分:
(a)特征提取和嵌入,获得嵌入特征XEn;
(b)行为建模以收集类不可知论行为似然;
(c)难易片段挖掘,选择难易片段。
(d)行动损失和Snippet Contrast (SniCo)损失驱动的网络训练。
3.1. Feature Extraction and Embedding
假设给定一组N个未裁剪视频{Vn}Nn=1,它们的视频级别标签{yn}Nn=1,其中yn∈RC是多热点向量,C是动作类别的数量。按照惯例,对于每个输入的未裁剪视频Vn,将其分成多帧不重叠的Ln片段,即Vn = {Sn,l}Lnl=1。由于视频长度的变化,对固定数量的T片段{Sn, T}Tt=1进行采样。然后使用预训练的特征提取器(如I3D[4])分别提取RGB特征XRn = {xRt}Tt=1和光流特征XOn = {xOt}Tt=1。其中,xRt∈Rd和xOt∈Rd, d是每个片段的特征维。然后,在XRn和XOn的拼接上应用嵌入函数,得到我们提取的特征XEn∈RT ×2d。通过时序卷积和ReLU激活函数实现。
3.2. Actionness Modeling
作者引入了Actionness这个概念,它指的是为每个片段包含一个通用操作实例的可能性。在指定动作建模过程之前,先重温一下通常采用的时间类激活序列(T-CAS)。
考虑到嵌入的特性XEn,我们应用一个分类器fcls来获得片段级T-CAS。具体来说,分类器包含一个时间卷积,然后是ReLU激活和Dropout。对于视频Vn可以这样表述:
An = fcls(XEn;φcls), (1)
其中φcls为可学习参数。得到的An∈RT ×C表示发生在每个时间片段上的动作分类结果。
然后,当涉及到对动作进行建模时,一种常见的方法是对每个片段进行二进制分类,这将不可避免地带来额外的开销。
由于公式1中生成的T-CAS An∈RT ×C已经包含了片段级的特定预测,我们只需沿通道维度对T-CAS进行求和(),然后用Sigmoid函数得到一个与类别无关的聚合,并用它来表示动作性Anessn∈RT:Anessn = Sigmoid(fsum(An))。(2)
3.3. Hard & Easy Snippet Mining
回想一下,作者的目标是使用容易发现的片段作为先验来消除有争议的片段的歧义。作者系统地研究了难片段和易片段的对比对构建过程。
3.3.1 Hard Snippet Mining
直观上,对于大多数位于动作区间或背景区间内的片段,它们远离时间边界,噪声干扰较小,具有相对可信的特征表示。而对于边界相邻的片段,由于处于动作和背景之间的过渡区域,其可靠性较低,导致检测结果不明确。基于上述观察结果,作者认为在弱监管环境下,边界相邻片段可以作为潜在的Hard Snippet。因此,作者构建了一种新的Hard Snippet挖掘算法来利用来自边界区域的Hard Snippet。然后将这些开采出来的硬块按其位置分为hard action和hard background。
3.3.2 Easy Snippet Mining
为了形成对比对,作者还需要挖掘具有鉴别性的易片段。基于训练良好的全监督I3D特征,作者假设top-k和bottom-k动作得分的视频片段分别是简单动作和简单背景片段。
3.4. Network Training
在挖掘出的硬片段和简单片段的基础上,作者的CoLA引入了额外的片段对比(SniCo)损失(Ls),与基线模型相比取得了相当大的改进。总损失可以表示如下:
3.4.1 Action Loss
动作损失(La)是预测的视频类别与地面真实之间的分类损失。为了获得视频级别的预测,我们聚合在Eqn. 1中计算的片段级别的类分数。接下来,作者采用top-k均值策略:对于每个类c,作者取类特定T-CAS值最大的易项,计算它们的均值为; c,即视频Vn中类c的视频级类得分。在得到所有c类的an; c之后,作者在类维上应用一个Softmax函数来得到视频级的类可能性pn∈RC。作用损失(La)则以交叉熵形式计算:
3.4.2 Snippet Contrast (SniCo) Loss
对比学习已经被用于图像或patch层面。对于作者的应用程序,给定提取的特征嵌入XEn,在代码片段级应用对比学习。作者将其命名为Snippet Contrast (SniCo) Loss (Ls),旨在细化硬片段的片段级特征,获得更有信息的特征分布。考虑到硬片段分为hard action和hard background,我们在Ls中形成了相应的两对对比,分别是“HA提纯”和“HB提纯”,其中HA和HB分别是hard action和hard background的缩写。“HA细化”的目的是通过在特征空间中紧凑地驱动硬动作片段和简单动作片段来转换硬动作片段的特征,“HB细化”也是类似的。
通过这种方式,作者最大化了同一类别(动作或背景)的简单和困难片段之间的相互信息,这有助于细化特征表示,从而缓解单个片段作弊的问题。
3.5 结论
给定一个输入视频,首先预测它的片段级类激活以形成T-CAS,并聚合第3.4.1节中描述的 分数以获得视频级预测。然后选择分数大于 的类别进行进一步定位。对于每个选定的类别,我们用 对其对应的T-CAS进行阈值,以获得候选视频片段。最后,连续的片段被分组到提议中,并应用非最大抑制(Non-Maximum Suppression, NMS)来删除重复的提议。
4 Experiments
数据集:
ActivityNet v1.3 (下载地址:https://github.com/UCASUSTC/ActivityNet_Dataset_Download)
目前最大的数据库,同样包含分类和检测两个任务。数据集地址为Activity Net ,这个数据集仅提供视频的youtube链接,而不能直接下载视频,所以还需要用python中的youtube下载工具来自动下载。该数据集包含200个动作类别,20000(训练+验证+测试集)左右的视频,视频时长共计约700小时。
THUMOS’14 (下载地址:https://www.crcv.ucf.edu/THUMOS14/download.html)
该数据集包括行为识别和时序行为检测两个任务。它的训练集为UCF101数据集,包括101类动作,共计13320段分割好的视频片段。THUMOS2014的验证集和测试集则分别包括1010和1574个未分割过的视频。在时序行为检测任务中,只有20类动作的未分割视频是有时序行为片段标注的,包括200个验证集视频(包含3007个行为片段)和213个测试集视频(包含3358个行为片段)。这些经过标注的未分割视频可以被用于训练和测试时序行为检测模型。实际上之后还有THUMOS Challenge 2015,包括更多的动作类别和视频数,但由于上面可以比较的方法不是很多,所以目前看到的文章基本上还是在THUMOS14上进行实验。
我尝试复现CoLA,经过一顿debug让它适应我的服务器,但是卡在了这里……
欢迎一起解答讨论
文章出处登录后可见!