基于声波的圈舍智能设备非接触式手势控制方法研究

2022-09-14 12:18陈子毅王天本刘现涛李张本孙章彤
关键词:多普勒麦克风手势

陈子毅,王天本,刘现涛,李张本,孙章彤,胡 瑾

(1 西北农林科技大学 机械与电子工程学院,陕西 杨凌712100; 2 农业农村部 农业物联网重点实验室,陕西 杨凌712100)

畜牧业传染性疾病是一个重要的公共卫生问题。据统计,全球每年死于人畜共患传染性疾病的人数约为1 200万人,占全球传染病死亡人数的70%[1]。常见的人畜共患传染病有非洲猪瘟、SARS、禽流感等,其传播途径主要有空气飞沫传播和接触式传播。现有圈舍养殖场景中传染病预防的主要方式是消毒杀菌[2-3],但偏远地区养殖场和非大规模养殖场经常出现消毒不到位现象,多人共用设备造成的直接或间接疾病传播是接触式疾病传播的重要途径[4-5]。非接触式智能设备控制方式可有效避免接触式疾病的传播,降低疾病传播风险,成为未来圈舍设备控制的发展趋势。

语音识别[6-7]作为一种成熟的非接触式智能设备控制方式,具有使用便捷、功能丰富等显著优点,但易受周围噪音干扰,不适用于嘈杂的圈舍环境。此外,语音控制还会对睡眠状态的牲畜造成一定干扰。非接触式手势识别技术作为一种新兴的人机交互技术,不仅可以有效避免用户对设备的直接接触,而且具有不受噪音干扰及不干扰牲畜正常休息等突出优点。国内外相关研究团队针对非接触式手势识别开展了一系列研究工作。近年来,机器视觉技术已经被广泛应用于手势识别领域[8-11]。张军等[8]提出一种基于图像的手势识别方法,将手势图像中各点的曲率特征与不变矩特征相结合,通过神经网络对手势进行识别。然而,基于图像的识别方法容易受到环境光照条件的影响,难以在夜间使用。随着无线通信技术的快速普及,研究人员利用商用WiFi设备[12-15]和RFID标签[16-18]进行手势识别。基于WiFi的方法通过提取接收信号强度(received signal strength,RSS)[12,15]和信道状态信息(channel state information,CSI)[13-14]来识别手势,但此类方法对天线位置比较敏感,仅当收发天线处于特定位置时才能实现手势识别。Wang等[16]利用RFID标签阵列感知细粒度的手指运动并实现6种手势的识别。但该方法对用户执行手势时的位置要求较高,且RFID阅读器价格昂贵,难以推广使用。超声感知[19-24]是近年来一种新兴的感知方式,具有不受光线影响、不受频谱资源限制、设备成本低等特点,已被国内外研究人员应用于手势识别研究。Gupta等[19]使用电脑的内置扬声器和麦克风,通过不同手势移动时多普勒效应的差异,在无需训练情况下实现了5种手势的识别。Ai等[20]通过提取手势移动所产生的多普勒频移变化特征,并将一系列特征输入隐马尔可夫(hidden markov model,HMM)模型,实现了11种手势的识别。虽然上述手势识别方法具有较高的识别准确率,但对用户执行手势的位置要求较高,即仅当用户在一个或几个特定位置执行手势才能识别,限制了其实际应用场景。

针对上述研究中对用户手势执行位置要求高的问题,本研究设计并实现了一种可在一定范围内任意位置实时识别4种基本手势(前推、后移、左移、右移)的声波手势识别方法,在此基础上构建手势控制原型系统,以实现对圈舍照明设备及换气扇的非接触式控制;然后以手势产生的声波多普勒效应为基础,建立了手势、位置与多普勒效应之间的映射关系,利用规则和机器学习融合的方法,可在一定范围内实现与位置无关的非接触式手势识别,进而为降低接触式疾病传播风险和推进养殖业智慧化进程提供技术支持。

1 系统总体设计

