基于矢状面图像的人体姿态检测与运动分析技术研究
2022-08-26林逸非范丽婷
林逸非, 范丽婷, 张 阳
(沈阳建筑大学 机械工程学院, 辽宁 沈阳 110168)
0 引言
无标记点的人体姿态估计是计算机视觉中非常有价值的研究课题。人体姿态估计可以应用在医疗康复、人机交互、手势识别、电影特效制作以及摄像头监控中,而且在这些领域中起到不小的作用。 三维姿态估计在近几年发展的更是非常迅速, 通过检测人体在三维空间内各关键点的运动轨迹,得到各关键点之间的相对位移,可推算出人体的三维姿态。然而,人体三维姿态重建的精准度仍然是计算机视觉中一个具有挑战性的问题。
人体的运动可以通过一些主要关节点的移动来描述,因此,只要关键点的分类与跟踪就可以形成对走路、跑步、跳跃等人的动作的描述,通过人体关键点的坐标变化来识别行为。 早期的人体姿态估计通常使用穿戴式设备,通过在人体关节上布置的多个红外反光点,获得人体关键点坐标,由于穿戴式设备会对人体造成负载,影响人体关节运动幅度,干扰人正常运动,使得实验结果不能估计实际人体姿态。
人体姿态估计也可以通过多目视觉实现, 多视角姿态估计适用于室内环境的固定机位,在户外使用受限制。许多研究使用深度相机采集视频[1],通过图像分割得到深度图。尽管深度相机的价格逐渐降低,但仍比普通的RGB相机要高出不少, 而且深度相机受使用环境及光照条件的限制, 在户外使用会影响准确性。 与上述这些方法相比,采用传统的单目RGB 相机[2]在成本上和使用的环境条件上都更适合在户外检测人体运动姿态。
本文主要针对单目RGB 相机,对人体矢状面采集二维图像, 并根据跑步姿态过程与站立姿态中关节之间的向量投影之比,判断相对的三维坐标,并对其进行人体运动分析。
1 系统组成
人体姿态运动分析系统是由视频采集系统, 姿态估计系统和运动分析系统[3]组成见图1,其中人体姿态三维建模是基于检测到的人体姿态关键点对各个人体骨骼部分一一对应。
图1 人体姿态运动分析系统组成
在人体运动姿态采集和运动分析中, 需要采集人体关键点的三维坐标,常规使用的方法是使用深度相机获取图像深度或采用多目相机从多视角实现姿态估计以及穿戴式设备。 但深度相机与多目相机在室外环境下对人体关键点采集的有效率偏低,而穿戴式设备会对人体造成负载描述人体运动的准确性偏低。
在室外环境下, 单目RGB 相机具有不受光照限制和可以在运动过程中动态采集的优点。 因此基于单目RGB 相机提出了一种通过人体矢状面二维图像获得运动过程中人体三维坐标的方法,对于人体运动姿态分析具有重要意义。
2 人体姿态估计
2.1 人体姿态检测算法
在人体运动过程中, 对人体姿态的动态捕捉是通过对人体姿态关键点的采集来实现的。 对人体关键点的分类与跟踪可以获取各关键点的动态坐标,可以对走路,跑步,跳跃等多种运动姿态的实时动态描述[4]。
人体关键点坐标的获取是人体姿态估计的重点,由单目RGB 相机采集到的二维图像, 基于Coco 中的人体模型数据库[5],将25 个人体关键点分类并编号见图2,定义为A
图2 人体关键点分布图
式中:N—关键点分类编号;XN—关键点横坐标;YN—关键点纵坐标;ρ—关键点检测置信度系数,ρ∈(0,1)。
关键点检测置信度系数ρ 可以作为一个预先设定的阈值,当置信度系数小于设定的阈值时,可以将检测到的关键点作为检测失败的关键点,再根据检测失败的类型对数据集进行相对应的处理。
通过特征匹配生成人体关键点热图以及关键点矢量图。每一个关键点对应一组关键点热图及关键点矢量图,关键点热图会在其相应的坐标位置生成一个基于二维高斯分布的概率区, 根据概率值最大的位置确定关键点坐标, 以此类推可以获得二维图像坐标系下的全部关键点坐标数据集,每一组数据集由每一帧图像中25 个人体关键点的横坐标与纵坐标组成。 关键点矢量图设立在两个关键点之间, 由X,Y 两个方向的矢量概率判断最大值,生成关键点矢量图。 根据将同一帧内的关键点按照关键点矢量图和人体骨骼的先验知识连接起来, 实现人体骨架化。
这种基于关键点的人体姿态检测算法相比于其他算法的优势是:①精度高;②抗背景干扰能力强。
2.2 运动分析条件构建
人体运动分析是根据人体关键点坐标数据集实现的,然而为了实现分析结果的准确性和稳定性,需要对运动分析构建条件,如下:
(1)保证受测人体位置稳定,便于后期运动姿态分析。
(2)从25 个人体关键点中选取其中一个作为一个坐标原点, 使其他关键点与人体肢体部分相对于坐标原点的位移与角度变化更加直观和清晰。
(3)基于新建坐标原点建立一个新坐标系,相对于原图像平面坐标系进行二维坐标变换。
(4)根据坐标采集异常的不同原因对人体坐标数据集进行相应的处理。
(5)采集矢状面下各骨骼之间的比例关系以及新建坐标系下各骨骼与坐标轴之间的夹角。
(6)利用已采集的矢状面二维关键点坐标根据逆解算为人体三维关键点坐标,根据三维坐标建立人体模型。
在运动过程中,由于受身体不同部分的遮挡,一部分人体关键点的检测会失效, 此时根据异常关键点的分类做相应的调整见表1。
表1 异常关键点的分类与解决方法
3 人体姿态模型构建
3.1 空间向量法与坐标变换
人体骨骼是一种刚性结构,也是一种树结构,由一系列具有层次关系的关节和骨骼组成, 可以选取其中一个关节作为根关节,而其它关节是根关节的分支。父关节运动能影响子关节运动, 但子关节运动对父关节不产生影响。因此平移或旋转父关节时,也会同时平移或旋转其所有子关节。 关节作为用来连接父骨骼与子骨骼之间的联系方式,因此骨骼的长度可以看作两个关节的距离,也可以被视为以两个关节所在坐标系的偏移量。 通过使关节平移和旋转,就能为人体骨架摆出各种姿势,当子骨骼在三维坐标系中运动时在二维平面确定一个人体关键点即根关节作为坐标原点, 人体的姿态可以视为关节相对于相邻关节所在坐标系的位移与旋转[6]。
通过判断每一帧图像中两个相邻关节的偏移量,可以确定在世界坐标系下的两个关节三维坐标的时序变化。
骨骼的位移变化见图3(a),关节的内收或外展会造成当前位置的子骨骼在先前位置上的投影[7],根据两位置之间的夹角即为旋转角见图3(b)。
图3 骨骼运动位姿演示
根据骨骼运动前后的矢量,可求得关节旋转角θ:
每一组子关节和父关节的相对位置可以用来确定人体局部姿态,根关节的父节点可以认为是世界坐标系原点。每个关节设立一个单独的坐标空间,在数学上,关节姿态就是一个仿射变换,用Pi表示关节i 代表的仿射变换是一个4×4 的矩阵,它由平移向量Ti,旋转矩阵Ri以及对角缩放矩阵Si组成
Pi的作用就是在以关节i 为原点的三维坐标系中,将其他关键点变换到关节i 的父关节为原点的三维坐标系中显示当前三维坐标, 可以用Pij表示j 点在关节i 坐标系的坐标。
根据空间向量法[8]原坐标系向量在坐标变换后的新坐标系内的方向向量中的投影作为新坐标系中向量的坐标。 当关键点i 坐标为(xi,yi,zi)则新坐标系下关键点i 坐标为(xi′,yi′,zi′)。
由此可计算出关键点i 从原坐标系到新坐标系的转换矩阵。
若是需要把新坐标系中的关键点坐标转换到原坐标系下,在此基础上左乘此转换矩阵的逆矩阵就可以实现,即:
相比较于表示关节之间关系的局部姿态,整体姿态是可以能说明关节在根坐标系中的位置,肢体末端的关键点可以通过局部姿态的坐标变换方法逆推追溯到根关节,进而确定此关键点在根关键点坐标系中的三维坐标[9]。 我们将在关键点i 坐标系的j 关键点变换到根坐标系中, 当关键点j 编号为7,则关键点i 编号为6,我们用P7表示它的局部姿态矩阵,按此方法,那么j 在根坐标系中的坐标可以表示为
那么P0P1P5P6P7就是关键点j 在整体姿态中的变换矩阵,也是将关键点i 坐标系中任意一点变换到根坐标系的整体姿态矩阵。 以此类推,可以根据关键点在该坐标系中的位置, 换算得到骨骼经过运动之后其在世界坐标系下的新位置。
3.2 人体姿态模型构建
在Blender 中建立人体姿态仿真模型[10],结合由单目RGB 相机采集到的人体关键点坐标为二维坐标, 经过坐标变换如图4(a),获得基于固定坐标系的三维坐标。 在实验前要先使实验对象处于身体直立, 双臂微微抬起并放在身体两侧的状态, 可以观察矢状面图像与冠状面图像如图4(b)、(c),通过预先采集实验对象固定姿态的关键点坐标数据获得各关键点之间的向量,即为各骨骼长度。根据人体运动生物力学的知识设定人体模型各关节自由度,从而建立人体运动刚体结构模型。
图4 人体姿态仿真模型
为了实现对运动姿态的精确分析, 人体模型中的骨盆关节作为坐标原点,保持位姿不变,根据时间序列的每一帧图像中关键点位置的变化, 把关键点数据输入至预先设定好的人体模型中, 将人体骨架三维坐标与人体模型在时间序列上匹配, 实现其他骨骼相对于髋关节的运动便于对运动姿态的分析与观测。
4 实验测试与分析
本文将使用基于空间向量法对人体矢状面图像的运动姿态分析的仿真平台验证。 传统意义是通过一个关节的相邻关节的相对坐标对关节角度做出描述的, 通常是以近躯干侧关节作为参考坐标系, 以远躯干侧关节建立局部坐标系。 根据空间向量法求得关节角:
对局部坐标系与参考坐标系的关系做出位移和角度变化的对比就能对关节运动做出描述, 选取多个独立变化的角度就能根据此来描述关节转动问题。
实验人员采用了在跑步机上慢跑的姿态, 速度选择了8km/h,摄像机垂直于跑者矢状面放置,选取了在检测到矢状面图像的姿态后,选取了人体下肢的髋、膝、踝三关节的三维关节坐标如图5(a)(b)(c),检测三个关节的关节角,并对其运动分析。
图5 髋膝踝三关节姿态坐标变化
从髋、膝、踝三关节的坐标变化趋势来看,随着跑步过程的进行, 跑者的髋和膝关节在z 轴方向的坐标近似不变,而踝关节坐标随着时间变化,会发生在z 轴方向上的突变,说明跑者存在关节内翻的跑步姿态不当。
5 结束语
在本文中,由RGB 二维图像中人体关键点二维坐标通过数学方法逆解算出三维坐标, 根据三维坐标建立人体模型实现人体模型与三维坐标在时间序列上完成同步, 从关节角度和部分关键点坐标完成对人体的运动分析。由于复杂环境的限制,没有选择使用深度摄像头或者多目摄像头,在实验验证中发现单目RGB 摄像机也可以达到近似的效果。