MMAction2 | 基于人体姿态的动作识别新范式 PoseC3D

简介: PoseC3D 是一种基于 3D-CNN 的骨骼行为识别框架,同时具备良好的识别精度与效率,在包含 FineGYM, NTURGB+D, Kinetics-skeleton 等多个骨骼行为数据集上达到了 SOTA。

PoseC3D 是一种基于 3D-CNN 的骨骼行为识别框架,同时具备良好的识别精度与效率,在包含 FineGYM, NTURGB+D, Kinetics-skeleton 等多个骨骼行为数据集上达到了 SOTA。


不同于传统的基于人体 3 维骨架的 GCN 方法,PoseC3D 仅使用 2 维人体骨架热图堆叠作为输入,就能达到更好的识别效果。这项工作已被开源在 MMAction2 中。

640.gif


本文内容


概述

PoseC3D介绍

实验结果


1.  概述



骨骼作为一个描述动作的紧凑模态,受到的关注与日俱增。大部分骨骼动作识别的工作采用 GCN 来提取骨骼的特征。尽管被广泛使用,但 GCN 方法依然在鲁棒性、兼容性和可扩展性上存在一定缺陷。


为解决这些缺陷,我们提出了 PoseC3D 这一新框架。在这套新框架中,我们利用关键点热图的三维堆叠而非图序列来表示一个人体骨架序列。


相比基于 GCN 的方法,PoseC3D 能更高效地提取人体骨架序列中的时空特征,对骨架序列中的噪声更鲁棒,且泛化性更好。与此同时,在处理多人场景时,PoseC3D 并不需额外增加计算量。由于模型基于 3D-CNN,PoseC3D 所提取的人体骨骼特征可以更自由地与其他模态(如 RGB)的特征进行融合,从而得到更好的识别效果。在四个数据集上,PoseC3D 一致取得了比 GCN 方法更精确的识别效果(包含只基于骨架的设定以及骨架 + RGB 的设定)


GCN 方法的 3 点缺陷


1. 鲁棒性: 输入的扰动容易对 GCN 造成较大影响,使其难以处理关键点缺失或训练测试时使用骨骼数据存在分布差异(例如出自不同姿态提取器)等情形。


2. 兼容性: GCN 使用图序列表示骨架序列,这一表示很难与其他基于 3D-CNN 的模态(RGB, Flow 等)进行特征融合。


3. 可扩展性:GCN 所需计算量随视频中人数线性增长,很难被用于群体动作识别等应用。

640.png


2.  PoseC3D:



一种基于 3D-CNN 的骨骼动作识别方法


 识别流程

640.png

人体姿态提取


人体姿态提取是骨骼动作识别中非常重要的一个环节,但在此前研究中并未受到足够关注。在这个工作中,我们对姿态提取过程中的几个重要因素进行了研究。首先,考虑到二维人体姿态具备更高的质量,我们选择了以二维人体姿态而非三维作为输入。


在实验中,我们对不同来源的二维 / 三维人体姿态进行了公平的比较。我们发现,即使基于轻量主干网络(MobileNetV2)所预测的二维姿态,用于动作识别时,效果也好于任何来源的三维人体姿态。

640.png

在实验中,考虑到其在 COCO 关键点识别任务上的良好性能,我们使用了以 HRNet 为主干网络的 Top-Down 姿态估计模型作为姿态提取器。模型的直接输出为关键点热图。在实践中,直接存储关键点热图会消耗大量磁盘空间。为提升效率,我们将每个 2D 关键点存储为坐标 (x, y, score),其中 score 为预测的置信度。


我们在 FineGYM 上进行了实验,以估计这种热图 坐标的压缩会带来多大信息损失。我们发现,在使用高质量特征提取器的情况下,使用坐标作为输入,动作识别的精度仅有少量下降 (0.4%)。因此在后续工作中,我们以坐标的格式来存储提取出的 2D 姿态。

640.png


生成紧凑的热图堆叠


基于提取好的 2D 姿态,我们需要堆叠 T 张形状为 K  x H  x W 的二维关键点热图以生成形状为 K  xT  x H  x W  的 3D 热图堆叠作为输入。若我们事先将 2D 姿态存储成坐标形式,则需要先借助生成以 ( xiyi )为中心,ci为最大值的高斯分布,将其重新转换为热图形式。这一过程对于单人或多人场景均适用。


在实践中,我们使用了两种方法来尽可能减少 3D 热图堆叠中的冗余,使其更紧凑。首先我们根据视频中人的位置,寻找一个最紧的框以包含所有帧中的所有人。在此之后,我们根据找到的框对每帧的热图进行裁剪,并将裁剪后的热图重新缩放至特定大小。借助这一方式,我们在空间上降低了冗余,在一个相对小的 H  x W  大小下包含了更多的信息。


