基于微惯性传感器的姿态跟踪与识别方法

文档序号:10703816阅读:570来源:国知局
基于微惯性传感器的姿态跟踪与识别方法
【专利摘要】本发明公开了一种基于微惯性传感器的姿态跟踪与识别方法,使用穿戴式微惯性传感器采集人体姿态数据并进行姿态数据处理,跟踪并识别用户的动作和行为,并依据预设标准动作对用户动作的规范程度进行评判并提出相应修正意见。本发明使用的技术方案包括基于差分原理的姿态数据处理及特征提取、基于角度阈值变化与起点检测的连续动作分割以及目标动作的识别提取与评判标准。本发明不仅克服了传统人体姿态跟踪与识别技术中光照、背景环境等外界因素对识别准确度的影响,降低了实现复杂度及设备成本,同时提升了跟踪及识别的可靠性。
【专利说明】
基于微惯性传感器的姿态跟踪与识别方法
技术领域
[0001] 本发明涉及人体姿态跟踪与识别技术领域,特别是一种基于微惯性传感器的姿态 跟踪与识别方法。
【背景技术】
[0002] 姿态跟踪与识别技术是近年来新兴的一种人机交互技术,可用于运动健身及体育 锻炼、康复医疗、动画游戏及影视制作等领域,具有良好的市场应用前景。利用人体姿态跟 踪与识别技术,在运动健身及体育锻炼领域,可以实现对用户动作姿态的实时跟踪识别,并 参考该类别下的标准动作做出矫正建议,为用户提供更好的训练指导方案。在康复医疗领 域,可用于辅助因意外或疾病导致肢体运动功能障碍患者的康复治疗,协助患者进行特定 动作的肌肉训练。在动画游戏及影视制作领域,通过模仿实际人物动作控制虚拟人物动作, 可以提升动画的真实度,用于游戏制作也可以增强互动性及娱乐性。
[0003] 经典的人体姿态跟踪及识别技术的实现主要依靠计算机视觉,人们利用视频、图 像,或者是关键位置标记光学点的方式对用户姿态进行捕捉,获得相关运动数据并从中提 取出关键特征值,从而对用户行为进行处理及分析。但是基于计算机视觉技术实现人体姿 态跟踪及识别的方法,受光照、背景条件、人物衣着影响较大,实施条件的局限性大,实现方 案较复杂,设备成本较高,难以满足大众需求。
[0004] 限于传统人体姿态识别方式的局限性,国内外研究机构转而将研究重点转向基于 穿戴式设备的人体姿态识别与跟踪,尤其是基于惯性传感器的人体姿态识别与跟踪。基于 穿戴式设备的人体姿态识别,是指将肢体视为刚体,将连接肢体的关节视为球铰,则人体可 视为刚体一球铰模型,人体姿态的变化可视为刚体围绕球铰的变化,通过在待检测的肢体 部分布置如表面肌电传感器、惯性传感器等可检测肢体行为状态变化的传感器,可检测人 体的肢体实时动作姿态变化序列,通过一定的数据分析处理手段,从中提取姿态特征值,从 而进行人体的姿态检测与识别。然而目前的研究多数在于人体姿态检测以及重构方面,研 究重点主要集中在对人体姿态行为的捕捉及三维重构,而对采集得到的运动特征数据利用 率较低,在运动标准化指导方面的研究较少。

【发明内容】