本研究所述的手势识别控制系统主要包括数据采集及预处理模块、多普勒效应提取模块、动作切分模块、手势识别模块及手势控制模块5个模块。数据采集及预处理模块控制扬声器持续发送超声波,麦克风实时接收回波数据存入缓存队列,并进行带通滤波,去除噪声干扰。多普勒效应提取模块利用缓存回波的功率谱密度提取手势产生的多普勒效应。动作切分模块利用动作切分算法,对功率谱密度矩阵进行切分,仅保留所有动作发生的片段。手势识别模块对于切分出来的动作片段提出一种融合规则和机器学习的方法进行手势识别。手势控制模块通过将不同手势映射成不同的命令,控制照明设备的开关和亮度调节以及换气扇的开关和转速调节。手势识别控制系统的整体结构框图如图1所示。

图1 手势识别控制系统的整体框架Fig.1 Framework for the gesture recognition control system

2 声波多普勒效应

2.1 多普勒效应的基本原理

本研究所提出的手势识别方法基于声波的多普勒效应,即当波源与观测者相对靠近时,观测者接收到的频率增加,当波源与观测者相对远离时,观测者接收到的频率降低。执行手势时,麦克风接收回波的多普勒频移fd[24]可以表示为:

(1)

式中:fc为声波的发送频率;vs为手势移动速度;c为声波在介质中的传播速度。当手掌朝向收发设备的方向移动时,fd为正;当手掌向远离收发设备的方向移动时,fd为负。

2.2 手势引起的多普勒效应模型

如图2所示,当环境中无其他移动物体时,麦克风接收到的回波主要由手掌、手臂、躯干、静态环境反射信号和噪声组成。将发送信号设置成单频余弦信号s(t)=cos (2πfct),其中s(t)表示发送信号,t表示时间。在执行手势时,只有手掌和手臂处于运动状态,因此只有经过手掌和手臂直接或间接反射的信号带有多普勒频移,只经过躯干或静态环境反射的声波并不携带多普勒效应。而在室内环境中,静态环境和躯干的反射面积远远大于手掌和手臂的反射面积。因此,从手掌和手臂反射的带有多普勒频移信号的能量远低于来自静态环境和躯干反射的不携带多普勒频移反射信号的能量。此外,由于手掌和手臂不同部位移动速度不一致,经过不同部位反射的回波能量和多普勒频移也不一致。

红色箭头、绿色箭头、蓝色箭头、黄色箭头分别表示手掌、 手臂、躯干和静态环境反射信号,黑色箭头表示噪声 The red arrow,green arrow,blue arrow and yellow arrow respectively represens the singals reflect from palm,arm, torso and static environment,and black arrow represent noise图2 室内多径反射示意图Fig.2 Multipath reflection in indoor environment

综上,可以得到如下结论:手势产生的多普勒效应不会改变回波主频率(即发送波形的频率),仅表现为主频率两侧的一定频率范围(速度分布范围)内的不规则(不同部位反射能量不同)旁瓣。图3为执行手势时产生回波的功率谱密度。

图3 手势产生回波的功率谱密度Fig.3 Echo power spectrum density of gestures

由图3可以看出,手势产生的声波多普勒效应与经典多普勒效应存在差异,无法通过测量主频偏移的方式直接提取手势产生的多普勒效应,证实了上述结论。

执行手势时设备与用户的相对位置会对多普勒效应产生较大影响。图4给出了在不同位置执行手势时左右麦克风接收回波的时频谱。由图4可知,相同手势在不同位置可能会产生不同的多普勒效应(如手势G1,G2,G5等),不同手势在不同位置可能产生相似的多普勒效应(如手势G9和G10,G12和G13等)。

综上,如何实时提取手势产生的多普勒效应,如何克服不同位置带来的影响,是构建声波手势识别系统的核心。

图4 4种基本手势的多普勒效应(共14种情况)Fig.4 Doppler effect of four common gestures (fourteen cases)

