CN102945362B - 基于异构数据融合的传感器协同手势识别方法及系统 - Google Patents

基于异构数据融合的传感器协同手势识别方法及系统 Download PDF

Info

Publication number
CN102945362B
CN102945362B CN201210397255.7A CN201210397255A CN102945362B CN 102945362 B CN102945362 B CN 102945362B CN 201210397255 A CN201210397255 A CN 201210397255A CN 102945362 B CN102945362 B CN 102945362B
Authority
CN
China
Prior art keywords
gesture
data
mode
model
cognition
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
Application number
CN201210397255.7A
Other languages
English (en)
Other versions
CN102945362A (zh
Inventor
陈益强
黄美玉
纪雯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN201210397255.7A priority Critical patent/CN102945362B/zh
Publication of CN102945362A publication Critical patent/CN102945362A/zh
Application granted granted Critical
Publication of CN102945362B publication Critical patent/CN102945362B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种基于异构数据融合的传感器协同手势识别方法及系统,该方法包括:步骤1,基于摄像头和传感器采集的异构数据训练手势动作识别模型;步骤2,利用所述手势动作识别模型构建阈值模型;步骤3,基于所述手势动作识别模型和阈值模型对输入的连续动作序列进行分割识别。本发明克服了基于视觉的技术普遍对周围环境和位置有强烈依赖性和对翻转动作不敏感的问题,同时解决了基于传感器的手势识别中手势识别精度和效率不高,经常会出现错判和漏判的问题,提供了一种识别准确率高、鲁棒性强,手势动作识别可靠的手势识别方法及系统。

Description

基于异构数据融合的传感器协同手势识别方法及系统
技术领域
本发明涉及人机交互领域,特别是涉及一种基于异构数据融合的传感器协同手势识别方法及系统。
背景技术
人机交互是一门涉及计算机科学、行为心理学、社会伦理学、图形界面设计以及工业设计学等众多专业背景的交叉学科,以用户体验为终极目标,是连接人与计算机的桥梁。随着计算机技术水平的提高以及社会不同领域的生产需求和人们生活需求的不断扩大,新型智能人机交互方式成为必然。在人机交互的多种方式中,手势动作是最为自然、直观且易于学习的方式之一。智能感知动作语义的手势交互技术,是实现自然、高效的人机交互的必然趋势。目前传统的手势识别方法主要有2种方式:
1.基于视觉的手势识别,通过摄像头采集手势图像并加以处理进而对手势进行识别,是一种比较直观的手段。该方法的主要优点是设备造价低廉,输入方式为非接触式;
2.基于传感器的手势识别,此类方法是将传感器穿戴在手上,实时提取手势特征并采用特定的模式识别算法完成手势动作的识别。该方法的特点是能较好的获取稳定的手势信号,且不受背景影响,抗干扰能力较强。
在第一种方法中,需要利用图像信息来实现手势动作识别,而基于视觉的技术普遍对周围环境的光线和用户所处的位置和方向有强烈的依赖性,跟踪过程中经常会出现手部目标丢失的情况,另外,基于视觉的手势识别方法对于翻转动作也不敏感。在第二种方法中,由于加速度计在低速和匀速操作中灵敏度不高,而角速度传感器对平移动作不敏感,因此基于这些传感器的手势识别精度和效率不高,经常会出现错判和漏判现象。
发明内容
本发明的目的是:克服使用单一的手势识别方法的缺点,并发扬基于视觉和传感器手势识别各自的优点,提出一种结合视觉和多传感器的手势识别方法,使其识别准确率高、鲁棒性强,手势动作识别可靠,以达到更好的识别结果。
为实现上述目的,本发明提出了一种基于异构数据融合的传感器协同手势识别方法,包括:
步骤1,基于摄像头和传感器采集的异构数据训练手势动作识别模型;
步骤2,利用所述手势动作识别模型构建阈值模型;
步骤3,基于所述手势动作识别模型和阈值模型对输入的连续动作序列进行分割识别。
所述步骤1包括:
步骤11,通过摄像头和多个传感器检测手势动作,获得用于训练手势动作识别模型的第一样本数据,其中所述第一样本数据是记录某一手势动作的三维位置、三轴角速度、三轴加速度的数据序列;
步骤12,结合所述摄像头和多个传感器的特性,对所述第一样本数据中的各个数据序列进行预处理,得到第二样本数据;
步骤13,从所述第二样本数据中提取不受动作幅度和空间跨度影响的特征向量,其中所述特征向量融合了动作的位移方向、转动角度和加速度的特征,并利用所述特征向量训练手势动作识别模型。
进一步的,所述手势动作识别模型为左-右结构的连续隐马尔科夫模型。
其中所述步骤11中采用用户协同实现的分割方法以区分手势对应的数据序列。
所述步骤12中的所诉预处理包括:空闲数据和异常数据剔除以及数据平滑滤波。
所述步骤2中所述阈值模型是由系统中所有手势动作识别模型的隐状态完全连接的遍历结构的隐马尔可夫模型,且对于给定的一个手势动作识别模式,所述阈值模型的似然值都小于任意一个手势模式的手势动作识别模型的似然值。
进一步的,所述步骤3包括:
步骤301,设定初始时间t=1,并将观测序列和手势栈置为空,同时将所述特征向量作为t时刻的观测值增添到观测序列中,对于隐马尔科夫模型,数据序列统称为观测序列;
步骤302,分别使用所有手势动作识别模型和阈值模型对t时刻的观测序列采用韦特比算法进行解码,分别得到所述观测序列的似然值;
步骤303,找到所述似然值最大的第一手势动作识别模型;
步骤304,判断所述第一手势动作识别模型的似然值是否高于阈值模型的似然值;若高于则将所述t时刻记为所述第一手势动作识别模型对应的手势模式的候选终点,并利用韦特比回馈算法找出该手势模式的起点,同时执行步骤305;否则执行步骤306;
步骤305,将所述手势模式与手势栈栈顶缓存的手势模式进行对比,当两者相同时,返回步骤11采集下一时刻的第一样本数据,否则按下述情况进行判断和操作:当上述手势模式的起点在手势栈栈顶缓存的手势模式的第一个候选终点的前面,则弹出手势栈栈顶缓存的手势模式,并压入上述手势模式及其候选终点,同时返回步骤11采集下一时刻的第一样本数据;当上述手势模式的起点在手势栈栈顶缓存的手势模式的第一个候选终点和最后一个候选终点之间,则弹出手势栈顶缓存的手势模式,并将上述手势模式的起点的t-1时刻作为手势栈栈顶缓存的手势模式的终点,同时将上述手势模式及其候选终点压栈,,执行步骤307;
步骤306,弹出手势栈栈顶手势模式,并将t-1时刻设为该手势模式的终点,并利用韦特比回馈算法找出该手势模式的起点,然后执行步骤307;
步骤307,对手势栈弹出的手势模式的长度进行判别,如若手势模式的长度满足约束条件,那么其是一个真手势模式,执行步骤308;否则返回步骤11采集下一时刻的第一样本数据,其中手势模式的长度记为其终点时刻和起点时刻之间的时间段长度;
步骤308,根据相应的手势动作识别模型,对所述真手势模式的起点时刻和终点时刻之间的观测序列中进行标记,同时返回步骤11采集下一时刻的动作数据。
本发明还提供了一种基于异构数据融合的多传感器协同手势识别系统,其特征在于,包括:
手势动作识别模型训练模块,基于摄像头和传感器采集的异构数据训练手势动作识别模型;
阈值模型构建模块,利用所述手势动作识别模型构建阈值模型;
分割识别模块,基于所述手势动作识别模型和阈值模型对输入的连续动作序列进行分割识别。
进一步的,所述手势动作识别模型训练模块包括:
样本数据获得模块,通过单目摄像头和多个传感器检测手势动作,获得用于训练手势动作识别模型的第一样本数据,其中所述第一样本数据是记录某一手势动作的三维位置、三轴角速度、三轴加速度的数据序列;
预处理模块,结合所述单目摄像头和多个传感器的特性,对所述第一样本数据中的各个数据序列进行预处理,得到第二样本数据;
特征向量提取模块,用于从所述第二样本数据中提取不受动作幅度和空间跨度影响的特征向量,其中所述特征向量融合了动作的位移方向、转动角度和加速度的特征,利用所述特征向量训练手势动作识别模型。
进一步的,所述分割识别模块包括:
观测序列增添模块,设定初始时间t=1,并将观测序列和手势栈置为空,同时将所述特征向量作为t时刻的观测值增添到观测序列中,对于隐马尔科夫模型,数据序列统称为观测序列;
似然值计算模块,分别使用所有手势动作识别模型和阈值模型对t时刻的观测序列采用韦特比算法进行解码,分别得到所述观测序列的似然值;
判断模块,找到所述似然值最大的第一手势动作识别模型,判断所述手势动作识别模型的似然值是否高于阈值模型的似然值;若高于则将所述t时刻记为所述第一手势动作识别模型对应的手势模式的候选终点,并利用韦特比回馈算法找出该手势模式的起点,同时执行对比模块;否则执行弹出模块;
对比模块,将上述手势模式与手势栈栈顶缓存的手势模式进行对比,当两者相同时,返回样本数据获得模块采集下一时刻的第一样本数据,否则按下述情况进行判断和操作:当上述手势模式的起点在手势栈栈顶缓存的手势模式的第一个候选终点的前面,则弹出手势栈栈顶缓存的手势模式,并压入上述手势模式及其候选终点,并利用韦特比回馈算法找出该手势模式的起点,同时返回样本数据获得模块采集下一时刻的第一样本数据;当上述手势模式的起点在手势栈栈顶缓存的手势模式的第一个候选终点和最后一个候选终点之间,则弹出手势栈栈顶缓存的手势模式,并将上述手势模式的起点的t-1时刻作为手势栈栈顶缓存的手势模式的终点,同时将上述手势模式及其候选终点压栈,并利用韦特比回馈算法找出该手势模式的起点,并执行判别模块;
弹出模块,用于弹出手势栈栈顶手势模式,并将t-1时刻设为该手势模式的终点,并利用韦特比回馈算法找出该手势模式的起点,并利用韦特比回馈算法找出该手势模式的起点,然后执行判别模块;
判别模块,对手势栈弹出的手势模式的长度进行判别,如若手势模式的长度满足约束条件,那么其是一个真手势模式,执行标记模块;否则返回样本数据获得模块采集下一时刻的第一样本数据,其中手势模式的长度记为其终点时刻和起点时刻之间的时间段长度;
标记模块,根据相应的手势动作识别模型,对所述真手势模式的起点时刻和终点时刻之间的观测序列中进行标记,同时返回样本数据获得模块采集下一时刻的动作数据。
本发明的有益效果在于:
1.识别的准确率高:本发明所述的方法是一种结合视觉和多传感器的手势识别方法,克服了单纯基于视觉的手势识别方法跟踪过程中容易出现手误判以及对翻转动作不敏感的缺点,同时克服了加速度传感器在低速和匀速操作中灵敏度不高和角速度传感器对平移动作不敏感的缺点,发扬了基于视觉的手势识别方法对平移敏感,以及加速度传感器和角速度传感器对翻转动作敏感的优点,从而减少了手势错判和漏判的现象,提高了识别的准确率。
2.鲁棒性强,手势动作识别可靠:本发明所述的方法降低了手势动作识别过程中环境的依赖性,提取的特征向量不受用户动作幅度和空间跨度的影响,辅助以训练好的隐马尔可夫模型,最大程度上保证了系统的鲁棒性,不会出现遗漏和误判。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
附图说明
图1是左右结构的隐马尔可夫模型示意图;
图2是本发明的阈值模型示意图;
图3是本发明的手势分割识别流程图;
图4是本发明的传感器协同手势识别方法流程图;
图5是本发明的传感器协同手势识别系统示意图。
具体实施方式
本发明识别的手势数据集限定为动态手势,包括简单的命令手势,如控制电视频道和音量加减的手势,以及切换电视频道的数字手势。通过使用立体摄像头和运动传感器实时采集用户的运动数据序列,并提取有效的手势特征,本发明在特征级融合的基础上对异构数据构成的手势使用隐马尔可夫模型实现了同步的分割和识别。
本发明的实施例如下,图4是本发明的传感器协同手势识别方法流程图,如图4所示,本发明的传感器协同手势识别方法,包括:
步骤1,基于摄像头和传感器采集的异构数据训练手势动作识别模型;
步骤2,利用所述手势动作识别模型构建阈值模型;
步骤3,基于所述手势动作识别模型和阈值模型对输入的连续动作序列进行分割识别。
具体实现步骤如下:
手势动作识别模型训练阶段
步骤11,通过摄像头和多个传感器检测手势动作,获得用于训练手势动作识别模型的第一样本数据,其中所述第一样本数据是记录某一手势动作的三维位置、三轴角速度、三轴加速度的数据序列。
利用深度传感器和单目摄像头以及装有陀螺仪和加速度计两种运动传感器的手持装置(如输入笔、遥控器等)同步检测用户某个独立的、包含某种语意或表达某种意图的手势动作,并分别记录该手势动作整个过程中的3D位置、角速度和加速度构成的数据序列。
上述手势动作的3D位置数据是由深度传感器和单目摄像头对图像中的每一帧通过CAMSHIFT跟踪算法和卡尔曼滤波器算法得到的,该3D位置信息是手部区域的重心位置(x,y,z)。上述的角速度和加速度数据则是由安装在输入笔上的陀螺仪和加速度计分别采集到的输入笔在空间三个方向的转动角速度(wx,wy,wz)和加速度(ax,ay,az)。为了使数据同步,图像的帧率以及陀螺仪和加速度计的采集频率同设为30HZ,所获得的手势数据序列采用
(x1,y1,z1,wx1,wy1,wz1,ax1,ay1,az1,x2,y2,z2,wx2,wy2,wz2,ax2,ay2,az2,...,xN,yN,zN,wxN,wyN,wzN,axN,ayN,azN)
标记,长度是9N,其中,N表示一个手势执行过程中所采集的数据个数。
需要说明的是,采集手势数据时,为了区分不同手势所对应的数据序列,本实施例采用了用户协同实现的分割方法,具体的实现方式是设计一个专门的按钮,在手势动作的开始和结束时通过该按钮标记一个手势动作,在用户输入动作时按住该按钮,完成动作时松开按钮,从而准确的得到一个手势动作所对应的数据序列。
为了保证训练结果的准确性,在训练阶段需要有大量的样本数据,因此在执行本步骤时应该保证能够得到大量通过深度传感器和单目摄像头以及运动传感器所获得的手势动作数据序列,这些数据都将作为训练手势动作识别模型的第一样本数据。在第一样本数据集中,每一种类型的手势动作应该采集有多组数据序列。
步骤12,结合所述摄像头和多个传感器的特性,对所述第一样本数据中的各个数据序列进行预处理,得到第二样本数据。
所述预处理的目的是去除第一样本数据中那些影响手势动作识别的冗余数据。在本实施例中,第一样本数据的预处理包括空闲数据剔除、异常数据剔除和数据平滑滤波。下面以一个手势动作所对应的数据序列为例,对其数据预处理的过程进行说明,对于其它手势动作而言,它们的数据预处理过程与之类似。
步骤121、空闲数据剔除;用户在手势动作输入开始或者结束阶段,可能会有短时间的静止状态,同时用户在连续动作过程中也有可能出现瞬间的停顿,这些在静止状态下的数据被称为空闲数据。空闲数据不包含任何运动信息,在手势动作识别过程中是无效的,甚至会影响手势动作的正常识别。因此需要剔除这些空闲数据。
由于基于视觉的方法对翻转动作不敏感,陀螺仪对平移动作不敏感,而加速度计在低速和匀速运动中灵敏度不高,故而单独采用3D位置、角速度或加速度判断和剔除空闲数据时容易将有效的运动数据剔除掉。为了避免上述问题,本实施例采用3D位置、角速度和加速度的综合判断结果剔除空闲数据。当且仅当第一样本数据中某一项的3D位置、角速度和加速度都是空闲数据时,才将该数据项剔除。空闲数据的判断是通过基于统计的方法实现的。首先,在数据的采集过程中对历史数据进行统计分析,得到相邻两帧位置偏移量、角速度和加速度的均值和方差,然后根据一定的可信度得到相应的置信区间范围。如果第一样本数据中的某一项值的位置偏移量、角速度和加速度都落在相应的置信区间范围内,则认为该数据项为静止状态时的数据,否则认为是正常数据。这一判断过程描述成如下的形式:
(|dxtdx|<k×σdx)&&(|dytdy|<k×σdy)&&(|dztdz|<k×σdz)&&(|wxtwx|<l×σwx)&&(|wytwy|<l×σwy)&&(|wztwz|<l×σwz)
如果:&&(|axtax|<m×σax)&&(|aytay|<m×σay)&&(|aztaz|<m×σaz),那么样本数据中第t项数据(xt,yt,zt,wxt,wyt,wzt,axt,ayt,azt)是空闲数据,需要剔除掉,上述形式中,(μdxdydzwxwywzaxayax)和(σdxdy,σdzwxwywzaxayaz)分别是处于静止状态时对历史数据统计出来的均值和方差,k,l,m是经验系数,(dxt,dyt,dzt)则是样本数据中第t项数据的位置偏移量,它是通过式(1)计算得到的:
dxt=|xt-xt-1|,dyt=|yt-yt-1|,dzt=|zt-zt-1|(1),
式(1)中,(xt,yt,zt)和(xt-1,yt-1,zt-1)分别是第一样本数据中第t项数据和第t-1项数据的3D位置坐标。需要说明的是,由于要计算第一样本数据中的第一项数据的位置偏移量,因此在步骤1所述的采集过程中,必须记录第一项数据前一时刻的3D位置。
步骤122、异常数据剔除;在实际的手势动作识别过程中,按下或松开按键、手的抖动以及陀螺仪和加速度计设备供电电压不稳定等都会产生异常数据,例如,在静止状态时,陀螺仪和加速度计的数据值突然变大,或者在运动状态时,相邻数据的变化突然变大。另外,由于环境的影响,深度传感器和单目摄像头使用跟踪算法采集的手部位置数据也会出现异常情况,例如误判手部位置,这些异常数据对识别性能和精度有很大影响。在本实施例中,采用基于统计的方法来剔除这些异常数据。首先,在数据的采集过程中对历史数据进行统计分析,得到位置偏移量、角速度和加速度的均值和方差,然后根据一定的可信度得到相应的置信区间范围。如果第一样本数据中的某一项值的位置偏移量、角速度和加速度都落在该置信区间范围内,则认为该数据项为正常数据,否则认为是异常数据。这一判断过程可用下列形式表示:
如果: ( | dx t - &mu; dx n | > k n &times; &delta; dx n ) | | ( | dy t - &mu; dy n | > k n &times; &delta; dy n ) | | ( | dz t - &mu; dz n | > k n &times; &delta; dz n ) | | ( | wx t - &mu; wx n | > l n &times; &delta; wx n ) | | ( | wy t - &mu; wy n | > l n &times; &delta; dy n ) | | ( | wz t - &mu; wz n | > l n &times; &delta; wz n ) | | ( | ax t - &mu; ax n | > m n &times; &delta; ax n ) | | ( | ay t - &mu; ay n | > m n &times; &delta; ay n ) | | ( | az t - &mu; az n | > m n &times; &delta; az n )
那么样本数据中第t项数据(xt,yt,zt,wxt,wyt,wzt,axt,ayt,azt)是异常数据,需要剔除掉,上述形式中,分别是处于正常状态时对历史数据统计出来的均值和方差,kn,ln,mn是经验系数,(dxt,dyt,dzt)的计算和步骤122一样。
步骤123、数据平滑滤波。陀螺传感器所采集的数据经常有数据不够平滑的缺点,因此需要在本步骤中对第一样本数据进行平滑滤波。平滑滤波的方法有多种,如滑动窗口算法或者中值滤波算法,在本实施例中可采用上述两种方法中的任意一种,在其他实施例中,也可以采用现有技术中的其他方法。本步骤并非是本发明方法所必须的,若陀螺传感器所采集的数据较为平滑,则本步骤可以省略。
一个手势动作的第一样本数据在经过上述预处理后,所得到的数据序列可(x1,y1,z1,wx1,wy1,wz1,ax1,ay1,az1,x2,y2,z2,wx2,wy2,wz2,以用ax2,ay2,az2,...,xM,yM,zM,wxM,wyM,wzM,axM,ayM,azM)表示,长度是9M(M表示采集的数据个数,之前提到,最原始采集的数据个数是N个,总长度是9N,这N个数据经过前述的切分和预处理变成了M个,M≤N)。对手势数据做上述数据预处理,得到第二样本数据,有助于更好地训练手势动作识别模型,进而提高手势动作识别的准确率。但若所采集的第一样本数据效果非常好,则该预处理步骤也可省略,以加快速度。
步骤13,从所述第二样本数据中提取不受动作幅度和空间跨度影响的特征向量,其中所述特征向量融合了动作的位移方向、转动角度和加速度的特征,并利用所述特征向量训练手势动作识别模型。
可靠的特征向量提取是影响手势动作识别性能的关键一环。用户在输入手势动作时,不同的人动作幅度不一样,手势持续的时间也不同,因此必须提取与幅度和持续时间无关的具有较强鲁棒性的特征。此外,从用户角度来看,用户输入手势动作后期望在短时间内能得到响应,因此要求特征向量提取方法具有较低的算法复杂度。
步骤131、基于视觉的手势特征提取;经过上述的2个步骤,由深度传感器和单目摄像头通过CAMSHIFT跟踪算法和卡尔曼滤波器算法得到的是手部的轨迹点序列,即手部的重心坐标序列。在本实施例中,对轨迹点序列提取方向特征。假设跟踪算法得到t时刻的轨迹点为Pt(xt,yt,zt),t-l时刻的轨迹点为Pt-1(xt-1,yt-1,zt-1),则t时刻的轨迹点的方向特征的计算公式如式(2)所示:
fx t = arctan ( y t - y t - 1 x t - x t - 1 ) , fy t = arctan ( z t - z t - 1 y t - y t - 1 ) , fz t = arctan ( x t - x t - 1 z t - z t - 1 ) - - - ( 2 ) ;
由于上述公式计算出来的特征(fxt,fyt,fzt),可以在输入动作的幅度和空间跨度不同时,对同一个输入模式保持一致。例如,输入竖直方向的平移手势动作,无论输入动作的幅度和跨度是否相同,在同一时间尺度下,(fxt,fyt,fzt)的值均为(±90°,0,0),因此,该特征可以有效地消除因为不同人输入动作幅度不同而导致的识别困难情况,鲁棒性强且计算简单。
步骤132、基于陀螺仪的手势特征提取;在本实施例中,对陀螺仪采集的角速度序列使用公式(3)计算特征:
fwx t = wx t - u wx ( wx t - u wx ) 2 + ( wy t - u wy ) 2 + ( wz t - u wz ) 2 ) ,
fwy t = wy t - u wy ( wx t - u wx ) 2 + ( wy t - u wy ) 2 + ( wz t - u wz ) 2 ) ,
fwz t = wz t - u wz ( wx t - u wx ) 2 + ( wy t - u wy ) 2 + ( wz t - u wz ) 2 ) - - - ( 3 ) ;
其中,(wxt,wyt,wzt)是t时刻陀螺传感器三个方向上的瞬时角速度,(μwxwywz)是处于静止状态时统计出来的均值。由于上述公式计算出来的特征(fwxt,fwyt,fwzt),可以在输入动作的幅度和空间跨度不同时,对同一个输入模式保持一致。例如,输入与水平面平行的转动手势动作后,无论输入动作的幅度和跨度是否相同,在同一时间尺度下,(fwxt,fwyt,fwzt)的值均为(0,±1,0),因此,该特征可以有效地消除因为不同人输入动作幅度不同而导致的识别困难情况,鲁棒性强且计算简单。
步骤133、基于加速计的手势特征提取。在本实施例中,对加速度计采集的加速度序列使用公式(4)计算特征:
fax t = ax t - u ax ( ax t - u ax ) 2 + ( ay t - u ay ) 2 + ( az t - u az ) 2 ) ,
fay t = ay t - u ay ( ax t - u ax ) 2 + ( ay t - u ay ) 2 + ( az t - u az ) 2 ) ,
faz t = az t - u az ( ax t - u ax ) 2 + ( ay t - u ay ) 2 + ( az t - u az ) 2 ) - - - ( 4 ) ,
其中(axt,ayt,azt)是t时刻加速度计三个方向上的瞬时加速度,(μaxayaz)是处于静止状态时统计出来的均值。由于上述公式计算出来的特征(faxt,fayt,fazt),可以在输入动作的幅度和空间跨度不同时,对同一个输入模式保持一致。例如,输入水平的平移手势动作后,无论输入动作的幅度和跨度是否相同,在同一时间尺度下,(faxt,fayt,fazt)的值均为(±1,0,0),因此,该特征可以有效地消除因为不同人输入动作幅度不同而导致的识别困难情况,鲁棒性强且计算简单。
步骤134、特征融合。经过上述三个步骤,分别提取了基于视觉的位移方向特征和基于陀螺仪的转动角速度特征以及基于加速度计的加速度特征,在本实施例中,将三种异构特征进行了融合,使用向量(fxt,fyt,fzt,fwxt,fwyt,fwzt,faxt,fayt,fazt)表征t时刻的动作数据,因此,经过步骤2预处理的样本数据的特征向量可以标示为
(fx1,fy1,fz1,fwx1,fwy1,fwz1,fax1,fay1,faz1,fx2,fy2,fz2,fwx2,fwy2,fwz2,fax2,fay2,faz2,...,fxM,fyM,fzM,fwxM,fwyM,fwzM,faxM,fayM,fazM)。由于该特征向量既能反映用户的平移手势动作信息,又能反映用户的翻转手势动作信息,因此能够更全面的表征用户的手势动作信息,克服了单独使用基于视觉的方法或基于运动传感器的方法的缺陷,从而能够减少手势误判或漏判的现象,增强了手势动作识别的准确率。如前所述,样本数据中包括有大量的、多种类型的手势动作数据序列。这些数据序列通过前一步骤提取出了各个数据序列中的特征向量,这些特征向量可以用来训练手势动作识别模型。在本实施例中,所述手势动作识别模型为左-右隐马尔科夫模型(HMM),该模型中有且只有一个初始状态和终止状态,如图1所示,该模型的训练可采用前述的Baum-Welch算法实现,最终输出为初始状态概率分布,状态转移概率矩阵和输出观测值概率分布矩阵。
阈值模型构建阶段
本实施例中采用方法[1]构建阈值模型,如图2所示,以它的似然值作为一个自适应的阈值,当且仅当最好的手势动作识别模型的似然值高于该阈值模型的似然值时,一个手势模式从连续的动作序列中分割出来并实现同步地识别。其中方法[1]是[韩]H.K.利,J.H.金,一种用于手势识别的基于隐马尔科夫模型的阈值建模方法[J],IEEE模式分析与机器智能汇刊,1999,21(10):961-973.,以下类同。
上述阈值模型是由系统中所有手势动作识别模型的状态完全连接的遍历模型,能够与由预定义的手势子模式以任意次序组合而成的模式匹配,且能保证对于给定的一个手势模式,它的似然值将小于给定手势模式的手势动作识别模型的似然值。图2给出的阈值模型是一个遍历结构的简化版本,其中,起始状态S和终止状态T是不产生观察值的空状态,虚箭头也不代表真正的连接,它只是一种形象化的表示,说明模型中的所有状态都可以通过一步转移到其它任何状态。阈值模型构建的具体步骤是:将系统中训练的所有手势动作识别模型的所有状态拷贝出来,保持每一个状态的输出观察概率和自转移概率不变,同时修改每个状态在原来手势动作识别模型中的外转移特性,令每个状态都可以通过一步转移到其它任何状态,且转移概率相等,具体的计算公式如式(5):
a ij = 1 - a ii N - 1 , j = 1,2 , . . . , N ; j &NotEqual; i ; - - - ( 5 ) ,
其中aij是从状态i到j的转移概率,N是状态数目(除了起始和终止状态的所有状态的总和)。需要说明的是,正是因为阈值模型中将每一个状态转移到其它任何状态的概率均分化,从而其转向原来手势动作识别模型中的前向状态的概率低于其在原来的手势动作识别模型中的前向转移概率,如此,给定一个手势模式,阈值模型的似然值才会低于相应的手势动作识别模型的似然值。
分割识别阶段
步骤301,设定初始时间t=1,并将观测序列和手势栈置为空,同时将所述特征向量作为t时刻的观测值增添到观测序列中,对于隐马尔科夫模型,数据序列统称为观测序列;
步骤302,分别使用所有手势动作识别模型和阈值模型对t时刻的观测序列采用韦特比算法进行解码,分别得到所述观测序列的似然值;
步骤303,找到所述似然值最大的第一手势动作识别模型;
步骤304,判断所述第一手势动作识别模型的似然值是否高于阈值模型的似然值;若高于则将所述t时刻记为所述第一手势动作识别模型对应的手势模式的候选终点,并利用韦特比回馈算法找出该手势模式的起点,同时执行步骤305;否则执行步骤306;
步骤305,将所述手势模式与手势栈栈顶缓存的手势模式进行对比,当两者相同时,返回步骤11采集下一时刻的第一样本数据,否则按下述情况进行判断和操作:当上述手势模式的起点在手势栈栈顶缓存的手势模式的第一个候选终点的前面,则弹出手势栈栈顶缓存的手势模式,并压入上述手势模式及其候选终点,同时返回步骤11采集下一时刻的第一样本数据;当上述手势模式的起点在手势栈栈顶缓存的手势模式的第一个候选终点和最后一个候选终点之间,则弹出手势栈顶缓存的手势模式,并将上述手势模式的起点的t-1时刻作为手势栈栈顶缓存的手势模式的终点,同时将上述手势模式及其候选终点压栈,,执行步骤307;
步骤306,弹出手势栈栈顶手势模式,并将t-1时刻设为该手势模式的终点,并利用韦特比回馈算法找出该手势模式的起点,然后执行步骤307;
步骤307,对手势栈弹出的手势模式的长度进行判别,如若手势模式的长度满足约束条件,那么其是一个真手势模式,执行步骤308;否则返回步骤11采集下一时刻的第一样本数据,其中手势模式的长度记为其终点时刻和起点时刻之间的时间段长度;
步骤308,根据相应的手势动作识别模型,对所述真手势模式的起点时刻和终点时刻之间的观测序列中进行标记,同时返回步骤11采集下一时刻的动作数据。
具体而言,本实施例采用最大化观测序列的概率值的最优准则,对输入的连续动作序列进行分割和识别。具体地,本实施例分别使用系统中的所有手势动作识别模型和阈值模型对t时刻的观测序列Ot=(o1,o2,...,ot)采用韦特比算法进行解码,其中ot是按照手势动作识别模型训练阶段的步骤3提取的t时刻的动作特征。假设qt是时刻t的隐状态,sj是模型h的第j个隐状态,λh是模型h的参数。令
&delta; i ( s j ) = max q 1 , . . . , q t - 1 P ( q 1 , . . . , q t - 1 , q t = s j , O t | &lambda; h ) - - - ( 6 )
表示t时刻到达状态sj的最优路径产生观察序列Ot的联合概率,即似然值,则δt(sj)可通过式(7)迭代计算得到
δ1(sj)=πjbj(o1)1≤j≤N,
δt(sj)=maxit-1(si)aij]bj(ot)2≤t≤T,1≤j≤N.(7),
式(7)中N是模型h的状态数目,aij是从状态si到sj的转移概率,bj(ot)是状态sj输出观测值ot的概率。在左右结构的隐马尔可夫模型中,当某一时刻的隐状态是某个手势动作识别模型的终止状态时,说明执行了一个相应的手势动作。假设Eh是模型h的终止状态,G是所有手势动作识别模型的集合,TR是阈值模型,则如果g*满足下式:
g*=argmaxh∈G∪TRδt(Eh),并g*∈G(8),
说明从某个时刻开始到时刻t的观测序列片段是手势动作识别模型g*的一个手势模式而时刻t是的一个终点,的起点时刻s可以通过韦特比算法回馈得到。考虑到检测出来的手势模式很有可能只是一个更大的手势模式的一部分,如数字手势2就是数字手势3的一部分,所以利用式(8)检测到一个手势模式的终点后并不能立即就将该手势模式分割出来,而只能将该终点当做该手势模式的一个候选终点,并应继续对后续的观测序列进行解码。倘若t+T(T<Tnum)时刻对观测序列Ot+T=(o1,o2,...,ot,...,ot+T)使用韦特比算法计算似然值后,似然值最大的模型不再是g*,而变为gβ,则使用下述的方法确定手势模式的真正终点:
A.若gβ是阈值模型,则t+T-1时刻是手势模式的终点。
B.若gβ是一个不同于g*的手势动作识别模型,则此时分两种情况判断:
(B-1).当的起点在的第一个候选终点的前面,说明当前的手势模式包含此时应将的所有候选终点清除,并用替代
(B-2).当的起点在的第一个候选终点和最后一个候选终点之间,则的起点的前一时刻将作为的终点。
按照上述的方法,检测出真正的终点.为了保证确实是一个手势模式,还必须满足一定的长度要求,既不能太长,也不能太短,在本实施例中,通过一个滤波器实现了对的筛选.具体的做法是,首先对所有训练手势动作识别模型的数据样本的长度进行统计,得到其均值和方差,然后设定合适的置信区间,如果的长度l在置信区间内,那么它是一个手势模式,否则不是。上述判断过程可用下列形式表示,如果:ασl<|l-ul|<βσl,则是一个手势模式,其中,ul和σl分别是所有训练手势动作识别模型的数据样本的长度的均值和方差,α和β是经验系数。的类型就是g*。图3是手势分割识别的流程图,其中的手势栈用于检查手势之间的嵌入式关系。
在面向人机交互的应用场景中,当一个用户面对深度传感器和单目摄像头利用包含陀螺仪和加速度计的输入笔或手柄执行手势动作时,本实施例将以30HZ的频率实时采集动作数据(xt,yt,zt,wxt,wyt,wzt,axt,ayt,azt),并参照手势动作识别模型训练阶段的步骤3实时提取当前时刻的动作特征(fxt,fyt,fzt,fwxt,fwyt,fwzt,faxt,fayt,fazt),然后将该特征向量作为t时刻的观测值ot增添到观测序列O中,接着交互系统就可以按照图五所示的分割识别流程对该观测序列进行实时地分割和识别,并根据手势识别的结果做出相应的响应,实现实时自然的人机交互。
如图5所示,本发明的多传感器协同手势识别系统,其特征在于,包括:
手势动作识别模型训练模块100,基于摄像头和传感器采集的异构数据训练手势动作识别模型;
阈值模型构建模块200,利用所述手势动作识别模型构建阈值模型;
分割识别模块300,基于所述手势动作识别模型和阈值模型对输入的连续动作序列进行分割识别。
具体如下:
手势动作识别模型训练模块100,包括:
样本数据获得模块110,通过单目摄像头和多个传感器检测手势动作,获得用于训练手势动作识别模型的第一样本数据,其中所述第一样本数据是记录某一手势动作的三维位置、三轴角速度、三轴加速度的数据序列。
利用深度传感器和单目摄像头以及装有陀螺仪和加速度计两种运动传感器的手持装置(如输入笔、遥控器等)同步检测用户某个独立的、包含某种语意或表达某种意图的手势动作,并分别记录该手势动作整个过程中的3D位置、角速度和加速度构成的数据序列。
上述手势动作的3D位置数据是由深度传感器和单目摄像头对图像中的每一帧通过CAMSHIFT跟踪算法和卡尔曼滤波器算法得到的,该3D位置信息是手部区域的重心位置(x,y,z)。上述的角速度和加速度数据则是由安装在输入笔上的陀螺仪和加速度计分别采集到的输入笔在空间三个方向的转动角速度(wx,wy,wz)和加速度(ax,ay,az)。为了使数据同步,图像的帧率以及陀螺仪和加速度计的采集频率同设为30HZ,所获得的手势数据序列采用
(x1,y1,z1,wx1,wy1,wz1,ax1,ay1,az1,x2,y2,z2,wx2,wy2,wz2,ax2,ay2,az2,...,xN,yN,zN,wxN,wyN,wzN,axN,ayN,azN)
标记,长度是9N,其中,N表示一个手势执行过程中所采集的数据个数。
需要说明的是,采集手势数据时,为了区分不同手势所对应的数据序列,本实施例采用了用户协同实现的分割方法,具体的实现方式是设计一个专门的按钮,在手势动作的开始和结束时通过该按钮标记一个手势动作,在用户输入动作时按住该按钮,完成动作时松开按钮,从而准确的得到一个手势动作所对应的数据序列。
为了保证训练结果的准确性,在训练阶段需要有大量的样本数据,因此在执行本模块时应该保证能够得到大量通过深度传感器和单目摄像头以及运动传感器所获得的手势动作数据序列,这些数据都将作为训练手势动作识别模型的第一样本数据。在第一样本数据集中,每一种类型的手势动作应该采集有多组数据序列。
预处理模块120,结合所述单目摄像头和多个传感器的特性,对所述第一样本数据中的各个数据序列进行预处理,得到第二样本数据。
所述预处理的目的是去除第一样本数据中那些影响手势动作识别的冗余数据。在本实施例中,第一样本数据的预处理包括空闲数据剔除、异常数据剔除和数据平滑滤波。下面以一个手势动作所对应的数据序列为例,对其数据预处理的过程进行说明,对于其它手势动作而言,它们的数据预处理过程与之类似。
空闲数据剔除单元;用户在手势动作输入开始或者结束阶段,可能会有短时间的静止状态,同时用户在连续动作过程中也有可能出现瞬间的停顿,这些在静止状态下的数据被称为空闲数据。空闲数据不包含任何运动信息,在手势动作识别过程中是无效的,甚至会影响手势动作的正常识别。因此需要剔除这些空闲数据。
由于基于视觉的方法对翻转动作不敏感,陀螺仪对平移动作不敏感,而加速度计在低速和匀速运动中灵敏度不高,故而单独采用3D位置、角速度或加速度判断和剔除空闲数据时容易将有效的运动数据剔除掉。为了避免上述问题,本实施例采用3D位置、角速度和加速度的综合判断结果剔除空闲数据。当且仅当第一样本数据中某一项的3D位置、角速度和加速度都是空闲数据时,才将该数据项剔除。空闲数据的判断是通过基于统计的方法实现的。首先,在数据的采集过程中对历史数据进行统计分析,得到相邻两帧位置偏移量、角速度和加速度的均值和方差,然后根据一定的可信度得到相应的置信区间范围。如果第一样本数据中的某一项值的位置偏移量、角速度和加速度都落在相应的置信区间范围内,则认为该数据项为静止状态时的数据,否则认为是正常数据。这一判断过程描述成如下的形式:
(|dxtdx|<k×σdx)&&(|dytdy|<k×σdy)&&(|dztdz|<k×σdz)&&(|wxtwx|<l×σwx)&&(|wytwy|<l×σwy)&&(|wztwz|<l×σwz)
如果:&&(|axtax|<m×σax)&&(|aytay|<m×σay)&&(|aztaz|<m×σaz),那么样本数据中第t项数据(xt,yt,zt,wxt,wyt,wzt,axt,ayt,azt)是空闲数据,需要剔除掉,上述形式中,(μdxdydzwxwywzaxayaz)和(σdxdydz,σwxwywzaxayaz)分别是处于静止状态时对历史数据统计出来的均值和方差,k,l,m是经验系数,(dxt,dyt,dzt)则是样本数据中第t项数据的位置偏移量,它是通过式(1)计算得到的:
dxt=|xt-xt-1|,dyt=|yt-yt-1|,dzt=|zt-zt-1|(1),
式(1)中,(xt,yt,zt)和(xt-1,yt-1,zt-1)分别是第一样本数据中第t项数据和第t-1项数据的3D位置坐标。需要说明的是,由于要计算第一样本数据中的第一项数据的位置偏移量,因此在数据采集过程中,必须记录第一项数据前一时刻的3D位置。
异常数据剔除单元;在实际的手势动作识别过程中,按下或松开按键、手的抖动以及陀螺仪和加速度计设备供电电压不稳定等都会产生异常数据,例如,在静止状态时,陀螺仪和加速度计的数据值突然变大,或者在运动状态时,相邻数据的变化突然变大。另外,由于环境的影响,深度传感器和单目摄像头使用跟踪算法采集的手部位置数据也会出现异常情况,例如误判手部位置,这些异常数据对识别性能和精度有很大影响。在本实施例中,采用基于统计的方法来剔除这些异常数据。首先,在数据的采集过程中对历史数据进行统计分析,得到位置偏移量、角速度和加速度的均值和方差,然后根据一定的可信度得到相应的置信区间范围。如果第一样本数据中的某一项值的位置偏移量、角速度和加速度都落在该置信区间范围内,则认为该数据项为正常数据,否则认为是异常数据。这一判断过程可用下列形式表示:
( | dx t - &mu; dx n | > k n &times; &delta; dx n ) | | ( | dy t - &mu; dy n | > k n &times; &delta; dy n ) | | ( | dz t - &mu; dz n | > k n &times; &delta; dz n )
如果: | | ( | wx t - &mu; wx n | > l n &times; &delta; wx n ) | | ( | wy t - &mu; wy n | > l n &times; &delta; dy n ) | | ( | wz t - &mu; wz n | > l n &times; &delta; wz n )
| | ( | ax t - &mu; ax n | > m n &times; &delta; ax n ) | | ( | ay t - &mu; ay n | > m n &times; &delta; ay n ) | | ( | az t - &mu; az n | > m n &times; &delta; az n )
那么样本数据中第t项数据(xt,yt,zt,wxt,wyt,wzt,axt,ayt,azt)是异常数据,需要剔除掉,上述形式中,分别是处于正常状态时对历史数据统计出来的均值和方差,kn,ln,mn是经验系数,(dxt,dyt,dzt)的计算和异常数据剔除单元一样。
数据平滑滤波单元。陀螺传感器所采集的数据经常有数据不够平滑的缺点,因此需要在本单元中对第一样本数据进行平滑滤波。平滑滤波的方法有多种,如滑动窗口算法或者中值滤波算法,在本实施例中可采用上述两种方法中的任意一种,在其他实施例中,也可以采用现有技术中的其他方法。本单元并非是本发明方法所必须的,若陀螺传感器所采集的数据较为平滑,则本单元可以省略。
一个手势动作的第一样本数据在经过上述预处理后,所得到的数据序列可
(x1,y1,z1,wx1,wy1,wz1,ax1,ay1,az1,x2,y2,z2,wx2,wy2,wz2,以用ax2,ay2,az2,...,xM,yM,zM,wxM,wyM,wzM,axM,ayM,azM)表示,长度是9M(M表示采集的数据个数,之前提到,最原始采集的数据个数是N个,总长度是9N,这N个数据经过前述的切分和预处理变成了M个,M≤N)。对手势数据做上述数据预处理,得到第二样本数据,有助于更好地训练手势动作识别模型,进而提高手势动作识别的准确率。但若所采集的第一样本数据效果非常好,则该预处理单元也可省略,以加快速度。
特征向量提取模块130,用于从所述第二样本数据中提取不受动作幅度和空间跨度影响的特征向量,其中所述特征向量融合了动作的位移方向、转动角度和加速度的特征,利用所述特征向量训练手势动作识别模型。
可靠的特征向量提取是影响手势动作识别性能的关键一环。用户在输入手势动作时,不同的人动作幅度不一样,手势持续的时间也不同,因此必须提取与幅度和持续时间无关的具有较强鲁棒性的特征。此外,从用户角度来看,用户输入手势动作后期望在短时间内能得到响应,因此要求特征向量提取方法具有较低的算法复杂度。
基于视觉的手势特征提取单元;经过上述处理,由深度传感器和单目摄像头通过CAMSHIFT跟踪算法和卡尔曼滤波器算法得到的是手部的轨迹点序列,即手部的重心坐标序列。在本实施例中,对轨迹点序列提取方向特征。假设跟踪算法得到t时刻的轨迹点为Pt(xt,yt,zt),t-1时刻的轨迹点为Pt-1(xt-1,yt-1,zt-1),则t时刻的轨迹点的方向特征的计算公式如式(2)所示:
fx t = arctan ( y t - y t - 1 x t - x t - 1 ) , fy t = arctan ( z t - z t - 1 y t - y t - 1 ) , fz t = arctan ( x t - x t - 1 z t - z t - 1 ) - - - ( 2 ) ;
由于上述公式计算出来的特征(fxt,fyt,fzt),可以在输入动作的幅度和空间跨度不同时,对同一个输入模式保持一致。例如,输入竖直方向的平移手势动作,无论输入动作的幅度和跨度是否相同,在同一时间尺度下,(fxt,fyt,fzt)的值均为(±90°,0,0),因此,该特征可以有效地消除因为不同人输入动作幅度不同而导致的识别困难情况,鲁棒性强且计算简单。
基于陀螺仪的手势特征提取单元;在本实施例中,对陀螺仪采集的角速度序列使用公式(3)计算特征:
fwx t = wx t - u wx ( wx t - u wx ) 2 + ( wy t - u wy ) 2 + ( wz t - u wz ) 2 ) ,
fwy t = wy t - u wy ( wx t - u wx ) 2 + ( wy t - u wy ) 2 + ( wz t - u wz ) 2 ) ,
fwz t = wz t - u wz ( wx t - u wx ) 2 + ( wy t - u wy ) 2 + ( wz t - u wz ) 2 ) - - - ( 3 ) ;
其中,(wxt,wyt,wzt)是t时刻陀螺传感器三个方向上的瞬时角速度,(μwxwywz)是处于静止状态时统计出来的均值。由于上述公式计算出来的特征(fwxt,fwyt,fwzt),可以在输入动作的幅度和空间跨度不同时,对同一个输入模式保持一致。例如,输入与水平面平行的转动手势动作后,无论输入动作的幅度和跨度是否相同,在同一时间尺度下,(fwxt,fwyt,fwzt)的值均为(0,±1,0),因此,该特征可以有效地消除因为不同人输入动作幅度不同而导致的识别困难情况,鲁棒性强且计算简单。
基于加速计的手势特征提取单元。在本实施例中,对加速度计采集的加速度序列使用公式(4)计算特征:
fax t = ax t - u ax ( ax t - u ax ) 2 + ( ay t - u ay ) 2 + ( az t - u az ) 2 ) ,
fay t = ay t - u ay ( ax t - u ax ) 2 + ( ay t - u ay ) 2 + ( az t - u az ) 2 ) ,
faz t = az t - u az ( ax t - u ax ) 2 + ( ay t - u ay ) 2 + ( az t - u az ) 2 ) - - - ( 4 ) ,
其中(axt,ayt,azt)是t时刻加速度计三个方向上的瞬时加速度,(μaxayaz)是处于静止状态时统计出来的均值。由于上述公式计算出来的特征(faxt,fayt,fazt),可以在输入动作的幅度和空间跨度不同时,对同一个输入模式保持一致。例如,输入水平的平移手势动作后,无论输入动作的幅度和跨度是否相同,在同一时间尺度下,(faxt,fayt,fazt)的值均为(±1,0,0),因此,该特征可以有效地消除因为不同人输入动作幅度不同而导致的识别困难情况,鲁棒性强且计算简单。
特征融合单元。经过上述处理,分别提取了基于视觉的位移方向特征和基于陀螺仪的转动角速度特征以及基于加速度计的加速度特征,在本实施例中,将三种异构特征进行了融合,使用向量(fxt,fyt,fzt,fwxt,fwyt,fwzt,faxt,fayt,fazt)表征t时刻的动作数据,因此,经过预处理的样本数据的特征向量可以标示为
(fx1,fy1,fz1,fwx1,fwy1,fwz1,fax1,fay1,faz1,fx2,fy2,fz2,fwx2,fwy2,fwz2,fax2,fay2,faz2,...,fxM,fyM,fzM,fwxM,fwyM,fwzM,faxM,fayM,fazM)。由于该特征向量既能反映用户的平移手势动作信息,又能反映用户的翻转手势动作信息,因此能够更全面的表征用户的手势动作信息,克服了单独使用基于视觉的方法或基于运动传感器的方法的缺陷,从而能够减少手势误判或漏判的现象,增强了手势动作识别的准确率。如前所述,样本数据中包括有大量的、多种类型的手势动作数据序列。这些数据序列通过前一模块提取出了各个数据序列中的特征向量,这些特征向量可以用来训练手势动作识别模型。在本实施例中,所述手势动作识别模型为左-右隐马尔科夫模型(HMM),该模型中有且只有一个初始状态和终止状态,如图1所示,该模型的训练可采用前述的Baum-Welch算法实现,最终输出为初始状态概率分布,状态转移概率矩阵和输出观测值概率分布矩阵。
阈值模型构建模块200
本实施例中采用方法[1]构建阈值模型,如图2所示,以它的似然值作为一个自适应的阈值,当且仅当最好的手势动作识别模型的似然值高于该动作模型的似然值时,一个手势模式从连续的动作序列中分割出来并实现同步地识别。其中方法[1]是[韩]H.K.利,J.H.金,一种用于手势识别的基于隐马尔科夫模型的阈值建模方法[J],IEEE模式分析与机器智能汇刊,1999,21(10):961-973.,以下类同。
上述阈值模型是由系统中所有手势动作识别模型的状态完全连接的遍历模型,能够与由预定义的手势子模式以任意次序组合而成的模式匹配,且能保证对于给定的一个手势模式,它的似然值将小于给定手势模式的手势动作识别模型的似然值。图2给出的阈值模型是一个遍历结构的简化版本,其中,起始状态S和终止状态T是不产生观察值的空状态,虚箭头也不代表真正的连接,它只是一种形象化的表示,说明模型中的所有状态都可以通过一步转移到其它任何状态。阈值模型构建的具体步骤是:将系统中训练的所有手势动作识别模型的所有状态拷贝出来,保持每一个状态的输出观察概率和自转移概率不变,同时修改每个状态在原来手势动作识别模型中的外转移特性,令每个状态都可以通过一步转移到其它任何状态,且转移概率相等,具体的计算公式如式(5):
a ij = 1 - a ii N - 1 , j = 1,2 , . . . , N ; j &NotEqual; i ; - - - ( 5 ) ,
其中aij是从状态i到j的转移概率,N是状态数目(除了起始和终止状态的所有状态的总和)。需要说明的是,正是因为阈值模型中将每一个状态转移到其它任何状态的概率均分化,从而其转向原来手势动作识别模型中的前向状态的概率低于其在原来的手势动作识别模型中的前向转移概率,如此,给定一个手势模式,阈值模型的似然值才会低于相应的手势动作识别模型的似然值。
分割识别模块300
观测序列增添模块310,设定初始时间t=1,并将观测序列和手势栈置为空,同时将所述特征向量作为t时刻的观测值增添到观测序列中,对于隐马尔科夫模型,数据序列统称为观测序列;
似然值计算模块320,分别使用所有手势动作识别模型和阈值模型对t时刻的观测序列采用韦特比算法进行解码,分别得到所述观测序列的似然值;
判断模块330,找到所述似然值最大的第一手势动作识别模型,判断所述手势动作识别模型的似然值是否高于阈值模型的似然值;若高于则将所述t时刻记为所述第一手势动作识别模型对应的手势模式的候选终点,并利用韦特比回馈算法找出该手势模式的起点,同时执行对比模块;否则执行弹出模块;
对比模块340,将上述手势模式与手势栈栈顶缓存的手势模式进行对比,当两者相同时,返回样本数据获得模块采集下一时刻的第一样本数据,否则按下述情况进行判断和操作:当上述手势模式的起点在手势栈栈顶缓存的手势模式的第一个候选终点的前面,则弹出手势栈栈顶缓存的手势模式,并压入上述手势模式及其候选终点,并利用韦特比回馈算法找出该手势模式的起点,同时返回样本数据获得模块采集下一时刻的第一样本数据;当上述手势模式的起点在手势栈栈顶缓存的手势模式的第一个候选终点和最后一个候选终点之间,则弹出手势栈栈顶缓存的手势模式,并将上述手势模式的起点的t-1时刻作为手势栈栈顶缓存的手势模式的终点,同时将上述手势模式及其候选终点压栈,并利用韦特比回馈算法找出该手势模式的起点,并执行判别模块;
弹出模块350,用于弹出手势栈栈顶手势模式,并将t-1时刻设为该手势模式的终点,并利用韦特比回馈算法找出该手势模式的起点,并利用韦特比回馈算法找出该手势模式的起点,然后执行判别模块;
判别模块360,对手势栈弹出的手势模式的长度进行判别,如若手势模式的长度满足约束条件,那么其是一个真手势模式,执行标记模块;否则返回样本数据获得模块采集下一时刻的第一样本数据,其中手势模式的长度记为其终点时刻和起点时刻之间的时间段长度;
标记模块370,根据相应的手势动作识别模型,对所述真手势模式的起点时刻和终点时刻之间的观测序列中进行标记,同时返回样本数据获得模块采集下一时刻的动作数据。
具体而言,本实施例采用最大化观测序列的概率值的最优准则,对输入的连续动作序列进行分割和识别。具体地,本实施例分别使用系统中的所有手势动作识别模型和阈值模型对t时刻的观测序列Ot=(o1,o2,...,ot)采用韦特比算法进行解码,其中ot是按照手势动作识别模型训练阶段提取的t时刻的动作特征。假设qt是时刻t的隐状态,sj是模型h的第j个隐状态,λh是模型h的参数。令
&delta; t ( s j ) = max q 1 , . . . , q t - 1 P ( q 1 , . . . , q t - 1 , q t = s j , O t | &lambda; h ) - - - ( 6 )
表示t时刻到达状态sj的最优路径产生观察序列Ot的联合概率,即似然值,则δt(sj)可通过式(7)迭代计算得到
δ1(sj)=πjbj(o1)1≤j≤N,
δt(sj)=maxit-1(si)aij]bj(ot)2≤t≤T,1≤j≤N.(7),
式(7)中N是模型h的状态数目,aij是从状态si到sj的转移概率,bj(ot)是状态sj输出观测值ot的概率。在左右结构的隐马尔可夫模型中,当某一时刻的隐状态是某个手势动作识别模型的终止状态时,说明执行了一个相应的手势动作。假设Eh是模型h的终止状态,G是所有手势动作识别模型的集合,TR是阈值模型,则如果g*满足下式:
g*=argmaxh∈G∪TRδt(Eh),并g*∈G(8),
说明从某个时刻开始到时刻t的观测序列片段是手势动作识别模型g*的一个手势模式而时刻t是的一个终点,的起点时刻s可以通过韦特比算法回馈得到。考虑到检测出来的手势模式很有可能只是一个更大的手势模式的一部分,如数字手势2就是数字手势3的一部分,所以利用式(8)检测到一个手势模式的终点后并不能立即就将该手势模式分割出来,而只能将该终点当做该手势模式的一个候选终点,并应继续对后续的观测序列进行解码。倘若t+T(T<Tmm)时刻对观测序列Ot+T=(o1,o2,...,ot,...,ot+T)使用韦特比算法计算似然值后,似然值最大的模型不再是g*,而变为gβ,则使用下述的方法确定手势模式的真正终点:
A.若gβ是阈值模型,则t+T-1时刻是手势模式的终点。
B.若gβ是一个不同于g*的手势动作识别模型,则此时分两种情况判断:
(B-1).当的起点在的第一个候选终点的前面,说明当前的手势模式包含此时应将的所有候选终点清除,并用替代
(B-2).当的起点在的第一个候选终点和最后一个候选终点之间,则的起点的前一时刻将作为的终点。
按照上述的方法,检测出真正的终点.为了保证确实是一个手势模式,还必须满足一定的长度要求,既不能太长,也不能太短,在本实施例中,通过一个滤波器实现了对的筛选.具体的做法是,首先对所有训练手势动作识别模型的数据样本的长度进行统计,得到其均值和方差,然后设定合适的置信区间,如果的长度l在置信区间内,那么它是一个手势模式,否则不是。上述判断过程可用下列形式表示,如果:ασl<|l-ul|<βσl,则是一个手势模式,其中,ul和σl分别是所有训练手势动作识别模型的数据样本的长度的均值和方差,α和β是经验系数。的类型就是g*。图3是手势分割识别的流程图,其中的手势栈用于检查手势之间的嵌入式关系。
在面向人机交互的应用场景中,当一个用户面对深度传感器和单目摄像头利用包含陀螺仪和加速度计的输入笔或手柄执行手势动作时,本实施例将以30HZ的频率实时采集动作数据(xt,yt,zt,wxt,wyt,wzt,axt,ayt,azt),并参照手势动作识别模型训练模块实时提取当前时刻的动作特征(fxt,fyt,fzt,fwxt,fwyt,fwzt,faxt,fayt,fazt),然后将该特征向量作为t时刻的观测值ot增添到观测序列O中,接着交互系统就可以按照图五所示的分割识别流程对该观测序列进行实时地分割和识别,并根据手势识别的结果做出相应的响应,实现实时自然的人机交互。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明权利要求的保护范围。

