基于超声波的真实场景手势识别算法

2020-04-24 03:07周飞飞李翔宇
计算机工程与设计 2020年3期
关键词:杂波手势脉冲

周飞飞,李翔宇

(清华大学 微电子学研究所,北京 100084)

0 引 言

基于超声波或毫米波雷达探测技术,可以实现对于精细手势的识别。但是,现有文献对于系统在实际场景中的手势自动检测问题和杂波问题都没有考虑。手势检测用于探测是否存在操作手势,并在必要时启动手势识别功能。谷歌Soli项目[1,2]通过连续发射,连续识别的方式避免了手势检测的步骤,但是提取出的手势的有效信号片段存在不完整或者冗余的情况,会降低手势识别的精度。而通过人工手动方式开启和关闭手势识别流程[3]会导致每次采集的手势数据长度不同,不利于识别算法处理,同时会降低系统的实用性。杂波来自工作环境中的非手物体,如人体其它部位、附近的家具、墙壁等,现有的文献中,没有对其做单独处理,只依靠分类器的鲁棒性降低杂波的影响[3,4],因此,当运用于真实的复杂环境中时,手势识别精度会显著降低。

针对上述问题,本文提出了一套基于相参脉冲串、RDM(range doppler map)[5,6]图特征和随机森林分类器的手势识别算法,其中,包括了手势检测和杂波滤除算法。手势检测算法基于动态能量阈值,能够适应真实环境变化,当检测到手势时,自动触发手势识别流程。而杂波滤除算法通过目标分割的方式,滤除RDM图中的杂波,只提取出有效目标的特征用于识别,提高了系统在复杂环境中的识别率。

1 整体流程设计

本文的手势识别系统基于40 kHz超声波信号,超声波收发器采用村田制作所的MA40S4R(T)。发射信号体制采用相参脉冲串信号,通过信号处理,得到RDM图,进而获得目标的距离和速度信息。为了识别三维运动,本文使用了一个发射器,3个接收器。系统直接对原始回波信号进行采样的全数字化信号处理,信号解调和正交化等处理均在数字域中完成。

处理流程如图1所示,当没有手势进入检测区域时,系统一直处于手势检测阶段,手势检测算法只基于能量值的变化,不需要经过复杂的信号处理,具有低功耗、实时性高的优点。只有当检测到手势出现时才切换到手势识别模式,完成一次手势识别流程后,系统又自动重新回到手势检测阶段。手势检测和手势识别两种模式相互切换的方式,提高了用户体验,降低了系统的整体功耗。

图1 手势识别处理流程

2 手势检测算法设计

本文采用了一种基于动态能量阈值的手势检测算法代替传统的恒虚警率(CFAR)检测方式,这样可以不需要解调直接进行手势检测,实时性更高。算法流程见表1。系统通过不断发射和接收单脉冲信号,根据其能量值判断是否有手进入检测区域。单脉冲信号采用脉冲宽度为0.1 ms的40 kHz超声波信号。

在实际的应用中,系统所处的环境在不断发生变化,所以每完成一次手势识别流程后,会回到初始化的阶段,重新采集背景回波。为了提高检测算法的鲁棒性,系统初始化时需要采集L个脉冲回波信号作为背景数据,手势检测直接在未经解调的原始回波信号上进行,未经解调的信号包含正负值,所以将每个回波能量的最大值(正值的最大值和负值的最小值)分别存入长度为L的列表An1和An2中。而在检测阶段时,如果经过判断,当前脉冲回波信号只有背景回波,则会更新An1和An2,即删除An1和An2的第一个元素,并将最新的背景回波数据的最值加入到列表的末尾。保证了An1和An2中存放的是最新的L个背景回波的数据,系统中L设为100。

表1 手势检测算法伪代码

(1)

实际上,特征值p1~p4统计了脉冲回波中能量值高于背景回波的采样点个数,以及高于背景回波这部分采样点能量的平均值。将每个脉冲回波的特征值p1~p4分别存入列表Ap1~Ap4中。与An1和An2类似,列表Ap1~Ap4也是实时更新。动态阈值参数p1*~p4*分别取列表Ap1~Ap4中的最大值,如式(2)所示,动态阈值参数描述了能量值最高的背景回波信号的特征

(2)

在采集并处理完背景数据之后,系统会逐一判断最新接收到的每个单脉冲的回波,根据式(1)计算待测脉冲的特征值p′1~p′4, 并根据式(3),计算当前的状态status,其中α为虚警率调节参数,本文中设为1.1。如果status为0,表示没有检测到手势,当前为背景回波数据,更新列表Ap1~Ap4,An1,An2和动态阈值参数p1*~p4*

(3)

需要连续10个脉冲回波的status都为1,才判断为有手势产生。这样,可以减小因为背景回波的随机波动带来的虚警率。

