0%

引言

MOT(Multi-Object Tracking):目标是估计视频中显示的感兴趣对象的轨迹。

先前的工作大多采用两个模型:

检测模型首先通过每个帧中的边界框检测感兴趣的目标,然后关联模型从每个边界框对应的图像区域中提取re-ID特征,将检测链接到现有轨迹之一,或根据特征上定义的某些指标创建新轨迹。

缺点:存在可扩展性问题。当有大量目标时无法达到实时推理速度,因为两模型不共享特征,它们需要为视频中的每个边界框独立应用re-ID模型。

作者分析了先前的一次性(one-shot)跟踪器效果不好的原因:

  • 锚(anchor)。锚不适合提取re-ID特征,因为
    • 忽略了re-ID任务。先用锚检测目标,然后才基于检测结果来提取re-ID特征。所以当检测错误时,re-ID特征也就没用了(即re-ID特征的质量严重依赖于训练时proposal的质量)。导致模型往往偏向于提高检测目标的结果,这对re-ID网络的学习不公平fair)。
    • 在训练re-ID特征时存在不确定性。因为一个锚可能对应多个身份,多个锚也可能对应一个身份,特别是在拥挤人群场景中。

image-20220702155007007

  • 两个任务之间的特征共享。现有方法中,大多数特征在目标检测和re-ID任务之间共享。但目标检测需要深层特征来估计目标类别和位置,但re-ID需要低级外观特征来区分同一类别的不同实例。所以共享特征会降低每个任务的性能。所以要多层特征融合。
  • 特征维度。re-ID特征的维度通常高达512,远高于目标检测。维度之间的巨大差异会影响两个任务的性能。此外,作者实验表明,对于one-shot方法,低维re-ID特征能达到更高的跟踪精度和效率。

作者基于CenterNet提出FairMOT,将detection和re-ID任务同等对待。两个分支是完全相同的

image-20220702104721399

FairMOT在多个数据集(如2DMOT15、MOT16、MOT17和MOT20)上大大优于以前的SOTA方法。

相关工作

作者将相关的MOT工作分为两类:1. 单一模型; 2. 将模型分为目标检测和提取关联特征。作者讨论了两类工作的优缺点,并将作者的方法与之作了比较。

对于先检测再跟踪的方法:

  • 好处是可以分别为每个任务开发最合适的模型;此外,可以根据检测到的边界框裁剪图像,并在估计re-ID特征之前将其调整为相同大小,有利于不同尺度目标的处理。
  • 缺点是慢。因为两项子任务需要单独完成,而不共享。

对于检测和跟踪在一个网络中的方法:

  • 好处是快。
  • 缺点是精度不够。

FairMOT

骨干网络

采用ResNet-34作为骨干网络,将增强的DLA加入骨干网络来融合多层特征,所有上采样模块中的卷积层都被可变形卷积所取代,因此它们可以根据目标的比例和姿势动态调整感受野。

结果模型命名为DLA-34。输入图片是$C\times H_{image}\times W_{image}$,输出特征图为$C\times H\times W$,其中$H=H_{image} / 4$,$W=W_{image} / 4$。

检测分支

检测分支建立在CenterNet之上(其他一些无锚的方法也可以)。DLA-34后加三个并行的头,分别用于估计热图、目标中心偏移和边界框大小。每个头对DLA-34的输出特征使用3×3卷积(256个通道)来实现,然后是生成最终目标的1×1卷积层。

热图头(Heatmap Head)

负责估计物体中心的位置。采用了基于热图的表示法。热图的大小是$1\times H\times W$。如果热图中的某个位置随GT目标中心下降,则预计其响应为1。响应随着热图位置和目标中心之间的距离呈指数衰减。

设$\left(c_{x}^{i}, c_{y}^{i}\right)$是GT box $b^i$ 的中心点,那么$\left(\widetilde{c}_{x}^{i},{\widetilde{c_{y}^{i}}}_{i}^{i}\right)=\left(\left\lfloor\frac{c_{x}^{i}}{4}\right\rfloor,\left\lfloor\frac{c_{y}^{i}}{4}\right\rfloor\right)$表示特征图上的中心点。则热图响应值的计算公式为:

其中$N$是图象中目标的个数,$\sigma_c$是标准差。

