Spatio-Temporal Action Detection.
时空动作检测(Spatio-Temporal Action Detection)是视频检测领域的任务,视频领域常见的任务有动作识别、时序动作检测、时空动作检测。
- 动作识别(action recognition): 对每个输入视频进行分类,识别出视频中人物做的动作。即输入视频序列,得到视频对应的类别;
- 时序动作检测(temporal action detection):任务的输入是一个未经裁剪的视频(untrimmed video),即视频中有些帧没有动作发生,因此需要检测出动作开始和结束的区间,并判断区间内动作的类别。即输入未经裁剪的视频序列,得到动作出现的区间和对应的类别;
- 时空动作检测(spatio-temporal action detection):不仅需要识别动作出现的区间和对应的类别,还要在空间范围内用一个包围框(bounding box)标记出人物的空间位置。
1. 时空动作检测的常用数据集
目前常用的时空动作检测(Spatio-Temporal Action Detection)数据集可以被分为两类:
- 密集标注的数据集 Densely annotated:每一帧都进行标注
- 稀疏标注的数据集 Sparsely annotated:隔一段时间标注一帧
(1) 密集标注的数据集
密集标注的数据集由于每一帧都进行标注,因此标注了人物目标的id,这些数据集通常带有任务跟踪功能。由于数据集标注量大,因此会有标签质量低、动作类别过于粗糙等问题。常用的数据集包括:
- J-HMDB:对HMDB数据集的二次标注,共有$21$类动作,标注了$31838$张图像。每个视频包括$14$-$40$帧,包含动作的起止时间。每个视频最多只有一类动作。
- UCF101-24:UCF101数据集的子集,每个视频最多只有一类动作,共有$24$类动作。
- MultiSports:篮球,足球,体操,排球赛事的数据集。
(1) 稀疏标注的数据集
稀疏标注的数据集由于每隔一段时间(如$1$s)进行一帧标注,因此动作没有明确的时间边界,也不具有人物跟踪功能。常用的数据集包括:
- AVA:每$1$s进行一帧标注,共有$80$类动作。
- DALY
2. 时空动作检测的方法
按照处理方式不同,时空动作检测可以分为帧级别的检测器(frame-level detector)和tubelet级别的检测器(tubelet-level detector)。
- frame-level detector:先逐帧处理视频,得到每帧内人物的包围框和动作类别,再沿时间维度将这些框连接起来,形成时空动作检测结果。这种逐帧处理的方式导致沿时间连接比较困难,且因为缺乏时序信息的利用导致动作识别精度不高。
- tubelet-level detector:每次输入连续$K$帧的视频并产生连续$K$帧的检测结果tubelet(tubelet内相邻帧的框已连接),再将这些tubelet在时序上进行连接,得到视频级别的时空动作检测结果。
(1) Frame-Level Detector
frame级别的检测器是指每次检测时输入单帧图像,得到单帧图像上的检测结果;之后把检测结果沿时间维度进行连接,得到视频检测结果。常用的frame级别检测方法包括:
- T-CNN
⚪ T-CNN
T-CNN扩展了目前流行的静态目标检测方法,并将其用于视频检测中。为增强方法的时间一致性,首先使用静态目标检测方法DeepID-Net和CRAFT两种框架对视频中的每一帧进行检测, 在相邻帧上保持高置信度类别的检测分数不变,降低低置信度类别的检测分数,从而降低误检率(即减少false positive)。 将每帧的检测框和它们的分数传播到其相邻帧以增加检测结果,从而降低漏检率(即减少false negative)。 使用跟踪算法生成长期的检测序列,与其他检测结果进行融合获得最终检测框。
(2) Tubelet-Level Detector
tubelet级别的检测器在检测视频中的动作时引入了tubelet的概念(-let后缀表示小型的,此处是指预测结果在时间-空间上像一个小管道)。 即每次检测时输入多帧连续视频帧,在这些帧上预先设定anchor cuboids(同一个anchor在不同帧的空间维度上具有相同的初始位置和形状,在时间维度上构成立方体,因此得名,用于检测某一个具体的目标及其动作类型),通过模型对每一帧上的检测框进行修正,得到待预测的动作在连续帧上的多个bbox构成的tubelets。因此tubelets实际上就是同时含有时序信息和空间信息的检测框序列。
常用的tubelet级别的检测方法包括:
- ACT-detector
- MOC-detector
⚪ ACT-detector
ACT-detector将tubelet的概念引入视频检测。 给定$K$帧的连续帧视频序列,使用共享权重的卷积神经网络backbone(本文采用SSD)从每帧图像上提取不同层次的特征图。将$K$帧连续图像的属于同一个anchor的特征(构成anchor cuboids)堆叠起来,通过分类层预测$C+1$个动作类别的得分,通过回归层输出$4K$个坐标用于对tubelet进行调整。
⚪ MOC-detector
将视频中的动作建模为每一帧动作中心点沿时序的运动轨迹。 MOC-detector采用anchor-free的结构。首先将连续$K$帧图像分别输入共享权重的2D Backbone提取每一帧的高层语义特征,获得$K$张特征图;然后由三个分支共同协作来完成时空动作检测任务。中心点预测分支(Center Branch)用于检测关键帧中心点的空间位置和所属类别。运动估计分支(Movement Branch)用于估计每一帧上的动作中心点距离关键帧中心点的运动矢量,形成中心点运动轨迹,将关键帧中心点移动到当前帧的对应中心点,可以形成连续$K$帧内每个动作中心点的运动轨迹。包围框回归分支(Box Branch):逐帧处理,输入单帧特征图,在每一帧的动作中心点直接回归bbox大小来得到动作实例在空间上的包围框。
⚪ 参考文献
- Object Detection from Video Tubelets with Convolutional Neural Networks:(arXiv1604)T-CNN:使用上下文信息和运动信息增强视频目标检测。
- Action Tubelet Detector for Spatio-Temporal Action Localization:(arXiv1705)ACT-detector:检测tubelet的时空动作检测器。
- Actions as Moving Points:(arXiv2001)MOC-detector:一种anchor-free的时空动作检测模型。
- MultiSports: A Multi-Person Video Dataset of Spatio-Temporally Localized Sports Actions:(arXiv2105)MultiSports:基于篮球,足球,体操,排球赛事的大型时空动作检测数据集。