手势检测算法能够动态更新能量阈值,可以很好地适应环境的变化,通过增加连续检出条件提高检测的鲁棒性。

3 信号处理

相比于连续波信号[7,8],单脉冲信号[9],相参脉冲串信号克服了连续波信号无法测距、单脉冲信号无法同时保证高距离分辨率和速度分辨率的缺点。如图2所示,脉冲宽度Tp为0.1 ms,脉冲重复周期Tr为1.5 ms,取64个Tr为一帧,根据一帧的信号做FFT(fast fourier transformation),得到RDM图,与文献中直接切分方式[10]不同的是,我们使用滑动窗口的方式切分数据,提高了系统的帧率,滑动窗口大小取32个Tr,那么,1 s的手势可以划分为19帧。系统的距离分辨率和速度分辨率分别为

(4)

(5)

其中,u为声速,λ为超声波的波长,N为一帧数据包含的脉冲重复周期个数。

图2 信号处理方案

3.1 RDM图的生成

每个手势的回波信号长度为1 s,将采集到的回波信号解调后,划分为多帧,对每一帧信号做FFT,得到每一帧的RDM图。

一帧的信号包含64个脉冲重复周期Tr的数据,将64个Tr信号的值排列成64行,如图3所示,每行表示一个脉冲重复周期内信号的值,然后针对每一列,即不同脉冲周期同一位置的值做FFT,就可以得到这一帧手势数据的RDM图,它反映了回波能量在不同距离和多普勒频率(径向速度)上的分布,RDM图中,距离维和速度维中的最小单位分别定义为距离单元和速度单元。与FMCW(frequency modulated continuous wave)方式不同[4,5],相参脉冲串信号只需经过1-D FFT就能获得RDM图。

图3 RDM图生成过程

3.2 杂波滤除

超声波回波信号中包含有外界环境中的不感兴趣的目标的散射波,包括静止和运动的,这一部分回波会对手势识别造成干扰。

对于静止物体杂波,因为使用了手势检测模块,手一旦进入检测区域,立刻采集回波信号,那么手势的第一帧数据一定是运动的,即手势的运动信息出现在第一帧RDM图中频率非0的部分,那么第一帧RDM图中0频(速度为0)部分的能量为系统当前的静态杂波,每帧数据都减去静态杂波的能量,以此来抑制静态杂波分量。

对于运动物体的杂波,则使用目标分割(segmentation)的方式来滤除——通过算法找到感兴趣的前景目标,只保留有效目标的信息。在近距离的手势识别应用中,手势一般在距离装置5 cm到25 cm内完成,在这段距离内,假设没有大反射面的其它运动目标,这在实际应用场景中是合理的。那么,在滤除静止杂波分量以后,手作为距离装置最近的运动目标,其反射的能量远高于背景。在运动的过程中,手的同一个部位在径向上的距离和速度都是连续分布的,所以在RDM图中会呈现出一个高能量值的跨越多个距离单元和速度单元的连通域(亮斑)。对于手的不同部位,如果速度和距离都相近,那么其连通域是连的,如果速度或者距离相差比较大,则会形成分立的几个连通域。这几个分立的能量值较高的连通域反映了手的各个部位的运动,是我们关心的目标,而RDM图中的其它部分的能量是由杂波引起的,需要滤除。本文中采用目标分割算法,能够快速找到RDM图中表示手势运动的部分,目标分割算法如图4所示。

图4 目标检测算法流程

目标分割算法主要是通过在RDM图中找到能量较大的几个分立的连通域的方法来实现,具体算法是,首先找到当前RDM图(减掉静止杂波,将已找到的目标处的能量值置为零后)中的最高能量值E所在的位置I,作为当前目标中的第一个点,然后,通过广度优先搜索(BFS)迭代搜索目标点的相邻位置,找到以I为中心的一个连通域,满足连通域中每个点的能量值都大于等于β2E, 把整个连通域作为一个目标。然后把RDM图中已找到的目标区域置零,重复前面算法,继续寻找下一个目标,直到当前目标能量的最大值小于β1Emax, 这样,就找到了所有的前景目标,β1和β2均小于1。最后,去除尺寸(距离跨度)太小的目标,保留主要目标。得到所有目标的像素坐标后,只保留RDM图中目标处的值,非目标处都置为0。

4 特征提取与分类算法设计

4.1 特征提取

从一帧回波信号中提取的特征主要分为3类[6]:散射中心特征,RDM图的低维描述特征,多通道交叉特征。

(1)散射中心特征:

RDM图中能量最大值的点对应的速度vc,距离rc,加速度ac,以及反射能量大小ρc。其中,加速度ac为相邻两帧vc的差。

(2)RDM图低维描述特征:

(3)多通道交叉特征:

对于一帧的某一通道数据,散射中心特征共有4个,RDM图低维描述特征共有6个,这两类特征都需要在3个通道上分别计算,所以共有 (6+4)×3=30个特征,再加上15个交叉特征,对于一帧数据,共提取出45个特征。