损失函数focal loss:

框偏移和大小头(Box Offset and Size Heads)

框偏移头估计每个像素相对于对象中心的连续偏移,以减轻下采样的影响。

框大小头估计每个位置目标框的高度和宽度。

记GT box为$\left(x_{1}^{i}, y_{1}^{i}, x_{2}^{i}, y_{2}^{i}\right)$ ,box size为$s^i$,则$\mathbf{s}^{i}=\left(x_{2}^{i}-x_{1}^{i}, y_{2}^{i}-y_{1}^{i}\right)$,box offset为$o^i$,则$\mathbf{o}^{i}=\left(\frac{c_{x}^{i}}{4}, \frac{c_{y}^{2}}{4}\right)-\left(\left\lfloor\frac{c_{x}^{i}}{4}\right\rfloor,\left\lfloor\frac{c_{y}^{i}}{4}\right\rfloor\right)$

两个头的$l_1$损失:

re-ID分支

re ID分支旨在生成能够区分目标的特征。理想情况下,不同目标之间的关系(affinity)应小于相同目标之间的关系。为了实现这一目标,我们在主干特征之上应用了128个卷积核的卷积层来提取每个位置的re-ID特征。

作者通过分类任务来学习re-ID特征。训练集中具有相同身份的所有目标实例被视为同一类。

首先在热图上获取目标中心,提取re-ID特征向量,并通过全连接层和softmax操作映射到类别分布向量P。

re-ID损失:

image-20220702231116613

其中K是训练集中所有身份的数量。

在网络训练过程中,只使用位于目标中心的身份嵌入向量进行训练,因为我们可以在测试时从目标热图中获得目标中心。

训练

总的损失:

image-20220702231620380

其中$\omega_1$和$\omega_2$是学习参数,用于平衡两个任务。

具体来说,给定一个包含几个目标及其对应身份的图像,我们生成热图、框偏移和大小图以及目标的一个独热(one-hot)类别表示。将其与估计结果进行比较,以获得整个网络的训练损失。

除了以上标准训练方式,作者还给出了一种单一图像训练方法,从而在图像目标检测数据集(如COCO和CrowdHuman)上训练FairMOT。这种方法仅将单个图像作为输入,并为每个边界框指定一个唯一的标识(id),从而将数据集中的每个对象实例视为一个单独的类。

推理

主要是如何将检测和re-ID关联起来。

网络推理

输入帧大小为1088×608,和JDE一样。在预测的热图之上,基于热图分数执行非极大值抑制(NMS),以提取峰值关键点。保留热图分数大于阈值的关键点的位置。然后根据估计的偏移量和框大小计算相应的边界框。

在线关联(Online Association)

和MOTDT方法一样,使用多层在线数据关联方法。首先根据第一帧中检测到的box初始化一些tracklets。然后在随后的帧中,使用两阶段匹配策略将检测到的box链接到现有的轨迹。

  • 在第一阶段,使用卡尔曼滤波和re-ID特征来获得初始跟踪结果。作者将马氏距离Dm与根据re-ID特征计算的余弦距离融合:D = λDr + (1 − λ)Dm,其中λ=0.98是权重参数。和JDE一样,如果马氏距离大于阈值,就将其设置为无穷大,以避免获得过大的运动轨迹。使用匹配阈值τ1=0.4的匈牙利算法完成第一阶段匹配。
  • 在第二阶段,对于不匹配的检测和轨迹,我们尝试根据其框之间的重叠来匹配它们。特别是,我们将匹配阈值τ2设为0.5。最后,将不匹配检测初始化为新轨迹,并将不匹配的轨迹保存30帧,以备将来再次出现。

实验

数据集和指标

ETH和CityPerson只提供框标注,所以只能用来训练检测分支。

CalTech、 MOT17、CUHK-SYSU和PRW提供了框和身份标注,可以用来训练两个分支。

衡量标准(benchmark):2DMOT15、MOT16、MOT17和MOT20。

用平均精度(AP)来评估检测结果,用错误接受率(FAR)为0.1的真正例率(TPR)来评估re-ID特征。提取对应于GT框的re-ID特征,并使用每个特征检索N个最相似的候选。

评价指标:CLEAR和IDF1

高铁危情识别——周界入侵

技术选型

  • 采用在线多目标跟踪的方式进行周界入侵的检测以及运动轨迹的分析,选择FairMOT作为基础网络,针对夜间、小目标等难点进行优化,配合报警逻辑完成周界入侵的监控任务。

  • 针对轨迹匹配出错的问题,选择ByteTrack作为补充。

难点

夜间

光照条件不足,对比度偏低,颜色信息退化严重,亮度和信噪比都相对较低,造成了图像感知质量大幅度降低。

小目标

分辨率低,图像模糊,包含较少的信息,由此导致特征表达能力弱。

复杂背景

铁轨两侧的环境复杂,杂草,石头,甚至护栏会产生复杂的背景环境。一方面,导致误检,产生错误的报警,另一方面,复杂背景会与需检测的行人混淆,影响目标检测的效果。

检测不连续

在检测效果不稳定的时间内,跟踪效果会受到较大的影响,在检测多帧丢失的情况下,将丢失的轨迹与新的检测目标匹配起来是较为困难的任务。

报警逻辑

周界外的目标的检出会影响报警的准确性;周界内的目标,报警逻辑需要面对检测不稳定,跟踪无法匹配,背景误检等特殊情况。

低分目标难以匹配

调研

  • 传统方法
  • 深度学习方法

image-20220630231242919

本周工作

Graph Convolutional Networks for Temporal Action Localization [2019 ICCV]

motivation

目前二阶段TAL方法:首先生成一系列时序提名,再分别对每个提名做分类和边界回归。在这个learning过程中没有利用proposal之间的关系。但事实是,proposal之间的关系在TAL中扮演着非常重要的角色,于是作者提出使用Graph Convolutional Networks来探索proposal之间的关系。

方法

构建图

上下文边(Contextual Edges)

[公式] ,我们就在proposal [公式][公式] 之间建立一条边, 这里[公式]是一个特定的阈值, [公式] 代表proposal之间的相关性,被tIoU定义。

周围边(Surrounding edges)

上下文边将重叠proposal连接起来,而这些proposal通常对应相同的action instance。事实上,也可以将种类不同但是nearby的动作(包括背景)关联起来,并且它们之间传递的信息将有助于彼此检测。

为了处理这种相关性,我们首先利用 [公式] 查询不同种类的提议,然后计算以下距离,如果 [公式] 就在nearby proposals之间添加边。

image-20220228193152721

实验

image-20220228201158024

image-20220228201429808

实验结果分析

  1. 在THUMOS14上的实验结果很好。
  2. 在activitynet上的结果仅仅利用P-GCN结果不是很好。添加了UntrimmedNet网络的结果才超过了BSN的结果。

思考

在activitynet上可能是一个视频大部分都是只有一个动作,并且行为类别数比较多,不能很好的发挥提议与提议之间的关系。

图卷积方法

最大的贡献是发掘了proposal之间潜在的关系。

图的边是人为定的,可能存在误差。有没有可能把构建图的过程也变成网络学习的过程?

计划

  • 目前对上学期的论文调研已经做了总结,接下来要尽快完成TAL领域的综述 并发表。(1~2个月)
  • 时序动作定位领域继续学习新的论文、做实验,尽早确定具有可行性方法思路。(一项长期工作。计划:每周至少学习1~2篇论文,每两周完整地仿真一篇论文;所有论文阅读和实验做好整理和归纳)
  • 希望可以结合一些具体的项目来进一步锻炼自己的代码能力。(如果有的话)

$A_n^k$与$C_n^k$(排列与组合)

题目大意:给定两个整数 nk,求$C_n^k$ 。原题链接-力扣77

1
2
3
4
5
6
7
8
9
10
输入:n = 4, k = 2
输出:
[
[2,4],
[3,4],
[2,3],
[1,2],
[1,3],
[1,4],
]

分析

用dfs,数组a[]记录一个组合结果,v[]记录当前数字是否访问过了。

阅读全文 »

时序动作定位(Temporal Action Localization)总结

定义

在视频序列中确定动作发生的时间区间(包括开始时间与结束时间)以及动作的类别

分类

按阶段分:

  • 多阶段方法:S-CNN、BSN、BMN……
  • 端到端方法:SSAD、SS-TAD、GTAN、DBG……