2.3 基于功率谱密度的多普勒效应提取

由2.2节所述,手势引起的多普勒效应与经典多普勒效应之间存在差异,无法通过测量主频偏移的方式提取手势引起的多普勒效应。因此,本研究采用功率谱密度(power spectrum density,PSD)向量刻画回波的多普勒效应。回波功率谱密度向量可通过Welch[25]的方法进行估计。具体地,回波r(n)的功率谱密度向量P(ωk)估计公式如下:

(2)

2.4 动作切分

由于室内存在大量的声学多径反射,所有的移动事件(行走、窗帘飘动、手势)都会在麦克风接收回波中引入多普勒频移。因此,必须首先识别所有移动事件,然后从这些移动事件中识别手势。具体地,首先记录无移动事件发生时一段时间内的回波数据,计算回波平均功率谱密度向量,将其作为基准功率谱密度向量。当环境无移动事件发生,实时功率谱密度向量与基准功率谱密度向量在各个频率点的幅值十分接近(如图5-(a)),两者的差值向量在0附近波动。当有移动事件发生时,实时功率谱密度向量的主峰值附近出现较高的旁瓣(如图5-(b)),两者的差值向量中出现大量远大于0的元素。

综上,实时功率谱密度向量与基准功率谱密度向量差值1范数的大小可以反映有无多普勒效应,即有无移动事件发生。当向量差值1范数大于给定阈值时说明有移动事件发生,反之则说明无移动事件发生。实际应用中,为避免系统抖动引起误判,当连续3次出现向量差值1范数大于给定阈值,则判定有移动事件发生,开始记录功率谱密度向量。当连续3次出现向量差值1范数小于给定阈值,则判定移动事件结束,停止记录功率谱密度向量。由此可以切分出每个移动事件发生期间所有功率谱密度向量。为方便描述,将移动事件发生期间功率谱密度向量随时间累积形成的矩阵称之为功率谱密度矩阵。

(a).无移动事件发生;(b).有移动事件发生

3 手势识别及控制

利用机器学习算法训练手势识别模型需要大量离线数据。为了减少对离线数据的依赖,本研究提出规则与机器学习相结合的方法进行手势识别。首先,分析在不同位置执行不同手势时多普勒效应随时间的变化规律。然后,对于多普勒效应变化规律唯一的手势,构造基于规则的映射函数;对于多普勒效应变化规律相似的手势,利用奇异值分解算法提取特征,利用机器学习算法进行识别。

3.1 不同手势多普勒频移分析

通过分析靠近或远离左右2个麦克风的手势过程,结合图4可得到在不同位置执行不同手势时左右麦克风接收回波的多普勒频移正负性序列变化规律,如表1所示。

表1 不同手势过程左右麦克风多普勒频移的正负性序列Table 1 Positive and negative Doppler shift sequences of left and right microphone with different gestures

由表1可知,执行手势G1~G4过程中,左右2个麦克风接收到的回波中携带的多普勒效应变化规律具有唯一性,可直接识别。G5和G6手势多普勒效应变化规律一致,但与其他手势不同。图6给出了G5和G6手势过程功率谱密度向量的时序序列(共4帧:F1~F4)。如图6-(a)中F1~F2所示,在执行G5手势过程中,手掌越过2个麦克风中间之前,距离右麦克风较近,此时右麦克风接收回波的能量大于左麦克风;如图6-(a)F3~F4所示,当手掌越过2个麦克风中间之后,手掌距离左麦克风较近,此时左麦克风接收到回波的能量大于右麦克风。执行手势G6时的现象与手势G5恰好相反。因此,可以通过左右2个麦克风多普勒频移的正负性序列,以及左右2个麦克风接收回波能量差值的变化过程识别G5和G6手势。其余手势产生的多普勒效应相似,无法简单通过规则识别。对于不能通过规则识别的手势,利用机器学习构建模型进行识别。

(a)G5手势功率谱密度向量的时序序列(共4帧:F1~F4)