我们同时利用均匀采样以减少 3D 热图堆叠在时间维度上的冗余。由于整个视频长度过长,难以处理,通常选取一个仅包含部分帧的子集构成一个片段,作为 3D-CNN 的输入。基于 RGB 模态的方法,通常只在一个较短的时间窗内采帧构成 3D-CNN 的输入(如 SlowFast 在一个长仅为 64 帧的时间窗内采帧)。


由于这种采帧方式难以捕捉整个动作,因此在骨骼行为识别中,我们采用了均匀采样的方式:需要采 N 帧时,我们先将整个视频均分为长度相同的 N 段,并在每段中随机选取一帧。在实验中,我们发现这样的采帧方式对骨骼行为识别尤其适用。

640.png


3.  使用 3D-CNN 的骨骼行为识别



在本工作中,我们基于骨骼模态和骨骼 + RGB 模态,分别设计了两种 3D-CNN:Pose-SlowOnly 与 RGBPose-SlowFast。Pose-SlowOnly 仅以骨骼模态作为输入,下表中 Pose Pathway 展示了它具体的结构。在实验中,Pose-SlowOnly 在多个数据集上的精度超越了当前基于 GCN 的 SOTA。


由于使用了 3D-CNN 作为模型架构,Pose-SlowOnly 可与其他模态在前期就能进行特征的融合。基于这一点,我们设计了 RGBPose-SlowFast,它包含两个分支,分别处理 RGB 和骨骼两个模态。


RGB 分支具有低帧率以及更大的网络宽度,骨骼分支具有高帧率和更小的网络宽度。两分支间存在双向连接,以促进模态间的特征融合。我们将两分支的预测结果融合,作为最终的预测。在训练时,我们用两个单独的损失函数分别训练两个分支,以避免过拟合。

640.png


4. 实验结果



识别精度

在与 GCN 的识别精度比较中,我们使用  48 X 56 X 56  作为 3D-CNN 的输入大小。在这一轻量配置下,PoseC3D 具有比 GCN 更少的参数及更低的 FLOPs。在这种条件下,3D-CNN 依然取得了优秀的识别精度:使用单 clip 测试时,PoseC3D 的精度与 GCN 相近或超出;使用 10 clip 测试时,PoseC3D 的识别精度一致高于 GCN。


值得注意的是,只有 PoseC3D 可以受益于多 clip 测试,因其采样一个子集而非全部帧以构成输入。与此同时,PoseC3D 在所有数据集上采用了相同的模型结构,而 GCN 在不同数据集上的模型结构不同。

640.png

泛化性

为了研究 PoseC3D 与 GCN 的泛化性,我们设计了这样一种训练-测试方式:训练 / 测试时分别使用不同方式提取的人体姿态。例如,我们可以在训练时使用 HRNet 模型提取出的人体骨骼,而在测试时使用 MobileNet 模型提取出的人体骨骼。


在这种设定下,3D-CNN 的表现一致好于 GCN。除此之外,当以不同条件(如训练数据使用 GT 框提取,测试数据使用 Tracking 框提取)提取的人体姿态分别用于训练、测试时,3D-CNN 的精度下降也远小于 GCN。借此,我们某种程度上验证了 3D-CNN 的模型泛化性能优于 GCN。

640.png

可扩展性


GCN 所需计算量随人数增加线性增长,因此用于群体行为识别等任务时并不高效。我们借助 Volleyball 数据集上的实验对这一点进行了说明:Volleyball 数据集中,每帧最多包含 13 人。


在这个数据集上,GCN 能取得 89.2% 的识别准确率,其模型的参数量和 FLOPs 分别为 2.8M 与 7.2G。而 3D-CNN 在参数量和 FLOPs 仅为 0.52M 与 1.6G 的情况下,取得了 91.3% 的识别准确率。

640.png


兼容性

由于包含了前期的特征融合,RGBPose-SlowFast 的识别准确率显著高于仅融合不同模态预测结果的基线。同时,在模态重要性不同的情况下,RGBPose-SlowFast 均能带来提升。


例如在 FineGYM 与 NTU-60 上,分别是骨骼模态和 RGB 模态占据主导地位,在两种情况下,RGBPose-SlowFast 较基线均有明显提升。

640.png

与 SOTA 的比较


将关键点分支(关键点热图)与骨架分支(骨架热图)相结合,PoseC3D 在 FineGYM,NTU,Kinetics 等 3 个数据集上取得了当前最高的精度。若同时以 RGB 模态与骨架模态作为输入,PoseC3D 亦能达到当前最高的精度。

640.png

文章来源:公众号【OpenMMLab】

2021-08-27 19:06


