首页 / 专利库 / 信号处理 / 削峰 / 一种基于加速度传感器的手势识别方法

一种基于加速传感器手势识别方法

阅读:275发布:2022-03-27

专利汇可以提供一种基于加速传感器手势识别方法专利检索,专利查询,专利分析的服务。并且一种基于 加速 度 传感器 的 手势识别 方法,包括下述操作步骤:自动采集手势加速度数据、预处理、计算所有手势样本数据的相似度来得到相似度矩阵、提取手势模板、利用手势模板构建手势字典、采用MSAMP 算法 对待识别手势样本数据进行稀疏重构和手势分类。本 发明 将 压缩 感知 技术与传统DTW算法相结合,提高了手势识别对不同手势习惯的适应性;其中的多种预处理方法,提高了本发明手势识别方法实用性。另外,还提出了手势加速度数据的自动采集算法,免除了传统手势采集的额外操作,提高用户体验。本发明不需专用传感器,在搭载有加速度传感器的终端上都能使用, 硬件 适应性能良好,增强了识别方法的实用性。且 坐标系 统一,能够适应多种不同的手势习惯。,下面是一种基于加速传感器手势识别方法专利的具体信息内容。

1.一种基于加速传感器手势识别方法,适用的终端包括:搭载有加速度传感器的
手机、平板电脑pad和数码相机;其特征在于:所述方法包括下列操作阶段:
手势数据准备阶段:采集有效的手势加速度数据后,利用失真补偿、统一坐标系、平滑
滤波、重采样和归一化的方法,对所采集的原始数据进行处理,形成数据格式规整和统一的
手势样本数据,以保证后续手势训练和手势识别算法的有效性;
手势训练阶段:采用动态时间规整DTW(Dynamic Time Warping)算法计算手势样本数
据间的相似度,利用近邻传播AP(Affinity Propagation)聚类算法提取手势模板,作为手
势识别分类的基础
手势识别阶段:采用DTW算法,对待识别手势和手势模板进行匹配计算,依据二者的相
似度值筛选出合适的手势聚类,并以此构建用于待识别手势样本数据稀疏重构的手势字
典;采用快速傅里叶变换FFT估算待识别手势样本数据的稀疏度,并在手势字典基础上,利
用改进的稀疏度自适应正交匹配追踪MSAMP(Modified Sparsity Adaptive Matching 
Pursuit)算法对待识别手势进行稀疏重构;最后根据稀疏重构的手势样本数据与原待识别
手势样本数据之间的逼近误差特征,对待识别手势进行识别分类;所述方法包括下列操作
步骤:
(1)自动采集手势加速度数据:通过加速度传感器接口实时获取手势加速度数据,并判
断当前时刻的手势加速度数据能量是否超过启动阈值,如果是,则判定手势运动已经启动,
开始记录手势加速度数据;否则,结束该流程;
在启动采集手势加速度数据后,判断所采集的手势加速度数据能量在设定时间内是否
小于停止阈值,同时判断相邻的手势加速度数据之间的欧式距离是否也小于波动阈值;如
果两者都是,则判定手势运动结束,停止数据采集;否则,继续采集手势加速度数据,且当获取的加速度数据组的长度大于预设长度限时,则判定该组数据有效;否则,判定该组数据
无效,直接丢弃之;
(2)预处理:从不同度对采集到的原始加速度数据进行预处理,以使处理后的加速度
数据波形平滑、规整和统一,用作手势样本数据,以提高手势识别分类的准确度,提升系统
的实用价值;该步骤(2)包括下述操作内容:
(21)失真补偿:当加速度传感器的采样幅值上限较小,而手势加速度较大时,手势加速
度数据波形的波峰和波谷部分会被“削平”而产生波形失真,使得正常手势样本数据与失真
手势样本数据之间的相似度减小,从而干扰识别;故采用失真补偿算法对手势加速度数据
波形进行失真还原,以便合理解决由传感器采样幅值上限引起的波形失真;
失真补偿的处理思路是:假定加速度数据波形失真部分的斜率变化均匀,故在失真前
后的正常加速度数据基础上,利用斜率对失真数据进行估计补偿,以使最终得到正确的加
速度波形;
假设在某个坐标轴上、数据长度为N的手势原始加速度数据集合为A={a1,a2,…,
ai,…,aN},式中,自然数i是按采集顺序排列的时间序号,其最大值为N,ai为A中第i个加速度数据;因数字信号的加速度数据的时间计算单位为1,故A中第i个加速度数据ai的斜率ki
的计算公式为:ki=ai-ai-1;
设第i个采样的原始加速度数据的失真补偿值hi的补偿公式为: 其
中,ρ是加速度失真段的斜率变化率;对于波峰而言,在失真段上升沿或下降沿,失真补偿值hi数值分别等于失真段起始点斜率除以上升沿或下降沿的横坐标时长;hi-1为上一个采样
的原始加速度数据补偿值,h0为失真段起始点加速度数据;
(22)统一坐标系:因加速度传感器采集的数据坐标是其本体坐标系,当搭载有传感器
的终端发生空中姿态改变时,其加速度数据会在三个轴上发生偏移,故采用欧拉角转换矩
阵 将加速度数据转换到统一坐标系中,其中,θ、
和η分别是俯仰角、翻滚角和航向角;且因只使用加速度传感器和硬件限制,将η始终视为
0°;这样,在静止状态下,俯仰角θ和翻滚角 的计算公式分别为: 和
其中,gx,gy,gz分别为三个轴的加速度分量;
(23)平滑滤波,消除抖动噪声和加速度传感器的电子噪声;
平滑滤波的处理思路是:对每组非平稳的加速度数据,在适当时长的小区间内被视为
接近平稳时,就在该区间内对加速度数据做局部平均,以减少人手抖动或其他原因造成的
随机噪声;再以该小区间为窗口在整组加速度数据上移动,不断进行局部平均,得到较为平
滑的加速度数据曲线;
(24)利用50HZ的速率进行重采样,以稳定采样频率
(25)根据公式: 对每个加速度数据进行归一化处理,得到归一
化的加速度数据集合A′={a′1,a′2,…,a′i,…,a′N},以消除手势力度差异对识别结果的影响;其中,amax和amin分别为手势在某个轴上长度为N的原始加速度数据集合A={a1,a2,…,
ai,…,aN}中的最大值和最小值,ai为A中第i个加速度数据,i是时间序号,i∈[1,N];ai′为A′中第i个加速度数据,g为重力加速度;
(3)计算所有手势样本数据的相似度,得到相似度矩阵:因手势持续时长随机,即同一
类手势的不同样本数据长度往往不同,不能直接使用包括欧式距离的差异度计算方法,故
采用DTW算法去除手势样本数据的长度差异;所述DTW算法是采用设定的非线性规整函数对
时域波形建模,再弯曲其中一个模型的时间轴,使其与另一模型达到最大程度的重叠,消除
两个模型之间的时域长度差异;该步骤(3)包括下述操作内容:
(31)分别设置输入的待识别手势样本数据的三轴加速度数据集合O和与其进行匹配计
算的手势模板的三轴加速度数据集合B为:
O={(ox1,oy1,oz1),(ox2,oy2,oz2),…,(oxi,oyi,ozi),…,(oxN,oyN,ozN)}和
B={(bx1,by1,bz1),(bx2,by2,bz2),…,(bxj,byj,bzj),…,(bxM,byM,bzM)},其中,自然数i和j分别是其时间序号,其最大值分别为N和M,且i∈[1,N],j∈[1,M];x、y、z分别为该待识别手势样本数据所归属的三个坐标轴;
(32)将两个集合O和B组成一个直角二维坐标系,该坐标系的横坐标轴为待识别手势样
本O中加速度数据的时序轴,纵坐标轴为手势模板B中加速度数据的时序轴,再将横轴与纵
轴的坐标连接成为网格,则网格的每个交点代表O和B某两个加速度数据的差异度;
(33)根据欧氏距离计算公式: 计算得到集合
O中第i个加速度数据与集合B中第j个加速度数据间的差异度p(i,j),如此计算得到每个网
格的差异度p(i,j)数值;
(34)利用DTW算法,也就是从几何角度寻找一条通过该网格中若干交点的路径,使得该
路径上所有交点所代表的差异度累积之和最小,即相似度最大;
(35)根据下述公式计算路径在交点(i,j)的差异度累积值P(i,j):P(i,j)=p(i,j)+
min{P(i-1,j),P(i-1,j-1),P(i-1,j-2)},从所述直角二维坐标图的左下角(1,1)开始执行
路径搜索,直至右上角(N,M)结束;搜索路径必须通过待识别手势样本的每数据,或者通
过限制搜索区域减小匹配时的计算量;
(36)得到待识别手势样本O和手势模板B间的最大相似度S(O,B)为:S(O,B)=-P(N,M);
(4)提取手势模板:采用AP聚类算法在相似度矩阵基础上进行迭代运算,提取最有代表
性的手势样本数据作为手势模板;所述手势模板是预先提取出来、最能代表某类手势特征
的手势样本数据;所述AP聚类算法思路是:将所有手势样本数据都视为潜在模板,通过手势
样本数据之间的相互传递“消息”,找出最优手势样本数据集合作为手势模板,并使得所有
手势样本数据到其最近的手势模板的相似度之和最大;所述步骤(4)中的AP聚类算法包括
下述操作内容:
(41)根据手势相似度矩阵和下述公式分别计算吸引度q(I,J)和可用度w(I,J):
和q(I,J)n
=δ×q(I,J)n+(1-δ)×q(I,J)n-1,w(I,J)n=δ×w(I,J)n+(1-δ)×w(I,J)n-1;其中,吸引度q(I,J)表示手势样本数据J成为手势样本数据I的手势模板的适合程度;可用度w(I,J)表示
手势样本数据I选择手势样本数据J作为其手势模板的适合程度;I和J的取值范围都取决于
输入的手势样本数据的数量,I'和J'分别表示除去I和J以外的其余手势样本数据;促进收
敛、防止AP聚类过程中抖动过于剧烈的阻尼系数δ的取值范围为[0.5,1),自然数n为当前迭
代计算的次数,且本次迭代计算的吸引度q(I,J)n和可用度w(I,J)n的数值是本次迭代结果
与上次迭代计算结果按比例相加之和;S(I,J)为两个手势样本数据I和J之间的相似度,该
数值越大,表明两个手势样本数据越相似,当S(I,J)=0时,表示两个手势样本数据I和J完
全相同;
(42)判断迭代计算结果是否收敛,即满足条件:q(I,I)+w(I,I)>0的手势样本数据的
数量和个体是否在多次迭代计算中维持不变;若未收敛,则继续迭代计算;否则,结束AP算
法的迭代过程,执行后续步骤(43);
(43)得到手势模板集合:选取q(I,I)+w(I,I)>0的手势样本数据I作为手势模板,并将
该手势模板所代表的手势样本数据作为一个手势聚类集合输出;
(5)利用手势模板构建用于待识别手势样本数据稀疏重构的手势字典:为减小计算开
销和提高手势识别精度,将DTW算法与压缩感知理论相结合,根据DTW运算结果对由手势模
板构成的手势字典进行精简:通过先验知识排除无用的手势聚类集合,缩小手势字典规模,
减小后续计算压力;所述用于待识别手势样本数据稀疏重构的手势字典是由手势模板所构
成的、用于对待识别手势样本数据进行稀疏重构的矩阵,该矩阵中的一列元素称为手势字
典的一个原子;所述步骤(5)包括下述操作内容:
(51)设置手势模板集合为E,则E中第 个手势模板 式中,自然数 是手势模板序
号,其取值范围取决于提取的手势模板数量,利用DTW算法计算待识别手势样本U和某个手
势模板 之间的相似度
(52)判断 是否成立,若是,则将该手势模板 所代表的手势聚类集合中的手
势样本数据挑选出来,所有被选择出来的手势样本数据以列向量形式构成矩阵,作为用来
实现待识别手势样本数据稀疏重构的手势字典;其中,判定阈值α的计算公式为:
其中,比例系数b的取值范围为[1,2];若否,则结束该流程操作;
(53)因手势的加速度数据长度随机不等,故在用手势样本数据构建手势字典时,首先
按照下述方法补齐手势加速度数据长度:找出手势字典D中数据最长的一列,并以该长度为
标准,以补零方式将其它列的加速度数据都补齐至相同长度;
(6)采用MSAMP算法对待识别手势样本数据进行稀疏重构:所述MSAMP算法具体操作是:
计算待识别手势样本数据与重构字典原子的内积,选取其中最大的多个数值所对应的原子
构成候选原子集,再利用候选原子集生成支撑原子集,利用支撑原子集重构待识别手势样
本数据;当相邻两次迭代操作所得出的两个残差向量之间的欧氏距离小于设定的步长阈值
时,减小增长步长,扩大支撑原子集和候选原子集的规模,继续稀疏重构的迭代计算;当相
邻两次迭代操作所得出的两个残差向量之间的欧氏距离小于设定的停止阈值时,停止重构
的迭代计算,并输出稀疏重构结果;所述步骤(6)包括下述操作内容:
(61)构建候选原子集C:计算稀疏重构操作时的残差向量r与手势字典D原子的内积;再
从所计算得到的各列内积值中选取最大的多个内积值所对应的原子构成候选原子集C,即
用这些原子构建一个新的矩阵;
(62)构建支撑原子集F:计算候选原子集C的广义逆矩阵C+与待识别手势U中的某个轴加
速度数据u的内积,选取其中最大的多个内积值所对应的原子生成支撑原子集F;
(63)更新残差向量:利用新生成的支撑原子集F及其广义逆矩阵F+更新稀疏重构操作时
的残差向量r;
(64)判断上述步骤(63)和(61)的各自稀疏重构结果的两个残差向量的二范数之差是
否不大于零;若是,则执行步骤(65);若否,则继续执行本阶段的迭代计算:返回执行步骤
(61);
(65)判断上一阶段最小残差向量的二范数R与本阶段操作步骤(61)中的残差向量的二
范数之差是否小于停止阈值,若否,则执行步骤(66);若是,则停止迭代运算,并输出稀疏重构结果
(66)判断上一阶段最小残差向量的二范数R与本阶段操作步骤(61)中的残差向量的二
范数之差是否小于步长阈值,若是,则减小增长步长,扩大支撑原子集和候选原子集规模,
进入下一阶段的迭代计算:返回执行步骤(61);若否,则不改变增长步长,按原增长步长扩
大支撑原子集和候选原子集规模,进入下一阶段的迭代计算:返回执行步骤(61);
(7)手势分类:利用待识别手势样本数据稀疏重构后的结果系数与手势字典原子的对
应关系,以手势类别作为划分条件,从该稀疏重构结果的系数中提取与手势类别相对应的
系数向量;再利用各个手势类别的系数向量计算每个手势类别的判决系数;需要注意的是:
待识别手势样本数据的三个轴的加速度数据都应按照该步骤分别计算判决系数,并选取判
决系数之和最小的手势类别作为待识别手势样本数据的分类结果;所述步骤(7)包括下述
操作内容:
(71)按照手势类别重新划分稀疏重构的结果向量:待识别手势某个轴加速度数据的稀
疏重构结果为 其理想状态是 即在稀疏重构结果中只有一个加速度数
据是非零系数,其余系数皆为0;同时,中的系数与手势字典D中的原子一一对应,则非零系
数对应的原子所属的手势类别就是手势识别结果;但因实际操作中往往有多个非零系数,
利用 中的系数与重构字典D中的原子的对应关系,设置有Θ种手势类型,根据不同原子所
属手势类别的不同,从 中重新划分出Θ个列向量: 其中,列向量 为
第τ类手势的手势模板所对应的稀疏重构的结果系数,其长度与 相同;
(72)计算每种手势类别的判决系数:设βτ代表第τ类手势的判决系数,该系数越小说明
待识别手势样本越接近该类手势,βτ的计算公式为:
因每个手势样本都有三个坐标轴的加速度数据,则修正后的第τ类手势的判决系数μτ
为:μτ=βxτ+βyτ+βzτ,式中,βxτ、βyτ、βzτ分别为第τ类手势在X,Y,Z三个坐标轴上的判决系数;
(73)输出判决结果:对各类手势的判决系数μm进行归一化处理,归一化范围是[0,1],然
后,选取归一化后的最小值所对应的手势类型作为手势识别结果。
2.根据权利要求1所述的方法,其特征在于:因待识别的手势的稀疏度数值未知,故先
选择一个数值较小的稀疏度s作为增长步长;但若增长步长的取值太小,将大幅增加重构计
算时间,影响手势识别的实时性,故采用下述快速离散傅里叶变换FFT方法估算待识别手势
的稀疏度:对待识别手势的各轴加速度数据执行FFT变换,得到加速度数据在频域上的系数
集合V,再寻找频域系数集合V中的最大值vmax,并将V中大于0.3·vmax的元素挑选出来,构成新的系数集合V′,则稀疏度s等于V′中的元素个数。
3.根据权利要求1所述的方法,其特征在于:因待识别手势样本有三个轴的数据,故要
采用MSAMP算法分别对每个轴的加速度数据向量分别进行稀疏重构,所述MSAMP算法稀疏重
构每轴的加速度数据向量的操作内容如下:
(a)初始化设置下述各个参数:稀疏重构数据的残差向量rl=u, 第l次迭代计算
的稀疏重构支撑原子集 第l次迭代计算的候选原子集 支撑原子集规模、即
支撑集的列或原子的个数L=s,迭代操作阶段序号K=0,其中,迭代操作阶段是指在同一支
撑原子集规模下执行的多次迭代计算,同一支撑原子集规模下的迭代计算都属于同一阶段
的操作;l为迭代次数,此时l=0,且上一阶段的最小残差向量的二范数R=0,步长阈值T0=
0,停止阈值T1=0;
(b)更新候选集:计算手势字典D的转置矩阵DT与前一次迭代、即(l-1)次迭代计算得到
的稀疏重构数据的残差向量rl-1的乘积DT×rl-1,再从中选取L个最大值所对应的手势字典
的原子存入临时原子集合Ψ,用于更新候选原子集Cl=Fl-1∪Ψ,即本次迭代候选原子集是
上一次迭代支撑原子集与临时原子集合的并集;
(c)更新残差向量:计算候选原子集Cl的广义逆矩阵 和待识别手势加速度数据向量u
的乘积 再从中选取最大的L个值所对应的原子存入临时备用的支撑原子集F′,用于
更新残差向量r=u-F′×F′+×u;
(d)判断是否结束本阶段迭代计算:判断本次迭代计算的残差向量的二范数||rl||2是
否不小于前次迭代计算的残差向量二范数||rl-1||2,即不等式||rl||2≥||rl-1||2是否成
立;若是,则执行后续步骤(e);否则,继续本阶段的迭代计算:更新支撑原子集Fl=F′,rl=r,l=l+1,返回执行步骤(b);
(e)判断是否输出结果:判断上一阶段最小残差向量的二范数R与本阶段前次迭代计算
的残差向量的二范数||rl-1||2之差是否小于停止阈值T1,即不等式R-||rl-1||2<T1是否成
立,若是,则停止迭代计算,并输出稀疏重构的结果 否则,执行后续步骤(f);
(f)判断是否改变增长步长:判断上一阶段最小残差向量的二范数R与本阶段前次迭代
计算的残差向量的二范数||rl-1||2之差否小于步长阈值T0、即不等式R-||rl-1||2<T0是否
成立;若是,则执行后续步骤(g);否则,跳转执行步骤(h);
(g)改变增长步长:将稀疏度s减小一半,再更新支撑原子集的规模,使得L=L+s,然后,
初始化设置下述各个参数:rl=u、 和l=0,并更新T0=0.5·||rl-1||2,T1=
0.1·||rl-1||2,R=||rl-1||2后,开始执行下一阶段迭代计算操作、即设置K=K+1后,返回执行步骤(b);
(h)不改变增长步长:更新支撑原子集规模L=L+s,初始化设置下述各个参数:rl=u、
和l=0,更新T0=0.5·||rl-1||2,T1=0.1·||rl-1||2,R=||rl-1||2,执行下
一阶段迭代计算操作,即设置K=K+1后,返回执行步骤(b)。