按监督分:

  • 强监督方法:以上都是
  • 弱监督方法:UntrimmedNet、STPN、CMCS、Background Modeling、BaSNet……

基准数据集

最流行的是THUMOS14和ActivityNet。

两阶段方法

两阶段方法即先提议分类。这种方法是主流的方法(多数论文都采用)。

  1. 提取temporal proposals(难点)
  2. 将其分类以及回归操作

第一步是难点,所以各种方法也都是针对第一步来提出。

对于两阶段的方案存在的问题

  1. 由于对候选片段的生成和分类是相对独立的,各个模块训练目标不一致
  2. 动作实例的候选片段在分类步骤中已经被固定,前一模块产生的偏差可能影响后一个模块,造成误差的累积

SLIDING WINDOW (S-CNN, 2016)

image-20210927182540574

S-CNN:固定一定大小的滑动窗口来生成不同大小的视频片段,然后通过多级网络(SegmentCNN)对其进行处理。

SCNN包括三个使用C3D网络的子网络:

  1. proposal网络。确定当前划分的视频片段(segment)是一个动作(action)的可能性。
  2. 分类网络。对视频片段进行分类。
  3. 定位网络。其输出是分类的概率。

理论上,窗口滑动的重叠度越高,效果越好,但是计算量也大。所以用非极大值抑制(NMS)去除重叠段。

缺点:滑窗法不能处理不同长度的视频动作;密集的滑窗计算量太大。

时序动作组合 TEMPORAL ACTIONNESS GROUPING (TAG, 2017)

image-20210927182821079

滑窗法不能处理不同长度的视频动作。为了生成一个proposal,提出了TAG网络。TAG网络分为3步:

  1. 提取片段(snippets):每个snippet包含一个视频帧和光流( optical flow)信息;snippet是均匀获取的;用TSN的稀疏采样方法采样。
  2. 动作判断(Actionness):给snippet打分,确定每个snippet是否含有任何动作。用到二分类网络TSN(Temporal Segment Network)。

  3. 组合(Grouping):依据输出的snippets序列的概率,对高概率的连续snippets进行组合,同时设置多组阈值来删除低概率的snippets。

在THUMOS2014上IOU=0.5时候MAP=28.25。

优点:对边界的处理更灵活;减少了proposal数目,减少计算量;合并片段是自底向上的,更加精确;设置多个阈值组合,可以不需改变参数的训练。

缺点:分类错误的话,会错过一些proposal。

时序单元回归网络 TEMPORAL UNIT REGRESS NETWORK (TURN TAP 2017)

该方法将视频分成固定大小的单元(unit),例如16帧为一单元。然后将每个单元放入C3D中提取水平特征。相邻单元构成一个片段(clip),并让每个单元作为锚定单元(anchor unit)构成片段金字塔,然后在单元上执行时序坐标回归。

网络包含两个输出:

  1. 确定片段(clip)是否包含动作的置信度
  2. 调整时序坐标边界的偏移量

该方法的贡献:

  1. 一种利用坐标回归生成时序proposal片段的新方法。
  2. 快(800fps)。
  3. 提出了一种新的评价指标AR-F。

边界敏感网络 BOUNDARY SENSITIVE NETWORK (BSN, 2018)

image-20210927185640495

BSN步骤:

  1. 首先确定时序动作片段的边界,并将其此片段直接作为proposal。
  2. 对每个候选proposal,基于动作序列的置信度,提取32维的proposal级别的特征。
  3. 最后,根据所提取的这些特征,评估这些proposal的置信度。

优点:

  • 框架:提出了一种全新的且非常有效的时序提名生成框架,能够产生满足(1)时长灵活(2)边界准确(3)评分可靠的时序动作提名;
  • 灵活性:BSN方法的模块非常简单且灵活,能够灵活地应用于不同的垂类场景。

缺点:

  • 效率不够高:提名特征提取以及置信度评估的过程是对每个时序提名逐个进行的,虽然可以在一定程度上做并行加速,但总体上还是效率比较差;
  • 语义信息丰富性不足:为了保证提名特征提取过程的效率,BSN中所设计的32维提名特征是比较简单的,但也限制了置信度评估模块从特征中获得更加丰富的语义信息;
  • 多阶段:BSN方法是一个多阶段的方法,没有将几部分网络联合优化。