(b)G6手势功率谱密度向量的时序序列(共4帧:F1~F4)

3.2 基于规则的手势识别

基于上述分析,通过构造以下3个特征来识别手势G1~G6,即左麦克风接收回波多普勒频移的正负性序列DSSl、右麦克风接收回波多普勒频移的正负性序列DSSr和左右麦克风接收回波能量差的正负性序列PDS。为了描述以上3个特征,首先定义某一时刻左麦克风接收回波多普勒频移的正负性DSl、右麦克风接收回波多普勒频移的正负性DSr和左右麦克风接收回波能量差PD为:

DSl=sign(∑kPlg-∑kPll),

DSr=sign(∑kPrg-∑kPrl),

PD=sign(∑2k+1Pl-∑2k+1Pr)。

式中:Plg和Pll分别为左麦克风接收回波中大于和小于主频的功率谱密度向量;Prg和Prl分别为右麦克风接收回波中大于和小于主频的功率谱密度向量;Pl和Pr分别为左右麦克风接收回波的功率谱密度向量。

DSl、DSr、PD按时间累积,则多普勒频移特征可表示为:

DSSl=(DSl(t1),DSl(t2),…,DSl(tm)),DSSr=(DSr(t1),DSr(t2),…,DSr(tm)),PDS=(PD(t1),PD(t2),…,PD(tm))。

式中:DSl(tm)和DSr(tm)分别表示左右麦克风第m帧接收回波多普勒频移的正负性;PD(tm)表示左右麦克风第m帧接收回波能量差的正负性。根据上述特征,构造了手势类型、位置与多普勒效应的映射关系如表2所示。 由表2可知,可以由3个特征唯一确定G1~G6共6种情况下的手势,对于无法识别的另外8种手势G7~G14,采用机器学习算法进行识别。

表2 手势类型、位置与多普勒效应的映射关系Table 2 Mapping functions between gesture,location and Doppler shift

3.3 基于机器学习的手势识别

对于多普勒效应变化相似的手势,利用机器学习算法构建手势识别模型进行识别。由于手势执行速度和持续时间不同,对应的功率谱密度矩阵时间维度的长度不同,无法直接将功率谱密度矩阵作为输入构建识别模型。由2.3节可知,功率谱密度矩阵频率维度为定值kH-k1。采用奇异值分解(singular value decomposition,SVD)法[26]对功率谱密度矩阵沿频率维度进行分解并提取特征。

奇异值和特征值类似,在奇异值矩阵中从大到小排列,并且奇异值的衰减速度特别快,很多情况下,前10%甚至1%的奇异值之和占全部奇异值之和的90%以上。本研究选取前3个奇异值对应的特征向量,将这3个特征向量作为参数分别输入支持向量机、BP神经网络、K近邻分类器,选取多种参数进行比较,择优选择算法实现手势识别。

3.4 手势控制

针对具体的应用场景,将不同的手势映射为不同的命令控制执行机构即可实现手势控制。对于较为简单的应用场景,可以直接将4种手势直接映射为4种不同的命令实现手势控制。对于较为复杂的场景,可将4种手势两两组合后映射为12种不同的命令实现较为复杂的手势控制。本研究以圈舍中照明设备和换气扇控制为例,得到手势和控制动作的映射关系如表3所示。

表3 照明设备及换气扇对手势与控制动作的映射关系Table 3 Mapping gestures to control actions on light equipment and ventilator

4 试验验证

4.1 试验运行环境

如图7所示,本研究提出的手势识别系统由2套商用的扬声器(SAMSON MeteorMic,16 bit,48 kHz)和麦克风组成(JBLJembe,8Watt,80 dB),2个麦克风通过USB接口连接到笔记本电脑(MSI Intel(R) Core(TM) i7-9750H 2.60 GHz,16.0 GB RAM),2个扬声器分别通过外置声卡(UGREEN声卡)和3.5 mm音频接口与笔记本电脑相连,左右扬声器发送声波频率分别为19和20 kHz。手势识别算法在Matlab中实现并实时运行,手势识别系统的有效识别范围如图8所示,其中1~6分别表示位置1至位置6共6个位置。手势控制硬件平台由Arduino开发板、三色灯模块及L9110H风扇模块组成。