说明书全文

一种基于加速传感器手势识别方法

技术领域

[0001] 本发明涉及一种基于运动传感器的手势识别技术,确切地说,涉及一种基于加速度传感器的手势识别方法,属于模式识别人机交互的技术领域。

背景技术

[0002] 人机交互是研究人和计算机及其两者之间相互影响的技术,研究人与计算机通过人机界面进行某种形式的信息交流、以完成特定任务的过程。随着计算机硬件的快速发展,
机器的计算能越来越强大,可用资源也越来越丰富,人的体态与心理感受都已经成了设
计需要考虑的重要问题。人机交互正在逐渐摆脱以计算机为中心的交互模式,而向以人为
中心的交互模式发展;利于用户自然、自由地交互方式,已成为人机交互的发展趋势。
[0003] 手势是一种人们经常使用的交流方式,在人机交互方面,相较于传统的键盘和鼠标,手势的动作与其设计更加自由,使用上也更加灵活、直观,在用户体验上更加符合人类
的交流习惯。因此,手势识别技术已经成为人机交互领域中兴起方的前沿研究方向之一。
[0004] 在人机交互中,基于手势的交互模式具有以下几点优势:1、手势识别直接以人手的自然动作作为输入,与语音识别等交互手段相比较,省却了中间媒介,降低了背景环境对
识别效果的影响。2、丰富了手持设备的应用场景,可以与虚拟现实技术相结合。3、为智能机
器人的设计提供了一种创新思路。
[0005] 现在的手势识别技术根据其不同的输入设备可以分为两种:基于视觉图像的识别技术和基于运动传感器的识别技术。其中,基于视觉图像的手势识别主要通过摄像头等设
备采集人手动作的图像信息,该技术起步早,理论研究比较成熟,其识别的成功率和算法
复杂度都比较理想;但是,其缺点是对设备要求高、资金投入大、对环境的依赖性较高,需要
充足均匀的背景光源,从而使得基于图像的手势识别不能应用于复杂环境中,实际应用效
果不佳。
[0006] 基于运动传感器的手势识别主要通过加速度传感器、三轴陀螺仪磁场传感器或方向传感器等多种传感器采集人手的空中姿态及其运动数据,再通过建立模型、匹配模板、
构建神经网络等算法完成对手势的分类识别。基于运动传感器的手势识别技术由于其具有
受外部环境(光线、背景)的影响较小,鲁棒性较好等优点,得到了愈来愈多的关注。
[0007] 基于加速度传感器的手势识别技术具有重要的意义,该技术丰富了人机交互领域的内容,改善了用户的操作体验,有效促进了人和机器间自由、自然的交互方式。
[0008] 下面简要说明手势识别相关技术领域中的术语涵义:
[0009] DTW(Dynamic Time Warping):动态时间规整,该算法通过指定的非线性规整函数对时域波形建模,再利用弯曲其中一个模型的时间轴,使其与另一个模型达到最大程度的
重叠,从而消除两个模型间的时域长度差异。
[0010] AP(Affinity Propagation):亲和传播,2007年由Dueck等人发表于Science期刊上的一种新的聚类算法,其基本思想是:将所有训练样本都视为潜在的模板,通过样本间相
互传递“消息”寻找最优样本集合,使得所有样本到达其最近模板的相似度之和最大。
[0011] 压缩感知理论:2006年,华裔科学家T.Tao等人在相关研究的基础上正式提出的一种新的信息获取理论,该理论突破了奈奎斯特采样定理所要求的采样频率必须不低于信号
带宽2倍的限制,在原始信号是可压缩或稀疏的前提下,可以用远低于上述要求的采样速率
进行数据采样,并采用合适的重构算法以极高的概率精确恢复出原始信号。压缩感知理论
已经在生物传感、医疗成像和人脸识别等技术领域展现出广阔的应用前景。
[0012] SAMP(Sparsity Adaptive Matching Pursuit):稀疏度自适应匹配追踪,该算法是一种匹配追踪系列算法,其最大特点是对信号稀疏度的自适应性,能够在待还原信号的
准确稀疏度尚未获知时,通过固定步长的增长来逼近原始信号的稀疏表示。
[0013] MSAMP(Modified Sparsity Adaptive Matching Pursuit):改进的稀疏度自适应正交匹配追踪,该算法是本发明基于现有的SAMP算法,针对手势识别的特点,对支撑集增长
步长、支撑集挑选原则和迭代终止条件进行改进而提出的一种更适合手势识别的改进算
法。
[0014] 失真补偿:本发明针对加速度传感器采样幅值上限所引起的波形失真问题,提出的一种补偿还原方法。
[0015] 平滑滤波:用于对一组非平稳的数据,在适当长度的小区间上可视为接近平稳的处理方法;在该区间里,对数据做局部平均,以减少人手抖动等问题造成的随机噪声。再以
这种小区间为窗口在整组数据上进行移动,不断进行局部平均,就能够得到较为平滑的数
据曲线。
[0016] 重采样:根据一类象元的信息内插得到另一类象元信息的过程,常见的方法有线性内插法、最邻近内插法和三次卷积法内插等。本发明采用线性内插法,其基本思想是:假
设两个已知数据间的变化规律是线性的,根据这两点间的线性关系计算需要内插的点。
[0017] 归一化:一种简化计算的方式,即通过某种变换将有量纲的表达式化为无量纲的表达式,成为纯量。
[0018] 再介绍与本发明手势识别方法相关的几种技术的涵义和状况:
[0019] (1)模板匹配:一种简单的识别技术,其核心思想是将输入的待识别数据和预先存储的模板(即核心样本)进行匹配,通过测量两者之间的相似度来完成识别任务。常用的计
算模板之间相似度的算法有:对数距离法、欧氏距离法、加权欧氏距离法、相关系数法和动
态时间规整(DTW)法。
[0020] (2)隐尔可夫模型:一种马尔可夫链,也是马尔可夫模型的扩展。马尔可夫模型是描述一个随机过程与状态之间的转移。隐马尔可夫模型是描述两个随机过程:一个随机
过程描述输出与状态间的概率关系,另一个随机过程描述状态间的转移关系。隐马尔可夫
模型的状态不能直接观察到,其状态转移过程是隐藏的,但是,观察者能通过观测输出序列
对状态转移进行估计。
[0021] (3)人工神经网络:一种应用类似于大脑神经突触联接的结构进行信息处理的数学模型,它通过借鉴人脑神经元的结构与连接机制,把大量的简单处理单元广泛连接起来,
构成一种复杂的信息处理网络。这种网络具有与人脑相类似的学习记忆能力、知识概括能
力和对信息特征的抽取能力。经过多年的发展,人工神经网络已经形成很多模型,例如模糊
神经网络和BP(Back Propagation)神经网络。目前使用比较广泛的是以反向传播学习算法
为基础的BP神经网络。
[0022] (4)机器学习:用于研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构,使之不断改善自身的性能。常见的基于机器学习的方法
有:K-最近邻法KNN(k-Nearest Neighbor)和支持向量机法。
[0023] 在常见的手势识别算法中,DTW算法的结构简单,所需训练样本也最少,但是其对不同手势习惯的适应性较差。隐马尔科夫模型能够识别复杂手势,但训练量大,计算复杂。
神经网络和机器学习鲁棒性较好,但同样存在训练量大,计算开销大的问题。因此,本发明
是在DTW算法的基础上,引入压缩感知理论解决其适应性较差的问题。
[0024] 自20世纪90年代,国外一些研究机构就开始了基于传感器的人机交互研究。早在1996年,IBM公司就推出一种能自动感知运动状态的惯性感知设备,可以应用于玩具和日常
工具中。同年,Rekimoto J在装有传感器的小屏幕上,通过特定按键实现了使用手势倾斜的
方式对该设备进行输入的功能。1998年,Harrison B等人对使用传感器作为用户操作接口
的可行性进行了探讨。2000年,Hinckley K等人将距离传感器、压力传感器和倾斜传感器集
成到Cassiopeia E105掌上电脑内,利用手势实现了改变屏幕显示方向等功能。Compaq公司
的Itsy系统使用加速度传感器,通过将设备倾斜就能够实现图片的翻滚。2001年,Rekimoto 
J开发了适用于可穿戴的输入设备GestrueWrist和GesturePad,用于与外界的交互。2002
年,Pirhonen T利用手势和语音改善了手机中音乐播放的接口,用户不用关注播放屏幕、即
可进行各种操作。2003年,Helene B等人研究发现:在有噪声的情况下,使用传感器可以提
高手势识别的精度,并建立了一个手语识别系统作为手机交互的辅助技术。2004年,Jang I 
J和Park W B对手持设备中的加速度信号处理问题进行了研究,为了准确识别用户的手势,
将测量的加速度分为静态和动态两种,并分别提供了识别方法。2005年,Juha K等人定义了
手势接口的基本概念,并对不同方法进行比较,设计了手势识别系统Smart Design 
Studio。2006年,Baek J等人描述了如何识别用户连续的动作和姿势,通过分析两轴加速度
数值的变化来判断手机的运动状态。2007年,Ferscha A和Resmrita S将手势的概念泛化,
根据手势的语法规则将手势分为原子手势和复杂手势,并建立了手势库Glib,可供基于加
速度传感器的系统使用。2008年,Shiqi Zhang等人基于3D加速度传感器,采用HMM来识别用
手势表示的阿拉伯数字,基于加速度传感器的手势识别逐步由简单动作发展到复杂手势。
同年,Tomas Schlomer等人利用Wii Controller来实现手势识别,标志着手势识别逐步脱
离专用的加速度传感器设备而转向大众普及型设备。2009年,Sandip Agrawal等人描述了
如何利用手机通过加速度传感器采集手部动作,实现阿拉伯数字和简单图形的书写;同年,
Jiayang Liu等人基于智能手机的加速度传感器,通过量化采集的数据,采用DTW算法进行
模板匹配,达到手势识别的效果。2010年,Nicholas等人对手机终端进行调查分析,指出其
具备丰富的传感器等硬件基础,同时具有很好的应用支撑,提出如何在资源仍然受限的手
机终端实现数据采集、并将有效数据反馈给用户的方法。2011年,Sandip Agrawal等人在09
年工作基础上更进一步,基于手机上的加速度传感器采集用户的手写输入,通过定义基本
笔画,将用户的手势输入分解为基本笔画,再将用户的笔画输入识别为字母,通过字母识
别、笔画更正等技术提高识别精度,并在Nokia N95智能手机上实现了原型系统,标志着基
于加速度传感器的手势识别向着更高层次发展。
[0025] 从上述研究工作现状可以看出:近年来,基于加速度传感器的手势识别技术不断地得到改善和发展,但是,仍然存在以下不足:1、绝大多数研究工作都基于专设计的传感
器装置,这些装置价格昂贵、功能单一,不利于普及推广。2、用户在做手势时,需要操作额外按钮,即人工标定手势的起始和结束。这种额外操作降低了用户体验,不符合人机交互自由
与自然的目标。3、抗干扰能力较差,当加速度传感器采样幅值上限较小时,容易造成手势波
形失真。4、对不同用户的使用习惯适应性较差,特别当用户没有参与训练时,手势识别效率
下滑明显。