边界匹配网络 BOUNDARY-MATCHING NETWORK (BMN, 2019)

为了解决BSN的不足所提出。BMN网络能够同时生成与BSN中类似的一维边界概率序列,以及二维的BM置信度图来密集的评估所有可能存在的时序提名的置信度分数。

右下角三角形区域的解释:提名的结束时间超出了视频的范围,不被纳入考虑。

image-20211213220303917

BMN主要包括3个模块:

  • 基础模块:包括两个1d卷积层,处理输入的特征序列,并输出被后续两个模块所共享的时序特征序列。
  • 时序评估模块:包含两个1d卷积层,输出开始概率序列结束概率序列,用于后续的提名生成。
  • 提名评估模块:包含了前面介绍的BM layer,一个3d卷积层以及3个2d卷积层,最终输出为BM置信度图。

网络生成时序边界概率序列后,产生候选时序提名;并从二维置信度图中取出对应的置信度分数,用于最后的时序提名排序。

最后用了Soft-NMS方法去除冗余结果。

优点:效率比BSN更高;

一阶段(端到端)方法

这种方法同时处理proposal和分类。

End-to-end Learning of Action Detection from Frame Glimpses in Videos [2016 CVPR]

视频动作检测任务中的第一个端到端方法。用了强化学习的思路。

该模型有一个基于递归神经网络的agent,它随着时间的推移与视频交互。agent观察固定比例的视频帧,并决定下一步在哪里看以及何时发出预测。

image-20211008105534974

总体流程

在某一步n中,agent观察橙色视频帧并产生3个输出:$(d_n, p_n, l_{n+1})$,分别表示(候选检测结果,预测指标,下一处观察位置)。其中,预测指标$p_n$输出“是”或“否”,指示$d_n$可否被作为一个预测结果被提交;候选检测结果$d_n$包括$(s_n, e_n, c_n)$,分别表示正则化开始、结束位置和该候选的置信度。

在上图中,$p_n$输出“否”,因此不被动作预测集接受。同时agent在n+1步中移动到$l_{n+1}$的位置,即绿色视频帧的位置,并继续产生3个输出:$(d_{n+1}, p_{n+1}, l_{n+2})$。此时$p_{n+1}$仍不被接受,因此agent在n+2步中移动到$l_{n+2}$的位置,即蓝色视频帧的位置。这次的$p_{n+2}$被接受,因此将该候选结果输入到动作预测集,同时agent继续下一步。

优点:只需要观察很少数的视频帧(2%甚至更少)

SSAD(single shot temporal action detection,单镜头时序动作检测)

结合了在目标检测中的YOLO和SSD模型的特性。

image-20220115231850631

缺点:虽然不是像S-CNN那样固定了滑窗,但是bbox的大小实际上还是由人为事先规定的;效率可能不是很高,因为会生成很多的bbox。

SS-TAD(end-to-end, single-stream temporal action detection,端到端,单流时序动作检测)

利用时序动作定位的语义子任务作为调整后的语义约束(semantic constraints)来提高训练和测试性能。

image-20211011161132357

优点:效率上比SSAD更好。

GTAN(Gaussian Temporal Awareness Networks,高斯时序感知网络)

引入高斯核函数(Gaussian kernels),动态优化每个动作proposal的时序范围。

image-20211101210605894

弱监督方法

见另一个文件。

总结和想法

  • 通过梳理和总结,现在对各种好的思路和方法有了比较清晰的了解。
  • 端到端的时序动作定位方法

从目标检测的发展进程来看,在目标检测算法的发展与落地应用过程中,往往单阶段算法可以在推理速度与模型大小中有着更大的优势。模型结构也往往更加简单。

多阶段的方法往往由多个独立的模块组成,每个步骤结果的好坏会影响到下一步骤,从而影响训练结果,同时需要较为高昂的标注成本,因此端到端的方法更具有实用价值。现有的方法中,两阶段的方法,如R-C3D,评估不同尺度的proposal用的是共享特征,而时间段的范围和anchor的跨度不对齐,难以解决时间段的变化比目标检测的区域变化范围更大的问题。聚合动作性分数的方法,如SSN,TAG,ETP,CTAP由于其感受野的限制,会使得在时间跨度较大的数据集上表现不佳。基于边界的方法,如BSN,BMN,BSN++需要先使用骨干网络提取视频中的特征,保存后再使用特征进行训练和测试,并且只产生proposal在实际应用中价值有限。

  • 弱监督的时序动作定位方法