目录
相关文章
|
6月前
|
机器学习/深度学习 监控 算法
计算机视觉实战项目(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别)
计算机视觉实战项目(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别)
|
10天前
|
自动驾驶 计算机视觉
单目三维检测实时泛化,纯视觉自动驾驶鲁棒感知方法入选ECCV 2024
【10月更文挑战第25天】单目三维物体检测在自动驾驶领域具有重要应用价值,但训练数据和测试数据的分布差异会影响模型性能。为此,研究人员提出了一种名为“单目测试时适应”(MonoTTA)的方法,通过可靠性驱动的适应和噪声防护适应两个策略,有效处理测试时的数据分布变化,提高模型在未知数据上的泛化能力。实验结果表明,MonoTTA方法在KITTI和nuScenes数据集上显著提升了性能。
18 2
|
1月前
|
机器学习/深度学习 监控 算法
深度学习之3D人体姿态预测
基于深度学习的3D人体姿态预测是指利用深度学习模型,从图像或视频中自动估计人体的三维骨架结构或关节点位置。此任务在增强现实、动作捕捉、人体行为识别、虚拟现实等多个领域中有广泛应用。
40 2
|
6月前
|
机器学习/深度学习 编解码 人工智能
论文介绍:HigherHRNet——用于自下而上人体姿态估计的尺度感知表示学习
【5月更文挑战第22天】HigherHRNet是针对自下而上人体姿态估计的尺度感知方法,通过构建高分辨率特征金字塔,改善多尺度人体姿态估计的准确性。该论文提出的新架构在COCO测试集上提高了2.5%的中号人物平均精度,达到70.5%的AP,且在CrowdPose上超越所有自上而下方法,实现67.6%的AP。作者通过消融实验验证了各个组件的重要性,并指出未来可优化模型以适应更复杂场景。论文链接:[https://arxiv.org/abs/1908.10357](https://arxiv.org/abs/1908.10357)
47 1
|
传感器 机器学习/深度学习 算法
【姿态解算】基于扩展卡尔曼滤波九轴传感器姿态解算研究附代码
【姿态解算】基于扩展卡尔曼滤波九轴传感器姿态解算研究附代码
|
机器学习/深度学习 数据采集 算法
超轻量更泛化!基于人体骨骼点的动作识别
基于骨骼点的动作识别的动作识别,往往具有比基于其他模态的算法更轻量,更具泛化性的特点。当然,由于骨骼点所包含信息的局限性,基于骨骼点的算法很难对一些与物体或场景关系紧密的动作进行有效识别,可以说有利有弊。
1001 0
超轻量更泛化!基于人体骨骼点的动作识别
|
传感器 算法 机器人
使用贝叶斯滤波器通过运动模型和嘈杂的墙壁传感器定位机器人研究(Matlab代码实现)
使用贝叶斯滤波器通过运动模型和嘈杂的墙壁传感器定位机器人研究(Matlab代码实现)
111 0
|
传感器 数据采集 人工智能
人体行为足力特征分析及其应用研究_kaic
随着社会现代化的发展和科技的不断进步,我国航天事业蓬勃发展,与此同时产生了很多亟待解决的难题,康复医疗成为航天医学和康复领域的重要课题之一。载人航天实践证明,失重对航天员生理功能有很大影响,这不仅涉及到航天员完成任务的安全性,同时会制约航天员返回地球后的再适应能力。这种因失重产生的生理问题与老年人的生理机能退化有相似之处,老年人摔倒是社会迫切需要面对的另一重大社会问题。老年人群体的跌倒发生率最高且后果严重,这不仅会导致高龄老年人安全感的严重缺失,还会大量消耗医疗服务资源。因此,开展助老防摔装备的研究是目前医疗和社会领域的必要发展方向,它有助于减少老年人跌倒所带来的生命危险.。
|
传感器 人工智能 自动驾驶
一文尽览 | 计算机视觉中的鱼眼相机模型及环视感知任务汇总!(上)
环视鱼眼摄像机通常用于自动驾驶中的近距离感知,车辆四面的四个鱼眼摄像头足以覆盖车辆周围的360°范围,捕捉整个近距离区域。一些应用场景包括自动泊车、交通拥堵辅助等
一文尽览 | 计算机视觉中的鱼眼相机模型及环视感知任务汇总!(上)
|
机器学习/深度学习 编解码 人工智能
一文尽览 | 计算机视觉中的鱼眼相机模型及环视感知任务汇总!(下)
环视鱼眼摄像机通常用于自动驾驶中的近距离感知,车辆四面的四个鱼眼摄像头足以覆盖车辆周围的360°范围,捕捉整个近距离区域。一些应用场景包括自动泊车、交通拥堵辅助等
一文尽览 | 计算机视觉中的鱼眼相机模型及环视感知任务汇总!(下)