发明内容

[0026] 有鉴于此,本发明的目的是提供一种基于加速度传感器的手势识别方法,用于解决现有技术中存在的缺点。本发明方法不需要另行专门设计传感装置,只需要使用通用的
加速度传感器就能够实现手势识别,并能适应不同加速度传感器间的差异。另外,本发明的
手势数据的采集方法是一种自然的操作过程,没有额外的操作。还增强了对不同手势习惯
的适应性,即提高识别方法的鲁棒性。
[0027] 为了达到上述目的,本发明提供了一种基于加速度传感器的手势识别方法,适用于包括:搭载有加速度传感器的手机、平板电脑pad和数码相机的多种终端;其特征在于:所
述方法包括下列操作阶段:
[0028] 手势数据准备阶段:采集有效的手势加速度数据后,利用失真补偿、统一坐标系、平滑滤波、重采样和归一化的方法,对所采集的原始数据进行处理,形成数据格式规整和统
一的手势样本数据,以保证后续手势训练和手势识别算法的有效性;
[0029] 手势训练阶段:采用动态时间规整DTW(Dynamic Time Warping)算法计算手势样本数据间的相似度,利用近邻传播AP(Affinity Propagation)聚类算法提取手势模板,作
为手势识别分类的基础;
[0030] 手势识别阶段:采用DTW算法,对待识别手势和手势模板进行匹配计算,依据二者的相似度值筛选出合适的手势聚类,并以此构建用于待识别手势样本数据稀疏重构的手势
字典;采用快速傅里叶变换FFT估算待识别手势样本数据的稀疏度,并在手势字典基础上,
利用改进的稀疏度自适应正交匹配追踪MSAMP(Modified Sparsity Adaptive Matching 
Pursuit)算法对待识别手势进行稀疏重构;最后根据稀疏重构的手势样本数据与原待识别
手势样本数据之间的逼近误差特征,对待识别手势进行识别分类;所述方法包括下列操作
步骤:
[0031] (1)自动采集手势加速度数据:通过加速度传感器接口实时获取手势加速度数据,并判断当前时刻的手势加速度数据能量是否超过启动阈值,如果是,则判定手势运动已经
启动,开始记录手势加速度数据;否则,结束该流程;
[0032] 在启动采集手势加速度数据后,判断所采集的手势加速度数据能量在设定时间内是否小于停止阈值,同时判断相邻的手势加速度数据之间的欧式距离是否也小于波动
值;如果两者都是,则判定手势运动结束,停止数据采集;否则,继续采集手势加速度数据,
且当获取的加速度数据组的长度大于预设长度门限时,则判定该组数据有效;否则,判定该
组数据无效,直接丢弃之;
[0033] (2)预处理:从不同度对采集到的原始加速度数据进行预处理,以使处理后的加速度数据波形平滑、规整和统一,用作手势样本数据,以提高手势识别分类的准确度,提升
系统的实用价值;该步骤(2)包括下述操作内容:
[0034] (21)失真补偿:当加速度传感器的采样幅值上限较小,而手势加速度较大时,手势加速度数据波形的波峰和波谷部分会被“削平”而产生波形失真,使得正常手势样本数据与
失真手势样本数据之间的相似度减小,从而干扰识别;故采用失真补偿算法对手势加速度
数据波形进行失真还原,以便合理解决由传感器采样幅值上限引起的波形失真;
[0035] 失真补偿的处理思路是:假定加速度数据波形失真部分的斜率变化均匀,故在失真前后的正常加速度数据基础上,利用斜率对失真数据进行估计补偿,以使最终得到正确
的加速度波形;
[0036] 假设在某个坐标轴上、数据长度为N的手势原始加速度数据集合为A={a1,a2,…,ai,…,aN},式中,自然数i是按采集顺序排列的时间序号,其最大值为N,ai为A中第i个加速
度数据;因数字信号的加速度数据的时间计算单位为1,故A中第i个加速度数据ai的斜率ki
的计算公式为:ki=ai-ai-1;
[0037] 设第i个采样的原始加速度数据的失真补偿值hi的补偿公式为:其中,ρ是加速度失真段的斜率变化率;对于波峰而言,在失真段上升沿或下降沿,失真补偿
值hi数值分别等于失真段起始点斜率除以上升沿或下降沿的横坐标时长;hi-1为上一个采
样的原始加速度数据补偿值,h0为失真段起始点加速度数据;
[0038] (22)统一坐标系:因加速度传感器采集的数据坐标是其本体坐标系,当搭载有传感器的终端发生空中姿态改变时,其加速度数据会在三个轴上发生偏移,故采用欧拉角转
换矩阵 将加速度数据转换到统一坐标系中,其中,
θ、和η分别是俯仰角、翻滚角和航向角;且因只使用加速度传感器和硬件限制,将η始终视
为0°;这样,在静止状态下,俯仰角θ和翻滚角 的计算公式分别为: 和
其中,gx,gy,gz分别为三个轴的重力加速度分量;
[0039] (23)平滑滤波,消除抖动噪声和加速度传感器的电子噪声;
[0040] 平滑滤波的处理思路是:对每组非平稳的加速度数据,在适当时长的小区间内被视为接近平稳时,就在该区间内对加速度数据做局部平均,以减少人手抖动或其他原因造
成的随机噪声;再以该小区间为窗口在整组加速度数据上移动,不断进行局部平均,得到较
为平滑的加速度数据曲线;
[0041] (24)利用50HZ的速率进行重采样,以稳定采样频率
[0042] (25)根据公式: 对每个加速度数据进行归一化处理,得到归一化的加速度数据集合A′={a′1,a′2,…,a′i,…,a′N},以消除手势力度差异对识别结果的影响;其中,amax和amin分别为手势在某个轴上长度为N的原始加速度数据集合A={a1,
a2,…,ai,…,aN}中的最大值和最小值,ai为A中第i个加速度数据,i是时间序号,i∈[1,N];
a′i为A′中第i个加速度数据,g为重力加速度;
[0043] (3)计算所有手势样本数据的相似度,得到相似度矩阵:因手势持续时长随机,即同一类手势的不同样本数据长度往往不同,不能直接使用包括欧式距离的差异度计算方
法,故采用DTW算法去除手势样本数据的长度差异;所述DTW算法是采用设定的非线性规整
函数对时域波形建模,再弯曲其中一个模型的时间轴,使其与另一模型达到最大程度的重
叠,消除两个模型之间的时域长度差异;该步骤(3)包括下述操作内容:
[0044] (31)分别设置输入的待识别手势样本数据的三轴加速度数据集合O和与其进行匹配计算的手势模板的三轴加速度数据集合B为:
[0045] O={(ox1,oy1,oz1),(ox2,oy2,oz2),…,(oxi,oyi,ozi),…,(oxN,oyN,ozN)}和
[0046] B={(bx1,by1,bz1),(bx2,by2,bz2),…,(bxj,byj,bzj),…,(bxM,byM,bzM)},其中,自然数i和j分别是其时间序号,其最大值分别为N和M,且i∈[1,N],j∈[1,M];x、y、z分别为该待识别手势样本数据所归属的三个坐标轴;
[0047] (32)将两个集合O和B组成一个直角二维坐标系,该坐标系的横坐标轴为待识别手势样本O中加速度数据的时序轴,纵坐标轴为手势模板B中加速度数据的时序轴,再将横轴
与纵轴的坐标连接成为网格,则网格的每个交点代表O和B某两个加速度数据的差异度;
[0048] (33)根据欧氏距离计算公式: 计算得到集合O中第i个加速度数据与集合B中第j个加速度数据间的差异度p(i,j),如此计算得到每
个网格的差异度p(i,j)数值;
[0049] (34)利用DTW算法,也就是从几何角度寻找一条通过该网格中若干交点的路径,使得该路径上所有交点所代表的差异度累积之和最小,即相似度最大;
[0050] (35)根据下述公式计算路径在交点(i,j)的差异度累积值P(i,j):P(i,j)=p(i,j)+min{P(i-1,j),P(i-1,j-1),P(i-1,j-2)},从所述直角二维坐标图的左下角(1,1)开始
执行路径搜索,直至右上角(N,M)结束;搜索路径必须通过待识别手势样本的每数据,或
者通过限制搜索区域减小匹配时的计算量;
[0051] (36)得到待识别手势样本O和手势模板B间的最大相似度S(O,B)为:S(O,B)=-P(N,M);
[0052] (4)提取手势模板:采用AP聚类算法在相似度矩阵基础上进行迭代运算,提取最有代表性的手势样本数据作为手势模板;所述手势模板是预先提取出来、最能代表某类手势
特征的手势样本数据;所述AP聚类算法思路是:将所有手势样本数据都视为潜在模板,通过
手势样本数据之间的相互传递“消息”,找出最优手势样本数据集合作为手势模板,并使得
所有手势样本数据到其最近的手势模板的相似度之和最大;所述步骤(4)中的AP聚类算法
包括下述操作内容:
[0053] (41)根据手势相似度矩阵和下述公式分别计算吸引度q(I,J)和可用度和q(I,J)n=δ×q(I,J)n+(1-δ)×q(I,J)n-1,w(I,J)n=δ×w(I,J)n+(1-δ)×w(I,J)n-1;其
中,吸引度q(I,J)表示手势样本数据J成为手势样本数据I的手势模板的适合程度;可用度w
(I,J)表示手势样本数据I选择手势样本数据J作为其手势模板的适合程度;I和J的取值范
围都取决于输入的手势样本数据的数量,I'和J'分别表示除去I和J以外的其余手势样本数
据;促进收敛、防止AP聚类过程中抖动过于剧烈的阻尼系数δ的取值范围为[0.5,1),自然数
n为当前迭代计算的次数,且本次迭代计算的吸引度q(I,J)n和可用度w(I,J)n的数值是本次
迭代结果与上次迭代计算结果按比例相加之和;S(I,J)为两个手势样本数据I和J之间的相
似度,该数值越大,表明两个手势样本数据越相似,当S(I,J)=0时,表示两个手势样本数据
I和J完全相同;
[0054] (42)判断迭代计算结果是否收敛,即满足条件:q(I,I)+w(I,I)>0的手势样本数据的数量和个体是否在多次迭代计算中维持不变;若未收敛,则继续迭代计算;否则,结束
AP算法的迭代过程,执行后续步骤(43);
[0055] (43)得到手势模板集合:选取q(I,I)+w(I,I)>0的手势样本数据I作为手势模板,并将该手势模板所代表的手势样本数据作为一个手势聚类集合输出;
[0056] (5)利用手势模板构建用于待识别手势样本数据稀疏重构的手势字典:为减小计算开销和提高手势识别精度,将DTW算法与压缩感知理论相结合,根据DTW运算结果对由手
势模板构成的手势字典进行精简:通过先验知识排除无用的手势聚类集合,缩小手势字典
规模,减小后续计算压力;所述用于待识别手势样本数据稀疏重构的手势字典是由手势模
板所构成的、用于对待识别手势样本数据进行稀疏重构的矩阵,该矩阵中的一列元素称为
手势字典的一个原子;所述步骤(5)包括下述操作内容:
[0057] (51)设置手势模板集合为E,则E中第 个手势模板 式中,自然数 是手势模板序号,其取值范围取决于提取的手势模板数量,利用DTW算法计算待识别手势样本U和某
个手势模板 之间的相似度
[0058] (52)判断 是否成立,若是,则将该手势模板 所代表的手势聚类集合中的手势样本数据挑选出来,所有被选择出来的手势样本数据以列向量形式构成矩阵,作
为用来实现待识别手势样本数据稀疏重构的手势字典;其中,判定阈值α的计算公式为:
其中,比例系数b的取值范围为[1,2];若否,则结束该流程操作;
[0059] (53)因手势的加速度数据长度随机不等,故在用手势样本数据构建手势字典时,首先按照下述方法补齐手势加速度数据长度:找出手势字典D中数据最长的一列,并以该长
度为标准,以补零方式将其它列的加速度数据都补齐至相同长度;
[0060] (6)采用MSAMP算法对待识别手势样本数据进行稀疏重构:所述MSAMP算法具体操作是:计算待识别手势样本数据与重构字典原子的内积,选取其中最大的多个数值所对应
的原子构成候选原子集,再利用候选原子集生成支撑原子集,利用支撑原子集重构待识别
手势样本数据;当相邻两次迭代操作所得出的两个残差向量之间的欧氏距离小于设定的步
长阈值时,减小增长步长,扩大支撑原子集和候选原子集的规模,继续稀疏重构的迭代计
算;当相邻两次迭代操作所得出的两个残差向量之间的欧氏距离小于设定的停止阈值时,
停止重构的迭代计算,并输出稀疏重构结果;所述步骤(6)包括下述操作内容:
[0061] (61)构建候选原子集C:计算稀疏重构操作时的残差向量r与手势字典D原子的内积;再从所计算得到的各列内积值中选取最大的多个内积值所对应的原子构成候选原子集
C,即用这些原子构建一个新的矩阵;
[0062] (62)构建支撑原子集F:计算候选原子集C的广义逆矩阵C+与待识别手势U中的某个轴加速度数据u的内积,选取其中最大的多个内积值所对应的原子生成支撑原子集F;
[0063] (63)更新残差向量:利用新生成的支撑原子集F及其广义逆矩阵F+更新稀疏重构操作时的残差向量r;
[0064] (64)判断上述步骤(63)和(61)的各自稀疏重构结果的两个残差向量的二范数之差是否不大于零;若是,则执行步骤(65);若否,则继续执行本阶段的迭代计算:返回执行步
骤(61);
[0065] (65)判断上一阶段最小残差向量的二范数R与本阶段操作步骤(61)中的残差向量的二范数之差是否小于停止阈值,若否,则执行步骤(66);若是,则停止迭代运算,并输出稀
疏重构结果
[0066] (66)判断上一阶段最小残差向量的二范数R与本阶段操作步骤(61)中的残差向量的二范数之差是否小于步长阈值,若是,则减小增长步长,扩大支撑原子集和候选原子集规
模,进入下一阶段的迭代计算:返回执行步骤(61);若否,则不改变增长步长,按原增长步长
扩大支撑原子集和候选原子集规模,进入下一阶段的迭代计算:返回执行步骤(61);
[0067] (7)手势分类:利用待识别手势样本数据稀疏重构后的结果系数与手势字典原子的对应关系,以手势类别作为划分条件,从该稀疏重构结果的系数中提取与手势类别相对
应的系数向量;再利用各个手势类别的系数向量计算每个手势类别的判决系数;需要注意
的是:待识别手势样本数据的三个轴的加速度数据都应按照该步骤分别计算判决系数,并
选取判决系数之和最小的手势类别作为待识别手势样本数据的分类结果;所述步骤(7)包
括下述操作内容:
[0068] (71)按照手势类别重新划分稀疏重构的结果向量:待识别手势某个轴加速度数据的稀疏重构结果为 其理想状态是 即在稀疏重构结果中只有一个加
速度数据是非零系数,其余系数皆为0;同时,中的系数与手势字典D中的原子一一对应,则
非零系数对应的原子所属的手势类别就是手势识别结果;但因实际操作中往往有多个非零
系数,利用 中的系数与重构字典D中的原子的对应关系,设置有Θ种手势类型,根据不同原
子所属手势类别的不同,从 中重新划分出Θ个列向量: 其中,列向量
为第τ类手势的手势模板所对应的稀疏重构的结果系数,其长度与 相同;
[0069] (72)计算每种手势类别的判决系数:设βτ代表第τ类手势的判决系数,该系数越小说明待识别手势样本越接近该类手势,βτ的计算公式为:
[0070] 因每个手势样本都有三个坐标轴的加速度数据,则修正后的第τ类手势的判决系数μτ为:μτ=βxτ+βyτ+βzτ,式中,βxτ、βyτ、βzτ分别为第τ类手势在X,Y,Z三个坐标轴上的判决系数;
[0071] (73)输出判决结果:对各类手势的判决系数μm进行归一化处理,归一化范围是[0,1],然后,选取归一化后的最小值所对应的手势类型作为手势识别结果。
[0072] 本发明利用手势采集算法提取有效的手势加速度数据,采用失真补偿、统一坐标系、平滑滤波、重采样和归一化的方法,对已采集原始数据进行预处理,使数据格式规整、统
一;采用动态时间规整DTW算法计算训练样本间的相似度,再利用亲和传播聚类算法提取手
势模板;再采用动态时间规整DTW算法,对待识别手势和手势模板进行匹配计算,通过二者
的相似度筛选手势聚类,构建重构字典;采用快速傅里叶变换FFT估算待识别手势稀疏度,
在重构字典的基础上,利用一种改进的稀疏度自适应正交匹配追踪对待识别手势进行稀疏
重构;根据重构结果的残差特征,对待识别手势进行分类。本发明方法适用于搭载有加速度
传感器的终端,如搭载有加速度传感器的手机、pad和相机等设备。
[0073] 本发明方法的关键技术是:将压缩感知技术与传统DTW算法相结合,提高了手势识别对不同手势习惯的适应性。本发明提供的一系列预处理方法,提高了本发明手势识别方
法的实用性。另外,还提出了手势加速度数据的自动采集算法,提高了用户体验。
[0074] 本发明方法的特点与效果是:根据手势的加速度特征,提出自动采集手势加速度数据的算法,免除了传统手势采集的额外操作,提高了用户体验。本发明方法不需要特别设
计专用传感器,在搭载有加速度传感器的终端上都能够使用,拥有良好的硬件适应性。而
且,对坐标系进行统一,在单纯使用加速度传感器的情况下,一定程度上解决了传感器空中
姿态对识别效果的影响。引入压缩感知理论,利用稀疏重构识别手势,提高了对不同手势习
惯的适应性,增强了识别方法的实用性。总之,本发明具有很好的推广应用前景。
附图说明
[0075] 图1是手势识别方法的整体流程示意图.
[0076] 图2是预处理流程示意图。
[0077] 图3(a)、(b)分别是失真的手势加速度波形示意图和失真补偿后的手势加速度波形示意图。
[0078] 图4是欧拉角的定义图
[0079] 图5是DTW计算的几何示意图
[0080] 图6是AP聚类提取手势模板的流程图
[0081] 图7是稀疏重构结果的残差分布图,图中的手势5为手势识别结果。
[0082] 图8是本发明手势识别方法实施例测试使用的十种手势定义图。
[0083] 图9(a)、(b)分别是本发明手势识别方法实施例中分别在用户相关情况下和用户非相关情况下的测试结果示意图。

