本发明涉及一种手势识别技术领域,尤其是涉及一种红外手势识别装置和识别方法。
背景技术:
在物联网+手机终端+电脑终端应用成熟的环境下,对智能化设备应用需求越来越多,用户与智能化设备的交互方式越来越多样化,从原始的机械性的按键交互、触屏交互,进一步发展到手势交互、语音交互等更为简单便捷的交互方式。其中手势交互更加符合人们日常的操作习惯,只要滑一滑手或挥一挥手,就能控制设备的技术备受人们青睐,也是智能化交互系统市场的主流技术。在这样的一个作用力下,手势识别技术涌现出各种各样的方案。
1.摄像头图像处理方案,图像算法处理识别度高、对应用环境要求低但对硬件及软件算法要求高,对电子设备的图像处理能力、图像识别能力提出了很高的要求,以上因素导致该方案成本高。
2.电容式感应方案,成本低。但实现的功能简单,并且对产品表面结构要求高,体积大、感应距离短等缺点,基本需要用户手指触碰到显示屏才会感应,难以满足手势感应的需求。
3.红外反射接收识别处理方案,红外手势识别技术已经被相关领域使用,其中在家电类行业使用较多,但用户普遍反馈故障率较高、识别距离近、识别手势较少等不足。
市面上红外控制产品主要以1发1收对管形式,1个红外发射管对应1个红外接收管来实现控制,为实现功能需要安装多对收发对管,导致有尺寸较大的缺点,而且在环境光强度强一点的环境下接收管容易饱和,导致出现误触发或失效的现象。该方案抗干扰能力弱,极易受到其他因素,比如温度的影响。
随着消费者对产品应用认识的提高,对红外手势控制多样性、稳定性、识别率有更高的要求。
技术实现要素:
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种红外手势识别装置及识别方法,在抗环境光干扰、抗温度干扰、识别距离、识别成功率,识别反应速度等方面都有很大的改进和提升,在人机交互领域中有实际的意义。
本发明的目的可以通过以下技术方案来实现:
一种红外手势识别装置,包括集成于一pcb板上的红外接收管、红外补偿管、驱动模块、控制模块和多个红外发射管,所述控制模块分别连接驱动模块和红外接收管,所述驱动模块分别连接红外补偿管和多个红外发射管,所述红外接收管、红外发射管、红外补偿管分别设于pcb板背面,所述pcb板在红外接收管和红外发射管处设有对应的开孔,用于从pcb板正面发射和接收红外线,所述红外补偿管向pcb板内部发射红外线。
进一步地,所述控制模块包括单片机和ldo电源电路,所述单片机分别连接驱动模块、ldo电源电路和红外接收管,该单片机控制红外发射管发出正半周期的pwm脉冲信号,同时,在一个pwm脉冲信号周期内,红外补偿管发出负半周期的pwm脉冲信号,形成闭环反馈回路。
进一步地,所述驱动模块包括红外发射单元和红外补偿单元,所述单片机上设有连接所述红外发射单元的发射端口和连接所述红外补偿单元的补偿端口,所述红外发射单元连接红外发射管,所述红外补偿单元连接红外补偿管。
进一步地,所述红外发射单元包括一基于镜像电流源的比例电路、一开关控制电路和一电阻,所述电阻连接单片机的补偿端口。
进一步地,所述红外补偿单元包括一个基于镜像电流源的比例电路和一个开关控制电路。
进一步地,所述红外发射管有四个,分布于pcb板的四角,所述红外接收管设于pcb板的正中央。
一种基于所述的红外手势识别装置的识别方法,包括以下具体步骤:
a.红外发射管发出pwm脉冲信号,单片机通过红外接收管接收并得到原始数据;
b.判断物体是否移动,若是,则执行步骤d;若否,则执行步骤c;
c.装置执行自校准,执行步骤a;
d.进行手势的识别;
e.等待到达测量周期时间,执行步骤a。
进一步地,所述判断物体移动的方法为:将红外接收管得到的实时数据与前一时刻数据做差值处理,对差值结果进行低通滤波处理,通过比较滤波差值结果与移动门限的大小得到移动检测的结果。
进一步地,所述自校准包括上电自校准、背景前移自校准和背景远离自校准,通过调整补偿偏置电压保证补偿电压的测量值不变。
进一步地,进行手势的识别具体为:基于手势移动中不同时刻的接收数据形成波形图,根据波形图的特定位置点判断具体的手势类型,所述手势类型包括上、下、左、右、前、后、单击、双击、左旋转以及右旋转。
与现有技术相比,本发明具有以下优点:
1、本发明装置的红外发射单元与红外补偿单元均采用基于镜像电流源的比例电路,该电路的输出阻值较大,在供电压不变的情况下,装置内电流具有一定的自我调节能力,有良好的恒流特性,不会因温度变化发生突变,即装置受温度的影响较小,使得本发明具有良好的温度稳定性;
2、装置中采用比例电路同时具有放大电流的效果,放大了红外管的发射电流,从而使得红外管的发射功率变大,结合本发明采用小角度红外发射管,使手势识别距离远远增加,可达到40cm以上,对于手势的识别速度和识别准确率也提供了可靠的保证;
3、本发明装置的开关控制电路选用pnp三极管,通过选取不同电阻比值形成不同的放大倍数,以小电流控制大电流,实现装置的远距离控制;
4、本发明装置采用了向pcb板内部发射红外线的红外补偿管,红外补偿管和红外发射管在一个pwm周期内快速交替工作,从而可以排除背景环境光的干扰,解决了目前红外手势模块受环境光影响的弊端,提高了可靠性和稳定性;
5、本发明识别方法通过做差法识别各个方向上的手势,并加上阈值参数排除干扰,此算法逻辑简单有效、执行速度高、手势识别速度快并且成功率高,手势识别成功率可达98%以上;
6、本发明识别方法识别手势的数量多,可识别手势类型包括上、下、左、右、前、后、单击、双击、左旋转以及右旋转,能够最大范围的满足现在人们对应用产品的需求;
7、本发明装置系统芯片集成度高,外围电路简单,模块尺寸小,采用四个发射管,一个接收管的布局,可满足小尺寸应用需求,同时,装置中支持多种外围通讯接口,可灵活配置使用,这些都使得本发明的在实际生活中应用的经济价值提升,具有广泛的市场空间。
附图说明
图1为红外手势识别装置正面的结构示意图;
图2为红外手势识别装置背面的结构示意图;
图3为镜像电流源电路的结构示意图;
图4为基于镜像电流源电路的比例电路的结构示意图;
图5为第一通道的红外发射单元的结构示意图;
图6为第二通道的红外发射单元的结构示意图;
图7为第三通道的红外发射单元的结构示意图;
图8为第四通道的红外发射单元的结构示意图;
图9为红外补偿单元的结构示意图;
图10为ldo电源的结构示意图;
图11为单片机以及其外围电路的结构示意图;
图12为识别方法的流程示意图;
图13为低通滤波效果的示意图;
图14为滤波器阈值对应滤波效果的示意图;
图15为移动检测的过程示意图;
图16为自校准硬件原理的示意图;
图17为背景前移自校准示意图;
图18为背景远离自校准示意图;
图19为左右手势滑动的手势示意图;
图20为右滑手势两通道测量值波形示意图;
图21为右滑手势两通道测量差值波形示意图;
图22为单击手势识别过程示意图;
图23为双击手势波形示意图;
图24为双击手势波形高通滤波示意图;
图25为红外补偿管发射红外线的示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
如图1和图2所示,本实施例提供了一种红外手势识别装置,包括一个红外接收管d1、四个红外发射管led1a~d、一个红外补偿管ledc、驱动模块以及控制模块,均集成于pcb板上。其中,所述控制模块分别连接驱动模块和红外接收管,驱动模块分别连接红外补偿管和四个红外发射管,红外接收管d1、红外发射管、红外补偿管ledc分别设于pcb板背面,红外接收管d1设置于中央,红外发射管分布于矩形pcb板的四角。pcb板在红外接收管d1和红外发射管处设有对应的开孔,因此,红外发射管和红外接收管d1可从pcb板正面发射和接收红外线。pcb板在在红外补偿管ledc出没有对应的开孔,红外补偿管向pcb板内部发射红外线,如图25所示。
控制模块包括单片机和ldo电源电路,驱动模块包括红外发射单元、红外补偿单元,单片机通过红外发射单元连接红外发射管,红外发射管led1a、led1b、led1c和led1d依次对应第一通道红外发射单元、第二通道红外发射单元、第三通道红外发射单元和第四通道红外发射单元,所述单片机直接连接驱动模块、ldo电源电路、红外接收管d1,以及通过红外补偿单元连接红外补偿管ledc,单片机上设有发射端口和补偿端口。
红外发射单元包括一个基于镜像电流源的比例电路和一个开关控制电路。
如图3所示,镜像电流源一般在集成电路里常见,主要由2个pnp三极管vt1和vt2构成,其特性、工艺、结构、参数大致相同,即β1=β2,ic1=ic2,ib1=ib2。vcc电压通过vt2和电阻r产生一个基准电流ir,由电路原理可知:
由ic1=ic2,可知:
则
可推出,当β>>2时,
假设温度上升,ic1的电流变大,ic2的电流变大,ir的电流也随之变大。电阻r恒定不变且ur=rir,可得ur电压变大,由于供电压vcc恒定不变的情况下,ueb1=ueb2=vcc-ur,可得ueb1、ueb2减小,ib1和ib2减小,从而使得ic1、ic2减小;反之,假设温度降低,ic1的电流变小,则ic2的电流变小,ir的电流也随之变小。电阻r恒定不变且ur=rir,可得ur电压变小,由于供电压vcc恒定不变的情况下,可得ueb1、ueb2变大,ib1和ib2减小变大,从而使得ic1、ic2变大。由此可知,vt2对vt1具有一定温度补偿作用,镜像电流源电路可实现一定温度的补偿,提供ic1、ic2较好的温度稳定性。此外,当pnp三极管的放大倍数选取100以上,ic1≈ir,即ir可以控制ic1电流且电流值相等,可以提供ma级别的电流。
如图4所示,镜像电流源在vt1和vt2发射极分别接上电阻r1和r2可以组成比例电路。比例电路改变ic1≈ir的关系,使得ic1与ir呈比例关系,从而改变镜像电流源按1:1输出电流,可以大幅增加红外发射电流ic1,其原理为:
由电路原理且r1不等于r2,以下等式成立:
ueb1+ir1r1=ueb2+ir2r2
由tv1及tv2其特性、工艺、结构、参数大致相同可知:
ueb1=ueb2
则
由镜像电流源特性可知:tv1和tv2的ib1及ib2的电流可以忽略不计
ir=ib1+ib2+ic2
可得
即r2和r1的阻值比例即为ic1和ir的电流比例,可以通过小电流ir控制大电流ic1,提供较大的ma级别的电流控制,实现装置的远距离的控制。此外,比例电路的输出阻值大,使得其具有更好的恒流特性,温度稳定性比单纯的镜像电流源更好。
如图5~图8所示,依次分别为第一通道红外发射单元、第二通道红外发射单元、第三通道红外发射单元和第四通道红外发射单元的电路图,以第一通道红外发射单元为例,如上文原理所述,本发射单元主要由2个pnp三极管vt1和vt2构成,它们的特性、工艺、结构、参数大致相同,三级管vt1和vt2的基级互相连接并连接三极管vt2的集电极和开关控制电路,三极管vt1的集电极连接接地的红外发射管led1a,发射极连接电阻r1,三极管vt2的发射极连接电阻r2,电阻r1和r2连接ldo电源电路,ldo电源电路还连接接地的电容c1。
开关控制电路包括一个npn三极管vt3和电阻r4,三极管vt3的基级连接电阻r4,电阻r4的另一端连接内部模拟电压,三极管vt3的发射极连接单片机led1a端口,三极管vt3的集电极连接三极管vt1和vt2的基级和三极管vt2的集电极,根据三极管特性ib≥1ma,且vbe电压约到0.7v,认为三极管完全导通,所以,假设led1a控制口接到电源地上,r4=(2.5-0.7v)/0.001a=1.8k,r4的阻值需要≤1.8k,红外发射管led1a的波长为850或940nm。此外,由于红外发射管发射时,挡板折射回多余的红外光信号到接收端,导致接收信号会偏大,为了中和这误差在发射控制端与补偿控制端并上一只电阻r3,电阻r3一端连接单片机补偿发射管ledc端口,另一端连接单片机红外发射管leda端口和三极管vt3的发射极。
第二通道红外发射单元、第三通道红外发射单元和第四通道红外发射单元的电路与第一通道红外发射单元的电路完全相同。
如图9所示,红外补偿管ledc对应的红外补偿单元同样包括一个基于镜像电流源电路的比例电路和一个开关控制电路,其电路硬件与红外发射单元基本相同,区别在于三极管vt3的发射极仅直接连接单片机ledc端口。ledc为红外发射管,其波长为850或940nm,在实际电路中应与发射管波长一致。
如图10所示,本实施例ldo电源电路在pcb板上灵活布置,外接供电电压为dc5v,单片机的7个gpio口需要供电dc3.3v,内部模拟电路需要dc2.5v供电电压。其原理为:输入dc5v经电容c7、c8滤波后,送入ldo第1脚vin端口,第3脚连接第1脚,第2脚连接电源地,第5脚为电压输出dc3.3v,经电容c3、c4滤波后,输入到二极管d阳极,因为二极管压降约0.7v,从二极管d阴极输出得到约2.5v电压,最后经电容c5、c6滤波后输出dc2.5v。
如图11所示,单片机为16位单片机、集成4路红外发射接口led1a、红外发射接口led1b、红外发射接口led1c和红外发射接口led1d,集成1路红外补偿接口ledc、7个gpio口输出,红外接收管d1为光电二极管,直接连接单片机,用于接收特定红外波长发射的信号。
本实施例的工作原理为:单片机由代码控制指令向红外发射管发出25个pwm脉冲信号,在1个pwm脉冲信号周期内,正半周期红外发射管发射出红外光,当这些红外光遇到物体之后,反射回来被红外接收管d1接收,并转换成电信号输入单片机中;负半周期的补偿发射管ledc发出相位相差180°的红外光,在确保正半周期与负半周期红外接收管d1接收的信号相等的情况下,在25个pwm内不断调整补偿发射管ledc的红外强度,从而形成闭环反馈回路,这种方式可以使得装置抗极强的外界环境光干扰,其性能不受温度及光线变化的影响。
红外发射管发射的具体过程为:单片机向红外发射管led1a发出25个pwm脉冲信号后,经快速切换向红外发射管led1b发出25个pwm脉冲信号,快速切换向红外发射管led1c发出25个pwm脉冲信号,快速切换向红外发射管led1d发出25个pwm脉冲信号,4个红外发射管依次发射完红外光,就是一个循环。每次循环后,依次得到4路原始数值。
如图12所示,本实施例识别装置的识别方法分分别包括原始数据测量、移动检测、自校准、手势识别4个部分,包括以下具体步骤:
a.红外发射管发出pwm脉冲信号,单片机通过红外接收管接收并得到原始数据;
b.判断物体是否移动,若是,则执行步骤d;若否,则执行步骤c;
c.装置执行自校准,执行步骤a;
d.进行手势的识别;
e.等待到达测量周期时间,执行步骤a。
测量周期设置为4ms,每过4ms后测量一次并且得到各个红外发射管通道的原始数据,下一步判断是否有物体移动,并根据移动检测结果做相应的自校准处理,最后将处理后的数据经手势识别计算后得到相应的手势结果。
如图13所示,移动检测步骤首先要对各个通道的原始测量数据进行数字低通滤波处理,目的是降低测量数据中的高频干扰,保证测量数据的可靠性和稳定性,同时为后续的处理算法提供有效的输入数据,数字低通滤波器的特性与两个参数有关,分别是滤波器深度和滤波器阈值,滤波器深度是和数字低通滤波器的截止频率有关的参数,波形1代表原始数据波形,波形2代表滤波后的数据波形,可以得出,波形2比波形1更平稳光滑。
如图14所示,当原始数据中高频干扰比较多时,通过设置较低的数字低通滤波器截止频率来克服高频干扰,但同时会造成滤波后的波形在时间上滞后较多。为了克服上述常规数字低通滤波器的弊端,得到快速的滤波响应。本实施例中为数字低通滤波器加入滤波器阈值参数。如果原始值和滤波器输出值之间的差值高于滤波器阈值,那么滤波后的实际输出值即为原始值,选择合适的滤波器阈值,即可得到较好的滤波器输出结果。
如图15所示,移动检测步骤是将本次输入值与上次输入值做差值处理得到差值结果,然后再对差值结果做低通滤波处理得到的滤波差值结果,最后通过比较滤波差值结果与移动门限的大小从而得到移动检测的输出结果,即有移动或无移动。
如图16所示,自校准步骤目的是消除背景干扰,原因在于不同的背景下测量值的基值不同,则会导致不同的背景下同一手势的测量值不同,从而会影响手势识别的难度和成功率。补偿电压vc的大小即为测量值。自校准的中心目的是消除背景干扰,在不同的背景下得到相同的测量值(这个值定义为目标值),通过调整电压补偿偏置电压vco达到上述目的,在自校准的过程中设置补偿电压vc为目标值不变,不断的调整补偿偏置电压vco的大小,直至发射与补偿的结果达到平衡。
自校准步骤分为上电自校准、背景前移自校准、背景远离自校准三步。
上电自校准:在装置刚开始上电工作的时候,自校准一次,消除上电时的背景值。
背景前移自校准:当移动检测结果持续输出为无移动并达到一定校准时间后,则判断当前测量值是否在目标值附近(通过一个摆幅参数限定目标值附近)。如果在目标值附近则重新更新静态值,如果不在目标值附近并大于目标值则启动自校准流程,如图17所示,该校准目的是防止背景增加,比如前面板有污渍遮挡。
背景远离自校准:当测量值小于目标值下摆幅,并持续一定时间,则启动自校准流程如图18所示,该校准目的是防止背景减小,比如前面板有物体后移。
手势识别步骤可识别上、下、左、右、前、后、单击、双击、左旋转、右旋转十种手势。
上下左右手势:本实施例以左右手势识别过程为例进行阐述说明,上下手势实现原理和左右手势一致。将红外发射管led1a视为为发射管1,红外发射管led1b视为发射管2,左右手势滑动的手势示意图如图19所示。
如图20所示,发射管1对应的测量值波形为通道1,发射管2对应的测量值波形为通道2。手右滑的过程中,从t1开始,发射管1发射的红外信号经过手反射后被接收管接收到,由于手离发射管2的距离较远,不在发射管2的红外覆盖范围之内,所以发射管2发射的红外信号不能被接收管接收到。随着手不断的向右滑动的过程中,手与发射灯1、发射灯2的相对距离逐渐减小,那么对应的红外发射强度逐渐增大,即通道1、通道2的波形逐渐上升,当手经过发射管1上方的时候,通道1测量值达到最大,随后通道1测量值逐渐减小。当手移动到与发射管1、发射管2的相对距离相等的时候,即是t2时刻,此时的两路通道值相等。当手经过发射管2上方的时候,通道2测量值达到最大,随后通道2测量值逐渐减小直到为0,即t3时刻,以上即完成一次右滑手势动作。
如图21所示,将通道1的值与通道2的值进行做差处理,得到波形图。图中的t1、t2、t3时刻分别对应图20中的t1、t2、t3时刻。差值从t1时刻逐渐增大到正向最大值,然后逐渐减小到0,即t2时刻。接着差值变为负值,反向增大到最大值,然后又逐渐减小到0,即t3时刻。算法不断判断两个通道的差值,当差值的绝对值大于阈值的时候,进入左右手势检测状态1,同时根据差值的正负判断后续差值的变化方向。当差值为正的时候,则等待差值变为负,并且当反向差值大于阈值时,则进入左右手势检测状态2,接着当差值回归到0时,则进入左右手势检测状态3,即识别出是右滑手势。左滑手势识别过程与右滑识别过程一致,只是差值的方向相反。在左右手势识别过程中,加入时间t限制,当手势识别的时间在t时间以内,则认为是有效的手势;当手势识别时间在t时间以外,则认为是无效的手势。
单击手势:单击手势的识别过程如下,取各通道测量数据中最大的一个通道的值作为识别数据,当测量值大于一个门限值(单击门限),并且在波动容忍范围之内(单击波动),维持一定时间(单击时间)后则识别为单击手势。具体的单击识别过程见图22所示。
双击手势:双击手势的识别过程如下,双击手势的测量波形会出现两个波峰,如图23所示,是三次双击手势的波形图。双击识别过程是将测量值进行高通滤波,得到的波形如图24所示,d1、d2和d3分别对应图23中的d1、d2和d3,可以看出双击手势的波形高通滤波后会有4个峰值点,分别是p1、p2、p3和p4,四个峰值交替出现。通过峰值检测算法,得到峰值点以及峰值点对应的时间。通过对峰值点出现的顺序,以及峰值点之间的时间差做运算,从而判断双击手势的有效性。在双击手势识别过程中,又加入了最小门限值限制(双击门限),目的是排除较远距离的误触发,即整个双击的过程中,测量值必须大于双击门限,否则一旦检测到测量值小于双击门限,则双击检测流程回到初始状态重新开始检测。
前、后手势:将各通道测量数据中最大的一个通道的值作为距离远近信息。当手从由远及近或由近及远移动的时候,接收到的红外信号强度与手的移动距离成反比。手越近则信号越强,测得的数据越大。手越远则信号越弱,测得的数据越小。
旋转手势:实施例中中左旋转、右旋转手势的识别是通过检测各个通道的峰值出现的顺序进行识别。在峰值检测过程中如检测到该通道的峰值小于旋转阈值,则旋转检测流程回到初始状态重新开始旋转检测。左旋转的峰值出现的顺序为[1、2、3、4],右旋转的峰值出现的顺序为[1、4、3、2]。配置两个匹配数组,左旋转的匹配数组为[1、2、3、4、1、2、3],右旋转的匹配数组为[1、4、3、2、1、4、3]。当检测到三个有效峰值的时候,设峰值出现的顺序为[a、b、c],那么根据峰值出现的顺序设置峰值检测数组[a、b、c、a、b]。用峰值检测数组中的任意连续三个值去和匹配数组进行匹配,如果出现匹配成功,则旋转手势识别成功,如果与左旋转匹配数组匹配成功则代表左旋转,如果与右旋转匹配数组匹配成功则代表右旋转。比如峰值出现的顺序为[4、1、3],则峰值检测数组为[4、1、3、4、1]。可以发现峰值检测数组中[3、4、1]与左旋转匹配数组中的[3、4、1]匹配成功,则[4、1、3]代表左旋转。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。