CN105511643B - 一种基于三轴加速度传感器的手势识别方法 - Google Patents
一种基于三轴加速度传感器的手势识别方法 Download PDFInfo
- Publication number
- CN105511643B CN105511643B CN201410510914.2A CN201410510914A CN105511643B CN 105511643 B CN105511643 B CN 105511643B CN 201410510914 A CN201410510914 A CN 201410510914A CN 105511643 B CN105511643 B CN 105511643B
- Authority
- CN
- China
- Prior art keywords
- gesture
- value
- acceleration sensor
- axis acceleration
- sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了一种基于三轴加速度传感器的手势识别方法,适用于装载有三轴加速度传感器的Arduino平台,如下步骤:建立标准手势库,以及相应的标准手势的标准库权重值;通过三轴加速度传感器获取用户手势变化中各个时刻的三轴的加速度序列,可得到运动的权重值;将新的权重值与标准库权重值进行一一相比得出多组匹配值,选取最大的匹配值的相对应的标准库权重值,并根据标准库权重值从标准手势库中获取相应的手势,并输出至Arduino平台。本发明提供的基于三轴加速度传感器的手势识别方法,具有计算量小、误判率低、配置要求低的特点,本发明对于硬件平台的要求极低,只需占用512字节的内存空间就可以正常运行,因而特别适合Arduino平台实现对电脑的接触式指令输出。
Description
技术领域
本发明涉及手势识别技术,尤其是涉及一种基于三轴加速度传感器的手势识别方法。
背景技术
手势是一种自然、直观、易于学习的人机交互手段,手势输入是实现自然、直接人机交互不可缺少的关键技术。目前的手势识别技术主要分为基于数据手套和基于视觉两种。这两种方法各有自己的长处,也都取得了一些研究成果,但都还不成熟。手势输入作为一种自然、丰富、直接的交互手段在人机交互技术中占有重要的地位。
手势识别利用各类传感器对手部/手持工具的形态、位移等进行持续采集,每隔一段时间完成一次建模,形成一个模型信息的序列帧,再将这些信息序列转换为对应的指令,用来控制实现某些操作。
目前市面上已经存在的手势识别算法大都比较复杂,对硬件平台的要求较高,无法在一些运算性能较低的平台(比如AVR 8位单片机)上实现,为了适应Arduino平台的应用,有必要研发一种对硬盘件平台要求低的手势识别算法。
发明内容
为了克服现有基于三轴加速度传感器的手势识别方法的不足,本发明提供一种新型的基于三轴加速度传感器的手势识别方法,该基于三轴加速度传感器的手势识别方法,该识别方法对于硬件平台的要求极低,只需占用512字节的内存空间就可以正常运行。
为实现上述发明目的,本发明采用如下技术方案:
一种基于三轴加速度传感器的手势识别方法,适用于装载有三轴加速度传感器的Arduino平台,包括如下步骤:
建立标准手势库,以及相应的标准库权重值;
通过三轴加速度传感器获取用户手势变化中各个时刻的三轴的加速度序列,对该加速度序列依次进行归一化处理、冗余数据过滤获得中间序列,对该中间序列进行加速路径规划;通过对每组中间序列进行约束获取手势主要的速度变化的方向;接着对该约束后的中间序列进行冗余数据二次过滤以及平滑滤波去除误差,通过加速度序列积分处理得到速度序列并对其进行归一化处理;
然后对速度序列进行分析得到速度方向序列,对速度方向序列进行方向冗余序列过滤得到最简化的手势运动序列,然后按照顺序从序列中找出符合条件的手势状态值,乘以其权值,然后再寻找下一个状态值,再乘以其权值,直到结束,最后这些值相加即可得到运动的权重值;
将新的权重值与标准库权重值进行一一相比得出多组匹配值,选取最大的匹配值的相对应的标准库权重值,并根据标准库权重值从标准手势库中获取相应的手势,并输出至Arduino平台。
进一步的,在采集加速度序列之间还需进行唤醒检测,包括如下:
对所述三轴加速度传感器进行震动或晃动,三轴加速度传感器获取十次满足强度阈值的唤醒加速度值,当有五组以上的唤醒加速度值超过强度阈值,完成唤醒。
进一步的,还包括手势识别开始检测以及手势识别结束检测,包括如下:
手势识别开始检测包括:预先建立加速度检测值,获取手势开始时的当前加速度,获得当前加速度与加速度检测值的绝对差值,确定绝对差值大于所述阈值时,手势开始;
手势结束检测包括:获取当前加速度值,获得该当前加速度值与上一个加速度值的绝对差值,判断该绝对差值是否满足强度阈值,如果连续若干次满足强度阈值,则手势结束,。
进一步的,归一化处理的区间范围为[-100,100]。
进一步的,冗余数据过滤的过程为:获得每组归一化处理后的两轴加速度的绝对值,确定绝对值小于15时,直接过滤去除。
进一步的,加速度序列积分处理的公式为:其中a(k)表示加速度序列中的第K个采样点的加速度值,Δt为质点A呈一维运动,从某点移动到另一点的运动时间,v(0)表示初始速度。
进一步的,所述权重值的提取的过程为:根据上述步骤中获得的手势主要的速度变化的方向,在标准手势库中选择相同方向的标准手势以及标准手势的标准库权重值。
本发明的有益效果在于:本发明提供的提供一种基于三轴加速度传感器的手势识别方法,具有计算量小、误判率低、配置要求低的特点,本发明对于硬件平台的要求极低,只需占用512字节的内存空间就可以正常运行,因而特别适合Arduino平台实现对电脑的接触式指令输出。
附图说明
图1为本发明的手势动作示意图。
图2为本发明基于三轴加速度传感器的手势识别方法的流程示意图。
图3为本发明的唤醒流程示意图。
图4为本发明的手势开始检测流程示意图。
图5为本发明的手势结束检测流程示意图。
图6为手势识别处理流程示意图。
具体实施方式
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的较佳实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。
请参阅图1至图6,上述的基于三轴加速度传感器的手势识别方法,适用于装载有三轴加速度传感器的Arduino平台,包括如下步骤:
建立标准手势库,以及对应的标准库权重值,如图1所示,在本实施例中,共采用15种不同的手势,那么可定义如下值,相应的标准库权重值:
编号 | 1 | 2 | 3 | 4 | 5 |
四进制值 | 30002000 | 10002000 | 20003000 | 20001000 | 30001300 |
编号 | 6 | 7 | 8 | 9 | 10 |
四进制值 | 30003100 | 30001313 | 23001200 | 30003131 | 23203130 |
编号 | 11 | 12 | 13 | 14 | 15 |
四进制值 | 31002120 | 32002100 | 21001200 | 23201230 | 23201310 |
相应的权重值表为:
编号 | 1 | 2 | 3 | 4 | 5 |
权值 | 192,128 | 64,128 | 128,192 | 128,64 | 192,112 |
编号 | 6 | 7 | 8 | 9 | 10 |
权值 | 192,208 | 192,119 | 176,96 | 192,221 | 184,,220 |
编号 | 11 | 12 | 13 | 14 | 15 |
权值 | 208,152 | 224,144 | 144,96 | 184,108 | 184,116 |
进行唤醒检测,包括如下:对所述三轴加速度传感器进行震动或晃动,三轴加速度传感器获取十次满足强度阈值的唤醒加速度值,当有五组以上的唤醒加速度值超过强度阈值,完成唤醒;
完成唤醒后,用户开始执行手势,需要对手势识别开始检测:预先建立加速度检测值,获取手势开始时的当前加速度,获得当前加速度与加速度检测值的绝对差值,确定绝对差值大于所述阈值时,手势开始;
手势检测成功后通过三轴加速度传感器检测用户手势变化中各个时刻的X轴、Y轴以及Z轴的加速度序列,完成手势加速度序列的采集后,执行手势结束检测,包括:获取当前加速度值,获得该当前加速度值与上一个加速度值的绝对差值,判断该绝对差值是否满足强度阈值,如果连续若干次满足强度阈值,则手势结束。
然后对采集到的多组加速度序列依次进行归一化处理,即系将采样得到的加速度序列归一化到[-100,100]的区间内,归一化处理后,两个轴上的加速度值的绝对值若均小于15,则认是冗余数据,直接过滤掉获得中间序列,对该中间序列进行加速路径规划:通过对每组中间序列进行约束获取手势主要的速度变化的方向,具体的是对比两个轴上的加速度值,根据比值来调整优化加速度序列,如果比值Ratioxz>3,则accez=0;若Ratioxz<0.33,则accex=0;若0.6<=Ratioxz<1.7,则accez=accex=(accex+accez)/2,下面结合一实例加以说明,某时刻ax=80,ay=10,因为ax:ay=8,则落于区间[-100,100]内,则使其比值标准化,那么约束后,ax=80,ay=0,如果比值不落于上述区间的ax和ay均保持不变;
接着对该约束后的中间序列进行冗余数据二次过滤以及平滑滤波去除误差,平滑滤波的条件在于:如果Ratioxz>3(或Ratioxz<0.33),且accez序列的相邻值[z-3,z]小于规定阈值,则可进行滤波处理,采用平滑滤波可消除偶然因素而产生随机误差(惯性误差)如下表
x,y | 70 | 0 |
x,y | 76 | 0 |
x,y | 58 | 0 |
x,y | 13 | -5 |
x,y | 0 | 8 |
x,y | 71 | 0 |
x,y | 93 | 0 |
x,y | 85 | 0 |
从表中可得知该手势的方向主要作用于X轴上,而其中出现的(13,-5)和(0,8)则为随机误差,应该需要去除的;
经平滑滤波处理后通过加速度序列积分处理得到速度序列Vn,加速度序列积分处理的公式为:其中a(k)表示加速度序列中的第K个采样点的加速度值,Δt为质点A呈一维运动,从某点移动到另一点的运动时间,v(0)表示初始速度;
然后对加速序列Vn进行归一化处理,使其处于[-100,100]的区间范围内,然后对加速序列Vn进行归类,得到速度方向序列,即系:
1、当Vn<-30时,表示具有负向速度,其值为1;
2、当-30<Vn<30时,表示其速度为0,其值为2;
3、当Vn>30时,表示具有正向速度,其值为3;
对速度方向序列进行方向冗余序列过滤,然后求出所有速度方向序列的四进制值,最后转换成十进制即为所画手势的权值,如下表的结果为笔直向上手势的速度方向序列表:
x,z | 2 | 3 | x,z | 2 | 1 |
x,z | 2 | 3 | x,z | 2 | 1 |
x,z | 2 | 3 | x,z | 2 | 1 |
x,z | 2 | 3 | x,z | 2 | 1 |
x,z | 2 | 3 | x,z | 2 | 1 |
x,z | 2 | 3 | x,z | 2 | 1 |
x,z | 2 | 3 | x,z | 2 | 1 |
x,z | 2 | 1 | x,z | 0 | 0 |
x,z | 2 | 1 | |||
x,z | 2 | 1 |
通过将上述的最简化的手势运动序列,然后按照顺序从序列中找出符合条件的手势状态值,乘以其权值,然后再寻找下一个状态值,再乘以其权值,直到结束,最后这些值相加即可得到本次手势运动的权重值,以上述速度方向序列为例:(2*43,3*43+1*42)的权重值为(128,208)——即X轴上的四进制为2000,Z轴上的四进制为3100,向上的箭头的权值为(128,196)——即X轴上的四进制为2000,Z轴上的四进制为3000,可以看出这两者其实在权值上的差距仅仅只是Z轴上的差距,且绝对差值为8;
根据上述步骤中获得的手势主要的速度变化的方向,在标准手势库中选择相同方向的标准手势以及标准手势的标准库权重值,将新的权值和与标准库权重值进行一一相比得出多组匹配值,选取最大的匹配值的相对应的标准库权重值,并根据标准库权重值从标准手势库中获取相应的手势,并输出至Arduino平台,继续以上述权值为(128,208)为例,当我们得到此值后那么他的权值和为336,可从图1的手势中得知涉及向上的手势有编号3、5、6、7、9、10、14以及15,计算出相应匹配值:匹配值=(1-abs(128-128)/128-abs(208-192)/192)*100%,可知道编号3的匹配值达到91.7%,为所有手势中的最大匹配值,因此可想平台反馈出本次手势为编号3的手势。
本发明的有益效果在于:本发明提供的提供一种基于三轴加速度传感器的手势识别方法,具有计算量小、误判率低、配置要求低的特点,本发明对于硬件平台的要求极低,只需占用512字节的内存空间就可以正常运行,因而特别适合Arduino平台实现对电脑的接触式指令输出。
这里本发明的描述和应用是说明性的,并非想将本发明的范围限制在上述实施例中。这里所披露的实施例的变形和改变是可能的,对于那些本领域的普通技术人员来说实施例的替换和等效的各种部件是公知的。本领域技术人员应该清楚的是,在不脱离本发明的精神或本质特征的情况下,本发明可以以其它形式、结构、布置、比例,以及用其它组件、材料和部件来实现。在不脱离本发明范围和精神的情况下,可以对这里所披露的实施例进行其它变形和改变。
Claims (7)
1.一种基于三轴加速度传感器的手势识别方法,适用于装载有三轴加速度传感器的Arduino平台,其特征在于,包括如下步骤:建立标准手势库,以及相应的标准库权重值;
通过三轴加速度传感器获取用户手势变化中各个时刻的三轴的加速度序列,对该加速度序列依次进行归一化处理、冗余数据过滤获得中间序列,对该中间序列进行加速路径规划;通过对每组中间序列进行约束获取手势主要速度变化的方向;接着对该约束后的中间序列进行冗余数据二次过滤以及平滑滤波去除误差,通过加速度序列积分处理得到速度序列并对其进行归一化处理;
然后对速度序列进行分析得到速度方向序列,对速度方向序列进行方向冗余序列过滤得到最简化的手势运动序列,然后按照顺序从序列中找出符合条件的手势状态值,乘以其权值,然后再寻找下一个状态值,再乘以其权值,直到结束,最后这些值相加即可得到运动的权重值;
将新的权重值与标准库权重值进行一一相比得出多组匹配值,选取最大的匹配值的相对应的标准库权重值,并根据标准库权重值从标准手势库中获取相应的手势,并输出至Arduino平台。
2.根据权利要求1所述的基于三轴加速度传感器的手势识别方法,其特征在于,在采集加速度序列之间还需进行唤醒检测,包括如下:
对所述三轴加速度传感器进行震动或晃动,三轴加速度传感器获取十次满足强度阈值的唤醒加速度值,当有五组以上的唤醒加速度值超过强度阈值,完成唤醒。
3.根据权利要求2所述的基于三轴加速度传感器的手势识别方法,其特征在于,还包括手势识别开始检测以及手势识别结束检测,包括如下:
手势识别开始检测包括:预先建立加速度检测值,获取手势开始时的当前加速度,获得当前加速度与加速度检测值的绝对差值,确定绝对差值大于所述阈值时,手势开始;
手势结束检测包括:获取当前加速度值,获得该当前加速度值与上一个加速度值的绝对差值,判断该绝对差值是否满足强度阈值,如果连续若干次满足强度阈值,则手势结束。
4.根据权利要求1所述的基于三轴加速度传感器的手势识别方法,其特征在于,所述归一化处理的区间范围为[-100,100]。
5.根据权利要求1所述的基于三轴加速度传感器的手势识别方法,其特征在于,所述冗余数据过滤的过程为:获得每组归一化处理后的两轴加速度的绝对值,确定绝对值小于15时,直接过滤去除。
6.根据权利要求1所述的基于三轴加速度传感器的手势识别方法,其特征在于,所述加速度序列积分处理的公式为:其中a(k)表示加速度序列中的第K个采样点的加速度值,Δt为质点A呈一维运动,从某点移动到另一点的运动时间,v(0)表示初始速度。
7.根据权利要求1所述的基于三轴加速度传感器的手势识别方法,其特征在于,所述权重值的提取的过程为:根据上述步骤中获取手势主要速度变化的方向,在标准手势库中选择相同方向的标准手势以及标准手势的标准库权重值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410510914.2A CN105511643B (zh) | 2014-09-30 | 2014-09-30 | 一种基于三轴加速度传感器的手势识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410510914.2A CN105511643B (zh) | 2014-09-30 | 2014-09-30 | 一种基于三轴加速度传感器的手势识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105511643A CN105511643A (zh) | 2016-04-20 |
CN105511643B true CN105511643B (zh) | 2018-08-31 |
Family
ID=55719692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410510914.2A Active CN105511643B (zh) | 2014-09-30 | 2014-09-30 | 一种基于三轴加速度传感器的手势识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105511643B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108664277B (zh) * | 2018-05-15 | 2021-11-30 | 精伦电子股份有限公司 | 基于三轴加速度传感器的抬起唤醒方法与装置 |
CN110901566B (zh) * | 2018-09-18 | 2021-08-17 | 启碁科技股份有限公司 | 车辆状态监测系统及车辆状态监测方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103543826A (zh) * | 2013-07-30 | 2014-01-29 | 广东工业大学 | 一种基于加速度传感器的手势识别方法 |
CN103744427A (zh) * | 2014-01-06 | 2014-04-23 | 山东大学 | 加速度传感手势操作系统及操作方法 |
-
2014
- 2014-09-30 CN CN201410510914.2A patent/CN105511643B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103543826A (zh) * | 2013-07-30 | 2014-01-29 | 广东工业大学 | 一种基于加速度传感器的手势识别方法 |
CN103744427A (zh) * | 2014-01-06 | 2014-04-23 | 山东大学 | 加速度传感手势操作系统及操作方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105511643A (zh) | 2016-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104007819B (zh) | 手势识别方法、装置及Leap Motion体感控制系统 | |
CN104182169B (zh) | 用于基于手势的用户界面的方法和设备 | |
Chen et al. | A real-time dynamic hand gesture recognition system using kinect sensor | |
CN104123007A (zh) | 一种多维加权的3d动态手势识别方法 | |
CN110308795B (zh) | 一种动态手势识别方法及系统 | |
CN103218062A (zh) | 基于加速度传感器和动作识别的人机交互方法及其设备 | |
CN106123911A (zh) | 一种基于加速传感器和角速度传感器的记步方法 | |
CN110689535A (zh) | 一种工件识别方法、装置及电子设备和存储介质 | |
CN105511643B (zh) | 一种基于三轴加速度传感器的手势识别方法 | |
CN103019378B (zh) | 一种移动电子设备手势控制交互方法、装置及移动终端 | |
CN107085367A (zh) | 一种智能手表的抬手亮屏方法 | |
CN111325204A (zh) | 目标检测方法、装置、电子设备以及存储介质 | |
TWI643120B (zh) | Time series data processing device and processing method | |
CN108108015A (zh) | 一种基于手机陀螺仪和动态时间规整的动作手势识别方法 | |
CN106066751A (zh) | 阅读界面的显示方法和用于控制阅读界面显示的终端 | |
CN107037951B (zh) | 操作模式自动识别方法及终端 | |
CN110362264A (zh) | 一种基于触摸板的动态手势识别方法、装置和系统 | |
CN102194097A (zh) | 一种多用途手势识别方法 | |
CN116400831B (zh) | 一种无源电磁触控屏手写压力感应补偿算法 | |
CN102968618A (zh) | 一种融合BoF模型和谱聚类算法的静态手势识别方法 | |
CN103927776B (zh) | 动画曲线优化方法 | |
CN107643908A (zh) | 语音应用触发控制方法、装置及终端 | |
CN107477970B (zh) | 冰箱的开门控制方法及采用该方法的冰箱 | |
CN106662967A (zh) | 通过民主式α平滑的降噪 | |
Jang et al. | Dynamic time warping-based k-means clustering for accelerometer-based handwriting recognition |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: Nanshan District Xili Town, Shenzhen city of Guangdong Province, with 518055 new Shiling Wai Sha Lu Industrial District 8 building five floor -1 Applicant after: Shenzhen silicon Polytron Technologies Inc Address before: Nanshan District Xili Town, Shenzhen city of Guangdong Province, with 518055 new Shiling Wai Sha Lu Industrial District 8 building five floor -1 Applicant before: Seeed Technology Inc. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |