system: [SYSTEM]

user: 3. 步态分析技术 3.1. 步态特征的选取 从步态检测系统得到的姿态原始数据是人体25个关节点在三维空间中的坐标位置(x， y， z)。为了能够恰当地反映患者的运动行为特征，患者的行为需要能够被简单且通用的特征描述子来表述，且带有语义信息的步态特征具有更好的分类成功率 [ 12 ] [ 13 ] 。选取不同的语义信息会对最后的分析结果产生不同的影响，通常步态分析中常用的基本参数包括步长、步幅、步频、步速、步行周期、步行时相以及重心移动，可以将这些基本参数当作语义特征，也可以将身体各部分关节的运动角度作为特征量。选取关节运动角度作为语义特征的好处是比较直观和便于理解，因为人体的运动可以看作各个关节运动的合成，所以本文中选择使用关节角度当作语义特征 [ 14 ] 。而在三维空间中，各关节的运动不仅有角度量，同时还有旋转量，因此各关节的旋转角度特征量并不一定是一维的。实际上，由于欧拉角在三维空间中表示旋转会出现万向节死锁的问题，我们通常采用四元数来表示三维空间中的旋转量。具体地，本文所选取的语义特征及其相应维数如下： a) Q sl ，Q sr ：左、右肩相对躯干方向(2 × 4D)； b) Q hl ，Q hr ：左、右臀相对躯干方向(2 × 4D)； c) Q tu ，Q tl ：上身胸椎、腰椎方向(2 × 4D)； d) α el ，α er ，α kl ，α kr ：左、右肘和膝关节的角度(4 × 1D)。 其中，Q sl 和Q sr 是人体左右肩关节相对于上身的旋转方向，采用四元数表示旋转量，各4维一共为8维；Q hl 和Q hr 为左右髋关节相对于下肢的旋转方向，同样各4维一共为8维；Q tu 和Q tl 分别为胸椎和腰椎的旋转方向，各4维一共为8维；α el ，α er ，α kl ，α kr 分别为左、右肘关节和膝关节处的运动角度，角度量为1维量，所以共4维。因此，按以上特征选取方法，从每一帧骨骼数据中得到的步态特征描述子有28维，如图4所示。 3.2. 动态时间规整DTW 时间序列是一种常见的数据表示形式，在一些应用场景中常见的任务就是比较两个时间序列的相似性。在一些情况下，利用最简单的距离计算法，如欧式距离就可以满足要求。然而，通常会出现的一种情况是两个时间序列虽然具有相同的变化趋势，但其在X轴上并不是一一对齐的，在这种情况下就无法利用传统的欧几里得距离衡量序列间的相似性(距离)。如图5示例了一个简单的例子，如果使用在a图中所示的欧式距离直接进行距离匹配计算，显然不能得到正确的匹配结果。为了解决这个问题，能够正确地得到两个时间序列之间的相似性，我们必须要将其中至少一个序列的时间轴即X轴进行适当程度的扭曲(warping)。动态时间规整(Dynamic Time Warping， DTW)就是实现这种时间轴扭曲的有效方法，b图展示了采用DTW的理想匹配。 动态时间规整法DTW是一种衡量两个时间序列之间的相似度的经典方法，其最早于上世纪60年代被日本学者提出 [ 17 ] ，并于之后成功应用于语音识别领域中。与语音信号序列十分相似，步态序列序列也是一组与时间相关的序列，动态时间规整算法同样适用于步态识别和分析。 3.2.1. DTW原理 动态时间规整DTW是一个典型的优化问题，它利用满足一定条件的时间规整函数来描述测试序列和参考序列之间的时间对应关系，通过求解两个序列匹配时的最小累计距离来获得最佳匹配 [ 18 ] 。 假设有两个长度分别为n和m的时间序列X和Y， (3) 其中一个序列为参考模板，另一个序列为测试模板，序列中的每个点的值为当前时刻下的特征值。构造一个n × m的代价矩阵，矩阵中的每一个元素(i， j)表示x i 和y j 两个点之间的距离d，也就是序列X上每一个点和序列Y上每一个点之间的相似度，距离d越小则代表两个点之间越相似。距离d的计算一般采用欧式距离，即： 图4. 特征描述子 图5. 不同匹配方式对比；(a) 欧式距离匹配；(b) 理想匹配 (4) 矩阵上的每一个点表示点x i 和点y j 之间对齐。如果在代价矩阵上定义一条路径，用W来表示，路径上的所有点都存在于代价矩阵中，其第k个元素定义为 ，也就是说： (5) 这样，该路径就定义了序列X到序列Y的一种映射，如图6所示。我们称这样的路径为规整路径。 在所有可能的路径中，我们所需要的是规整代价最小的路径，即 (6) 根据连续性和单调性约束可知，规整路径上每个点向下匹配的方向只有三个，因此累积距离D(i，j)可以按式(7)计算， (7) 最佳路径上的累加距离就是序列X和序列Y之间的匹配距离(即相似性)。 3.2.2. DTW优化 尽管DTW算法已经成功应用到了很多领域，但它依然存在一些问题，如在某些情况下会出现不自然的规整，通常称这种不理想的情况为奇异点，同时最佳路径的搜索范围不受限导致的计算效率低下。此外，以上所述的DTW算法均针对一维的实现序列，而本文所选取的步态序列有28维。针对于此，本文采取了一下四种方法对DTW算法进行优化和改进。 1) 加窗 [ 19 ] 较理想的规整路径大体上都是沿着代价矩阵主对角线的方向分布的，因此，我们可以从全局考虑，通过在代价矩阵上设置一个移动窗口来限制规整路径的分布范围。通常使用的全局约束有两种，分别是Sakoe-Chiba窗和Itakura窗，如图7(a)和图7(b)所示。 2) 坡度加权 为了在一定程度上引导规整路径的走向，也可以对三个不同的方向增加不同的系数进而对规整路径 图6. 规划路径示例 的坡度进行加权 [ 20 ] [ 21 ] ，公式如下 (7) 其中系数a为正实数，可以通过改变a的值来约束规整路径的走向，a越大路径越偏向代价矩阵的主对角线方向，这样就能在一定程度上避免奇异点的产生。 3) 带有微分的DDTW 在传统的动态时间规整算法DTW中，代价矩阵中的每一个元素(i， j)表示的是x i 和y j 两个点之间的欧式距离d，而在带有积分的动态时间规整算法DDTW中，代价矩阵中的元素d不再是两点之间的欧式距离，而是两点上的微分估计值的平方差 [ 22 ] ，即 (8) 这种估计方式就是简单地以点y i 及其左侧相邻点y i − 1 的连线的斜率以及y i 左侧相邻点y i -1 和右侧相邻点y i + 1 的连线的斜率的平均值作为点y i 处微分的估计值。这样在匹配时不仅仅考虑每个点的Y轴坐标值，而是将其“形状”作为更高阶的比较特征量进行考虑，可以有效较少误匹配的发生几率。 4) 多维动态时间规整MDTW 在有些情况下，时间序列并不是简单的一维而是多维的，在多维动态时间规整算法中，代价矩阵上的每一个元素是相应点上每一维的距离差的和 [ 23 ] ，即 (9) 相应地，累加路径W上的累加距离则为 (10) 可以看出多维动态时间规整MDTW其实就是DTW在多维上的一个拓展。但在大多数情况下，多维动态时间规整法的性能更好，使用范围更广。 图7. 全局约束限制规划路径的搜索范围 3.3. 基于特征语义信息分割的步态分析方法 根据3.1节中所描述的特征选取方式，将从测试样本中得到的28维全局特征通过DTW算法与训练集中的样本进行相似度计算，然后利用最近邻算法便可以得到测试样本的最佳分类。这种方法只是将步态预先分为特定的几类，最终分类的结果只能是正常或异常，如果是异常则也只能给出异常步态属于哪一类，而且当异常步态不属于任何一个预先选取的特定步态时，就无法得到分类结果。而从步态分析的目的来说，显然是分析结果越具体、越详细越好。我们期望得到的结果不仅仅包含步态的全局特性，而应该同时能够从局部入手，得出的步态分析结果能够定位身体的哪一个部位出现了问题，由此才能够更加有效地为患者的康复过程提供指导。 传统的分类方法是将每一帧的步态数据根据选定的语义信息提取出全局特征然后送入分类器进行分类。为了能够从局部入手，洞悉步态异常的来源，可以将每一时刻的步态特征按语义信息进行拆分，将这些拆分后的子特征分别用DTW算法进行匹配分类，通过对各个子特征的匹配结果进行判别分析，就可以判断身体的各个局部是否出现异常。在对特征进行拆分后，由于只关心身体各部位的异常情况，只需要将采集到的步态与正常步态的样本进行对比即可。具体地，根据本文所采取的特征，其中包含的语义信息为关节的运动角度和旋转方向，因此可以将选定的各关节根据运动角度量和旋转方向量分割出来，成为10个独立的子特征，如图8所示。 对于每一个子特征来说，都可以根据其维数选择单维或者多维的DDTW算法与样本中相对应的子特征进行相似度计算，记计算结果为 ，其中i的取值为1到10，分别代表了左右肩关节、左右髋关节、腰椎、胸椎、左右肘关节和左右膝关节共10个子特征。根据每个局部子特征的匹配相似度即可判断相应的关节在运动过程中是否出现异常，而通过所得到的关节局部信息就可以将步态进行反向归类，实现一个从局部到全局的过程。同时，对每个子特征的相似度进行相加，同样可以得到一个全局的相似度匹配结果，进而对步态进行全局分类。相加过程由式(11)定义， (11)