程 康,叶 宁,黄海平,王汝传
(南京邮电大学 计算机学院,南京 210023)
随着计算机科学技术的飞速发展,人们开始探讨 人机共生的可能性,以此提高人类的生活质量和工作效率.手势控制技术[1]使人与计算机的交互变得更简单、自然,用户可以通过适当的手势来控制周围的机器,不再局限于键盘和鼠标输入、手柄操作,也不仅限于触摸屏.
目前,手势控制的方式主要分为视觉、传感器和无线射频三大类.基于视觉的手势控制技术通过分析摄像头捕获到的图像序列来识别用户静态或动态手势,最后利用内部硬件集成实现系统交互[2,3].该方法不足之处在于图像数据量较大,同时基于可见光的识别存在光照不稳定、手势对象彼此遮挡等一系列干扰问题.基于运动传感器的手势控制技术利用传感器采集手势动作数据并提取其关键特征来实现手势识别与控制[4].该方法存在功耗和便携性问题.由于需要额外供电,部分传感器采用有线连接,不便于某些空间复杂的交互场景.而无线传感器需携带电池,其电量受限且尺寸不便于佩戴.基于WiFi的手势控制技术[5]中需要使用特制的硬件设备进行无线信号的处理,其价格昂贵,不利于普及到日常生活.
本文研究的是基于无线射频的手势控制技术,通过提取RFID反向散射通信中标签反射信号的关键特征,构造手势识别模型,最后利用无线蓝牙与机器人之间的串口通信实现对机器人的手势控制.
无源RFID标签无需携带能进行内部供电的电池,而是由RFID阅读器通过天线传输的电磁能量供电.图1给出RFID读写器和无源标签之间的无线电波传播的概念图.读写器中的电流通过天线辐射出电磁波,并形成变化的电磁场,接收端标签内部线感应到变化的电磁场,从而在其线圈内部产生电压.若标签天线通过某种负载连通,就会产生感应电流.另外,标签内部芯片调制后辐射的电磁波能返回到读写器的天线中,并产生能被识别的信号,称为反向散射信号.读写器能够通过识别标签的反向散射信号来获取必要信息,这就是反向散射通信.
对于载波频率为f(Hz)的电磁波,其频率与波长的关系为其中c是波速,在空气中的传播大小约等于光速(3×108m/s).如图1所示,信号的传输距离为2R.除了距离上的射频相位偏移之外,读写器的发射电路、标签的反射特性以及读写器的接收器电路都将带来一些额外的相位偏移,分别记为则总的相位偏移可以被表示为:
图1 RFID反向散射通信机制
本文采用动态手势识别方案实现用户与机器人的交互应用.一旦用户在天线读取范围内做出动态手势,系统就通过分割提取出标签信号的相位特征段,然后利用DTW算法和kNN算法对时序的特征分段进行手势归类,从而识别用户的手势.最后在此基础上利用蓝牙设备与机器人进行串口通信,机器人在接收串口数据指令后执行相应的动作.图2为基于RFID反向散射通信的机器人手势控制系统原理图.
2.1.1 相位周期性消除
由上述可知,读写器读取到的初始相位是周期性函数,其会在每个传输循环节点跳变,我们称之为相位突变.如图3(a)所示,当相位值减小到0时,它将跳变为,这种相位突变严重影响系统对标签位置变化特征的判断.另一方面,观察到RFID读写器的读取速率极快,导致两次连续采样点标签位移距离d很小.根据本系统中标签的运动速度,可以假设由三角形约束得到是读写器天线对标签两次连续读取的距离之差.再结合公式(1)可以计算出两次连续相位值之差的约束关系:
由于k是整数,根据公式(2)进一步可以得到
图2 基于RFID反向散射通信的机器人手势控制系统原理图
图3 相位周期性消除前后的数据流
2.1.2 平滑处理
由于固有的电路噪声的影响,即使当标签静止的情况下,测量到的相位值也会在某固定值上下随机波动.为了减小随机波动对控制系统的影响,需要分析这种随机性并采用针对性的滤波手段.我们随机采集40个样本数据并将其与标准正态分布作比较,画出两者对比的QQ图.如图4所示,QQ图上点的线性特征验证了样本数据是服从正态分布的.因此,本文针对这种高斯噪声,利用窗口大小为10的滑动滤波器对采集到相位值进行平滑处理.图5给出了平滑处理前后的相位流对比,可见噪声得到了较好的抑制,同时减小了之后数据分割与匹配的误差.
一旦获得处理后的相位流,我们需要提取有利于本系统手势识别的数据特征.难点主要来自两个方面:首先,数据流不断快速更新,这给确定每个手势的开始和结束时间带来了较大的难度.另一方面,手势的数据特征容易受到不适当的操作以及设备部署的影响从而表现的不稳定.本小节主要介绍了如何进行精确高效的手势分割,并建立完备的手势特征训练集提高识别的准确度.
图4 样本数据与标准正态分布的QQ图
图5 平滑处理前后的数据流
2.2.1 基于相对熵的手势分割
每个动态手势对应的相位流区间会出现不同的数据波动,因此如何分割出该区间是手势特征提取的关键.本文采用相对熵[6]的思想,通过比较不同数据窗口的概率分布差异分别计算出相位波动的起始和终止点.记系统相位数据流为其中N代表读写器实时读取次数.算法流程如下: 将每w个连续采集的数据分组整合到固定窗口中,窗口尺寸设置为w; 根据窗口内各相位值的大小进行数据再分区,并在此基础上计算窗口内相位数据的离散概率分布函数; 然后利用相对熵方法比较相邻窗口内数据的概率分布差异,假设两相邻窗口和,对应离散概率分布函数分别为P和Q,则P对Q的相对熵计算公式如下:
DKL(P∥Q)表示当用概率分布Q来拟合真实分布P时产生的信息损耗,其值可以衡量两个概率分布的相似度.
根据吉布斯不等式[7],可以证明DKL(P∥Q)的非负性,即DKL(P∥Q)≥0.因此将DKL(P∥Q)与给定的阈值比较,有以下两种情况:
如果DKL(P∥Q)的值小于给定的阈值,表示两相邻窗口和都处于数据平稳采样区间.相反,如果DKL(P∥Q)的值大于等于给定阈值,则表示两相邻窗口之间有一个或两个都在数据波动采样区间.
最后通过遍历所有符合DKL(P∥Q)≥ρ的相邻窗口,确定数据波动区间的边界采样序号,提取动态手势对应数据特征.
2.2.2 手势指纹库建立
由于个体差异性,用户执行手势时的数据特征也会存在出入.因此,本文通过采集n个志愿者的手势特征建立完备的手势指纹库,从而减小个体差异对识别准确度的影响.志愿者在指定手势下做出相应动作,系统则立即开始对相位流进行数据预处理和相应手势特征提取.
为了确保手势训练的可靠性,使用离群值检测[8]的方法从获取的手势数据集中选择一些代表性样本.主要思想是基于对象(点或向量)接近的概念,其反映了向量与其他候选向量的接近程度.也就是说,矢量的接近程度越高,异常值的可能性就越大.假设手势j存在n个数据分段对于每个数据分段,计算它与剩余n–1个数据分段的DTW距离(在2.4节提及)得出接近程度; 分别计算手势j对应的n个分段,得出前个较小接近程度的数据段,并记为其中表示待识别手势的索引号.
由于RFID相位数据的幅值依赖于标签初始的位置,在系统的实际部署中会因为操作误差导致各数据段的幅值差异.比如确定标签初始位置后,相同手势特征数据段会呈现不同的空间性,但其波形变化模式是相同的.因此,在应用DTW算法之前将时间序列的数据段归一化处理到相同的范围值能够有效地减小匹配误差.另外,全局标准化方法用于处理具有不同范围值的传感器数据,而本系统中数据段相对独立,因此采用局部标准化单独针对每个模板.具体处理方法如下: 对于一维时间序列或多维时间序列的分量,归一化处理用下列公式表示:
在对手势特征数据的提取与归一化处理后,系统开始进入手势识别模块,其难点在于如何准确得到当前手势与指定训练集的匹配得分.由于用户个体的差异性、脆弱的反向散射链路以及多径效应的影响,各数据呈现幅度与长度不一的情况,如图6所示.为了解决这个问题,本文利用DTW算法计算两个数据分段之间的距离作为匹配得分.
图6 不同用户执行手势4得到的数据分段
DTW是一个时间序列对齐算法,最早应用于孤立词语音识别.它旨在通过迭代扭曲时间轴来对齐两个特征序列,直到找到两个序列之间的最佳匹配.假设两个离散时间序列记为成对距离矩阵,其中的欧氏距离.我们将序列A的点分配给序列B的点以获得一条规整路径(warping path):则序列A和B之间的规整路径v的总花费可以用以下公式计算:
在所有可能的规整路径中,本文通过动态规划算法和附加约束[9]得到具有最小总成本的最佳对齐路径.则序列A和B之间的DTW距离DTW(A,B)可由最佳对齐路径的总花费获得,即:
2.5.1 硬件结构与配置
(1) 控制模块: 四足机器人装配12个数字双轴舵机,采用LSC-20舵机控制器实现高精度、快响应的舵机控制.另外,使用7.4 v锂电池供电,每个舵机接口都有过流保护.
(2) 蓝牙模块: 采用蓝牙4.0版本,遵循LSC系列控制板通信协议,波特率设置为9600 bps,工作频率为2.4 GHz,工作范围10 m内.
2.5.2 手势指令匹配
本文在实验部署中实现了6种动态手势,图7给出了机器人手势指令匹配的概图.其中箭头表示手掌正对读写器天线的移动方向,序号表示手掌移动的次序.例如手势 1表示“前推”,手势 5表示先“前推”再“左移”,最后“右移”回到天线垂直方向.图中还给出了手势j(j=1,…,6)的相位数据波形以及相应的机器人指令:前进、后退、左移、右移、顺时针旋转、停止.
在实际的操作过程中,当用户手掌处于静止或缓慢移动状态时,机器人重复执行上一次手势指令,直到获取下一次执行指令.由于RFID读写器极快的读取率,用户在执行不同手势指令时几乎不需要等待系统的缓冲,一定程度提高了系统的灵敏度.
图7 机器人手势指令匹配概图
本实验是利用Java语言在配置OSX系统的Mac book pro (处理器: Intel Core i5 2.7 GHz,内存: 8 GB)下结合英频杰公司提供的读写器支持文件[10]完成的.实验场景如图8所示,英频杰R420读写器通过以太网与PC端连接,H47标签贴在用户手背.手势执行区域距离天线1~2 m,电脑终端利用蓝牙与机器人进行串口通信.
图8 实验场景图
为了验证系统的稳定性,实验邀请10位志愿者执行手势控制系统,每位实验者分别执行每个手势10次.表1列出了机器人对该100次手势指令的反馈结果,其中反馈时延包括手势执行完毕到机器人正确移动的时间; 识别率为机器人正确反馈率.可以发现当系统在执行前进和后退指令时平均反馈时延低于0.74 s,且识别率在89%以上.当实验者操作手势3和手势4时,系统的平均反馈时延分别为0.88 s和0.91 s,相应的识别率也下降至85%和86%.而对于分段较长的手势4和手势5,识别效果得到了改善,分别为89%和87%,平均时延为0.80 s和0.79 s.
系统性能分析:
(1) 不当的手势操作导致数据分割的效果降低.比如当手势执行速度过快或过慢时,会导致一直小于分割阈值等.
(2) 较长的特征分段拥有较多的数据量,在增多数据孤立点的同时也会增加候选规整路径v的长度和条数,从而影响模板匹配的计算效率.
(3) 对于手势5和手势6数据分段较长的情况,系统在代码实现部分采用长度过滤方法(即判断当前分段长度,并与手势指纹库内指定数量的数据段匹配),有效提高了系统性能.
表1 机器人对手势指令反馈结果
本文主要研究实现了一种基于无源标签反射信号特征的手势控制系统.该系统利用标签与天线之间的距离与反射信号相位的关系建立手势识别模型,从而能够进一步实现对机器人的手势控制.实验结果表明,RFID反向散射通信对标签的位置特别敏感,因此对时序数据有效分割的基础上,利用DTW算法以及kNN分类方法能够准确识别动态手势.如果该系统的方法趋于成熟,将能为人机共生创造更多的可能.
本研究也存在不足之处,主要包括以下3个方面:
(1) 采用频率为2.4 GHz蓝牙设备以及增益为8 dBi的RFID天线,系统的工作区域有限.
(2) 手势分割算法效果依赖于用户执行速度和读写器的读取速度.当手势执行较慢时,读写器获取的数据特征不够明显,导致手势分割的难度增加.
(3) 动态规整算法运算效率需要进一步提高.
对于以上问题,我们将在今后逐步讨论完善方案.比如根据不同用户来设置不同的读写器工作频率和窗口大小,提高手势分割的准确度.另外,针对动态规整算法计算效率低的问题,可以通过建立查询表存储部分约束信息,避免计算机的重复操作,提高匹配度计算效率.