system: [SYSTEM]

user: 3. 静态动作识别与评分 本文选择KNN算法，加入权重对健身动作进行分类。进一步的健身动作评分中，在上述方法基础上，面向健身动作的标准化和易受伤部位，重新设定惩罚因子，并对权重的分布进行了调整。本文得到静态健身动作评分与建议的过程，如图2。 3.1. 测试及模板数据获取 常用的动作分类方法有三类，本文使用模板分类的方法 [ 14 ] 。选取静态动作6个，包含热身运动1个，腿部练习2个，腰部练习1个，手臂练习1个，全身协调性练习1个。收集静态健身动作的测试数据，共20名实验者，6类动作，每类动作每人做5次，共收集600个动作数据，每个样本骨骼帧数最低为90帧。同时，收集来自江汉大学体育学院的专业运动人员的健身动作作为评分的标准。选择专业运动员的健身动作作为模板，构造较精确的模板数据库，使综合评分更具有说服力。收集动作时，控制实验者到Kinect的距离在1.5 m~2.5 m之间。 6种健身动作的镜面示范，如图3所示。 在600个动作数据中随机抽取5个数据作为模板，对5个数据取均值得到分类模板。在评分过程中，用标准健身动作作为评分模板。最终得到的分类模板和标准评分模板包括6类动作，每类动作5个数据，其余均为测试数据。 在计算特征值距离时，将模板中5组数据求均值，合为一组数据，即每个模板为一组24维特征值。将每个动作的模板库中的模板数据合为一组数据，增加模板的鲁棒性，更加合理、有效的对健身动作进行分类。 3.2. 特征值选取及分类 根据问卷调查分析“健身人群主要针对的训练部位及运动受伤情况”，在静态健身动作的设计中，选取针对腰、腿以及全身协调性的动作。因为运动而受伤的人占了1/2，人们对运动受伤主要是动作不标准和未热身或运动安排不当造成的。根据每个动作不同的特点和侧重部位，选择了12维距离特征和12维角度特征(共24维特征值)，用以提取静态健身动作的模型。 处理后的关节点经过权重计算，选择贡献度较高的特征如表1所示。 图2. 静态健身动作分类与评分 图3. 六类健身动作示意图 Table 1 24 d characteristic 序号 距离特征 序号 角度特征 2 右膝盖–脊柱 14 右肘角度(右手腕–右肘–右肩) 3 左脚踝–脊柱 15 左肩角度(左肘–左肩–肩中心) 4 右脚踝–脊柱 16 右肩角度(右肘–右肩–肩中心) 5 左手肘–脊柱 17 左膝角度(左胯–左膝盖–左脚踝) 6 右手肘–脊柱 18 右膝角度(右胯–右膝盖–右脚踝) 7 左手腕–脊柱 19 左胯角度(脊柱–胯中心–左膝盖) 8 右手腕–脊柱 20 右胯角度(脊柱–胯中心–右膝盖) 9 左膝盖–左肘 21 胯展开角度(左膝盖–胯中心–右膝盖) 10 右膝盖–右肘 22 肩展开角度(左肘–两肩中心–右肘) 11 “左膝盖–左肘”与“右膝盖–右肘”距离差 23 脊椎倾斜程度 (脊柱与空间z轴夹角) 12 左右膝关节角度差 24 站立脚倾斜程度 (站立脚与空间z轴夹角) 表1. 24维特征 在距离的选取中，选择了“膝盖–肘”距离计算动作的幅度和伸展性。并计算“左膝盖–左肘”与“右膝盖–右肘”特征距离的差、左膝盖关节角度与右膝盖关节角度的差，根据左右两边动作的差异度进行静态健身动作的分类。 在角度的选取中，增加了“左膝盖–胯中心–右膝盖”胯中心角度，“左肘–肩中心–右肘”肩中心角度作为动作标准程度的度量因子，脊椎的倾斜程度和站立脚倾斜程度则作为健身动作是动作评分和建议的基础。 图4包含肩、肘、胯、膝盖以及胯展开角度和肩展开角度，共10个特征角度。图5为脊柱的倾斜程度、站立脚小腿倾斜程度的角度示意图。上述共12个特征角度，通过计算得到12维特征值。 图4. 关节点角度与距离 图5. 脊柱、站立脚与z轴角度示意图 为减少三维坐标系中的提取动作特征时产生的误差 [ 15 ] ，使用特征向量对三维角度进行描述。 n 1 = ( x 1 ， y 1 ， z 1 ) 与 n 2 = ( x 2 ， y 2 ， z 2 ) 两关节点组成特征向量n n = ( x 2 − x 1 ， y 2 − y 1 ， z 2 − z 1 ) (4) 特征角度的计算，以右肩、右肘、右手腕举例。“右肩-右肘”特征向量 A ( x W B ， y W B ， z W B ) 和“右手腕-右肘”特征向量 B ( x S B ， y S B ， z S B ) ，计算特征角度余弦值。 cos θ = x W B ⋅ x S B + y W B ⋅ y S B + z W B ⋅ z S B x W B 2 + y W B 2 + z W B 2 ⋅ x S B 2 + y S B 2 + z S B 2 ，     θ ∈ ( 0 ， 180 ∘ ) (5) 将用于分类的8个特征角度进行归一化，重新赋予权值。 1) 计算各个特征角度值之和(第l个特征角度 θ l ) θ sum = ∑ l = 0 l = k θ l (6) 2) 对 α l 赋不同权重 w l ，减少模板与测试动作中角度差异性带来的误差 w i = 1 − e − θ l θ sum ∑ l = 0 l = k 1 − e − θ l θ sum (7) 3) 得到归一化的角度值 cos θ l = ∑ l = 0 l = k θ l ⋅ w l (8) 由表1所示，得到关节点角度序列 P = { cos θ 1 ， cos θ 2 ， ⋯ ， cos θ 12 } ，图3中空心圆到脊柱均为距离特征，共10维距离特征。 d l = ( x 2 − x 1 ) 2 + ( y 2 − y 1 ) 2 + ( z 2 − z 1 ) 2 (9) 通过对角度值计算，最终得到12维距离特征序列 d = { d 1 ， d 2 ， d 3 ， ⋯ ， d 12 } 。 关节点角度序列与距离特征序列组合成24维特征序列，对距离和角度特征进行归一化处理，得到无量纲特征序列即为最终24维特征。 C = { d 1 ， d 2 ， ⋯ ， d 12 ， cos θ ′ 1 ， cos θ ′ 2 ， ⋯ ， cos θ ′ 12 } (10) 因健身动作多具有伸展性，动作重叠可能性不高且标准明确，因此本文选取KNN算法并添加权重对健身动作进行分类，得到较好结果。但KNN算法的计算方式并不适合动作标准性较强的健身动作，本文每个动作的模板库中的所有模板动作求均值合并成一个，为增加模板的鲁棒性，提高分类效果。 C test 测试数据集中某一测试数据， C ave-model 模板数据的均值模板。 D = s q r t { [ C test − C ave-model ] 2 ⋅ w } (11) 3.3. 评分方法 本文针对健身动作的锻炼效果和易受伤情况进行判断，并给予合理建议。健身动作是否标准，依据特征值与模板的差异度分析。易受伤判断基于关节点角度进行判定，根据各关节运动幅度 [ 16 ] ，对关节点可运动角度进行设定。对标准的运动角度进行小范围的扩展，得到关于惩罚因子和特征角度 θ 的梯形分段函数f f = { 0                                                                                                                       θ < β 1 ∪ θ > β 2 ( 1 cos α 1 − cos β 1 ) ⋅ cos θ + cos β 1 cos β 1 − cos α 1               β 1 < θ < α 1 1                                                                                                                               α 1 < θ < α 2 ( 1 cos α 2 − cos β 2 ) ⋅ cos θ + cos β 2 cos β 2 − cos α 2               α 2 < θ < β 2       θ ∈ [ 0 ， 180 ∘ ] ， f ∈ [ 0 ， 1 ] (12) 如公式12所示分段函数，由于Kinect的精确度、相同运动对不同人的影响不同，设定 α 1 和 α 2 作为标准动作的范围，小于 β 1 或大于 β 2 的角度值定义为易受伤部分， β 1 α 1 与 α 2 β 2 之间的部分有易受伤趋势。因此，对有受伤趋势的关节添加线性惩罚函数，使其缓和的对函数值修改，相较于某一标准角度值确定是否易受伤，更加科学合理，如图6所示。 易受伤情况针对每个不同的关节角度具有变动性，对不同情况下关节运动情况设定易受伤程度的函数评定标准。如表2所示。 图6. 分段惩罚函数 Table 2 Vulnerable Angle function settin 函数值f 关节点 角度值表示 f = 1 f ⊂ ( 0 ， 1 ) f = 0 肩关节 α 1 大于60˚α 2 (˚) α 1 脊柱向量与手臂的夹角 0~105 105~135 135~180 α 2 上臂外展角度 α 3 (˚) α 3 手臂向内旋转角度 0~30 30~45 45~180 肘关节 α 4 (˚) α 4 手肘弯曲角度 45~180 30~45 0~30 颈椎 α 5 (˚) α 5 颈椎弯曲角度 60~105 45~60/105~135 0~45/135~180 髋关节 膝关节伸直α 6 (˚) α 6 腿抬起角度(腿向内摆动) 0~45 45~60 60~180 α 6 腿抬起角度(腿向外摆动) 0~60 60~90 90~180 膝关节弯曲α 7 (˚) α 7 胯角度 0~120 120~135 135~180 膝关节 膝关节弯曲α 8 (˚) α 8 小腿抬起角度角度(内旋) 0~45 45~60 60~180 α 8 小腿抬起角度(外旋) 0~30 30~45 45~180 膝关节弯曲α 9 (˚) α 9 大腿旋转角度(外展) 0~90 90~135 135~180 α 9 大腿旋转角度(内敛) 0~30 30~45 45~180 α 10 (˚) α 10 膝关节弯曲程度 90~180 45~90 0~45 脊椎 α 11 (˚) α 11 在无弯腰锻炼时，脊柱倾斜角度 0~15 15~45 45~180 站立脚 α 12 (˚) α 12 站立脚倾斜角度 0~15 15~45 45~180 表2. 易受伤角度函数设定 除去划分不同情况的α 1 ，剩余夹角 { α 2 ， α 3 ⋯ ， α 12 } 组成惩罚函数，最终得到一个11维惩罚因子。 F = min { f 1 ， f 2 ， ⋯ ， f 11 } (13) 评分时使用标准数据模板，再次计算测试动作与模板之间的距离，特征权重W。将惩罚因子与动作标准度的距离差相结合，得到最终评分 D s t ，并对 f < 0.6 的角度进行提示，给出合理的健身运动建议。 D s t = { 1 − s q r t [ ( t e s t − D ave-model ) 2 ⋅ W i ⋅ F ] } ⋅ 100 (14)