论文题目:PA3D: Pose-Action 3D Machine for Video Recognition
论文地址:http://openaccess.thecvf.com/content_CVPR_2019/papers/Yan_PA3D_Pose-Action_3D_Machine_for_Video_Recognition_CVPR_2019_paper.pdf
今天是大年初二,首先祝福大家新年快乐,阖家安康!接下来,我阐述的这篇文章是2019年发表在CVPR上经典文章,由腾讯Ai Lab与中国科学院深圳先进技术研究院合作完成。从论文题目看,作者从一个新的角度提出了一种行为识别的框架。
开始正题,下面我将会从以下几个方面对这篇文章进行阐述,首先介绍作者提出PA3D如图1,视频行为识别网络的思路,接着阐述行为识别的相关工作,之后对论文提出的方法详细阐述,最后引入文章中的实验来说明作者提出方法的可行性和优越性。该论文的三大贡献:
图1 PA3D网络框架图
首先,介绍PA3D行为识别网络提出的思路。现有的基于深度学习行为识别的方法主要采用两种类型的输入:RGB图和光流图,忽略了另一种可判别的行为识别线索:人体姿态动力学。除此之外,当下基于姿势的动作识别方法主要依赖于预定义的人体姿势块的两个流特征和/或使用预定义的编码方案学习姿势动力学。在这种情况下,姿态表示和动作识别是孤立的,没有自适应交互,这可能限制了理解野生视频中复杂动作的能力。更重要的是,目前基于姿势的动作识别研究缺乏一个统一的框架。为了应对这些问题,作者提出了PA3D,它提供了一个无缝的工作流程来编码用于视频动作识别的时空姿势表示。具体来说,PA3D由三个语义模块组成,即空间姿态CNN、时序姿态卷积和动作CNN,具体如图1。
接下来,阐述行为识别领域的相关工作。在过去的几年中,深度学习方法显著提高了视频动作识别的性能。众所周知的框架有Two-Stream CNNs,它将RGB和光流作为网络的两个独立的输入流。在此基础上,为了提升识别进度,提出了很多改进的方案:Deep Local Descriptors Two-Stream fusion , Key Volume Attention and Mining , Temporal Segment Networks 等.。然而,2D CNN对于学习复杂动作的时空表示存在局限。为了解决这一困难,三维CNN通过模型膨胀、时空关系、因子分解等方法得到了强调。由于三维CNN通常需要大规模的数据集进行训练(如Sports1M和Kinetics),计算量大。更重要的是,这些模型使用RGB和/或光流作为输入,因此它们忽略了能够辨别人类行为的姿态动力学。为了弥补这一缺陷,作者提出了一种新的基于姿势动作识别的三维CNN(PA3D)。人体姿态为复杂动作的分类提供了重要线索。随着对姿态估计的深入学习取得了显著的成功,人们对基于姿态的动作识别越来越感兴趣。然而,要实现一个有效的设计往往是一个挑战,因为这些姿势估计器并没有显式地用于视频中的动作识别。最近,骨架表示、多任务学习、重复姿势注意、姿势动力学编码等提出了一些尝试,特别是姿势动力学编码是通过学习时空姿态表示来进行动作识别的一个有吸引力的方向。但是这些方法主要依赖于预先定义的人体姿势块的两个steam特征和/或使用预先定义的姿势编码方案,这可能会降低它们在野外识别复杂动作的能力。此外,目前的研究还缺乏统一的基于姿态的动作识别框架。
图 2 Temporal Pose Convolution卷积
PA3D的突出之处在于它的三个模块:Spatial Pose CNN,Temporal Pose Convolution,Action CNN,这三个模块我在前面已经进行了详细阐述。接下来,我将描述三个模块在PA3D中的作用,
Spatial Pose CNN:其主要用来生成每个帧中关注对象的姿态热图。具体地说,使用的Multi-Person Pose Machine作为Spatial Pose CNN,因为它对Multi-Person和复杂闭塞的情况具有鲁棒性。具体,将视频中的每个帧送入Spatial Pose CNN,提取出三种姿势模式,即joints(关节)、part affinity fields(部分关系场)和convolutional features(卷积特征)。joints是指人体关节的预测置信图。part affinity fields的形态是指在肢体支撑区域保留位置和方向信息的预测置信图。卷积特征的形式是指来自骨干网卷积层CNN的特征映射,例如VGG19的第10层。
Temporal Pose Convolution:在获得每个帧的空间姿态热图后,使用Temporal Pose Convolution来编码帧间的位姿动力学。该模块主要由两个原子操作组成,即Temporal Association(时间操作关联)与Semantic Convolution(语义卷积),具体如图2。
Temporal Association:对所有帧各自的joints热力图按照时序进行堆叠,如图2,表示第c个joint在时序上变化的线索,指第t个时序帧上第c个关节(joint)的热图。
Semantic Convolution:经过Temporal Association之后,对输出的获取在时空上的姿态表示,具体使用1x1的卷积进行作用产生输出特征图,具体公式如图3,具体输出为如图2.此处1X1卷积在所有joints(关节)热力图中共享参数
图3 语义卷积(Semantic Convolution)的输出
Multi-Scale Design via Temporal Dilation:为了获取多尺度姿态变化,作者引入了时序膨胀卷积(Temporal Dilation Convolution)具体公式如图4,表示1x1卷积,d为膨胀率。具体作用图5,最终将Semantic Convolution和Multi-Scale Design输出的特征图进行concat。
图4 时序膨胀卷积的计算公式
图5 时序膨胀卷积作用图
Action CNN:输入为Temporal Pose Convolution的输出特征图,这些特征为middle-level features,相比原始图像来说是稀疏的,因此,使用light-weight action CNN对Temporal Pose Convolution的输出进行作用。具体卷积使用如图6
图6 Action CNN
为了验证PA3D的可行性,作者进行了大量的实验。包括数据集选择和训练设置。图7为提出的PA3D和最优模型比较。
数据集选择:由于本文关于视频中基于姿势的动作识别,因此根据三个流行的数据集来评估PA3D,这些数据集主要关注复杂的人类活动。具体来说,JHMDB/HMDB包含21/51个动作类别,分别包含928/6766个视频片段。它们从youtube中收集得到。Charades是一个大型视频数据集,由9848个注释视频组成,平均长度为30秒。注意,作者选择Charades而不是Kinetics,原因如下。一方面,基于姿势的动作识别在Kinetics上是不合适的,因为人类在这些数据的许多视频中很难看到。另一方面,Charades包含267个不同的人的活动,超过15%的数据集属于多人场景。此外,它还包含用于157个行为类的66500个活动的标注。每一个视频都是未剪辑的,并且在重叠的时间段内有多个动作标签。
实现细节:使用使用官方的6级多人姿势CNN为每个采样帧提取空间姿态热图,即19个关节热图:最后阶段的关节分支,38个部分热图:最后阶段的部分亲和场分支,128个特征图:VGG19的第10层。更具体地说,使用0.5、1.0、1.5和2.0的比例调整每个视频帧的大小,并平均它们的输出以生成每个帧的最终姿态热图。其次,在PyTorch上实现JHMDB/HMDB/Charades,将训练批大小设置为32/64/256。使用标准SGD来训练JHMDB/HMDB,使用adam优化器来训练Charades。初始学习率设为0.01,JHMDB/HMDB/Charades的训练总轮数为150/400/60。第三,每个视频在JHMDB和HMDB中都有一个标签。因此,使用交叉熵进行训练,并报告测试分类精度。或者,每个视频包含多个字符标签。因此,使用多标签损失进行训练,并报告测试平均精度(mAP)。
图 7 PA3D和当下模型比较