一种加速度动作识别系统及其方法

申请号 CN200980161332.5 申请日 2009-07-07 公开(公告)号 CN102667672B 公开(公告)日 2014-04-02
申请人 闫文闻; 发明人 韩铮;
摘要 一种 加速 度动作识别方法及其系统,所述动作识别方法包括以下步骤;通过三轴加速度 传感器 采集一个动作的有效数据 信号 ;确定该动作的起始和结束的静止状态数据;基于三轴加速度传感器采集的有效数据信号和该动作的起始和结束的静止状态数据,通过去 重 力 加速度 分离 算法 ,将重力加速度从三轴加速度传感器采集的数据中分离出去,得到动作的运动加速度数据;基于该动作的运动加速度数据计算出该动作的速度和轨迹。
权利要求

1.一种动作识别方法,包括下列步骤:
通过三轴加速传感器采集一个动作的有效数据信号
确定该动作的起始和结束的静止状态数据;
基于三轴加速度传感器采集的有效数据信号和该动作的起始和结束的静止状态数据,通过去加速度分离算法,将重力加速度从三轴加速度传感器采样的数据中分离出去,得到动作的运动加速度数据;以及
基于该动作的运动加速度数据计算出该动作的速度和轨迹;
其中所述去重力加速度分离算法包括:
求解出所述动作从开始到结束过程中,所述动作的轴的矢量方向和该轴绕某方向转动的转的最小角度;
利用求解出的轴的矢量方向和转角的角度,将转动分量平均分离到每一个采样点上;
以及
将每一点的位姿和重力加速度建立相应的映射,去除不同位姿下重力加速度对信号的影响,得到准确的运动加速度信息;
或者,所述去重力加速度分离算法包括:
基于三轴加速度传感器的有效数据信号,将运动开始之前,结束后的静止状态数据作为初始和结束的两组静止姿态
利用所述两组静止的姿态的数据将临近较短固定时间内的加速度数据去除重力加速度,得到这段时间内的运动加速度数值、运动速度和轨迹;
将上述运动加速度数值、运动速度和轨迹与模式匹配数据库当中的有限数量的运动指令进行匹配,得出确定的运动方向;以及
基于计算出的前后两组运动方向,将方向的变化分割并修正完整运动数据中各点速度和轨迹,得到运动信息。
2.根据权利要求1的方法,其中所述动作的有效数据信号和动作的起始和结束的静止状态数据具有如下格式:数据的开始和结束分别包括一组静止状态的数据,中间的各组数据是人体运动中三轴加速度传感器采样得到的有效数据。
3.根据权利要求1的方法,其中所述确定该动作的起始和结束的静止状态数据的步骤进一步包括静止-运动检测步骤,用于检测动作的预静止和预运动状态。
4.根据权利要求3的方法,其中所述静止-运动检测步骤包括:
当动作为预静止状态时,将连续的N数据封装成一组;
判断该组数据的方差大于预定的阈值θ;
如果该组数据的方差大于预定的阈值θ,则使检测状态进入预运动状态,将前一组N帧数据连同本组预运动状态的数据存储到缓存,并且将这段预运动状态的数据直接发送以计算出该动作的速度和轨迹;
当动作为预运动状态时,判断此时的数据方差大于预定的阈值,或者判断数据的均值与标准重力加速度的差值的模是否大于预定的差值Δ;
当该数据的方差小于预定的阈值θ,并且数据均值与标准重力加速度的差值的模小于预定的差值Δ,则使检测状态进入预静止状态。
5.根据权利要求4的方法,其中所述静止-运动检测步骤进一步包括:
当检测状态进入预静止状态时,对缓存中数据长度进行最后的判断,检测数据长度是否大于T时间内以频率F采样的数据的大小,并且判断数据中是否存在一组数据它的均值与标准重力加速度之差的模大于有效运动幅度Ω;
如果这两个条件不都满足,将缓存当中的数据清空;
如果同时满足两个条件,发送数据并通过去重力加速度分离算法将数据中的重力加速度分离。
6.一种动作识别系统,包括:
数据采集传输模,其包括三轴加速度传感器,用于发送三轴加速度传感器采集的一个动作的有效数据信号;
驱动程序模块,用于将来自所述数据采集传输模块发送的数据信号缓存,并接收来自数据处理模块的数据,用于显示驱动和人机交互设备的驱动;
数据处理模块,其包括重力加速度分离模块,所述数据处理模块用于确定三轴加速度传感器所对应的动作的起始和结束的静止状态数据,并基于三轴加速度传感器采集的有效数据信号和该动作的起始和结束的静止状态数据,通过重力加速度分离模块,将重力加速度从三轴加速度传感器采样的数据中分离出去,得到动作的运动加速度数据,并基于该动作的运动加速度数据计算出该动作的速度和轨迹,并将数据传送到所述驱动程序模块;
其中所述重力加速度分离模块,
求解出所述动作从开始到结束过程中,所述动作的轴的矢量方向和该轴绕某方向转动的转角的最小角度;
利用求解出的轴的矢量方向和转角的角度,将转动分量平均分离到每一个采样点上;
以及
将每一点的位姿和重力加速度建立相应的映射,去除不同位姿下重力加速度对信号的影响,得到准确的运动加速度信息;
或者,所述重力加速度分离模块,
基于三轴加速度传感器的有效数据信号,将运动开始之前,结束后的静止状态数据作为初始和结束的两组静止姿态;
利用所述两组静止的姿态的数据将临近较短固定时间内的加速度数据去除重力加速度,得到这段时间内的运动加速度数值、运动速度和轨迹;
将上述运动加速度数值、运动速度和轨迹与模式匹配数据库当中的有限数量的运动指令进行匹配,得出确定的运动方向;以及
基于计算出的前后两组运动方向,将方向的变化分割并修正完整运动数据中各点速度和轨迹,得到运动信息。
7.根据权利要求6所述的动作识别系统,其中所述动作的有效数据信号和动作的起始和结束的静止状态数据具有如下格式:数据的开始和结束分别包括一组静止状态的数据,中间的各组数据是人体运动中三轴加速度传感器采样得到的有效数据。
8.根据权利要求6所述的动作识别系统,其中所述数据处理模块进一步包括静止-运动检测模块,用于检测动作的预静止和预运动状态。
9.根据权利要求8的动作识别系统,其中所述静止-运动检测模块,
当动作为预静止状态时,将连续的N帧数据封装成一组;
判断该组数据的方差大于预定的阈值θ;
如果该组数据的方差大于预定的阈值θ,则使检测状态进入预运动状态,将前一组N帧数据连同本组预运动状态的数据存储到缓存,并且将这段预运动状态的数据直接发送以计算出该动作的速度和轨迹;
当动作为预运动状态时,判断此时的数据方差大于预定的阈值,或者判断数据的均值与标准重力加速度的差值的模是否大于预定的差值Δ;
当该数据的方差小于预定的阈值θ,并且数据均值与标准重力加速度的差值的模小于预定的差值Δ,则使检测状态进入预静止状态。
10.根据权利要求9的动作识别系统,其中所述静止-运动检测模块进一步包括,当检测状态进入预静止状态时,对缓存中数据长度进行最后的判断,检测数据长度是否大于T时间内以频率F采样的数据的大小,并且判断数据中是否存在一组数据它的均值与标准重力加速度之差的模大于有效运动幅度Ω;
如果这两个条件不都满足,将缓存当中的数据清空;
如果同时满足两个条件,发送数据并通过去重力加速度分离算法将数据中的重力加速度分离。
11.根据权利要求6的动作识别系统,其中所述数据采集传输模块进一步包括:
微型处理器,其以固定频率F去读取三轴加速度传感器的数据存储单元,同时根据公共密钥和加密算法对每组数据进行加密,并且将加密过的数据在微型控制器的数据存储单元缓存起来,然后将加密过的数据发送到数据传输模块;
数据传输模块,其接收来自微型处理器的数据,采用无线或有线方式发送数据。
12.根据权利要求6的动作识别系统,其中所述动作识别系统进一步包括:
数据接收模块,用于接收来自数据传输模块的数据,并将其发送到驱动程序模块。
13.根据权利要求6的动作识别系统,其中所述驱动程序模块进一步包括加密/解密过滤驱动模块,基于微型处理器中的加密算法和公共密钥对所接收的数据进行解密,并对解密后的数据进行校验,当数据量达到触发发送的限时,将数据发送至静止-运动检测模块。
14.根据权利要求6的动作识别系统,其中所述动作识别系统进一步包括:
动作模式匹配模块,用于接收来自重力加速度分离模块的运动加速度数据,计算出动作的速度及空间轨迹,在操作指令数据库与运动速度轨迹数据库中进行匹配度计算查询并建立映射,得到操作指令数据库中对应的动作操作模式数据,并将其发送到驱动程序模块。
15.根据权利要求14的动作识别系统,其中所述动作识别系统进一步包括:
动作显示模块,其包括两个并行的数据处理模块,实时预动作显示模块和完整动作显示模块,分别接收来自静止-运动检测模块的预运动数据,以及重力加速度分离模块的完整运动速度、轨迹数据,用于显示动作的运动方向和速度。
16.根据权利要求15的动作识别系统,其中所述驱动程序模块进一步包括:
人机交互设备驱动模块,用于接收来自动作模式匹配模块的动作操作模式数据,遵循操作系统中标准的输入设备驱动模型要求,提供了面向应用程序的通用控制接口
显示驱动模块,用于接收来自所述动作显示模块的动作的运动方向和速度信号,用于驱动在显示屏上动作的显示。