[0005] 本发明所要解决的技术问题是,针对现有技术不足,提供一种基于微惯性传感器 的姿态跟踪与识别方法,克服传统人体姿态跟踪与识别技术存在的弊端,利用穿戴式的微 惯性传感器采集人体姿态数据,克服光照、背景环境等因素对识别准确度的影响,并降低实 现复杂度及设备成本,提升跟踪及识别的可靠性。
[0006] 为解决上述技术问题,本发明所采用的技术方案是:一种基于微惯性传感器的姿 态跟踪与识别方法,包括以下步骤:
[0007] 1)定义标准动作行为库为:
[0009]其中,behavior。,behaviori,...,behaviorbGBE,BE 为人体行为库,
%点的变化趋势集合;〇< Ii < 为4 Xh维数据中的第V 〇维数据, tendS为特征点
'变化趋势数据,表示特征点丨
的数值 大小,以此类推;h为用于采集人体的姿态四元数数据的惯性传感器个数;
[00?0] 2)提取每一个标准行为behaviori的起点、终点的姿态特征,并设集合B= {begim, begin〗,· · ·,begiru,· · ·,beginb}为待检测基础动作的起始姿态特征点集合,集合E = {endi,end2, . . .,endi,. . .,endb}为待检测基础动作的结束姿态特征点集合;(Xi彡b;定义 识别结果集合
[0011] R = {(resulti,dtwi),(result2,dtw2),…,(resultw,dtww)…,(result x,dtwx)} 用于存放本次动作识别的结果,元组(resultw,dt Ww)表示用户在动作检测过程中检测得到 的每一种可能的行为结果,其中KwSx,resultw为可能的动作行为名称,且满足resulti, result2,result3,··· ,result?,…,resultx,,dtww为用户动作与标准动作的距离差;
[0012] 3)用户开始进行动作姿态变化,检测用户的动作序列特征点,并检测用户动作特 征序列中满足待检测基础动作的起始姿态特征点集合B中各点条件的特征点;当检测得到 用户动作特征序列满足B中的某个起始特征点begin m条件时,认为与起始特征点beginm相对 应的行为动作开始,并取Ien长度作为本次检测的最大长度,进行行为动作behavior m的检 测,将behavion检测结果存入R;在Ien长度内,继续检测满足集合B中各点条件的特征点, 当检测得到beginy时,认为behavior y开始,同样取Ien长度作为该检测的最大长度,并进行 behaviory的检测,将behaviory检测结果存入R;依次类推,直至最后一个识别动作的Ien长 度内,无新动作检测结果产生;(Xm彡b;(XySb;
[0013] 4)取集合R中dtw距离最小的元祖,该元祖对应的动作行为作为本次动作检测的结 果。
[0014] 步骤3)中,检测用户的动作序列特征点的实现过程包括以下步骤:
[0015] 1)采集η个人体姿态一维数据,并将该η个一维数据表示为序列{qQ,qi,..., qi,· · ·,qn};对序列{q〇,qi,· · ·,qi,· · ·,qn}进行一阶差分运算并将差分
[0016]运算的结果标准化,第t个数据qt的标准化数据q dft为:
[0017]
[0018] 其中,threshold表示为了实现标准化所设置的阈值;0<t<n;
[0019] 2)对一阶差分运算结果序列{q+dfoicm,…,q_dft,…,q_df n}进行均值滤波:
[0020]
[0021 ]其中,q_dmeant表示第t个一阶差分运算结果均值滤波后的标准化输出;
[0022] 3)对均值滤波后的标准化输出结果{q_dmeam,q_dmean2, · · .q_dmeant,· · ·,q_ dmenn}进行二次差分运算,第t个数据q_dmeant的二次差分运算输出结果为:
[0023]
[0024] 4)引入tendt表示第t个检测点qt的变化趋势:tendt = 3 X q_meant-q_tdft;定义序 列{qo,qi,· · ·,qi,· · ·,qn}的变化趋势集合为T={-5,-3,-2,-l,0,l,2,3,5};tendteT;
[0025] 5)判断某点qt是否为特征点的判断标准为:
[0026]

