一种基于加速度传感芯片的动作识别方法

文档序号:9786955阅读:572来源:国知局
一种基于加速度传感芯片的动作识别方法
【技术领域】
[0001 ]本发明涉及一种基于加速度传感芯片的动作识别方法。
【背景技术】
[0002]目前市面对动作传感,动作识别的技术普遍使用图形图像识别方法,需要采用摄像头,对使用者进行观察,识别出使用者每一帧图像中的肢体变动,判断使用者的动作;
[0003]该实现方法具有精度高,响应快,适用性强一些列有点,例如目前最为广泛使用的体感类游戏机;但该方案同样具有一些缺点:必须使用摄像头进行图像获取,且被观察对象需要距离摄像头一个合适的距离,一般情况下,只能在室内使用,而且摄像头需要固定在一个位置,因此使用的范围极为有限,对空间的要求很高。

【发明内容】

[0004]为了克服现有技术的不足,本发明的目的在于提供一种基于加速度传感芯片的动作识别方法,实现单一传感器识别用户的手势动作,计算出绝对的方向向量,准确判断用户手势。
[0005]为解决上述问题,本发明所采用的技术方案如下:
[0006]—种基于加速度传感芯片的动作识别方法,应用于六轴加速度传感器,包括以下步骤:
[0007]S1、计算减去重力后的加速度数据,加速度数据包括ax、ay和az;
[0008]S2、获取一个连贯动作中的所有加速度数据,依次根据每个加速度数据计算对应的夹角数据,夹角数据包括ax、ay和αζ;其中,αχ为加速度向量与现实空间的X轴夹角,ay为加速度向量与现实空间的Y轴夹角,az为加速度向量与现实空间的Z轴夹角;
[0009]S3、将夹角数据依次存储至数组active中,判断数组active的长度是否在预设的长度区间内,若是,则执行S4,若否,则返回步骤SI;
[0010]S4、对数组active进行降维处理,得到数组hp_active ;
[0011 ] S5、对数组hp_active进行dbscan算法处理,再进行κ-means算法处理,得到若干个动作聚类;
[0012]S6、分别计算数组hp_active与每个动作聚类的中心的欧氏距离;
[0013]S7、获取最短的欧氏距离所对应的动作聚类,该对应的动作聚类为目标动作聚类。
[0014]优选的,步骤SI中,计算减去重力后的加速度数据的步骤包括:
[0015]511、从六轴加速度传感器中分别获取乂、¥、2轴上的加速度,记为4^六7^2,以及获取四元数9[0]、9[1]、9[2]、9[3];
[0016]S12、根据四元数转换公式分别计算重力在X、Y、Z轴上的分力G[0]、G[1]、G[2],其中,G[0] = ((q[l]*q[3]-q[0]*q[2]))/16384,G[l] = ((q[0]*q[l]+q[2]*q[3]))/16384,G
[2]=(q[0]*q[0]-q[l]*q[l]-q[2]*q[2]+q[3]*q[3])/32768;
[0017]S13、计算加速度数据ax、ay和az,其中,ax=Ax_G[0],ay=Ay_G[l],az=Az_G[2]0
[0018]优选的,在步骤S2中,判断一个连贯动作的条件为:
[0019]获取的加速度数据中,若ax大于阈值fI,ay大于阈值f 2,且az大于阈值f 3,则将该次获取的加速度数据记为连贯动作的开始;
[0020]在获取连贯动作中的加速度数据时,若连续三次获取到的ax的绝对值小于阈值f4,ay的绝对值小于阈值f 5,且az的绝对值小于阈值f 6,则将最后一次获取到的加速度数据记为连贯动作的结束。
[0021 ]优选的,在步骤S2中,利用点积公式计算每个加速度数据对应的夹角数据。
[0022]优选的,在步骤S4中,降维处理包括以下步骤:
[0023]S41、对数组active进行haar小波变换处理,得到数组haar_active ;
[0024]S42、对数组 haar_active 进行 PCA 处理,得到数组 hp_active。
[0025]优选的,在步骤S6中还包括,判断最短的欧氏距离是否小于预设的欧氏距离阈值,若是,则执行步骤S7,若否,则返回步骤SI。
[0026]相比现有技术,本发明的有益效果在于:只需要通过单一的六轴加速度传感器即可识别出用户的手势动作,而且能够计算出用户在现实空间中的动作方向,更加准确地识别出用户的手势动作,避免了传感器的位置对用户的动作判断产生影响。
【附图说明】
[0027]图1为本发明的基于加速度传感芯片的动作识别方法流程图。
【具体实施方式】
[0028]下面,结合附图以及【具体实施方式】,对本发明做进一步描述:
[0029]参考图1,一种基于加速度传感芯片的动作识别方法,应用于六轴加速度传感器,包括以下步骤:
[0030]S1、计算减去重力后的加速度数据,加速度数据包括ax、ay和az。其中,计算减去重力后的加速度数据的步骤包括:
[0031]511、从六轴加速度传感器中分别获取乂、¥、2轴上的加速度,记为4^六7^2,以及获取四元数9[0]、9[1]、9[2]、9[3]。
[0032]S12、根据四元数转换公式分别计算重力在X、Y、Z轴上的分力G[0]、G[1]、G[2],其中,G[0] = ((q[l]*q[3]-q[0]*q[2]))/16384,G[l] = ((q[0]*q[l]+q[2]*q[3]))/16384,G
[2]= (q[0]*q[0]-q[l]*q[l]-q[2]*q[2]+q[3]*q[3])/32768。
[0033]S13、计算加速度数据ax、ay和az,其中,ax=Ax_G[0],ay=Ay_G[l],az=Az_G[2]0
[0034]其中,在步骤Sll和S12中所述的X、Y、Z轴是指六轴加速度传感器中设定的X、Y、Z轴。计算得到的加速度数据是指三轴减去了重力在各个轴上的分力得到的加速度。
[0035]S2、获取一个连贯动作中的所有加速度数据,依次根据每个加速度数据计算对应的夹角数据,夹角数据包括ax、ay和αζ;其中,αχ为加速度向量与现实空间的X轴夹角,ay为加速度向量与现实空间的Y轴夹角,az为加速度向量与现实空间的Z轴夹角。
[0036]其中,判断一个连贯动作的条件为:
[0037]获取的加速度数据中,若ax大于阈值fI,ay大于阈值f 2,且az大于阈值f 3,则将该次获取的加速度数据记为连贯动作的开始;
[0038]在获取连贯动作中的加速度数据时,若连续三次获取到的ax的绝对值小于阈值f4,ay的绝对值小于阈值f 5,且az的绝对值小于阈值f 6,则将最后一次获取到的加速度数据记为连贯动作的结束。
[0039]上述的阈值fl、f2、f3、f4、f5和f6均为根据实验经验所预设的值。根据上述的连贯动作判断条件可以获取到一个连贯动作中的所有加速度数据,然后就针对每个加速度数据结合点积公式计算对应的夹角数据,利用点积公式计算夹角的计算方法为现有技术,在此不做赘述。需要说明的是,计算出来的夹角数据,即ax、ay和αζ分别为加速度与现实空间对应的轴的夹角,也就是可以得到用户施加的力在现实空间的绝对方向。
[0040]S3、将夹角数据依次存储至数组active中,判断数组active的长度是否在预设的长度区间内,若是,则执行S4,若否,则返回步骤SI。
[0041]其中,获取的夹角数据按顺序存储至数组active中,例如,加速度传感器一般每0.01秒会采集一
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1