说明书全文

一种加速度动作识别系统及其方法

技术领域

[0001] 本发明涉及一种加速度动作识别系统及其方法,特别涉及一种基于非陀螺仪技术的加速度动作识别系统及其方法。

背景技术

[0002] 目前,绝大多数的动作识别设备可以分别用光学传感定位方法和运动加速度传感定位算法,虽然这两种方法已经可以实现基本的动作定位和识别,但是都分别存在一定的技术局限性。
[0003] 基于光学传感定位方法的动作识别
[0004] 以任天堂生产的Wii游戏机为代表,参见美国专利公开号为US2008/0119269A1;标题为“GAME SYSTEM AND STORAGEMEDIUM STORING GAME PROGRAM”专利文献,其利用设备上的红外线接收传感器接收到来自设备两端的红外线发生器所产生信号的强弱不同以及两个投射点的相对距离,计算出二维的运动轨迹。
[0005] 但这种实现方法存在着一些固有的不足:由于必须在操作设备两端各安装一个红外线发射器,并且为了保证接收传感器上的两个投射点距离足够分辨,两个传感器必须分离开一定的距离,造成了设备的尺寸较大的缺陷。并且受到红外线接收传感器的信号强度分辨率限制,设备仅在1米到5米的范围内可以达到足够的精度,无法适应1米内的近距离操作和5米以上的远距离操作。
[0006] 基于磁体在地磁场中定位的动作识别
[0007] 以美国Sixense的磁体定位系统和方法为代表。系统利用一个产生1/50地磁场强度的磁基站与地磁场组成一个正交的磁场坐标系,控制设备在这个磁场坐标系中运动时,能够实时反映出物体在磁场坐标系中的相对坐标和空间姿态,有较高的定位精度和实时性。
[0008] 这种方法存在的不足是,系统体积较大并不方便携带,并且磁场的有效范围受制于产生磁场基站的发射功率强度,并不适用与普通的计算机用户。
[0009] 基于运动加速度传感器和陀螺仪的动作识别
[0010] 以韩国三星Samsung的运动识别系统和方法为代表,参见美国专利公开号为US2008/0049102A1;标题为“MOTION DETECTIONSYSTEM AND METHOD”专利文献,其为了获得完整的6维运动信息(3维运动和3维转动),系统采集数据必须同时使用加速度传感器和陀螺仪,或者是用固定间隔距离的两个加速度传感器(其中一个模拟陀螺仪),来获取所需要的6维度运动信息。
[0011] 但这种方法也存在着一定的局限性,主要体现在以下几点:
[0012] (1)由于使用了陀螺仪,设备的制造工艺、产品体积以及器件种类有很大限制,在这种方法下,如果仅使用一个三轴加速度传感器,系统无法将加速度和运动加速度分离开来,也无法提供运动中设备的转动信息,无法计算出运动的轨迹。
[0013] (2)由于这类系统数据处理算法的局限性,无法滤除传感器的误差和其他传导到加速度传感器和陀螺仪的小幅震动,无法检测出设备的正常运动过程的起始过程,需要利用其他的按键辅助,即用户在开始和结束动作的时候需要按住后松开一个特定的按钮,来标记运动的起始,这样虽然解决的动作起始的标识问题,但是却要求用户按键的操作,无法实现无附加操作的动作识别体验,影响了用户的使用效果。
[0014] (3)由于受到制造工艺的限制,陀螺仪的成本较高,体积较大,并且在加速度变化剧烈的情况下数据可靠性很低。

