本文介绍了一个大规模、高质量、层级化标注的细粒度人体动作数据集「FineGym」,研究者来自香港中文大学,目前这项研究已被 CVPR 2020 接收为 oral 论文。
视频中的动作理解一直是计算机视觉领域的热点研究方向。原有的工作一般都是面向粗粒度的动作识别与分析,在许多现有数据集上相关研究已经遇到了瓶颈。在这项工作中,我们提出了一个大规模、高质量、层级化标注的细粒度人体动作数据集:FineGym。在这一数据集上,我们对现有的各类动作识别方法从多个层级多个角度进行了分析,得了很多有趣的结果,对领域一些固有结论产生了挑战,也为未来的研究带来了一些启发。值得注意的是,除了支持动作识别任务,FineGym 丰富的标注内容还可以支持其他动作相关的研究,如时域动作检测、动作质量评估、动作生成、动作属性识别等。基于这些特点,我们的工作在 CVPR2020 中,也获得了 3 strong accept 的满分成绩。1、FineGym 数据集的建立过程对行业有启发意义。
2、作为目前最全面的结构化细粒度动作数据集,FineGym 开辟了新的研究土壤,为原有领域注入新的活力。
3、基于 FineGym, 我们从粗粒度到细粒度对现有的 SOTA 方法进行了多角度分析,体现了粗粒度和细粒度动作理解的区别,研究了采样方法、时域信息整合、模型预训练等在细粒度动作理解方面的问题和特性,开放性地指出了现有方法的局限性和未来可能的研究方向。
总而言之,对于视频动作识别、检测、生成等感兴趣的研究者来说,这项研究绝对值得关注。此外,论文中的分析表明在 FineGym 上现有的人体检测和姿态估计方法的结果误差很大,因而从事相关工作的研究者也可关注一下。「三」:在语义层面,FineGym 定义了三层的语义类别结构,遵循着从粗粒度到细粒度的顺序,它们包括:事件类别 (event),组类别(set)和元素类别 (element)。
「二」:在时域上,FineGym 具有两层的结构,分别为动作和子动作。一个长视频中会出现多个动作,它们的开头和结尾会被标注。同时,一个动作内部会有多个子动作,这些子动作的时域位置会被标注。动作由事件类别来描述,而时域上更细粒度的子动作可以由组类别和元素类别两种粒度进行描述。
建立这样一个标注复杂、定义清楚、专业高质量的数据集,且标注粒度需要延伸到现有工作所未涉足过的细致程度,也算是「摸着石头过河」。期间遇到了许多「拦路虎」:「巧妇难为,无米之炊」:建立数据集的第一步是收集视频数据。以往类似的大规模视频数据集的数据来源基本是两种:一种是通过大型视频网站爬取数据;另一种则是提供相应的视频内容描述,直接要求众包人员自行演出、录制并上传视频。然而,这两种方式对于 FineGym 的数据收集都不适用。为什么呢?首先,FineGym 的语义粒度需要延伸到元素类别,然而不幸的是,以元素类别为关键词如「交换腿跨跳转体 180 度」,在视频网站上很难搜索到高质量、内容匹配的视频;另一方面,FineGym 基于专业度高、灵活性强的体操运动,普通人基本没可能标准地做出相应的动作。对此,我们采取的解决办法是,首先按照年份调研国家级及以上的专业体操比赛,之后下载相应的比赛视频,并逐个视频进行人工排查与清理,保证原始数据的清洁和专业性。「乱花渐欲迷人眼」:越细粒度的语义类别定义,越容易产生更多的类别数量。那么如何定义并组织数量众多、差别细微,容易混淆的类别呢?本文中采用的解决方法有两个方面。第一,类别的语义定义不再草率地人为制定,而是参考体操领域的专业知识,以国际体操协会发布的专业动作及打分手册为绳墨。第二,采用层级化的结构,粒度最细、数量众多的元素类别,则由树状结构进行组织。「术业有专攻」:有了数据并定义了类别之后,所需的标注又如何产生呢?FineGym 的标注需要具备足够的专业知识,所以也不能像以往一样简单地依靠众包平台。对此,我们专门筛选和组织了一支专门的标注团队,对其进行了必需的专业知识培训,并进行了相关专业知识的考核和测试。在经历了多轮培训、测试与数据试标注后,标注团队完全满足 FineGym 所需要的专业性和高质量的要求。「吾日三省吾身」:对于细粒度数据集来说,其「阿喀琉斯之踵」是标注的质量问题。相比于粗粒度的标注,同样比率的错标误标,在细粒度的类别间容易引入更多的问题和更大的混乱。针对这个问题,我们采取了一系列的标注质量监控措施,包括但不限于每日监控每一位标注人员的标注质量并及时反馈以避免重复性错误,标注人员间严格互检,标注团队的高比率二次检验等。FineGym 的建立包括原始视频数据收集、标注团队团队提供标注、后期的严格质量筛查等过程。要点这里不再赘述。目前,FineGym 收集了体操领域 10 种不同的事件类别(男子六种+女子四种)共三百多场专业比赛。我们对女子的四种事件(女子跳马,女子平衡木,女子自由体操和女子高低杠)进行了「3+2」的细粒度标注。基于这四种事件类别,FineGym 定义和筛选了 15 个组类别,并由此进一步定义了 530 种不同的元素类别,其中共 354 类目前具有子动作数据,这种情况源自于体操动作本身使用的不均衡性。FineGym 保留了原始的分布,但也提供了两版不同的数据集以供选择:Gym99 共 99 类,数据分布相对更加均衡;
Gym288 共 288 类,数据分布较不平衡。
截止现在,FineGym 已提供了两个版本的数据标注,提供了六千多个动作数据和 3 万多个子动作数据的细致标注。详情请访问 FineGym 的GitHub项目页面。值得注意的是,FineGym 中子动作的持续时间往往很短,大部分在几秒的长度,但信息量却很大(下面的实验部分有提到)。这种短时限制有效保证了数据的细粒度。 1. 原始数据高质量:国家级及世界级的体操运动比赛视频,动作来自于专业运动员;
2. 类别定义清晰:借鉴体操运动标准和完备的动作参考手册,避免了类别增多带来的定义不清楚、类别间语义不一致等问题;
3. 高分辨率:所收集的视频大多为 720P 和 1080P,更好地保留动作的视觉细节,也为后续更加精细的标注(如关键点)提供了良好的基础;
4. 高标注质量:FineGym 的标注团队经历了严苛的培训、测试与筛选,最终的标注结果也接受了层层的质量把控。
1. 丰富的层级结构:时域方面,FineGym 具有两层结构,而类别语义的层级则有三层;
2. 粒度最细的一层具有 530 个定义清楚的类,超过了现有的所有细粒度数据集;
3. FineGym 中的视频具有多样的拍摄角度,其动作也涵盖了各异的人体姿态,甚至包括很多不常见、高难度的极端姿态。
FineGym 所收集和标注的体操数据,其背景都有很强的相似和一致性,研究的关注点完全放在视频中的运动员身上。这一点避免了模型在识别过程中喜欢「走捷径」的问题,即只学习背景、物体等与动作无关的信息来完成分类。从根节点到叶子节点的路径还原了整个分类过程,并且记录了某一类运动最显著的属性标签集合。同时,在叶子节点中,每一个类别的动作还标注了其难度分数,可用于动作难度评估的研究。实验分析的主要关注点在最细粒度的元素类别识别。在此之前,我们先简要在较粗糙粒度上(event&set),进行了相关实验和分析。由于粗粒度实验不是重点,我们选取了当前业界广泛应用的方法——TSN,以点带面。实验结果如下:这个 performance 高,但不是我们的主要关注点。有趣的是,在最粗粒度的事件类别 (event) 识别中(也是当前动作识别领域的数据集和方法所关注和研究的粒度),appearance 特征的贡献远远超过了 Flow(光流) 特征,并且准确率已经趋于饱和。然而一旦往更细的粒度 (set) 前进,光流特征的作用则开始逐渐凸显。这说明更细粒度的动作识别需要模型的关注点逐渐回到动作本身,而不能通过仅仅学习一些场景和物体信息就能很好地对动作进行分类。这一趋势在元素类别的识别中体现的更加明显。下面就进入了方法分析的「重头戏」部分(细粒度识别实验)。我们将现在主流的几类动作识别方法都在 FineGym 上进行了测评,具体有:1. 2D+1D 模型,包括 TSN, TRN, TSM 和 ActionVLAD;
2. 基于 3D 卷积核的方法:I3D, Non-local;
3. 最近火起来的基于人体关键点的识别方法,代表为 ST-GCN。
实验在多个层级不同语义范围内进行,全方位地对模型进行测评分析。从字体大小可见诚意满满的实验结果如下图所示:除了动作识别,文中还选取动作时域检测的开源代表方法——SSN,在动作和子动作两个不同的粒度上进行了实验。实验结果表明,对细粒度的子动作进行准确时域定位仍没有得到很好地解决。在以上实验的基础上,我们又进行了后续的更加细致、深入的分析,主要研究了以下几个不同的角度的问题:稀疏采样 (sparse sampling) 在之前动作识别经典数据集如 UCF101 上十分有效,然而遇到了 FineGym 却遭遇了「滑铁卢」。如下面的实验数据所示,在 UCF 上只用 2.7% 的采样率(5 帧)TSN 的识别准确率就达到了饱和,而在 FineGym 上的元素类别识别则需要采样 30%(12 帧)以上的数据帧。这佐证了 FineGym 细粒度动作数据的信息丰富性,即「帧帧有用,帧多势众」。基于视频的视觉理解,和图像理解相比,最大的特点应该就在于提供了丰富的时域信息。但是在以往的视频动作数据集上,时域信息的效用并没有得到非常明显的体现。但是在 FineGym 上,对时域动态信息的整合和利用就显得尤为重要。我们在文中用三个不同的实验分析证明了这一观点,a) 对 TSN 而言,在给定不同的组类别进行元素类别识别时,光流信息相比于 RGB 特征对结果贡献显著更多;
b) TRN 学习了帧间关系来建模时域信息,然而一旦将输入的帧的顺序打乱,TRN 的表现将大幅下降。
c) 对于没有时域建模的 TSN 来讲,当测试的帧数逐渐超过训练帧数,识别的表现会因为引入新信息而变好并饱和;而对于在模型设计中嵌入了时域建模的 TSM 来说,当测试帧数和训练帧数的差异过大,学到的时域模型不再适用,识别准确率将「一落千丈」。
在视频动作识别领域,一个约定俗成的观念就是在大规模的视频数据集上进行预训练能够 大幅提升模型的识别准确率。例如,在 Kinetics 数据集上进行预训练的 I3D 模型,在 UCF101 上的识别准确率可以从 84.5% 提升到 97.9%。然而这种视频数据集预训练在 FineGym 上并不能屡试屡验,如下图所示。我们认为,一个可能的原因是细粒度与粗粒度动作的时域模式可能有较大的差异,因此预训练所学难以迁移。最后,通过详细的实验分析和观察,我们启发性地提出了一些让当前方法「力不从心」的问题:密集、快速的运动,如各种空翻;
空间语义信息的细微差别,如腿部姿态的些微不同;
比较复杂的时域动态线索,如运动方向的变化;
基本的推理能力,如数出空翻的次数等。
此外,FineGym 对一些动作理解的基础模块提出了更高的要求,如视频中的人物位置检测,人体关键点定位等。除了以上的提到的视频动作识别和时域动作检测,FineGym 丰富的标注和高质量的数据使其具备被应用于以下任务的可能:2)动作生成(得益于其较为一致的背景和丰富的类别信息);3)动作多属性预测,即利用标注过程中的决策树储存的属性信息;4)模型推理与可解释性,即同样利用标注过程中的决策树此外,FineGym 可能对未来的模型设计引入了一些新的可能和思考,如当面对这种信息量大、差异细微的动作理解任务,如何在提升采样率的同时保证模型的运行效率?如何更好地建模时域信息并保证其鲁棒性?这些都期待未来的研究者们发挥才智,尝试解决。我们的 FineGym 会持续收集和增加标注,包括更细致的视觉标注(如人体关键点),视频数据的扩充、事件类别的扩充和延伸到其他领域等。有兴趣的话可以持续关注。最后再多说两句,我们的这篇工作只是朝着细粒度动作识别领域做了一点小小的探索,得到审稿人的一致垂青也实属侥幸。希望能抛砖引玉,为后续相关研究提供基石。工作本身还存在很多不足之处,「曲有误,周郎顾」,欢迎各位路过的大神批评指正(玻璃心作者求轻喷),也欢迎大神们「且将新火试新茶」,在 FineGym 上进行模型设计与方法研究。原文链接:https://zhuanlan.zhihu.com/p/130720627