弱监督时序动作定位的标签只提供实例的类别信息,需要网络自身去猜测动作的起止时间,问题定义更加复杂,但是实用价值更高,因此有不少研究人员将目光聚焦于弱监督时序动作定位中。主流的弱监督时序动作定位算法通过预测视频片段的动作概率,通过融合得到整个视频的概率输出,然后通过注意力模型得到每个视频片段对应的注意力权重。在测试阶段,通过注意力权重筛选视频片段,去除不包括动作的片段。

  • 充分利用上下文信息

在时序动作定位任务中,视频包含丰富的上下文信息。如在背景片段中,往往包含场景信息,充分利用上下文信息将有助于对应场景动作的检测。

为了充分利用上下文的信息,一些方法如TCANet,BSN++,使用自注意力对时序以及空间关系建模,寻找特征的全局依赖关系,自注意力模块会消耗大量的计算资源,降低方法的实用性。一些方法,如TCN,TURN,TSN,按照预定义比例扩展动作时间边界以利用视频上下文信息,TAL-net使用空洞卷积编码上下文信息,但这些方法只是简单的利用了时序方向的上下文,在动作的时序领域中扩展边界,现实中的动作在时间范围,动作内容都有较大差异,这些方法无法充分利用视频中丰富的上下文信息。另一部分方法如P-GCN,使用图卷积网络学习proposal之间的依赖关系,在生成proposal时使用了聚合动作性分数的方法,存在感受野受限的问题。

下周计划

  • 周一又开学了,不在校也要尽量保持在校的状态。
  • 这学期有些好的论文虽然看过了,但是还没有来得及做实验。继续写代码做实验。
  • 继续调研综述中提到的那些思路和方法。

STL 链表: List

初始化

1
2
#include<list>
list<int> linklist;

在头部或尾部添加一个元素:

1
2
3
int head = 0;
linklist.push_front(head);
linklist.push_back(head);

遍历链表,并在值为x的节点后面,插入值为y的节点:

阅读全文 »

稠密边界视频动作检测器DBG:Fast Learning of Temporal Action Proposal via Dense Boundary Generator [AAAI 2020]

本文主要针对时序动作提名生成任务提出了一种新的方法:稠密边界生成器(Dense Boundary Generator, DBG),能够端到端地生成高质量的时序动作提名。

BSN等基于概率序列的自下而上的方法,它生成开始和结束的时间概率序列,匹配概率峰值生成proposal,但是每个时间点只包含少量的局部信息,大概3~4s,因而无法处理复杂的活动和杂乱的背景,模糊边界定位不精确。

我们提出了密集边界生成器(DBG),利用全局提案特征来预测边界图,并探索动作感知特征进行动作完整性分析。

给定一个长视频,DBG同时生成三个评分图(开始、结束和动作完整性评分图),密集地评估所有提议。

image-20211122221510253

DBG框架结构

image-20211122221111307

视频表示 Video Representation

利用3D卷积网络提取视频的RGB特征和光流特征。

密集边界生成器 Dense Boundary Generator

双流基网络 Dual Stream BaseNet

输入是RGB特征和光流特征,输出是两种类型的特征:

  • 双流特征:low-level,L×128
  • 动作评分特征:high-level,L×1

Action-aware completeness regression

橙色的提案特征生成器分别生成两种特征组,上面一种L×L×32,L是视频特征序列的长度。最后输出预测动作完整性的分数图。

32的由来如下:分别对提案的开始和结束处扩展更多的区域,开始、动作和结束区域各采样8,16,8个点。

image-20211122232735105

Temporal boundary classification

L×L×128×32

最后将四维特征图处理为两个开始和结束的概率置信度图。

后处理

融合 开始分数×结束分数×完整性分数 作为提案的分数,再利用soft nms检索N个提案。

实验

image-20211123192610545