具体实施方式

[0084] 为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
[0085] 本发明基于加速度传感器的手势识别方法,其适用场景包括:搭载有加速度传感器的手机、平板电脑pad和数码相机的多种终端;该方法包括下述三个操作阶段:
[0086] 手势数据准备阶段:采集有效的手势加速度数据后,利用失真补偿、统一坐标系、平滑滤波、重采样和归一化的方法,对所采集的原始数据进行处理,形成数据格式规整和统
一的手势样本数据,以保证后续手势训练和手势识别算法的有效性;
[0087] 手势训练阶段:采用动态时间规整DTW(Dynamic Time Warping)算法计算手势样本数据间的相似度,利用近邻传播AP(Affinity Propagation)聚类算法提取手势模板,作
为手势识别分类的基础;
[0088] 手势识别阶段:采用DTW算法,对待识别手势和手势模板进行匹配计算,依据二者的相似度值筛选出合适的手势聚类,并以此构建用于待识别手势样本数据稀疏重构的手势
字典;采用快速傅里叶变换FFT估算待识别手势样本数据的稀疏度,并在手势字典基础上,
利用改进的稀疏度自适应正交匹配追踪MSAMP(Modified Sparsity Adaptive Matching 
Pursuit)算法对待识别手势进行稀疏重构;最后根据稀疏重构的手势样本数据与原待识别
手势样本数据之间的逼近误差特征,对待识别手势进行识别分类。
[0089] 参见图1,介绍将本发明方法的上述三个操作阶段进行更具体的细分而组成的下述七个操作步骤:
[0090] 步骤1,自动采集手势加速度数据:通过加速度传感器接口实时获取手势加速度数据,并判断当前时刻的手势加速度数据能量是否超过启动阈值,如果是,则判定手势运动已
经启动,开始记录手势加速度数据;否则,结束该流程。
[0091] 在启动采集手势加速度数据后,判断所采集的手势加速度数据能量在设定时间内是否小于停止阈值,同时判断相邻的手势加速度数据之间的欧式距离是否也小于波动阈
值;如果两者都是,则判定手势运动结束,停止数据采集;否则,继续采集手势加速度数据,
且当获取的加速度数据组的长度大于预设长度门限时,则判定该组数据有效;否则,判定该
组数据无效,直接丢弃之。
[0092] 本发明方法的实施例中,分别设置手势加速度数据的启动阈值为2.5m/s2、停止阈值为1m/s2、波动阈值为0.8m/s2、停止步长为10,以及长度门限为20。
[0093] 步骤2,预处理:从不同角度对采集到的原始加速度数据进行预处理(参见图2),以使处理后的加速度数据波形平滑、规整和统一,用作手势样本数据,以提高手势识别分类的
准确度,提升系统的实用价值。该步骤包括下述具体操作内容:
[0094] (21)失真补偿:当加速度传感器的采样幅值上限较小,而手势加速度较大时,手势加速度数据波形的波峰和波谷部分会被“削平”而产生波形失真,失真波形如图3(a)所示,
此时使得正常手势样本数据与失真手势样本数据之间的相似度减小,从而干扰识别。故采
用失真补偿算法对手势加速度数据波形进行失真还原,以便合理解决由传感器采样幅值上
限引起的波形失真。
[0095] 失真补偿的处理思路是:假定加速度数据波形失真部分的斜率变化均匀,故在失真前后的正常加速度数据基础上,利用斜率对失真数据进行估计补偿,以使最终得到正确
的加速度波形。
[0096] 假设在某个坐标轴上、数据长度为N的手势原始加速度数据集合为A={a1,a2,…,ai,…,aN},式中,自然数i是按采集顺序排列的时间序号,其最大值为N,ai为A中第i个加速
度数据;因数字信号的加速度数据的时间计算单位为1,故A中第i个加速度数据ai的斜率ki
的计算公式为:ki=ai-ai-1。
[0097] 设第i个采样的原始加速度数据的失真补偿值hi的补偿公式为:其中,ρ是加速度失真段的斜率变化率;对于波峰而言,在失真段上升沿或下降沿,失真补偿
值hi数值分别等于失真段起始点斜率除以上升沿或下降沿的横坐标时长;hi-1为上一个采
样的原始加速度数据补偿值,h0为失真段起始点加速度数据。
[0098] 失真补偿后的加速度数据波形如图3(b)所示,可以看出该失真补偿操作可以较为合理地解决由传感器采样幅值上限引起的加速度波形失真问题。
[0099] (22)统一坐标系:因加速度传感器采集的数据坐标是其本体坐标系,当搭载有传感器的终端发生空中姿态改变时,其加速度数据会在三个轴上发生偏移,故采用欧拉角转
换矩阵 将加速度数据转换到统一坐标系中;其中,
θ、和η分别是俯仰角、翻滚角和航向角(其定义参见图4所示);且因只使用加速度传感器和
硬件限制,将η始终视为0°。这样,在静止状态下,俯仰角θ和翻滚角 的计算公式分别为:
和 其中,gx,gy,gz分别为三个轴的重力加速度分量。
[0100] (23)平滑滤波,消除抖动噪声和加速度传感器的电子噪声;
[0101] 平滑滤波的处理思路是:对每组非平稳的加速度数据,在适当时长的小区间被视为接近平稳时,就在该区间里对加速度数据做局部平均,以减少人手抖动或其他原因造成
的随机噪声。再以该小区间为窗口在整组加速度数据上移动,不断进行局部平均,得到较为
平滑的加速度数据曲线。本发明实施例中,滤波窗口长度为5。
[0102] (24)利用50HZ的速率进行重采样,以稳定采样频率。
[0103] (25)归一化:本发明采用归一化消除手势力度差异对识别结果的影响:根据公式:对每个加速度数据进行归一化处理,得到归一化的加速度数据集合
A′={a′1,a′2,…,a′i,…,a′N},以消除手势力度差异对识别结果的影响;其中,amax和amin分别为手势在某个轴上长度为N的原始加速度数据集合A={a1,a2,…,ai,…,aN}中的最大值
和最小值,ai为A中第i个加速度数据,i是时间序号,i∈[1,N];a′i为A′中第i个加速度数据,g为重力加速度。
[0104] 步骤3,计算所有手势样本数据的相似度,得到相似度矩阵:
[0105] 因手势持续时长随机,即同一类手势的不同样本数据长度往往不同,不能直接使用包括欧式距离的差异度计算方法,故采用DTW算法去除手势样本数据的长度差异。DTW算
法是采用设定的非线性规整函数对时域波形建模,再弯曲其中一个模型的时间轴,使其与
另一模型达到最大程度的重叠,消除两个模型之间的时域长度差异。该步骤包括下述操作
内容:
[0106] (31)分别设置输入的待识别手势样本数据的三轴加速度数据集合O和与其进行匹配计算的手势模板的三轴加速度数据集合B为:
[0107] O={(ox1,oy1,oz1),(ox2,oy2,oz2),…,(oxi,oyi,ozi),…,(oxN,oyN,ozN)}和
[0108] B={(bx1,by1,bz1),(bx2,by2,bz2),…,(bxj,byj,bzj),…,(bxM,byM,bzM)},其中,自然数i和j分别是其时间序号,其最大值分别为N和M,且i∈[1,N],j∈[1,M];x、y、z分别为该待识别手势样本数据所归属的三个坐标轴。
[0109] (32)将两个集合O和B组成一个直角二维坐标系,该坐标系的横坐标轴为待识别手势样本O中加速度数据的时序轴,纵坐标轴为手势模板B中加速度数据的时序轴,再将横轴
与纵轴的坐标连接成为网格,则网格的每个交点代表O和B某两个加速度数据的差异度。
[0110] (33)根据欧氏距离计算公式: 计算得到集合O中第i个加速度数据与集合B中第j个加速度数据间的差异度p(i,j),如此计算得到每
个网格的差异度p(i,j)数值;
[0111] (34)利用DTW算法,也就是从几何角度寻找一条通过该网格中若干交点的路径,使得该路径上所有交点所代表的差异度累积之和最小,即相似度最大。本发明方法实施例的
搜索路径如图5所示。
[0112] (35)根据下述公式计算路径在交点(i,j)的差异度累积值P(i,j):P(i,j)=p(i,j)+min{P(i-1,j),P(i-1,j-1),P(i-1,j-2)},再从所述直角二维坐标图的左下角(1,1)开
始执行路径搜索,直至右上角(N,M)结束;搜索路径必须通过待识别手势样本的每帧数据,
或者通过限制搜索区域减小匹配时的计算量。
[0113] (36)得到待识别手势样本O和手势模板B间的最大相似度S(O,B)为:S(O,B)=-P(N,M)。
[0114] 步骤4,提取手势模板:采用AP聚类算法在相似度矩阵基础上进行迭代运算,提取最有代表性的手势样本数据作为手势模板。
[0115] 手势模板是预先提取出来、最能代表某类手势特征的手势样本数据。
[0116] AP聚类算法思路是:将所有手势样本数据都视为潜在模板,通过手势样本数据之间的相互传递“消息”,找出最优手势样本数据集合作为手势模板,并使得所有手势样本数
据到其最近的手势模板的相似度之和最大。该步骤中的AP聚类算法包括下述操作内容(参
见图6所示):
[0117] (41)根据手势相似度矩阵和下述公式分别计算吸引度q(I,J)和可用度和q(I,J)n=δ×q(I,J)n+(1-δ)×q(I,J)n-1,w(I,J)n=δ×w(I,J)n+(1-δ)×w(I,J)n-1。其
中,吸引度q(I,J)表示手势样本数据J成为手势样本数据I的手势模板的适合程度;可用度w
(I,J)表示手势样本数据I选择手势样本数据J作为其手势模板的适合程度;I和J的取值范
围都取决于输入的手势样本数据的数量,I'和J'分别表示除去I和J以外的其余手势样本数
据。促进收敛、防止AP聚类过程中抖动过于剧烈的阻尼系数δ的取值范围为[0.5,1),自然数
n为当前迭代计算的次数,且本次迭代计算的吸引度q(I,J)n和可用度w(I,J)n的数值是本次
迭代结果与上次迭代计算结果按比例相加之和;S(I,J)为两个手势样本数据I和J之间的相
似度,该数值越大,表明两个手势样本数据越相似,当S(I,J)=0时,表示两个手势样本数据
I和J完全相同。
[0118] (42)判断迭代计算结果是否收敛,即满足条件:q(I,I)+w(I,I)>0的手势样本数据的数量和个体是否在多次迭代计算中维持不变;若未收敛,则继续迭代计算;否则,结束
AP算法的迭代过程,执行后续步骤(43)。
[0119] (43)得到手势模板集合:选取q(I,I)+w(I,I)>0的手势样本数据I作为手势模板,并将该手势模板所代表的手势样本数据作为一个手势聚类集合输出。
[0120] 步骤5,利用手势模板构建手势字典,用于待识别手势样本数据的稀疏重构:为减小计算开销和提高手势识别精度,将DTW算法与压缩感知理论相结合,根据DTW运算结果对
由手势模板构成的手势字典进行精简:通过先验知识排除无用的手势聚类集合,缩小手势
字典规模,减小后续计算压力。本发明用于待识别手势样本数据稀疏重构的手势字典是由
手势模板构成的、用于对待识别手势样本数据进行稀疏重构的矩阵,该矩阵中的一列元素
称为手势字典的一个原子。该步骤包括下述操作内容:
[0121] (51)设置手势模板集合为E,则E中第 个手势模板 式中,自然数 是手势模板序号,其取值范围取决于提取的手势模板数量,利用DTW算法计算待识别手势样本U和某
个手势模板 之间的相似度
[0122] (52)判断 是否成立,若是,则将该手势模板 所代表的手势聚类集合中的手势样本数据挑选出来,所有被选择出来的手势样本数据以列向量形式构成矩阵,作
为用来实现待识别手势样本数据稀疏重构的手势字典。其中,判定阈值α的计算公式为:
式中,比例系数b的取值范围为[1,2];若否,则结束该流程操作。
[0123] (53)因手势的加速度数据长度随机不等,故在用手势样本数据构建手势字典时,首先按照下述方法补齐手势加速度数据长度:找出手势字典D中数据最长的一列,并以该长
度为标准,以补零方式将其它列的加速度数据都补齐至相同长度。
[0124] 步骤6,稀疏重构:本发明针对手势识别的特点,提出的MSAMP算法,用于对待识别手势样本数据进行稀疏重构,该算法具有较好的手势识别效果。
[0125] MSAMP算法具体操作是:计算待识别手势样本数据与重构字典原子的内积,选取其中最大的多个数值所对应的原子构成候选原子集,再利用候选原子集生成支撑原子集,利
用支撑原子集重构待识别手势样本数据。当相邻两次迭代操作所得出的两个残差向量之间
的欧氏距离小于设定的步长阈值时,减小增长步长,扩大支撑原子集和候选原子集的规模,
继续稀疏重构的迭代计算。当相邻两次迭代操作所得出的两个残差向量之间的欧氏距离小
于设定的停止阈值时,停止重构的迭代计算,并输出稀疏重构结果。
[0126] 因待识别的手势的稀疏度数值未知,故先选择一个数值较小的稀疏度s作为增长步长。但若增长步长的取值太小,将大幅增加重构计算时间,影响手势识别的实时性,故采
用下述快速离散傅里叶变换FFT方法估算待识别手势的稀疏度:对待识别手势的各轴加速
度数据执行FFT变换,得到加速度数据在频域上的系数集合V,再寻找频域系数集合V中的最
大值vmax,并将V中大于0.3·vmax的元素挑选出来,构成新的系数集合V′,则稀疏度s等于V′
中的元素个数。
[0127] 该步骤包括下述操作内容:
[0128] (61)构建候选原子集C:计算稀疏重构操作时的残差向量r与手势字典D原子的内积;再从所计算得到的各列内积值中选取最大的多个内积值所对应的原子构成候选原子集
C,即用这些原子构建一个新的矩阵。
[0129] (62)构建支撑原子集F:计算候选原子集C的广义逆矩阵C+与待识别手势U中的某个轴加速度数据u的内积,选取其中最大的多个内积值所对应的原子生成支撑原子集F。
[0130] (63)更新残差向量:利用新生成的支撑原子集F及其广义逆矩阵F+更新稀疏重构操作时的残差向量r。
[0131] (64)判断上述步骤(63)和(61)的各自稀疏重构结果的两个残差向量的二范数之差是否不大于零;若是,则执行步骤(65);若否,则继续执行本阶段的迭代计算:返回执行步
骤(61)。
[0132] (65)判断上一阶段最小残差向量的二范数R与本阶段操作步骤(61)中的残差向量的二范数之差是否小于停止阈值,若否,则执行步骤(66);若是,则停止迭代运算,并输出稀
疏重构结果
[0133] (66)判断上一阶段最小残差向量的二范数R与本阶段操作步骤(61)中的残差向量的二范数之差是否小于步长阈值,若是,则减小增长步长,扩大支撑原子集和候选原子集规
模,进入下一阶段的迭代计算:返回执行步骤(61);若否,则不改变增长步长,按原增长步长
扩大支撑原子集和候选原子集规模,进入下一阶段的迭代计算:返回执行步骤(61)。
[0134] 因待识别手势样本有三个轴的数据,故要采用MSAMP算法分别对每个轴的加速度数据向量分别进行稀疏重构。本发明MSAMP算法稀疏重构每轴的加速度数据向量的操作内
容如下:
[0135] (a)初始化设置下述各个参数:稀疏重构数据的残差向量rl=u, 第l次迭代计算的稀疏重构支撑原子集 第l次迭代计算的候选原子集 支撑原子集规
模、即支撑集的列或原子的个数L=s,迭代操作阶段序号K=0,其中,迭代操作阶段是指在
同一支撑原子集规模下执行的多次迭代计算,同一支撑原子集规模下的迭代计算都属于同
一阶段的操作;l为迭代次数,此时l=0,且上一阶段的最小残差向量的二范数R=0,步长阈
值T0=0,停止阈值T1=0。
[0136] (b)更新候选集:计算手势字典D的转置矩阵DT与前一次迭代、即(l-1)次迭代计算得到的稀疏重构数据的残差向量rl-1的乘积DT×rl-1,再从中选取L个最大值所对应的手势
字典的原子存入临时原子集合Ψ,用于更新候选原子集Cl=Fl-1∪Ψ,即本次迭代候选原子
集是上一次迭代支撑原子集与临时原子集合的并集。
[0137] (c)更新残差向量:计算候选原子集Cl的广义逆矩阵 和待识别手势加速度数据向量u的乘积 再从中选取最大的L个值所对应的原子存入临时备用的支撑原子集F′,
用于更新残差向量r=u-F′×F′+×u。
[0138] (d)判断是否结束本阶段迭代计算:判断本次迭代计算的残差向量的二范数||rl||2是否不小于前次迭代计算的残差向量二范数||rl-1||2,即不等式||rl||2≥||rl-1||2是否
成立;若是,则执行后续步骤(e);否则,继续本阶段的迭代计算:更新支撑原子集Fl=F′,rl=r,l=l+1,返回执行步骤(b)。
[0139] (e)判断是否输出结果:判断上一阶段最小残差向量的二范数R与本阶段前次迭代计算的残差向量的二范数||rl-1||2之差是否小于停止阈值T1,即不等式R-||rl-1||2<T1是
否成立;若是,则停止迭代计算,并输出稀疏重构的结果 否则,执行后续步骤
(f)。
[0140] (f)判断是否改变增长步长:判断上一阶段最小残差向量的二范数R与本阶段前次迭代计算的残差向量的二范数||rl-1||2之差否小于步长阈值T0、即不等式R-||rl-1||2<T0
是否成立;若是,则执行后续步骤(g);否则,跳转执行步骤(h)。
[0141] (g)改变增长步长:将稀疏度s减小一半,再更新支撑原子集的规模,使得L=L+s,然后,初始化设置下述各个参数:rl=u、 和l=0,并更新T0=0.5·||rl-1||2,
T1=0.1·||rl-1||2,R=||rl-1||2后,开始执行下一阶段迭代计算操作、即设置K=K+1后,返回执行步骤(b)。
[0142] (h)不改变增长步长:更新支撑原子集规模L=L+s,初始化设置下述各个参数:rl=u、 和l=0,更新T0=0.5·||rl-1||2,T1=0.1·||rl-1||2,R=||rl-1||2,执
行下一阶段迭代计算操作,即设置K=K+1后,返回执行步骤(b)。
[0143] 步骤7,手势分类:利用待识别手势样本数据稀疏重构后的结果系数与手势字典原子的对应关系,以手势类别作为划分条件,从该稀疏重构结果的系数中提取与手势类别相
对应的系数向量;再利用各个手势类别的系数向量计算每个手势类别的判决系数;需要注
意的是:待识别手势样本数据的三个轴的加速度数据都应按照该步骤分别计算判决系数,
并选取判决系数之和最小的手势类别作为待识别手势样本数据的分类结果。该步骤包括下
述操作内容:
[0144] (71)按照手势类别重新划分稀疏重构的结果向量:待识别手势某个轴加速度数据的稀疏重构结果为 其理想状态是 即在稀疏重构结果中只有一个加速
度数据是非零系数,其余系数皆为0;同时,中的系数与手势字典D中的原子一一对应,则非
零系数对应的原子所属的手势类别就是手势识别结果。但是,因实际操作中往往有多个非
零系数,利用 中的系数与重构字典D中的原子的对应关系,设置有Θ种手势类型,根据不同
原子所属手势类别的不同,从 中重新划分出Θ个列向量: 其中,列向
量 为第τ类手势的手势模板所对应的稀疏重构的结果系数,其长度与 相同。
[0145] (72)计算每种手势类别的判决系数:设βτ代表第τ类手势的判决系数,该系数越小说明待识别手势样本越接近该类手势,βτ的计算公式为:
[0146] 因每个手势样本都有三个坐标轴的加速度数据,则修正后的第τ类手势的判决系数μτ为:μτ=βxτ+βyτ+βzτ,式中,βxτ、βyτ、βzτ分别为第τ类手势在X,Y,Z三个坐标轴上的判决系数。
[0147] (73)输出判决结果:对各类手势的判决系数μm进行归一化处理,归一化范围是[0,1],然后,选取归一化后的最小值所对应的手势类型作为手势识别结果(参见图7所示)。
[0148] 本发明已经进行了多次仿真实施试验,下面简要说明实施例的实验与结果。
[0149] 本发明实施例是在安卓操作系统平台实现基于加速度传感器的手势识别方法,编程语言采用Java,软件开发平台为Eclipse,并将安卓开发工具ADT(Android Development 
Tools)以插件形式加载使用,软件开发工具包SDK(Software Development Kit)采用r18版
本,最高支持Android 4.0.3版本的安卓应用开发。
[0150] 本发明实施例的手势识别方法的处理系统架构主要包括:界面模、输入/输出模块、配置模块、手势采集模块、预处理模块、匹配模块、聚类模块、重构分类模块、矩阵运算模块和手势定义模块。
[0151] 本发明实施例共定义10种手势(如图8所示),直角坐标系表示该手势运动的平面,如手势1在X-Z平面运动,箭头代表手势运动的轨迹,粗实心点表示手势运动的起点,如手势
7表示从底端开始,沿着X-Z平面做一个逆时针圆。
[0152] 为了测试本发明手势识别方法的实际效果,共有14名用户参与实施例中的样本采集,其中包含3名女性和11名男性,共采集到3800个手势样本。发明人采用对其中4人采集到
的400个手势样本作为训练样本集,即每人每种手势10个样本,用这4位参与者剩余的1200
个手势样本作为用户相关情况下的测试样本。对于用户非相关情况,即测试者不参与训练
的情况,则从剩余的10个参与者采集的手势样本中,挑选出1000个样本作为测试样本,即每
人每种手势10个样本。
[0153] 本发明实施例手势识别方法的硬件测试环境为MOTO ME525智能手机,加速度传感器型号为KXTF9,CPU频率800MHZ,RAM容量512MB,ROM容量2GB,软件测试环境为Android 
2.3。
[0154] 在用户相关情况下,本发明手势识别方法的识别效果如图9(a)所示。对10种手势的识别正确率为98.33%~100%,平均正确率为99.67%。在用户非相关情况下,本发明手
势识别方法的识别效果如图9(b)所示。对10种手势的识别正确率为91%~100%,平均正确
率为97%。测试结果说明,本发明手势识别拥有良好的识别效果,并对不同手势习惯拥有较
好的适应性。
[0155] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