Claims (8)

1.一种基于异构数据融合的传感器协同手势识别方法,其特征在于,包括:
步骤1,基于摄像头和传感器采集的异构数据训练手势动作识别模型;
步骤2,利用所述手势动作识别模型构建阈值模型;
步骤3,基于所述手势动作识别模型和阈值模型对输入的连续动作序列进行分割识别,其中所述步骤3包括:
步骤301,设定初始时间t=1,并将观测序列和手势栈置为空,同时将所述手势动作识别模型的特征向量作为t时刻的观测值增添到观测序列中,对于隐马尔科夫模型,数据序列统称为观测序列;
步骤302,分别使用所有手势动作识别模型和阈值模型对t时刻的观测序列采用韦特比算法进行解码,分别得到所述观测序列的似然值;
步骤303,找到所述似然值最大的第一手势动作识别模型;
步骤304,判断所述第一手势动作识别模型的似然值是否高于阈值模型的似然值;若高于则将所述t时刻记为所述第一手势动作识别模型对应的手势模式的候选终点,并利用韦特比回馈算法找出该手势模式的起点,同时执行步骤305;否则执行步骤306;
步骤305,将所述手势模式与手势栈栈顶缓存的手势模式进行对比,当两者相同时,采集下一时刻的第一样本数据,否则按下述情况进行判断和操作:当上述手势模式的起点在手势栈栈顶缓存的手势模式的第一个候选终点的前面,则弹出手势栈栈顶缓存的手势模式,并压入上述手势模式及其候选终点,同时采集下一时刻的第一样本数据;当上述手势模式的起点在手势栈栈顶缓存的手势模式的第一个候选终点和最后一个候选终点之间,则弹出手势栈顶缓存的手势模式,并将上述手势模式的起点的t-1时刻作为手势栈栈顶缓存的手势模式的终点,同时将上述手势模式及其候选终点压栈,执行步骤307;
步骤306,弹出手势栈栈顶手势模式,并将t-1时刻设为该手势模式的终点,并利用韦特比回馈算法找出该手势模式的起点,然后执行步骤307;
步骤307,对手势栈弹出的手势模式的长度进行判别,如若手势模式的长度满足约束条件,那么其是一个真手势模式,执行步骤308;否则采集下一时刻的第一样本数据,其中手势模式的长度记为其终点时刻和起点时刻之间的时间段长度;
步骤308,根据相应的手势动作识别模型,对所述真手势模式的起点时刻和终点时刻之间的观测序列中进行标记,同时采集下一时刻的动作数据。
2.如权利要求1所述的基于异构数据融合的传感器协同手势识别方法,其特征在于,所述步骤1包括:
步骤11,通过摄像头和多个传感器检测手势动作,获得用于训练手势动作识别模型的第一样本数据,其中所述第一样本数据是记录某一手势动作的三维位置、三轴角速度、三轴加速度的数据序列;
步骤12,结合所述摄像头和多个传感器的特性,对所述第一样本数据中的各个数据序列进行预处理,得到第二样本数据;
步骤13,从所述第二样本数据中提取不受动作幅度和空间跨度影响的特征向量,其中所述特征向量融合了动作的位移方向、转动角度和加速度的特征,并利用所述特征向量训练手势动作识别模型。
3.如权利要求1所述的基于异构数据融合的传感器协同手势识别方法,其特征在于,所述手势动作识别模型为左-右结构的连续隐马尔科夫模型。
4.如权利要求2所述的基于异构数据融合的传感器协同手势识别方法,其特征在于,所述步骤11中采用用户协同实现的分割方法以区分手势对应的数据序列。
5.如权利要求2所述的基于异构数据融合的传感器协同手势识别方法,其特征在于,所述步骤12中的所诉预处理包括:空闲数据和异常数据剔除以及数据平滑滤波。
6.如权利要求1所述的基于异构数据融合的传感器协同手势识别方法,其特征在于,所述步骤2中所述阈值模型是由系统中所有手势动作识别模型的隐状态完全连接的遍历结构的隐马尔可夫模型,且对于给定的一个手势动作识别模式,所述阈值模型的似然值都小于任意一个手势模式的手势动作识别模型的似然值。
7.一种基于异构数据融合的多传感器协同手势识别系统,其特征在于,包括:
手势动作识别模型训练模块,基于摄像头和传感器采集的异构数据训练手势动作识别模型;
阈值模型构建模块,利用所述手势动作识别模型构建阈值模型;
分割识别模块,基于所述手势动作识别模型和阈值模型对输入的连续动作序列进行分割识别,其中所述分割识别模块包括:
所述分割识别模块包括:
观测序列增添模块,设定初始时间t=1,并将观测序列和手势栈置为空,同时将所述手势动作识别模型的特征向量作为t时刻的观测值增添到观测序列中,对于隐马尔科夫模型,数据序列统称为观测序列;
似然值计算模块,分别使用所有手势动作识别模型和阈值模型对t时刻的观测序列采用韦特比算法进行解码,分别得到所述观测序列的似然值;
判断模块,找到所述似然值最大的第一手势动作识别模型,判断所述手势动作识别模型的似然值是否高于阈值模型的似然值;若高于则将所述t时刻记为所述第一手势动作识别模型对应的手势模式的候选终点,并利用韦特比回馈算法找出该手势模式的起点,同时执行对比模块;否则执行弹出模块;
对比模块,将上述手势模式与手势栈栈顶缓存的手势模式进行对比,当两者相同时,返回样本数据获得模块采集下一时刻的第一样本数据,否则按下述情况进行判断和操作:当上述手势模式的起点在手势栈栈顶缓存的手势模式的第一个候选终点的前面,则弹出手势栈栈顶缓存的手势模式,并压入上述手势模式及其候选终点,并利用韦特比回馈算法找出该手势模式的起点,同时返回样本数据获得模块采集下一时刻的第一样本数据;当上述手势模式的起点在手势栈栈顶缓存的手势模式的第一个候选终点和最后一个候选终点之间,则弹出手势栈栈顶缓存的手势模式,并将上述手势模式的起点的t-1时刻作为手势栈栈顶缓存的手势模式的终点,同时将上述手势模式及其候选终点压栈,并利用韦特比回馈算法找出该手势模式的起点,并执行判别模块;
弹出模块,用于弹出手势栈栈顶手势模式,并将t-1时刻设为该手势模式的终点,并利用韦特比回馈算法找出该手势模式的起点,并利用韦特比回馈算法找出该手势模式的起点,然后执行判别模块;
判别模块,对手势栈弹出的手势模式的长度进行判别,如若手势模式的长度满足约束条件,那么其是一个真手势模式,执行标记模块;否则返回样本数据获得模块采集下一时刻的第一样本数据,其中手势模式的长度记为其终点时刻和起点时刻之间的时间段长度;
标记模块,根据相应的手势动作识别模型,对所述真手势模式的起点时刻和终点时刻之间的观测序列中进行标记,同时返回样本数据获得模块采集下一时刻的动作数据。
8.如权利要求7所述的多传感器协同手势识别系统,其特征在于,所述手势动作识别模型训练模块包括:
样本数据获得模块,通过单目摄像头和多个传感器检测手势动作,获得用于训练手势动作识别模型的第一样本数据,其中所述第一样本数据是记录某一手势动作的三维位置、三轴角速度、三轴加速度的数据序列;
预处理模块,结合所述单目摄像头和多个传感器的特性,对所述第一样本数据中的各个数据序列进行预处理,得到第二样本数据;
特征向量提取模块,用于从所述第二样本数据中提取不受动作幅度和空间跨度影响的特征向量,其中所述特征向量融合了动作的位移方向、转动角度和加速度的特征,利用所述特征向量训练手势动作识别模型。
CN201210397255.7A 2012-10-18 2012-10-18 基于异构数据融合的传感器协同手势识别方法及系统 Active CN102945362B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210397255.7A CN102945362B (zh) 2012-10-18 2012-10-18 基于异构数据融合的传感器协同手势识别方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210397255.7A CN102945362B (zh) 2012-10-18 2012-10-18 基于异构数据融合的传感器协同手势识别方法及系统