发明内容

[0015] 本发明的目的在于提供一种基于非陀螺仪技术的加速度动作识别系统及方法,其能够将重力加速度和运动加速度分离开来,并提供运动中设备的转动信息,计算出运动的轨迹。
[0016] 本发明的另一目的在于提供一种基于非陀螺仪技术的加速度动作识别系统及方法,其无需光学传感器和红外、射频发射器,也无需附加机械连杆机构,能够滤除传感器的误差和其他传导到加速度传感器和陀螺仪的小幅震动,检测出设备的正常运动过程的起始过程,并减少制造成本和提高系统的可靠性。
[0017] 本发明是基于非陀螺仪技术的加速度动作识别系统及方法,其中一种核心算法基于三轴加速度传感器的有效数据信号,通过运动转极小优化算法,求解出一段完整动作在从开始到结束过程中,绕某方向转动的最小角度及方向矢量,并利用求解出的轴的矢量方向和转角的大小,将转动分量分离到每一个采样点上,将每一点的姿态和重力加速度建立相应的映射,去除不同姿态下重力加速度对信号的影响,得到准确的运动加速度信息;并结合对加速度信号的匹配滤波处理,得到静止检测和动作起止识别算法,实现无人为外在干预的高精度动作识别。
[0018] 同时这种基于非陀螺仪技术的加速度动作识别系统及方法,也可以采用其它的算法来实现。通过静止运动检测感知到运动的开始后,首先将运动开始之前的静止数据作为初始化的第一组静止姿态,并用这个姿态的数据把接下来较短固定时间内的加速度数据去除重力加速度,得到这段时间内的运动加速度数值、运动速度和轨迹,并且与模式匹配数据库当中的有限组运动指令进行匹配,得出一组确定的运动方向。当静止运动检测模块检测到运动结束时,将结束时的静止姿态作为第二组静止姿态,并对运动结束之前的较短固定时间内的数据去重力加速度,得到这段时间内的运动加速度数值、运动速度和轨迹,并且再次与模式匹配数据库当中的有限组运动指令进行匹配,得出另一组确定的运动方向。在计算出前后两组运动方向后,系统将方向的变化分割并分配到完整运动数据中每一点,对运动速度进行修正,最后得到完整的运动速度和轨迹。
[0019] 一种典型的技术方案应用是对人体动作感知(体感)的游戏控制,将基于三轴加速度传感器的硬件固定在使用者的手掌、腿部以及其他关节部分,当用户从静止开始做一个有特定意义的动作时(比如挥拍击球),静止运动检测模块通过对信号进行处理,分离出完整运动过程中加速度传感器采集到的数据,通过上述非陀螺仪加速度动作识别算法,对数据进行处理后,得到整个运动过程的运动轨迹、轨迹上每点的速度以及设备相对笛卡尔坐标系(地球重力坐标系)的姿态。附图说明
[0020] 图1是本发明的加速度动作识别系统的结构图;
[0021] 图2是加速度动作识别系统的数据采集传输模块的结构图;
[0022] 图3是加速度动作识别系统的驱动程序模块的结构图;
[0023] 图4是加速度动作识别系统的静止-运动检测模块的结构图;
[0024] 图5是加速度动作识别系统的人体常规运动的姿态变化图;
[0025] 图6是加速度动作识别系统的加速度计的姿态用固联在加速度计上的坐标系表示;
[0026] 图7是加速度动作识别系统的重力加速度分离模块的结构图;
[0027] 图8是加速度动作识别系统的动作匹配应用接口
[0028] 图9是加速度动作识别系统的动作显示模块。

具体实施方式