图7 手势识别系统的声波收发设备 图8 手势识别系统的感知范围Fig.7 Acoustic transceiver of gesture recognition system Fig.8 Perception range of gesture recognition system

4.2 手势识别性能测试

随机招募15名测试者,首先测试系统对室内环境中常见干扰的误报率;然后对系统感知范围内不同位置、不同手势速度、不同手势幅度进行测试,分别使用支持向量机、BP神经网络、K最邻近算法3种机器学习算法,选择不同的参数进行比较;选取识别准确率最高的算法及参数构建最终的手势识别模型。

4.2.1 常见干扰下的系统评估 在测试系统对室内各种常见干扰误报时,具体的干扰项包括走动、打开或关闭门窗、物品从不同高度掉落、说话或播放音乐以及窗帘飘动等,试验结果如表4所示。

表4 常见干扰动作下手势识别系统的性能评估Table 4 Evaluation of gesture recognition system with common interferences

由表4可知,除说话或播放音乐未出现误报外,其他干扰均会出现少量误报,说明说话或播放音乐为纯噪音干扰,非移动事件不会产生多普勒效应,因此系统不会产生误报。而走动、打开或关闭门窗、物品掉落和窗帘飘动均为移动事件,会引入多普勒效应。虽然通常情况下上述移动干扰产生的多普勒效应与手势移动差异较大,但仍有部分移动干扰可能产生与手势相似的多普勒效应,从而产生误报。由试验结果还可以看出,最高误报率为2.50%,证明系统对室内常见干扰具有较好的鲁棒性。

4.2.2 不同位置的手势识别结果 为测试系统对不同位置手势的识别准确率,随机招募4位测试者分别在感知范围内6个位置(图8)分别执行4种手势各100次,采用支持向量机、BP神经网络、K最邻近算法3种机器学习算法进行识别,调整参数并比较识别准确率。对于支持向量机算法,分别采用线性核函数和径向基核函数进行建模;对于BP神经网络算法,将隐层神经元个数n设置为30和50;对于K最近邻算法,将最近邻数k分别设置为3和5。3种机器学习算法的平均识别准确率如表5所示。从表5可以看出,在位置1,2,3处的手势识别准确率较高且在同一水平,而在位置4,5,6处的识别准确率较低。这是由于位置1,2,3距离设备较近,多普勒效应的特征较为明显,识别准确率较高,而位置4,5,6距离设备较远,多普勒频移特征较弱,识别准确率稍低。对比不同算法可以看出,线性支持向量机算法构建的识别模型在6个位置的手势识别准确率最高,识别准确率均在89%以上。

表5 基于不同算法的6个不同位置手势识别准确率的比较Table 5 Gesture recognition accuracy of different locations base on different algorithms

4.2.3 不同速度的手势识别结果 不同手势执行速度会导致强弱不同的多普勒效应。为测试系统对不同速度手势过程的识别率,随机招募4位测试者在声波覆盖范围内的任意位置(图8),以快速、中速、慢速分别执行每种手势100次,采用如4.2.2节试验中的机器学习算法及参数进行识别,并记录测试结果。在不同速度下各种手势的平均识别准确率如表6所示。从表6可知,当执行快速和中速手势时,手势识别准确率较高,而慢速手势的识别准确率相对较低。由公式(1)可得,手势移动缓慢时,所引起的多普勒效应较弱,对动作切分和特征提取造成影响,导致手势识别准确率较低。对比3种机器学习算法可以看出,线性支持向量机构建的手势识别模型识别准确率最高,对快、中、慢3种手势的识别准确率均在88%以上。

表6 基于不同算法的不同速度手势识别准确率的比较Table 6 Gesture recognition accuracy of different speeds base on different algorithms