Publications (2)

Publication Number Publication Date
CN102945362A CN102945362A (zh) 2013-02-27
CN102945362B true CN102945362B (zh) 2016-01-27

Family

ID=47728301

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210397255.7A Active CN102945362B (zh) 2012-10-18 2012-10-18 基于异构数据融合的传感器协同手势识别方法及系统

Country Status (1)

Country Link
CN (1) CN102945362B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103731711A (zh) * 2013-12-27 2014-04-16 乐视网信息技术(北京)股份有限公司 智能电视对于操作的执行方法和系统
CN106292552A (zh) * 2015-05-14 2017-01-04 中兴通讯股份有限公司 一种遥控汽车的方法及其装置、终端及汽车
CN104866099B (zh) * 2015-05-27 2017-12-26 东南大学 基于运动传感器提高智能设备手势识别精度的误差补偿方法
CN106326811B (zh) * 2015-06-26 2019-05-31 浙江大学 一种基于分割信度的运动轨迹分割方法
US10057078B2 (en) * 2015-08-21 2018-08-21 Samsung Electronics Company, Ltd. User-configurable interactive region monitoring
CN105204629B (zh) * 2015-09-02 2018-11-13 成都上生活网络科技有限公司 一种3d手势识别方法
CN105512632B (zh) * 2015-12-09 2019-04-05 北京旷视科技有限公司 活体检测方法及装置
US9857881B2 (en) * 2015-12-31 2018-01-02 Microsoft Technology Licensing, Llc Electrical device for hand gestures detection
CN107493371B (zh) * 2016-06-13 2020-12-29 中兴通讯股份有限公司 一种终端的运动特征的识别方法、装置及终端
CN107491717B (zh) * 2016-06-13 2021-02-05 科大讯飞股份有限公司 考试作弊检测方法和装置
CN106127188B (zh) * 2016-07-05 2019-05-17 武汉理工大学 一种基于陀螺仪的手写数字识别方法
AU2017208212B2 (en) * 2016-07-27 2018-06-21 Accenture Global Solutions Limited Providing predictive alerts for workplace safety
CN108964804B (zh) * 2018-06-12 2021-01-15 中国人民解放军陆军工程大学 一种协同检测异构信息融合方法
CN110414479B (zh) * 2019-08-08 2021-11-16 燕山大学 一种饮水行为感知方法、连续和非连续动作分割识别方法
CN110545478A (zh) * 2019-09-16 2019-12-06 广州长嘉电子有限公司 一种嵌入游戏功能的电视系统控制方法及电视系统
CN111552383A (zh) * 2020-04-24 2020-08-18 南京爱奇艺智能科技有限公司 虚拟增强现实交互设备的手指识别方法、系统及交互设备
CN113887675B (zh) * 2021-12-06 2022-03-04 四川大学 一种异构传感器特征融合的手势识别方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101853380A (zh) * 2010-06-18 2010-10-06 华南理工大学 一种基于加速度传感器的手势识别的旋转特征提取方法
CN101853071A (zh) * 2010-05-13 2010-10-06 重庆大学 基于视觉的手势识别方法及系统
CN101976330A (zh) * 2010-09-26 2011-02-16 中国科学院深圳先进技术研究院 手势识别方法和系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101853071A (zh) * 2010-05-13 2010-10-06 重庆大学 基于视觉的手势识别方法及系统
CN101853380A (zh) * 2010-06-18 2010-10-06 华南理工大学 一种基于加速度传感器的手势识别的旋转特征提取方法
CN101976330A (zh) * 2010-09-26 2011-02-16 中国科学院深圳先进技术研究院 手势识别方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
An HMM-Based Threshold Model Approach for Gesture Recognition;Hyeon-Kyu Lee等;《Pattern Analysis and Machine Intelligence, IEEE Transactions on Pattern Analysis and Machine Intelligence》;19991031;第21卷(第10期);第961-972页 *