[0029] 本发明的以上这些和其他一些目的、功能和优点结合以上附图所作的详细说明中可以看得更加清楚。
[0030] 请参照图1,图1是本发明的动作识别系统的结构图,由图1可以看出,本动作识别系统由数据采集传输模块、数据接收模块、驱动程序模块、数据处理模块、动作模式匹配模块以及动作显示模块共6部分组成,其中数据采集传输模块、数据处理模块、动作匹配模块是系统的核心。
[0031] 本发明的数据采集传输模块包括三轴加速度传感器、微型处理器和数据传输模块。该数据采集传输模块主要负责将三轴加速度传感器采集的数据根据一定的传输协议,通过有线或者无线信道将数据发送到数据接收模块,同时在微型处理器上将数据从加速度传感器读取到的数据在微型处理器中缓存时,对数据进行加密,然后将加密的数据传输到数据传输模块,而数据传输模块将加密的数据发送到数据接收模块。相比于光学动作识别系统和已有的加速度传感器系统,数据采集传输模块的实现更为简洁,对用户的使用体验、系统体积和复杂度,都有很大的改善。
[0032] 数据接收模块将接收到的有线或无线数据解调后,上传到驱动程序模块。驱动程序模块注册设备端口,并顺序将解调后的数据缓存,之后利用对应于数据采集模块中的加密协议和密钥,对数据进行解密。将解密后的加速度数据传输到数据处理模块。经过数据处理模块、动作模式匹配模块、动作显示模块处理后,计算出运动的速度、轨迹以及动作匹配后的操作,分别传输回驱动程序模块,经过驱动程序模块中的显示驱动和人机交互设备驱动,向上层提供系统应用接口。
[0033] 需要说明的是,数据采集传输模块也可以不对数据进行加密。这样,在程序驱动模块中也无需解密过滤驱动处理。
[0034] 数据在加密/解密过滤驱动处理后,将解密后的数据传输到数据处理模块中的静止-运动检测模块(或直接将从数据接收模块接收的数据直接送到静止-运动检测模块)。在静止-运动检测模块当中,模块通过计算信号的大小以及对应的方差,并通过静止-运动检测算法(在下文中具体描述)判断信号是否属于大幅度运动状态过程中的数据,并将运动过程中的完整数据存储下来。将初始运动的信息通知动作显示模块,之后由重力加速度分离模块将运动有效数据中所有采样点的重力加速度分量与运动加速度分离,计算出每一个采样点在笛卡尔坐标系中的相对空间运动所产生的加速度,并利用每一点重力加速度在三轴的分布情况计算出每一点在笛卡儿坐标系中所处的姿态(在静止-运动检测模块和重力加速度分离模块中,都使用了新的算法取得了更好的效果)。
[0035] 将经过重力加速度分离处理后的数据发送到动作模式匹配模块,在各种场景中的人体动作数据和操作指令的映射集中,进行匹配查找,并将匹配后的操作指令发送到人机交互设备驱动用来实现应用程序中点击选择等操作指令,或者娱乐游戏中击打敌人等操作指令。同时将重力加速度分离处理后的人体运动加速度数据发送到动作显示模块,连同来自静止-运动检测模块的人体运动的初始运动信息,通过运动方程V=V0+a*t(速度=初速2
度+加速度*时间),S=V0*t+0.5*a*t(位移=初速度*时间+0.5*加速度*时间平方)来计算出对于笛卡尔坐标系的运动速度和轨迹(示例,本发明也可以采用其他算法),并将速度和轨迹的结果发送到计算机的显示驱动,实时显示出人体动作。
[0036] 下面结合附图具体描述每个模块的结构和作用:
[0037] (1)数据采集传输模块
[0038] 图2是数据采集传输模块的结构图,该模块主要由三部分组成:三轴加速度传感器、微型处理器和数据传输模块,各模块之间通过总线通信,其中各个子模块的功能如下:
[0039] 三轴加速度传感器
[0040] 三轴加速度传感器以固定的频率F采集±N(g)范围内的加速度数据(g代表标准重力加速度的大小,即采集负N倍重力加速度到正N倍重力加速度范围内的运动加速度数据),并且以固定频率F更新加速度传感器中固定的内存地址空间,每组数据分别由X\Y\Z轴的加速度值和采样点的温度组成,并将每组数据存储在三轴加速度传感器中的数据存储单元中。
[0041] 微型控制器
[0042] 采用低功耗的单片机或ARM处理器,通过总线接口与加速度传感器模块进行通信连接。
[0043] 此外微型控制单元同样以固定频率F去读取加速度传感器的数据存储单元,同时根据芯片内的公共密钥和加密算法对每组数据进行加密,并且将加密过的数据在微型控制器的数据存储单元缓存起来。并将加密过的数据发送到数据传输模块。
[0044] 数据传输模块
[0045] 支持有线和无线两种通信传输方式。有线接口可使用USB,串口,并口,火线(fire wire)等多种协议。无线接口利用射频基带芯片,支持远距离和低功耗的100Kbps的数据传输。可以采用蓝牙、红外、Zigbee以及其他简单传输协议。
[0046] (2)数据接收模块
[0047] 将数据接收并缓存到指定内存区域,并通知驱动程序模块读取。同样对应数据传输模块的传输格式,支持支持有线和无线两种通信传输方式。
[0048] (3)驱动程序模块
[0049] 参见附图3,其为驱动程序模块结构图,驱动程序模块结构主要分为三层:数据总线驱动;加密解密过滤驱动;人机交互设备驱动和图形显示驱动。
[0050] 数据总线驱动
[0051] 数据总线驱动负责将传感器加速度数据和中断控制指令从硬件总线上读取并传输,根据数据传输方式的不同,分为有线传输和无线射频传输,对应的数据总线驱动分别为有线设备驱动和无线接收端驱动。在读取解调数据后,数据总线驱动将数据缓存至计算机内存中。
[0052] 加密/解密过滤驱动
[0053] 由于所有数据都会根据硬件微型处理器中的加密算法和公共密钥进行了加密(例如采用RSA加密算法和密钥),在加密解密过滤驱动中,用对应的私有密钥进行数据解密,并对解密后的数据进行校验。当数据符合要求并且数据量达到触发发送的限时,将数据发送至静止-运动检测模块。
[0054] 人机交互设备驱动
[0055] 当处理完毕后,动作模式匹配模块将匹配得到的操作指令发送到人机交互设备驱动,人机交互设备驱动遵循操作系统中标准的输入设备驱动模型要求,提供了面向应用程序的通用控制接口,这样可以在计算机操作系统的图形操作界面上模拟鼠标键盘以及游戏动作识别控制设备的功能。
[0056] 显示驱动
[0057] 动作显示模块把来自于静止-运动检测模块和重力加速度分离模块分别得到的完整运动和初始运动的加速度值,计算出笛卡尔坐标系下的运动速度和轨迹,发送给显示驱动,显示驱动负责在计算机屏幕上显示人体的运动。
[0058] (4)数据处理模块
[0059] 数据处理模块包括静止-运动检测模块和重力加速度分离模块,动作识别系统能够精确识别的动作,都符合人体由静止状态开始变速运动后再次静止的过程,这是因为符合这一过程的运动数据起始、结束两部分都属于近似静止状态的数据,中间的各组数据是变速运动中的三轴加速度传感器的采样数据。
[0060] 参见附图1。在传统的基于加速度传感和陀螺仪的动作识别系统中,检测静止运动的技术有着较大的局限,主要是由于传感器的数据受到物体的固有振动以及传感器自身的固有误差影响,无法对使用者的运动动作发生与否做出正确的判断。本系统在处理静止-运动检测方面,综合利用了信号处理机器学习相关技术,静止-运动状态检测可以达到90%以上的精度。
[0061] 图4给出了静止-运动检测模块工作流程图。从图4中可以看到,静止-运动检测模块有两种状态,即预静止状态和预运动状态(状态标识符为∏,∏=0,表示预静止,∏=1,表示预运动。并不是表示数据一定是属于静止状态或运动状态,而是作为临时的系统检测状态标识)。
[0062] 驱动程序模块将连续的N数据封装成一组,发送到静止-运动检测模块。当此时静止-运动检测模块检测状态∏为预静止状态时,进入判断条件i,如果这组数据的方差大于阈值θ,系统检测状态∏进入预运动状态。此时前一组N帧数据连同本组预运动状态的数据存储到缓存,并且将这段预运动状态的数据绕过重力加速度分离模块,直接发送到动作显示模块,同时通知动作显示模块启动运动初始状态的绘制,即在人体开始运动时,系统无需等待运动完成,就能将运动初始的方向和速度显示出来。
[0063] 当静止-运动检测模块状态∏变为预运动状态时(上一段已经提到何时进入预运动状态)跳转到判断条件ii,如果此时的数据方差大于阈值θ,或者数据的均值与标准重力加速度g差值的模大于Δ时,此数据继续发送到缓存。如果本组数据两个条件都不满足,即组内方差小于阈值θ并且数据均值与标准重力加速度g差值的模小于Δ,系统进入预静止状态。(θ和Δ的值,是通过对人体动作实验得出的经验值,采用的三轴加速度传感器不同,θ和Δ的值也不相同。例如博世的BMA150传感器,此处的θ和Δ分别取0.25(m/2 2 2
s) 和2m/s)
[0064] 当进入预静止状态时,静止-运动检测模块对缓存中数据长度进行最后的判断,即检测数据长度是否大于T时间内以频率F(即动作的持续时间要大于T,例如T可以取0.5秒)采样的数据的大小,并且判断数据中是否存在一组数据它的均值与标准重力加速度之差的模大于有效运动的加速度幅度Ω。如果这两个条件不都满足,系统将缓存当中的数据清空;如果同时满足两个条件,系统将数据发送到重力加速度分离模块,同时通知绘图模块等待有效数据的发送。(Ω是通过对人体动作实验得出的经验值,采用的三轴加速度传感器2
不同,Ω的值也不相同。例如博世的BMA150传感器,此处的Ω取1m/s)
[0065] 整个静止-运动检测模块是基于实验中对运动数据特性的分析设计的,能够检测出持续时间大于T的人体运动,并能将外界的高频率振动、人体血管流动和心跳的噪声以及一些人体无意识的抖动从信号中滤除。同时,在进入预运动状态时就通知动作显示模块准备绘制初始运动方向,达到了较高的实时性。
[0066] 重力加速度分离模块
[0067] 由于加速度传感器采集的数据是由重力加速度和运动加速度线性叠加组成的,要想得到人体运动相关信息,需要得到单纯的运动加速度数据。重力加速度分离模块可以实现将重力加速度从三轴加速度传感器采样的数据中分离出去,得到单纯的运动加速度数据。
[0068] 算法(一):
[0069] 加速度动作识别系统捕捉的运动是由三维直线运动和三维自转运动组成的,做出对运动的准确识别,识别系统要计算出运动的轨迹和每一点的姿态,这需要求解一个六维方程,同时传感器的数据是由重力加速度矢量和运动加速度矢量线性相加组成的,需要将传感器采集数据与重力加速度矢量线性相减,才能得到运动加速度矢量。
[0070] 而单独的三轴加速度传感器只能实时的提供三维加速度数据,无法求出运动的唯一解,这也是传统运动检测系统必须要使用转动惯性陀螺仪的原因。更详细的来看,传统系统需要利用转动惯性陀螺仪来给出每一采样时刻的系统空间姿态,从而将重力加速度矢量与运动加速度矢量分离开来。
[0071] 而本系统只采用了单一的三轴加速度传感器,便可计算出常见的运动姿态和轨迹,这是因为本动作识别系统主要是针对人体运动特性,提出了以下约束条件和算法:
[0072] 约束条件一:人的关节运动是从静止经过加速,再减速到静止组成的(这里称为运动动作单元),再复杂的运动也是由重复上面的过程而产生的。因此系统针对每一组完整的运动动作单元进行计算,系统采集的有效数据通过静止运动检测模块处理为以下格式:数据的开始和结束分别包括一组静止状态的数据,中间的各组数据是人体运动中三轴加速度传感器采样得到的有效数据。
[0073] 约束条件二:人体运动学研究证明,人的自然动作是最为优化省力的方式,这也是适应自然环境形成的。因此系统利用每一组完整的运动动作起始和结束的静止状态数据(标量值与重力加速度g近似,此时只有地球引力作用于加速度传感器),计算出运动开始和结束的系统空间姿态分别标记为姿态开始(Posture_Start)和姿态结束(Posture_End),此处系统假设两种姿态在整个运动中的转化是用户沿着某一个对应的转轴转动最小的角度,即人体在做功最小的方法下达到相同的运动效果,固定转轴和最小转角这个两个假设为系统求解仅有三维数据输入的六维超越方程,提供了额外的两维度的约束条件,可以得到六维超越方程的解。
[0074] 因此本运动识别系统及方法,可以仅使用三轴加速度传感器就可以计算出人体的常规运动轨迹和姿态。
[0075] 参见附图5,其为使用三轴加速度传感器得到的人体常规运动轨迹和姿态。
[0076] 当加速度计平放置时,根据其测量加速的方向建立固定坐标系O-XiYiZi。当加速度计姿态变化时,坐标系随加速度计一起转动,得到O-XjYjZj。在固定坐标系O-XiYiZi下,重力加速度的测量值等于重力加速度矢量在O-XiYiZi的坐标。显然此时测量的重力加速度为Tgi=(0,0,-g)。当加速度计在O-XjYjZj姿态下静止的时候,测量的重力加速度gj=(ax,T
ay,az)。设由坐标系O-XjYjZj到O-XiYiZi的变换矩阵为 则根据坐标变换有,[0077]
[0078] 这样得到:
[0079]
[0080] 所以这样可以求出:
[0081]
[0082]
[0083] 按照坐标变换的标准记法,定义一组参数RPY角(α,β,γ),表示O-XjYjZj坐标系先绕其Z轴转α,再绕其Y轴β,最后绕其Z轴γ得到O-XiYiZi。这样得到由固定坐标系O-XjYjZj到O-XiYiZi的变换矩阵 的另一个表示如下。于是同样可以得到一个方程组,求解这个方程可以得到加速度计姿态。但这个方程组的解有多组。当加速度计初始姿态和最终姿态都有多解时,问题变得很复杂。因此,简化问题,固定初始姿态。假设为水平放置或竖直放置。
[0084]
[0085] 另外,也可以认为从O-XjYjZj到O-XiYiZi的变换是绕O-XjYjZj下的一个固定向量kT=(kx,ky,kz),转动θ角得到,变换矩阵 的另一种表示方法为:
[0086]
[0087] 当已知初始姿态时,矩阵方程求解后的最终姿态存在多解。此时对每一个最终姿态,都能找到一个对应的(ki,θi),i=1,2…。
[0088] 令:θj=min{θi,i=1,2…}。则加速计由初始姿态经过(kj,θj)变换得到最终姿态。这样可以认为整个过程中,变换都是绕kj轴进行。于是整个转动过程可以差分成很多绕kj进行的一连串小角度的转动。
[0089] 算法如下:加速度计的姿态用固联在加速度计上的坐标系表示,假设初始姿态为T0,终止姿态为TN。示意图参见附图6。
[0090] 从图6可以看出,初始时刻测量的加速度矢量为g0=(ax0,ay0,az0)T≈(0,-g,0)T。T
终止时刻测量的加速度矢量为gN=(axN,ayN,azN)。假设初始姿态T0到终止姿态TN的变换矩阵为 终止姿态TN到初始姿态T0的变换矩阵为 则:
[0091]
[0092]
[0093] 假设终止姿态TN变换到初始姿态T0的RPY角为(α,β,γ),则
[0094]
[0095]
[0096] 得方程组:
[0097]
[0098] 此方程组有多解,针对方程组的每一组(α,β,γ)代入姿态矩阵 对其求逆,得到矩阵
[0099] 假设由初始姿态T0变换到姿态TN等效于绕T0坐标系内固定单位向量k=(kx,ky,Tkz) 转动θ角得到,则
[0100]
[0101] 则得到如下方程组:
[0102]
[0103]
[0104] 于是得到:
[0105]
[0106]
[0107] 限定θ∈(0,180°),可求得θ,进一步求出:
[0108]
[0109] 由于方程存在病态解情况,实际中系统要求θ偏离0和180°,这是因为方程此时无法准确快速收敛。
[0110] 方程组(1)的解有多组,对每一组解(αi,βi,γi),都能求出唯一的一组(ki,θi)。则 对应的存在(kj,θj)。
[0111] 设加速度计在每次采样得到的加速度信息中,重力加速度的影响值依次为gi=T(axi,ayi,azi),i=0,2…N。每个采样点时,加速度计的姿态为Ti,i=0,2…N,从T0到初始姿态Ti的变换矩阵为 显然 (单位阵)。则
[0112] 利 用(kj,θj),估 计 每 个 变 换 矩 阵 这 里 采 用 的 方 法 是 认 定[0113] 在每个采样点,采集到的加速度为Ai=(Axi,Ayi,Azi)T,i=0,2…N[0114] 则去除重力在各轴上产生的影响后,运动加速度为ai′=ai-gi。此时的ai′是在姿态Ti下的信息,需要转化到初始姿态T0下,则在每个采样点,在初始姿态下的加速度信息为:
[0115]
[0116] 如图7所示,来自静止-运动检测模块的完整运动数据在重力加速度分离模块中被两次使用。首先被用于计算运动的最小转角以及对应的转轴方向,得到每一个数据采样点的姿态转换矩阵 之后利用 计算重力加速度在X/Y/Z轴的分量,从来自静止-运动检测模块的完整运动数据中每一个采样点数据[ax,ay,az]中分离,得到实际完整人体运动过程中的加速度数据,最后利用实际完整人体运动过程中的加速度数据,经过一次积分计算出运动速度,再经过一次积分计算出运动轨迹。同时利用 计算重力加速度在X/Y/Z轴的分量同地心引力产生的重力加速度的分布情况,计算出每一个数据采样点时刻设备的空间姿态。最终实际完整人体运动过程中的加速度、速度、位移,连同设备的空间姿态,共同组成了完整运动数据。
[0117] 算法(二):
[0118] 除了上述算法(一)外,也可以通过其他算法将重力加速度从传感器采集的数据中分离。
[0119] 通过静止-运动检测模块检测到运动开始后,首先将运动开始之前的静止数据作为初始化的第一组静止姿态μ1,并用这个姿态μ1的传感器数据,作为重力加速度g1在姿态μ1时在x/y/z轴的分量(gx1,gy1,gz1),并把接下来较短固定时间内的三轴加速度数据(axi,ayi,azi)去除重力加速度g1此时的x/y/z轴的分量(gx1,gy1,gz1),[0120] (Axi,Ayi,Azi)=(axi,ayi,azi)-(gx1,gy1,gz1);
[0121] (Axi,Ayi,Azi)是这段时间内的运动加速度数值,计算出运动速度和轨迹,并与模式匹配数据库当中的有限组运动指令进行匹配,得出一组确定的运动方向α1(kx1,ky1,kz1)。
[0122] (Axj,Ayj,Azj)=(axj,ayj,azj)-(gx2,gy2,gz2);
[0123] 当静止-运动检测模块检测到运动结束时,将结束时的静止姿态作为第二组静止姿态μ2,并用这个姿态μ2的三轴加速度传感器数据,作为重力加速度g2在姿态μ2时在x/y/z轴的分量(gx2,gy2,gz2),并对运动结束之前的较短固定时间内的三轴加速度数据(axj,ayj,azj),去重力加速度(gx2,gy2,gz2),
[0124] (Axj,Ayj,Azj)得到这段时间内的运动加速度数值、运动速度和轨迹,并且再次与模式匹配数据库当中的有限组运动指令进行匹配,得出另一组确定的运动方向α2(kx2,ky2,kz2)。
[0125] 在计算出前后两组运动方向α1和α2后,计算α1到α2的转换矩阵Tr,[0126] (kx2,ky2,kz2)=(kx1,ky1,kz1)*Tr;
[0127] 在运动开始到结束共有M个采样点,将方向的变化矩阵Tr分配为M份Tri,(Tri)M=Tr,计算出每个采样点时刻设备的空间姿态μi。
[0128] 用Tri得到的μi,对完整运动数据中每一点运动加速度进行转化修正,得到最后得到完整运动加速度数据,经过一次积分计算出运动速度,再经过一次积分计算出运动轨迹。。
[0129] 最终实际完整人体运动过程中的加速度、速度、位移,连同设备的空间姿态μi,共同组成了完整运动数据。
[0130] (5)动作模式匹配模块:
[0131] 参见图8,其为动作模式匹配模块。动作模式匹配模块利用处理后传入的完整运动数据。根据计算机模式匹配理论,模式匹配模块在操作指令数据库与运动速度轨迹数据库中进行匹配度计算查询并建立映射,得到操作指令数据库中对应的动作操作模式,并向应用程序提供操作指令。
[0132] 针对体感游戏应用的需求,本发明中的解决方案可以将计算出的速度和轨迹信息,通过数据训练和实验得到的先验数据组成匹配数据库,将速度和轨迹映射为游戏场景中的有限组动作操作。例如:体育运动类游戏中的挥臂、抛投、脚步触球等动作模式;第一人称射击游戏中的瞄准、射击等动作模式,即在不改变游戏程序传统的逻辑和流程的前提下对人四肢、头部以及躯干部分的运动进行跟踪识别,从而实现无按键、实时、真实的体感游戏体验。
[0133] 对于拟人类型机器人控制应用的需求,可以通过数据训练和实验得到的先验数据组成匹配数据库,将人体动作映射为机器人操作指令,例如:抬臂、挥臂、降臂等,本发明的解决方案可以大大简化控制设备的体积,增强交互控制的流畅性和仿真性,使得人对于机器人的控制能力和体验大大提高。
[0134] 针对触觉交互应用,本发明可用于采集操作末端姿态信息,将计算出的姿态信息映射到虚拟场景中,与虚拟场景进行动态实时碰撞检测,实现实时触觉交互。
[0135] 对于传统的个人计算机桌面应用场景,本发明可以实现二维平面和三维立体视界内的鼠标控制功能,不但可以完全替代现有传统鼠标的操作功能,而且更适应未来三维立体桌面环境的应用需求。
[0136] (6)动作显示模块
[0137] 参见附图9,其为动作显示模块。动作显示模块有两个并行的数据处理模块:实时预动作显示模块和完整动作显示模块,对应的输入数据分别来自静止-运动检测模块的预运动数据,以及重力加速度分离模块的完整运动速度、轨迹数据。
[0138] 实时预动作显示模块是将静止运动检测模块进入预运动状态后的前一组静止数据和当前组的运动数据进行简单的去重力加速度处理(即假设在运动的初始状态,重力加速度在三轴X/Y/Z的分布不变,即将前面静止状态下X/Y/Z的加速度数据值作为重力加速度g在三轴上的分量,将接收到的加速度数据减去重力加速度g的三轴上的分量),计算速度、轨迹得到起始运动的方向,并将数据发送到显示驱动以开始绘图。这样设计的目的在于,当用户使用设备开始运动时,初始运动的方向和速度即能够显示出来,无需数据要等到完整动作结束后,经过重力加速度分离模块处理才能显示。这样给用户一种近似实时性的用户体验效果。
[0139] 完整动作显示模块负责将重力加速度分离模块的加速度数据根据采样时间间隔,计算出速度和运动轨迹,将计算得到的数据发送到显示驱动,并在三维动画中绘制和重建用户的运动。
[0140] 可编程系统应用接口(图1上)
[0141] 参见图1,本发明所设计的系统架构和算法解决方案,面对开发者提供了可编程系统应用接口,具备很好的扩展性和应用性。只需针对应用场景,建立模式匹配数据库,并提供硬件方案,则任何有能力的开发者均可以方便的使用该接口进行编程,用于开发各类应用(体感游戏、机器人遥控器、3D桌面控制器等),因而本发明具备良好的商业应用前景。
[0142] 结合上述的描述,我们可以得到本发明的有益效果,即可以精确的定位和识别人体的动作,方便的在游戏控制、机器人控制、计算机桌面操作中提供动作识别,该识别系统的数据采集传输模块仅采用三轴加速度传感器,避免了使用陀螺仪带来的体积和成本的限制,并且在实时性和精度上都达到了很好的效果。
[0143] 本发明中的主要技术在于下面几点:
[0144] 1、非陀螺仪去重力加速度算法
[0145] (1)基于三轴加速度传感器的有效数据信号,通过运动转角极小优化算法,求解出一段完整动作从开始到结束过程中,绕某方向转动的最小角度,并利用求解出的轴的矢量方向和转角的大小,将转动分量分离到每一个采样点上,将每一点的姿态和重力加速度建立相应的映射,去除不同姿态下重力加速度对信号的影响,得到准确的运动加速度信息,再计算运动的速度和轨迹。
[0146] (2)基于三轴加速度传感器的有效数据信号,将运动开始之前,结束后的静止数据作为初始和结束的两组静止姿态,并用这个姿态的数据把临近较短固定时间内的加速度数据去除重力加速度,得到这段时间内的运动加速度数值、运动速度和轨迹,并且与模式匹配数据库当中的有限数量的运动指令进行匹配,得出确定的运动方向。在计算出前后两组运动方向后,系统将方向的变化分割并修正完整运动数据中各点速度和轨迹,得到运动信息。
[0147] (2)静止运动检测算法:
[0148] 对加速度信号进行匹配滤波处理,对连续的数据根据图4中判断条件I/II的对应使用,即判断条件I触发运动开始状态的检测,判断条件II触发运动结束状态的检测,避免了人手的小幅震颤以及物体固有震动的干扰,从而识别静止检测和动作起止的算法。
[0149] 下面描述本发明的加速度动作识别系统和方法的具体应用。
[0150] 游戏动作识别设备:
[0151] 本发明可以用于计算机游戏或家庭游戏机游戏中,二维及三维动作的识别。当用户做出模拟真实场景的动作时,具有非陀螺仪技术的加速度动作识别技术的游戏动作识别设备将用户做出的动作通过计算在计算机上重建出来,并与游戏中的控制指令建立映射。
[0152] 对于游戏中二维动作识别,例如扑克牌游戏中对于扑克牌的选取,用户可以将设备佩戴于手背上方,当用户左右平移时,可以对游戏当中手中持有的扑克牌进行选择,当用户希望打出或需选取指定的扑克牌时,用户只需要向前或向后快速移动佩戴有设备的手,即可让计算机识别出相应的操作。这种方式更接近于真实场景中打扑克牌的手部动作。
[0153] 对于三维动作识别,例如打网球的挥拍动作,用户可以将设备佩戴于手背上方,并且可以选择手握网球拍或其他任何物体,当用户根据游戏画面的提示做出一次完整的挥拍动作时,游戏动作识别设备将挥拍过程中的有效数据通过静止-运动检测模块分离出来,并经过系统计算得到用户挥动球拍的完整轨迹、速度等相关信息。动作模式匹配模块根据运动速度、轨迹信息,计算得到击球的方向、力量以及旋转。
[0154] 具有三维鼠标功能的设备:
[0155] 传统的鼠标是在二维平面上通过机械或光学解析,得到用户在水平平面上的平移。具有非陀螺仪技术的加速度动作识别技术的鼠标设备,具有在三维空间内精确定位的功能。当用户将持有设备的手向三维空间中某一个方向运动时,鼠标的光标也会随之移动。对于传统的二维操作界面,设备和系统能够将三维运动转化为二维平面的投影,对于鼠标左右键点击的动作,用户可以通过快速甩动手掌或者在垂直于二维平面的方向上下移动,就可以实现相应的点击功能。
[0156] 同时,具有非陀螺仪技术的加速度动作识别技术的鼠标不会像传统的机械或光学鼠标,受到接触表面的限制。具有本发明技术的鼠标可以在任何表面,甚至空中控制计算机桌面的鼠标光标。
[0157] 机器人动作控制输入设备:
[0158] 对于拟人类型机器人控制应用的需求,用户可以通过移动佩戴有机器人动作控制输入设备的手臂,将人体动作映射为机器人操作指令,例如:抬臂、挥臂、降臂等。当用户想要对机器人的四肢动作进行控制时,不再需要输入大量复杂的指令,仅仅需要做出相应的动作,就可以控制机器人做出一致的复杂手臂动作。具有本发明技术的机器人动作控制输入设备,相对于6维机械传动输入设备等传统解决方案,可以大大简化控制设备的体积,增强交互控制的流畅性和仿真性,使得人对于机器人的控制能力和体验大大提高。
[0159] 对于本领域技术人员显而易见的是,在本发明中可以进行多种修改和变化,而不脱离本发明的精神和范围。因此,本发明意图覆盖落在所附权利要求及其等效范围内的本发明的修改和变化。
QQ群二维码
意见反馈