除上述针对一帧数据提取的特征以外,本文还提取了整个手势序列的统计特征,即针对上述的45维特征中某一维特征,计算其在19帧数据中的均值、标准差、均方根、最大值和最小值。所以,共有5×45=225统计特征,统计特征可以很好地描述每一维特征的变化趋势。将每一帧RDM图的特征拼接起来,加上手势序列的统计特征,共有45×19+225=1080个特征。

4.2 分类算法设计

为满足实时性的要求,本文使用了随机森林用于手势分类。一共使用了1080维特征,随机森林能够自动对特征进行筛选;同时,通过随机选取训练样本和特征子集,随机森林可以有效防止过拟合;在我们的系统中,对实时性要求很高,随机森林中各个子树间相互独立,可并行化,提高速度。

5 实验结果与分析

5.1 实验系统硬件及数据集介绍

我们搭建了一个实验用的原型系统,包含基于FPGA搭建的嵌入式信号采集系统,超声波前端模块和负责数据处理与识别算法的PC端程序3个部分[10]。信号采集系统搭建在Digilent公司的Nexys4开发板上,使用FPGA内部的XADC采集数据,存到片外RAM中,然后再通过以太网口将数据发送到PC端。

本文定义了7种不同的手势,包括左移、右移、远离、靠近、五指张开、五指闭合和招手动作,如图5所示。

图5 手势

左移和右移用于研究系统的横向分辨能力,靠近和远离用于观察系统径向分辨能力,五指张开和五指闭合用于研究系统对于包含手指运动的精细手势的识别能力,而招手需要连续完成手掌闭合、张开、再闭合的动作,用于观察系统对于往复运动的识别效果。

手势在距离装置5 cm到25 cm内完成,共采集了3名实验人员的手势数据,每个人每种手势采集100个数据。将其中80%的数据用于训练,20%的数据用于测试。

5.2 结果与分析

为了降低数据集切分对于模型评估的影响,我们使用了5折交叉验证(5-fold cross validation),并取其平均值。系统对于7种不同手势的识别率为97.9%,其混淆矩阵见表2。

表2 7种手势的识别结果

为了评估杂波滤除在复杂环境下的作用,引入了运转的电风扇作为干扰因素,如图6所示,电风扇距离装置约15 cm,在实验过程中,由于风扇的左右摆动和扇叶的转动,会引入大量杂波,在这种实验条件下,每种手势采集100个数据,用于测试。

图6 实验装置

对靠近手势的RDM图分析,图7表示在没有风扇干扰时得到的RDM图,但是,如果引入了电风扇作为干扰,相同手势的RDM图如图8(a)所示。可以看到,因为风扇基座静止不动,和图7相比,图8(a)中有比较明显的静止杂波,同时,因为风扇整体在左右摆动,风扇的扇叶也在转动,在图8(a)中多出了运动杂波分量。经过算法滤除杂波后,只保留了有效目标的信息,如图8(b)所示,可以看到,静止杂波分量和运动杂波分量都得到了很好的滤除,有效目标的速度为正,表示正在径向靠近装置。

图7 无干扰下靠近手势的RDM

图8 强干扰下杂波滤除效果

为评估杂波滤除的作用,训练数据使用在正常环境中采集的手势数据,而测试数据使用有电风扇干扰时采集到的数据。如果算法中使用了杂波滤除,测得准确率为96.4%,如果不使用杂波滤除方案,准确率仅为90.7%。可以看到,虽然训练数据是在正常的环境中采集的,但是因为使用了杂波滤除方案,在变化后的复杂环境中,依然能够保持很高的准确率;而如果不滤除杂波,当系统环境变化时,识别率明显下降。

6 结束语

本文提出了一套基于相参脉冲串、RDM图特征和随机森林分类器的手势识别算法,其中包括手势检测和杂波滤除算法,对7种不同手势的识别率为97.9%。基于动态能量阈值的手势检测算法使得系统能够在手势检测、手势识别两种模式间自动切换,相比于连续识别和人工触发这两种方式,降低了系统功耗,提高了用户体验。同时,实验结果表明,相比于不处理杂波的方法,本文通过基于目标分割的杂波滤除算法,只提取出有效目标的特征用于识别,在存在干扰的真实应用环境下手势识别率提升了5.7%。

猜你喜欢
杂波手势脉冲
脉冲离散Ginzburg-Landau方程组的统计解及其极限行为
STAR2000型空管一次雷达杂波抑制浅析
上下解反向的脉冲微分包含解的存在性
挑战!神秘手势
V字手势的由来
黄芩苷脉冲片的制备
胜利的手势
密集杂波环境下确定性退火DA-HPMHT跟踪算法
相关广义复合分布雷达海杂波仿真
微波雷达海杂波混沌特性分析