4.2.4 不同幅度的手势识别结果 除手势速度外,不同的手势幅度也会产生强弱不同的多普勒效应。为验证系统对不同幅度手势的识别准确率,4位测试者在声波覆盖范围内的任意位置(图8)分别以大幅度、中幅度、小幅度执行每种手势100次,采用4.2.2节试验中的机器学习算法和参数进行识别,并记录测试结果。系统对不同幅度手势的平均识别准确率如表7所示。

表7 基于不同算法的不同幅度手势识别准确率的比较Table 7 Gesture recognition accuracy of different movement ranges base on different algorithms

从表7可以看到,以大幅度和中幅度执行手势时,手势识别准确率较高,而以小幅度执行手势的识别准确率较低。这是由于以大幅度或中幅度执行手势时,手势执行的时间相对较长,多普勒效应变化过程更清晰。对比3种机器学习算法可以看出,线性支持向量机算法准确率最高,均在87%以上。

4.2.5 不同测试者的手势识别结果 在上述试验中,线性支持向量机算法构建的手势识别模型准确率较高。本试验采用线性支持向量机构建手势识别模型对不同测试者执行手势的准确率进行评估。15位测试者在感知范围内任意位置执行每种手势50次,系统识别准确率如图9所示。从图9可以看出,该系统对不同测试者的识别准确率均能达到较高水平,且平均识别准确率为91.50%,能够满足实际应用场景的需求。

图9 基于线性支持向量机算法的15位测试者的手势识别准确率Fig.9 Gesture recognition accuracy of fifteen subjects base on linear SVM classifier

4.3 手势控制应用实例

手势控制硬件平台主要包括Arduino开发板、三色灯模块和L9110H风扇模块。手势识别系统识别到手势后通过串口将指令发送到Arduino开发板。照明设备控制程序以及换气扇控制程序在Arduino开发板上运行,控制照明设备和换气扇按照不同的指令执行不同的动作。

对于照明设备,执行前推手势时,开启照明设备;执行右移手势时,亮灯数-1;执行左移手势时,亮灯数+1;执行后移手势时,关闭照明设备。对于换气扇,执行前推手势时,开启换气设备;执行右移手势时,换气速度减慢;执行左移手势时,换气速度加快;执行后移手势时,关闭换气扇(手势和动作的具体映射关系见表3)。经过反复试验,系统运行稳定且符合预期。照明设备和换气扇可按照对应手势执行规定动作,演示视频链接为:https://tinyurl.com/3j34jkeu。

5 讨论与结论

现有的手势识别方法主要包括基于机器视觉的方法[8-11]、基于商用WiFi的方法[12-15]、基于RFID标签的方法[16-18]以及基于声波的方法[19-22]。然而基于机器视觉的方法容易受到环境光照条件的影响,难以在夜间使用。基于商用WiFi的方法克服了光照条件的影响,但此类方法对天线摆放位置要求较高,仅当收发天线处于特定位置才能实现手势识别。基于RFID标签的方法同样存在对设备摆放位置要求较高的问题,且RFID阅读器价格昂贵,难以推广使用。相比于上述方法,基于声波的方法具有不受光线影响、不受频谱资源限制、设备成本低等特点,但现有方法同样存在对用户执行手势的位置要求较高的问题,限制了其实际应用场景。

本研究提出了一种基于声波的手势识别方法,该方法通过规则与机器学习结合的方式实时分析手势执行过程中产生的多普勒效应,可实现在感知范围内不同位置、不同速度和不同幅度手势过程的准确识别,平均识别准确率可达91.50%,且可成功应用于照明设备和换气扇控制。

猜你喜欢
多普勒麦克风手势
多路径效应对GPS多普勒测速的影响
挑战!神秘手势
胜利的手势
麦克风的艺术
讯飞输入法也能离线语音输入
让重力控制麦克风
麦克风
《多普勒效应》的教学设计
认手势说数字