与BSN对比

  • 本文是端到端
  • 由一维边界概率序列变为二维分数图

  • 本文引入动作提名特征生成层,该层能够有效捕获动作的全局特征,便于后面的分类和回归模块

    image-20211123200555494

下周计划

  1. 继续调研论文,看看和本文思路相似的BMN和MGG
  2. 未来两周考试周,好好复习

SlowFast Networks for Video Recognition

概述

提出了一种快慢结合的网络SlowFast来用于视频分类。提出对运动维度(时间维度)空间维度分而治之的思想。

灵感来源:

  • 空间语义信息是变化缓慢的。比如,挥手不会改变“手”的类别;一个人从步行转为跑步,也总是处于“人”的类别。因此,对分类语义(以及它们的颜色、纹理、光照等)的识别可以低帧率地刷新。
  • 但对于正在执行的动作,可以比其主体身份更快地发展,例如拍手,挥手,摇晃,行走或跳跃。所以采用高帧率来有效地模拟可能快速变化的运动。

模型分为两路:

  • 一路为Slow网络,输入为低帧率,用来捕获空间语义信息。
  • 一路为Fast网络,输入为高帧率,用来捕获运动信息。

最终两条路径通过横向连接来融合。

网络

image-20211115172221627

1. Slow路径

输入为低帧率,用来捕获空间语义信息。

对于一个视频片段,Slow网络每隔 [公式] 帧(默认=16)采样一帧作为输入。假定该网络的输入为T 帧,则该视频片段的长度为[公式] [公式] T

2. Fast路径

对比Slow路径,有两个重要参数α和β。

  • 高帧率:Fast网络相比于Slow网络,处理高帧率的信息,则每 [公式] 帧采样一帧作为输入,也就是输入为 [公式] 帧。 ([公式] =8 默认)

  • 高分辨率的时序特征:不进行时间的降采样。(始终保持高帧率)

  • 轻量级:相比于Slow网络,通道数只是它的 [公式] 倍([公式]<1,文中取1/8)。一般计算复杂度(FLOPs)与通道数为二次关系(why?),所以在SlowFast中,Fast网络占到20%左右的计算量。

虽然Fast是高帧率的,但它却是轻量的(只占总计算量的20%),因为Fast路径只专注于时序信息,减少了通道数,牺牲了处理空间信息的能力。而空间信息可以由slow路径提供。

3. 横向连接

两条路径需要进行融合,通过横向连接来实现这一点。因为两路具有不同的时间维度,因此横向连接进行尺寸匹配。

使用单向连接将Fast路径的特征融合到Slow通路中(实验表明双向融合并没有什么提升)。

最后,对每个路径的输出进行全局平局池化,合并后接一个全连接层用来分类。

实验

在四个数据集(Kinetics400 、Kinetics600 、AVA、Charades )上都取得了最好的结果。

消融实验

image-20211115192138885

image-20211115195412692

和two-stream网络的比较

  • two-stream模型也是双流设计,但它针对的是相同的帧率。

  • two-stream的两个流采用相同的主干结构,而SlowFast两条路中的Fast路径更轻。

  • SlowFast方法不计算光流,模型是从原始数据端到端学习的。
  • 本文的实验表明SlowFast 网络更有效,在四个数据集(Kinetics400 、Kinetics600 、AVA、Charades )上都实现了最高的水准。

小结

  • 在时间维度上更好地处理运动信息,是一个重点研究问题。
  • 有没有时序动作定位论文用这个网络来提取特征?

TensorBorad

TensorBoard是一个可视化工具,它可以用来展示网络图、张量的指标变化、张量的分布情况等。特别是在训练网络的时候,我们可以设置不同的参数(比如:权重W、偏置B、卷积层数、全连接层数等),使用TensorBoader可以很直观的帮我们进行参数的选择。

add_scalar()

示例:画y=2x的图像

1
2
3
4
5
6
7
8
from torch.utils.tensorboard import SummaryWriter

writer = SummaryWriter("my_logs") # 指定事件文件的文件夹

# 画y=2x的图像
for i in range(100):
writer.add_scalar("y=2x图像", 2i, i) # 参数:title,y,x
writer.close()

在控制台输入

1
tensorborad --logdir=my_logs --port=6607  #port可以不指定

add_image()

1