Also Published As

Publication number Publication date
CN102945362A (zh) 2013-02-27

Similar Documents

Publication Publication Date Title
CN102945362B (zh) 基于异构数据融合的传感器协同手势识别方法及系统
Gu et al. Human gesture recognition through a kinect sensor
JP6202157B2 (ja) 手振り識別方法と装置
Xu A real-time hand gesture recognition and human-computer interaction system
CN102063618B (zh) 互动系统中的动态手势识别方法
WO2020078017A1 (zh) 用于识别空中手写的方法、装置、设备以及计算机可读存储介质
JP2015510203A (ja) 3次元の近接インタラクションにおける、又は3次元の近接インタラクションに関連する改善
Gong et al. Kernelized temporal cut for online temporal segmentation and recognition
Aggarwal et al. Online handwriting recognition using depth sensors
CN111444764A (zh) 一种基于深度残差网络的手势识别方法
De Smedt Dynamic hand gesture recognition-From traditional handcrafted to recent deep learning approaches
Weng et al. On-line human action recognition by combining joint tracking and key pose recognition
Plouffe et al. Natural human-computer interaction using static and dynamic hand gestures
Sharma et al. Numeral gesture recognition using leap motion sensor
WO2019180511A1 (en) Ultrasound based air-writing system and method
CN108614988A (zh) 一种复杂背景下的运动手势自动识别系统
Bulbul et al. Human action recognition using MHI and SHI based GLAC features and collaborative representation classifier
Hu et al. Temporal interframe pattern analysis for static and dynamic hand gesture recognition
KR101978265B1 (ko) 손 모양 및 동작 인식장치 및 방법
KR101899590B1 (ko) 손 모양 및 동작 인식장치 및 방법
Dallel et al. A sliding window based approach with majority voting for online human action recognition using spatial temporal graph convolutional neural networks
Hsieh et al. A real time hand gesture recognition system based on DFT and SVM
CN109117719B (zh) 基于局部可变形部件模型融合特征的驾驶姿态识别方法
Dhamanskar et al. Human computer interaction using hand gestures and voice
Imoize et al. Development of an infrared-based sensor for finger movement detection

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information

Inventor after: Chen Yiqiang

Inventor after: Huang Meiyu

Inventor after: Ji Wen

Inventor before: Huang Meiyu

Inventor before: Chen Yiqiang

Inventor before: Ji Wen

COR Change of bibliographic data
C14 Grant of patent or utility model
GR01 Patent grant