[0027] 使用h个惯性传感器采集人体的姿态四元数数据,每一时刻每个传感器采集得到 数据均为四维数据,故全部数据为4 X h维,则对于第k个惯性传感器而言,当采样频率为Ihz 且系统从〇时刻开始采集用户的姿态数据时,第Ti时刻惯性传感器传回的姿态数据表示为 [qTi,4k-3,qTi,4k_2,qTi,4k-i,qTi,4k],则O至Ti时刻内,由第k个惯性传感器传回的全部姿态数 据为:
[0028]
[0029]
[0030] 其中,〇〈e〈Ti;
[0031] 6)由步骤2)、步骤3),对每一维姿态数据分别进行差分标准化运算,得到新的四维 数据:
[0035] 8)由步骤5)完成对数据的筛选,从筛选的数据中提取出特征数据,即用户动作特 征序列为:
[0036]
[0037] 其中,CXjSrCTi,CXio,ii,· ··,ir<4 X h,tendo,tendi,... tendre T, ij 表示第 j个特征点是传感器传回的4Xh维数据中的第j维数据,ten山为第j个特征点的变化趋势数
{ Il,I2,I3,."lb} O
[0038] 检测结果R的计算过程包括:
[0039] 1)利用权利要求2的步骤,构建模板动作的特征数据序列:
[0040]
[0041] 其中,(XrjS^AencrjGT;
为待检测动作的起始姿态特征点,
丨为待检测动作的结束姿态特征点,1为模板动作特征序列的长度,Ie {1?,?2,?3,···1?)};
[0043] 2 )取用户动作特征序列中的点
以及模板动作特征序列中的点
定义判断条件:
[0044]
[0045] 当Value值为1时,认)
勺条件,即认为
E配,否则认为不满足
的匹配条件;
[0046] 3)采用下述步骤进行指定动作行为的识别:
[0047] 3a)利用步骤2)所述匹配条件,在用户的动作特征序列中检测满足集合BE中各个 begin匹配条件的特征点;当检测得到begin,即begin判断条件值为1时,认为该动作已经开 始,并从检测得到begin的特征点处起,取Ien长度作为检测的最大长度,依次进行其后续特 征点的检测;
[0048] 3b)当检测到end时,认为该动作结束,动作完整,将动作完整的动作特征点保存为 用户动作特征数据序列;当未检测到end时,认为该动作结束,但动作不完整,将该动作不完 整的动作特征点保存为用户动作特征数据序列;当未检测得到end,但检测得到新的begin 时,认为该动作结束,但动作不完整,将动作结束但不完整的动作特征点保存为用户动作特 征数据序列,并开始新的动作检测;
[0049] 3c)将保存的用户动作特征数据序列与模板特征数据序列进行比较,使用用户特 征数据序列与模板动作特征数据序列之间的dtw距离来表示用户动作序列与模板动作特征 序列的匹配程度:
[0050]
[0051] 3d)得到的动作匹配程度与动作名称共同组成本次动作识别的识别结果(result, dtw),其中result为模板动作名称。
[0052]与现有技术相比,本发明所具有的有益效果为:本发明针对现有人体姿态跟踪与 识别方法的不足,使用微惯性传感器采集人体姿态数据,实时采集用户的姿态数据并进行 数据分析;结合人体运动学原理,使用姿态四元数进行数据分析,简化了数据运算。本发明 可以实时跟踪和识别用户的姿态,并针对部分特定动作增加了行为矫正建议功能,便于用 户自行对动作进行标准化训练。
【附图说明】
[0053] 图1为人体行为结构分析图;
[0054] 图2为运动数据七种基本变化趋势示意图 [0055]图3为动作检测流程图。
【具体实施方式】
[0056]本发明使用穿戴式微惯性传感器采集人体姿态数据并进行数据处理,跟踪并识别 用户的动作行为,依据预设标准动作对用户动作规范程度进行评判并提出相应修正意见。
[0057] 为实现所述姿态跟踪与识别。首先需要对姿态数据采集装置传入的运动数据进行 去噪和姿态融合处理,并从处理之后的数据中提取出用户的动作特征序列,得到连续动作 序列,并从中分析和提取出待识别的动作序列。另外,由于用户的动作过程是连续的,本发 明要解决的问题还包括如何在连续动作中提取和分割出目标动作序列。
[0058] 本发明使用的技术方案主要包括:本发明首先设计动作行为层次划分方法并用以 确定检测,继而使用基于差分原理的姿态数据处理及特征提取方法进行数据处理,再基于 起点检测的指定动作分割识别方法,对用户连续未指定动作进行分割与识别,完成基于姿 态角变化的连续动作分割与识别。
[0059] 一、动作行为层次划分方法,其原理描述如下:
[0060] 通过人体动作行为层次进行划分可以确定进行人体动作识别时的检测对象。结合 人体解剖学及人体运动学原理,可将人的动作和行为分为四个不同层次:行为、动作、基本 动作和姿态。
[0061] 所述行为,是指人为实现一定目的所完成的一系列动作组合,如踢足球、打篮球 等,行为的种类是相对无限的,不同的动作由不同的一系列动作组成;所述动作,是指人有 一定周期性或规律的肢体变化,如向前走,后退等,人体的动作种类是有限的,不同的动作 由特定的基础动作序列组成;所述基础动作,是指一系列的有序的姿态变化,如抬腿、低头 等,人体的基础动作是有限的,是动作的基本组成单位,特定的基础动作可由相应的姿态序 列组成;所述姿态,是人体在某一瞬间状态的肢体特征数据,通过捕获肢体的姿态角、加速 度、空间位置等,可以计算并获得人体姿态表征从而进行人体姿态分析,因此人体的姿态是 可测的。
[0062] 由上文可知,用户的行为可以表示成为相应的动作序列,动作可以由相应的基础 动作序列表示,而基础动作可以由姿态序列表示,故用户的行为最终可以表示成为人体姿 态序列,因此,对人行为的检测,最终可以表示成为对姿态序列的检测。
[0063]本发明建立标准行为库的实现原理如下:
[0064] a)建立人体行为库BE:
[0065] BE= {behaviori,behavior2,· ·,behaviorb}
[0066] 其中,b为人体行为库中的行为种类数目,134&"〇^表示行为库中的第一种行为, 以此类推。
[0067] b)建立人体动作库M:
[0068] M= {Motiono,Motiom,. . . ,Motion0}
[0069] 其中,Motion〇,Motiom,...,Motion。代表了每一种动作,本发明定义动作的种类 数目为〇。为不同的行为存储不同的动作序列:
[0咖?
[0071 ]其中,motion表不动作,且满足motiom,motion2,...,motion_sbGM
[0072] c)建立基础动作库BM:
[0073] BM= {B_motiom,B_motion2,…,B_motionbm}
[0074] 其中,13_111〇1:;[0111,13_1]1〇1:;[0112,.",13_1]1〇1:;[0111?代表了各种基础动作,本发明定义的 基础动作的种类数目为bm。
[0075] 为不同的动作存储不同的基础序列:
[0076]
[0077] 其中,bmotion表示基础动作,且满5
[0078] d)基础动作由姿态序列组成。
[0079] 而姿态是指用户在某一时刻的姿势,属于瞬时采集的数据,而用户在完成特定的 动作时,其时间长度直接影响了姿态序列的长度,当运行时间较长时,其数据量将十分庞 大。因此,本发明需要解决从姿态数据序列中提取出有效的特征数据,减小数据处理量的问 题。
[0080] 本发明所使用的微惯性传感器是由微加速度计、微陀螺仪、电子罗盘组成的测量 元件,可用于待检测物品在任意时刻的加速度值、角加速度值和磁感应强度值,经姿态融合 算法处理,可以得到待检测物品在任意时刻的姿态值。
[0081 ]本发明参照Hanavan模型进行人体建模,将肢体视为刚体,并将关节视为球铰,在 不考虑组织变形或者器官不对称的情况下降人体视为刚体和球铰组成的模型。人体的动作 变化时可由模型的变化替代。通过对不同动作的姿态变化进行分析,可以发现用户在表现 某一动作时,其姿态序列中临近姿态的差异主要体现在姿态角度的变化上,而由于人在进 行同一动作时的速度不能保证相同,因此其速度变化差值不能保证相同,而姿态角度的变 化基本相同,因此本文选择基于姿态角的变化方式对用户进行动作识别。
[0082]表示姿态角变化的方式有欧拉角、旋转矩阵和四元数三种方式,出于运算复杂度 和测量范围方面的考虑,本发明使用四元数来表示人体的姿态角度变化。本发明所述采集 人体姿态数据的微惯性传感器型号为MPU9250,由MPU9250内集成的数字运动处理器(DMP) 可完成四元数的计算及信号滤波,并依照设定采样频率输出四元数。使用h个惯性传感器采 集人体的姿态四元数数据,每一时刻每个传感器采集得到数据均为四维数据,故全部数据 为4Xh维,则对于第k个惯性传感器而言,当采样频率为Ihz且系统从O时刻开始采集用户的 姿态数据时,第Ti时刻惯性传感器传回的姿态数据表不为[qTi, 4k-3,qn,4k-2,qn, 4k-i,qTi, 4k] [0083]二、基于差分原理的姿态数据处理及特征提取方法,其实现原理如下:
[0084]本发明使用基于差分原理的姿态数据处理方式对采集得到的姿态数据进行姿态 数据处理,通过一阶差分运算将数据转化为变化方向,使用均值滤波剔除扰动,并将原始数 据转化为对其变化趋势的描述,使得姿态数据信息更为直观,也是接下来进行各种动作识 别的通用数据预处理方法。
[0085]所述基于差分原理的姿态数据处理算法描述如下:
[0086] (1)采集η个人体姿态一维数据,并将该η个一维数据表示为序列{qo,qi,..., qi,· · ·,qn};对序列{qo,qi,· · ·,qi,· · ·,qn}进行一阶差分运算并将差分运算的结果标准化, 第t个数据qt的标准化数据q_dft为:
[0087]
[0088] 其中,threshold表示为了实现标准化所设置的阈值;OStSn;
[0089]其中,q_dft表示对原始数据进行一阶差分运算之后的输出值,threshold表示为 了实现标准化所设置的阈值,η表示数据序列的长度。首先对原始数据进行差值预算,并比 较其与阈值之间的关系,将输出结果标准化为{〇,1,-1}。
[0090] (2)对一阶差分运算结果序列{q_dfo,q_dfi,· · ·,q_dft,· · ·,q_dfn}进行均值滤 波,滤波模板为设置1X3,并对滤波结果进行标准化,以第t(0<t<n)个数据为例:
[0091]
[0092] q_dmeant表示均值滤波后的标准化输出。
[0093] (3)对均值滤波后的标准化输出结果{q_dmeani,q_dmean2, · · .q_dmeant,· · ·,q_ dmenn}进行二次差分运算,以第t个数据q_dmeant为例:
[0094]
[0095] 其中,q_tdft表示其二次差分运算的输出结果。
[0096] (4)观察序列&〇41,...41,...411}曲线,发现其随时间变化的曲线在某一时刻 前后的变化趋势均可分为表1所示八种情况。
[0097]表1曲线变化趋势分类
[0099] 为准确地描述表1所述的九种曲线趋势变化,引入tendt表示第t个检测点qt的变化 趋势:
[0100] tendt = 3 X q_meant-q_tdf t
[0101] 观察表1可以发现,由于曲线只有九种变化趋势,故tendt的取值范围仅有九种情 况,定义各点的趋势变化集合为T = {-5,-3,-2,-1,0,1,2,3,5},任意数据点的tendt e T
[0102] 引入变量tendt后,对于一维数据而言,某一时刻数据it的数值及变化趋势可以由 qt和tendt唯一地表示,即由qt和tendt可以唯一地表示qt。对于多维数据,增加其维数i即可 唯一表不该数据。
[0103] (5)如表1可看出,当数据处于状态⑦-⑨时为"平稳点",即其数据时间变化曲线此 时此刻保持平稳或平稳上升、平稳下降状态,当处于状态①-⑥时是数据时间变化曲线的 "拐点",即数据在此时将由先前的变化状态变至另一种状态。使用拐点可以更加直观地表 示数据改变情况,本发明选取处于①-⑥状态的数据点作为描述姿态数据的特征点。
[0104] 由此,判断某点qt是否为特征点的判断标准可定义为:
[0105]
[0106] 当feature = 1时,保存其对应点的变化趋势和数值并作为序列的特征点,并将其 存入该动作的特征序列中,由此,完成一维序列的特征提取工作。
[0107] 上述步骤可完成一维数据序列的特征提取,本发明使用h个惯性传感器采集人体 的姿态四元数数据,每一时刻每个传感器采集得到数据均为四维数据。以第k(0<k<h)个 惯性传感器为例,当采样频率为Ihz且系统从0时刻开始采集用户的姿态数据时,Ti时刻该 惯性传感器传回的姿态数据可表不为[qTi,4k-3,qn,4k-2,qn,4k-1,qTi,4k]。
[0108] 则0至Ti时刻内,由第k个惯性传感器传回的全部姿态数据为:
[0109]
[0110] 其中,〇〈e〈Ti;
[0111] (6)由步骤(2)(3),对每一维姿态数据分别进行差分标准化运算,得到新的四维数 据:
[0112]
[0113] 其中,0〈e〈Ti;
[0114] (7)由步骤(4)可计算姿态变化趋势数据为:
[0115]
[0116] 其中,〇〈e〈Ti;
[0117] (8)由步骤(5)完成对步骤(7)所获得数据序列的精炼和筛选,并从中提取出特征 数据为:
[0118]
[0119]其中,CXjSrCTi,CXio,ii,···,ir<4 X h,tendo,tendi,... tendre T,ij 表示第 j个特征点是传感器传回的全部四维数据中的第j维数据,ten山为第j个特征点的变化趋势 数据,表述第j个特征点数值的大小,由此完成对原始数据的姿态数据处理及特征提 取。
[0120]三、所述基于起点检测的指定动作识别方法,其基本实现原理如下:
[0121] 现有连续动作的分割方法过于复杂,不适用于应用层面。此外,针对如何提取不完 整的动作数据,本发明提出一种基于角度阈值变化与起点检测的连续动作分割方法,将行 为分割为若干基础子动作的序列,并最终转化为对姿态特征点序列的检测,通过起点匹配 的方法,从用户的动作数据流中分割出用户的目标动作。
[0122] 由第一节可知,用户的行为最终可以表示成为基础动作的序列,因此,对行为的检 测,最终成为对姿态特征序列的检测;由第二节可知,用户每一时刻每一维的姿态数据均可 由"维度一变化趋势一数值义..,.)表示,故用户的动作实际可以变为动作特征点的 序列。
[0123] 当待检测的动作被指定时,其动作识别的实现原理如下:
[0124] (1)对指定行为的检测可以认为是对指定动作序列的检测,而对指定动作的检测 可以认为是对指定基础动作序列的检测,基础动作由特定的姿态序列组成。
[0125] 由于构成不同动作的基础子动作序列均不同,而构成每一项子动作的姿态特征序 列均不同,故可以通过对其起点、终点的是否满足标准序列的判断条件确定。 并设置最大检测长度len,当用户在检测到起点动作的Ien帧之内,通过检查其是否依次满 足各关键点动作条件并最终满足终点的动作条件,从而判断用户是否完整地完成了目标动 作。
[0126] 用户完成指定的待检测动作,经第二节所述特征提取方法处理后,得到了特征序 列如下:
[0127]
[0128] 其中,0<」<1'<1';[,0<;[(),;[1,...,;[]:<4\11,七611(1(),七611(11,...七611(11^丁
[0129] Ien为设定的待识别姿态序列的检测长度,又因本发明以固定频率采集姿态数据, 故Ien长度可用设定的时间长度来表示,len<Ti。
[0130] (2)待iR別的樽板动作特征序列加下:
[0132] 设置起点
为待检测动作的起始姿态特征点,
为待检测动作的结束姿态特征点,1为模板动作的长度,le U1J2, l3,."lb} 〇
[0133] (3)定义判断特征点是否满足基础动作特征点的判断条件如下:
[0134] 取用户动作特征序列中点
以及模板动作特征序列中的点
.,定义判断条件:
[0135]
[0136] 当Value值为1时,认关
的条件,即认为其与
匹配,否则认为不满屈
勺匹配条件。
[0137] (4)当待检测的动作为指定的动作时,其识别过程可表示为:
[0138] a)在用户特征序列中检测满足begin条件的特征点,当检测得到begin时,认为某 动作已经开始,取Ien长度作为检测的最大长度,并依次进行其后续特征点检测;
[0139] b)当检测到end时,认为该动作结束,动作完整;
[0140] c)当未检测到end时,认为该动作结束,但动作不完整;
[0141] d)当未检测得到end,但检测到新的begin时,认为该动作结束,但动作不完整,开 始新的动作检测。
[0142] (5)使用用户序列与模板之间的DTW距离来表示用户动作序列与模板动作序列的 匹配程度:
[0143]
[0144] 测量所得的dtw可以表示用户动作的标准程度。
[0145] (6)得到的动作匹配程度与动作名称共同组成本次动作识别的识别结果(result, dtw),其中result为模板动作名称。
[0146] 四、基于姿态角变化的连续动作分割与识别,其基本实现原理如下:
[0147] 上节介绍了当待识别动作行为被指定动作时的用户动作识别,而在实际的检测过 程中,用户的行为是连续并且非指定的。在此定义待识别的数据均由事先定义的行为模式 连接组成,不包含未定义的行为。并定义用户的不同行为不会连续进行,即不同行为之间必 有时间的间隔。
[0148] (1)由第一节可知,用户的行为最终可以表示成为姿态特征序列。定义标准动作行 为库为:
[0149]
[0150] 其中,behavior〇,behaviori,· · ·,behaviorbGBE,BE为人体行为库;
[0151]
J为点的变化趋势集合;〇< li<l2,. . .,lb-i<lb<+°° ; i/Q表示特征5
4 Xh维数据中的第i/Q维数据, tenf 1为特征点变化趋势数据,巍&清示特征点的数值 大小,以此类推;h为用于采集人体的姿态四元数数据的惯性传感器个数;
[0152] (2)由第三苄基于起点检测的指定动作识别方法,提取每一个标准行为behaviori 的起点、终点的姿态特征,并设集合B= {begim,begin2, ·…,begiru,· · ·,beginb}为待检测 基础动作的起始姿态特征点集合,集合E= {endi,end2, . . .,endi,. . .,endb}为待检测基础 动作的结束姿态特征点集合。Ien为待识别姿态序列的最大长度,由于惯性传感器以一定的 采频率采集姿态数据,故Ien可以用时间表示,如180s,代表采样频率为20hz时,识别单个动 作的最大长度为3600帧;
[0153] R = {(resulti,dtwi),(result2,dtw2),…,(resultw,dtww)…,(result x,dtwx)} 用于存放本次动作识别的结果,元组(resultw,dt Ww)表示用户在动作检测过程中检测得到 的每一种可能的行为结果,其中KwSx,resultw为可能的动作行为名称,且满足resulti, result2,result3,··· ,result?,…,resultx,,dtww为用户动作与标准动作的距离差;
[0154] (3)整个识别过程可以表示为:
[0155] a)检测满足B中各点条件的特征点,当检测得到beginm时,认为motionm开始,取Ien 长度作为该检测的最大长度,并进行Kiotionm的检测,将motionm检测结果存入R; (XmSb;
[0156] b)在Ien长度内,继续检测满足B中各点条件的特征点,当检测得到beginy时,认为 behaviory开始,同样取Ien长度作为该检测的最大长度,并进行behaviory的检测,将 behaviory检测结果存入R;CXy<b;
[0157] c)依次类推,直至最后一个识别动作的Ien长度内,无新动作检测结果产生;
[0158] d)取集合R中,dtw距离值最小的元素,作为本次动作检测的结果。
[0159] e)所述用户行为标准的评判标准的定义如下:
[0160]计算检测得到的特征点序列与模板序列的DTW距离,定义其到动作规范程度的模 糊集,表示用户动作整体规范程度;用户在每一特征点的实际角度、加速度与标准库的比 较,可以作为用户在动作幅度、动作时间方面的评判标准。
[0161] 本发明研究基于微惯性传感器的姿态跟踪与识别方法,主要设计人体姿态跟踪与 识别的软件实现方法,所涉及具体的硬件选型及设计、UI设计不在本发明研究设计范围之 内。
[0162] 实施例1:以疾行跳远为例,运动员实现这一行为所需完成的动作序列为:
[0163] 疾行跳远={跑步,跳,身体腾空,下蹲落地}
[0164] 对于不同的行为而言,某一项具体的动作可以重复出现。以实现跑步的动作为例, 所需完成的基础动作序列为:
[0165 ]跑步={左脚向前迅速跃进、右脚保持着地且右臂弯曲向前自然摆动,
[0166] 右脚向前迅速跃进、左脚保持着地同时左臂弯曲向前自然摆动,
[0167] 左脚向前迅速跃进、右脚保持着地且右臂弯曲向前自然摆动,
[0168] 右脚向前迅速跃进、左脚保持着地同时左臂弯曲向前自然摆动
[0169] ……}
[0170] 为构建姿态与基础动作之间的关系,采集两个跑步周期中左脚角度的变化曲线如 图1,其中,动作A--动作B之间的数据表示基础动作"左脚向前迅速跃进、右脚保持着地且 右臂弯曲向前自然摆动",动作B--动作C之间的数据表示基础动作"右脚向前迅速跃进、 左脚保持着地且左臂弯曲向前自然摆动"。
[0171]实施例2:以用户使用本发明检测"右手掌翻转弯曲复位"动作为例,具体的实施过 程如下:
[0172]将所述微惯性传感器装置固定于腰部、头部、左手、右手、左脚、右脚六个部位。打 开微惯性传感器的供电开关,对各个微惯性传感器进行上电,同时完成硬件的自检,若自检 成功,则进行各部分硬件的时钟同步及初始化设置,否则需检查硬件设备是否正常。
[0173]用户打开客户端,选择检测的目标动作为"右手掌翻折弯曲复位动作",系统确定 标准动作模板为"右手掌翻折弯曲复位动作",动作检测开始。
[0174]用户做出动作,各微惯性传感器实时采集用户的姿态数据,并将用户的姿态数据 实时发送至数据处理中心;
[0175] 所述数据处理中心分析用户姿态数据,分析并提取出目标动作序列,存储目标动 作序列,并进行计数。同时将每一段目标动作序列与标准动作序列匹配,分析用户的动作标 准程度及动作纠正建议,并将动作序列与相应的分析结果存储至文件。
[0176] 动作结束后,所述客户端读取动作分析结果文件,将用户的运动分析结果反馈给 用户。所述运动分析结果包括,用户完成目标动作次数,每一次完成目标动作的整体评分、 时长、动作角度姿态是否符合要求、力度是否符合要求、速度是否符合要求及偏差范围。并 将分析结果反馈给用户。
[0177] 实施例3:以用户使用本发明检测"右手掌翻转弯曲复位"动作为例,具体的姿态跟 踪及识别方法如下:
[0178] 本发明结合人体运动学原理,并分析待检测数据特征,将右手位置穿戴的微惯性 传感器数据作为主要的参考数据。分析曲线特征,可得到8个特征检测位,即将原动作分割 为9个基础动作。所述8个特征检测位如下表所示:
[0181]所述阈值为提升大众用户的姿态检测识别率,设置阈值范围为±20,即满足阈值 ±20范围的特征点均认为其满足阈值条件。用户在进行动作检测时,当且仅当待检测动作 的数据达到阈值范围同时变化方向同时满足关键点要求时,才认定待检测的姿态特征位置 满足相应目标姿态特征位置条件。
【主权项】
1. 一种基于微惯性传感器的姿态跟踪与识别方法,其特征在于,包括W下步骤: 1) 定义标准动作行为库为:?behavior〇?behaviori? . . . ?behaviorb^BE?BE^Ai^^T^j$, 疑< IV4.呵<聲誠載,,爱織绞苗綾繊攘--费纖識猿'^,Τ为点的变化趋势集合;0<li< I2, . . .,lb-i<lb< + °°;i%表示特征点为4Xh维数据中的第i%维数据, tend/1为特征点f卽、游,3;解,杳的变化趋势数据,梦表示特征点的数值 大小,W此类推;h为用于采集人体的姿态四元数数据的惯性传感器个数; 2) 提取每一个标准行为behaviori的起点、终点的姿态特征,并设集合B={begim, begins, ...,begini,...,beginb}为待检测基础动作的起始姿态特征点集合,集合E = (endi,end2, . . .,endi,. . .,endb}为待检测基础动作的结束姿态特征点集合;0《i《b;定义 识别结果集合R = {(resulti, dtwi), (results, dtw2(resultw, dtww), (results, dtwx)}用于存放本次动作识别的结果,元组(resultw,dtww)表示用户在动作检测过程中检 测得到的每一种可能的行为结果,其中1《巧《^^日3111^为可能的动作行为名称,且满足 resulti,results,results,,resultw,…,results, ,dtww为用户动作与标准动作的距离 差; 3) 用户开始进行动作姿态变化,检测用户的动作序列特征点,并检测用户动作特征序 列中满足待检测基础动作的起始姿态特征点集合B中各点条件的特征点;当检测得到用户 动作特征序列满足B中的某个起始特征点beginm条件时,认为与起始特征点beginm相对应的 行为动作开始,并取len长度作为本次检测的最大长度,进行行为动作behavior。的检测,将 behavior。检测结果存入R;在len长度内,继续检测满足集合B中各点条件的特征点,当检测 得到beginy时,认为behaviory开始,同样取len长度作为该检测的最大长度,并进行 behaviory的检测,将behaviory检测结果存入R;依次类推,直至最后一个识别动作的len长 度内,无新动作检测结果产生;0《m《b;0《y《b; 4) 取集合R中化W距离最小的元祖,该元祖对应的动作行为作为本次动作检测的结果。2. 根据权利要求1所述的基于微惯性传感器的姿态跟踪与识别方法,其特征在于,步骤 3)中,检测用户的动作序列特征点的实现过程包括W下步骤: 1)采集η个人体姿态一维数据,并将该η个一维数据表示为序列{qo,qi,. . .,qi,. . .,qn}; 对序列{q〇,qi,. . .,qi,. . .,qn}进行一阶差分运算并将差分运算的结果标准化,第t个数据qt 的标准化数据q_dft为:其中,threshold表示为了实现标准化所设置的阔值;0《t《η; 2) 对一阶差分运算结果序列{9_壯〇,9_壯1,. . .,9_壯1;,. . .,9_壯。}进行均值滤波:其中,q_dmeam表示第t个一阶差分运算结果均值滤波后的标准化输出; 3) 对均值滤波后的标准化输出结果{q_dmeani,q_dmean2, . . .q_dmeant,. . .,9_血611。}进 行二次差分运算,第t个数据〇_血6311*的二次差分运算输出结果为:4) 引入tendt表示第t个检测点qt的变化趋势:tendt = 3 X q_mearu-q_tdft;定义序列 (qo,qi,. . .,qi,. . .,qn}的变化趋势集合为Τ= {-5,-3,-2,-1,0,1,2,3,5} ;ten山eT; 5) 判断某点qt是否为特征点的判断标准为:使用h个惯性传感器采集人体的姿态四元数数据,每一时刻每个传感器采集得到数据 均为四维数据,故全部数据为4 X h维,则对于第k个惯性传感器而言,当采样频率为化Z且系 统从0时刻开始采集用户的姿态数据时,第Ti时刻惯性传感器传回的姿态数据表示为 [QTi, 4k-3,QTi, 4k-2,QTi, 4k-l,QTi, 4k],贝化至Ti时刻内,由第k个惯性传感器传回的全部姿态数据 为:其中,0<e<Ti; 6) 由步骤2)、步骤3),对每一维姿态数据分别进行差分标准化运算,得到新的四维数 据:7) 由步骤4)计算姿态变化趋势数据为:8) 由步骤5)完成对数据的筛选,从筛选的数据中提取出特征数据,即用户动作特征序 列为:其中,0《j《;r<Ti,0《io,il,...,ir《4Xh,tendo,tendl,...ten山eT,ij表示第j个特 征点是传感器传回的4Xh维数据中的第j维数据,ten山为第j个特征点的变化趋势数据, 康述第j个特征点数值的大小;r = p;0<p<b, pE 山,I2,13 , ...lb}。3.根据权利要求2所述的基于微惯性传感器的姿态跟踪与识别方法,其特征在于,检测 结果R的计算过程包括: 1)利用权利要求2的步骤,构建模板动作的特征数据序列:其中,0《i'j<4h,tend'jeT; 设置起点、K挪麥、的、,)为待检测动作的起始姿态特征点, 6*;.^1^/;>、4>&#&,9,^;>>;3)为待检测动作的结束姿态特征点,1为模板动作特征序列的长度,1^ {Il,l2,l3,***lb}; 2 )取用户动作特征序列中的点j W及模板动作特征序列中的点 綻;),定义判断条件:当 Value值为 1 时,认为 與.,巧满足 (|沪纔^聲,与矜,祕級4,麥麟)匹配,否则认为不满足(弓*驗繳餐,参鱗)的匹配条件; 3)采用下述步骤进行指定动作行为的识别: 3a)利用步骤2)所述匹配条件,在用户的动作特征序列中检测满足集合BE中各个begin 匹配条件的特征点;当检测得到begin,即begin判断条件值为1时,认为该动作已经开始,并 从检测得到begin的特征点处起,取len长度作为检测的最大长度,依次进行其后续特征点 的检测; 3b)当检测到eml时,认为该动作结束,动作完整,将动作完整的动作特征点保存为用户 动作特征数据序列;当未检测到eml时,认为该动作结束,但动作不完整,将该动作不完整的 动作特征点保存为用户动作特征数据序列;当未检测得到end,但检测得到新的begin时,认 为该动作结束,但动作不完整,将动作结束但不完整的动作特征点保存为用户动作特征数 据序列,并开始新的动作检测; 3c)将保存的用户动作特征数据序列与模板特征数据序列进行比较,使用用户特征数 据序列与模板动作特征数据序列之间的dtw距离来表示用户动作序列与模板动作特征序列 的匹配程度:3d)得到的动作匹配程度与动作名称共同组成本次动作识别的识别结果(result, dtw),其中result为模板动作名称。
【文档编号】A61B5/11GK106073793SQ201610414379
【公开日】2016年11月9日
【申请日】2016年6月13日 公开号201610414379.X, CN 106073793 A, CN 106073793A, CN 201610414379, CN-A-106073793, CN106073793 A, CN106073793A, CN201610414379, CN201610414379.X
【发明人】刘丽珏, 雷晓亮, 谭平, 孙钦波
【申请人】中南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1