穿戴式手势交互系统与识别算法研究

2020-12-10 10:05刘璇恒邓宝松范博辉印二威
小型微型计算机系统 2020年11期
关键词:被试者手势准确率

刘璇恒,邓宝松,裴 育,范博辉,谢 良,闫 野,印二威

1(天津大学 软件学院,天津 300350) 2(军事科学院 国防科技创新研究院无人系统技术研究中心,北京100071) 3(北京航空航天大学 软件学院,北京 100191) 4(华东理工大学 信息科学与工程学院,上海 200237) 5(天津(滨海)人工智能创新中心,天津 300450)

1 引 言

人机交互(Human-Computer Interaction,HCI)是指用户与计算机之间通过特定的交流手段实现信息交互的方式.手势识别作为人机交互领域深耕已久的一个研究方向,主要是通过模式识别算法分析出手势表达的含义,实现人与机器自然和谐的交互.

基于视觉的手势识别[1,2]与基于传感器[3,4]的手势识别是目前主要的两种实现方式.其中,基于视觉的识别技术发展比较早也相对成熟,但受设备和环境条件的制约较大,摄像头摆放的位置角度,被遮挡,光线过亮或过暗都会影响摄像头拍摄的图片质量[5],从而影响识别准确率.基于惯性传感器[6]的识别技术不受环境光、背景色的影响,采集数据稳定,信号处理简单,克服了上述视觉识别技术的缺点,同时该技术还具有微型化、智能化、多功能、高集成度、低功耗、成本低廉和适于大批量生产等诸多优点,提供了复杂环境下稳定可靠的智能交互方式,在医疗康复机器人[7]、手语词分类[8]、人体活动行为识别[9]等领域也有很大的应用价值.

在手势识别领域,经典机器学习算法已经应用广泛.Min等使用K-means聚类算法从训练集中提取代表性手势模板,初步用贝叶斯分类器对手势进行预分类,之后通过使用动态时间规整算法(Dynamic Time Warping,DTW)将输入手势与具有相同类别的模板匹配[10].Huang等通过支持向量机(Support Vector Machine,SVM)算法进行手势的分类,提出了一种手势识别的实时视频系统[11].施向军等利用隐马尔可夫模型(Hidden Markov Model,HMM)对红外传感器输出的方向距离信息进行动态手势识别研究[12].Gao等提出了一种具有异构分类器的模糊决策树(Fuzzy Decision Trees,FDT),每个标志特征对手势具有不同的区分,呈现对应的分类器以用于对手语属性的分层决策[13].上述算法都面临着下面一些挑战性的问题(1)泛化能力差(2)无记忆性(3)特征工程复杂.与之相比,我们提出的ConvBLSTM框架在更快的学习速度下有着更好的泛化性能以及对于有着时间序列特征数据的强记忆能力[14].

在无人飞行器交互控制方面,大部分是基于传统摇杆式遥控器为主要硬件的交互方式,少量以智能移动设备为硬件的控制方式,其本质也是内设的软件模拟传统摇杆式遥控器的操控方式.基于手部动作姿态的交互的无人机控制,多数都是通过Kinect[15]和Leap Motion[16]等传感器实现视觉识别控制[17-20].本文研究了一种基于加速度计和陀螺仪的手势控制无人机方法,基于多传感器的手势识别技术可通过传感器之间的信息互补将传感器各自的优势结合起来,以获取更好的识别结果.所提出的由卷积层和双向LSTM循环层组成的ConvBLSTM深度学习框架,能够自动学习原始传感器数据特征提取空间特征并建模时间依赖性,识别手势动作分类,以形成对应于无人机各遥控通道控制指令的手势定义集,再按照手势定义集将待识别的手势动作映射为对应的飞行指令,控制无人机完成飞行任务.

2 手势采集系统

2.1 硬件设计

我们所设计的手势采集硬件装置及芯片原理图如图1所示.手势采集硬件装置的支撑性材料选择内含精细尼龙纤维编织而成的手套,它不仅保有手套的舒适与弹性,而且十分耐磨,避免反复实验中的损坏.惯性模块使用的是LSM6DS3传感器,包括3轴加速度计和3轴陀螺仪.每个指尖和手背分别放置1个LSM6DS3传感器,一共6个LSM6DS3传感器.商业惯性测量单元(Inertial Measurement Unit,IMU),例如Xsens-MTi或Shimmer,其尺寸不够小,不能精确稳定地放置在手指等关键点上,Fang等使用了MPU9250传感器安装在实心PCB上,尺寸为10×15×2.6mm,重量约为6g[21],但仍略显笨重.我们采用的LSM6DS3传感器,尺寸仅有2.5×3×0.83mm,重量更是只有约0.1g,实现了微型化.在高性能模式下的工作电流为1.25mA,具有在线低功耗特性.高达8KB的动态数据批处理能力,可动态分配重要数据(例如外部传感器,时间戳等),极大的降低了开发成本.传统传感器连接使用复杂接线,在传感器数量较多的情况下布线很不方便,而且十分笨重.基于无线网络的通信方式是可移植的,但无线网络复杂不稳定,数据传输速率低.本文通过柔性电路板将所有的IMU连接到微控制单元(Microcontroller Unit,MCU),使用柔性电路板省去了多余排线的连接工作,同时具有重量轻,厚度薄,弯折性好等优点.中央控制单元采用的是STM32L433xx 微控制器.IMU数据通过MCU数字化,经由Micro-USB接口传输到外部设备.

图1 手势采集装置及芯片原理图Fig.1 Gesture acquisition device and chip schematic

2.2 数据传输软件

本文所用数据传输软件由博睿康科技有限公司提供.数据采样频率为100Hz,即采样周期为10ms.该软件将40ms的数据封装成帧实时进行发送.数据手套捕获的手势数据,通过PC机的COM端口流入数据采集软件,该软件通过TCP/IP协议把数据发送到采集程序,完成数据的采集和标记.数据传输软件为用户提供了友好的用户图形界面,可以通过三级菜单栏调整观测精度(scale)来观察数据在幅度上更细微的变化,通过调整时间轴分辨率来观测数据在时间域上更细致的表现,包括6个6轴传感器共36通道的数据,以及一个事件标记通道,共有37通道数据.事件标记通道的数据一直为零,用于程序调试的辅助debug功能.

3 基于ConvBLSTM神经网络的手势识别

3.1 手势识别流程框架

基于ConvBLSTM神经网络的手势识别框架可以分为三个步骤.第一阶段建立手势数据库.无人机控制指令分为上、下、左、右、前、后,左转、右转、悬停、无操作共十种手势.首先,通过所设计的手势采集系统收集不同手势的运动数据形成数据集.第二阶段进行数据预处理和训练分类.在手势数据集的基础上,我们提取每个手势的36维手部特征并使用模型训练.第三阶段是实验和分析.我们收集不同被试者的手势运动数据,使用训练好的ConvBLSTM最优模型进行手势识别.手势识别流程框架如图2所示.

图2 基于ConvBLSTM的手势识别流程框架Fig.2 ConvBLSTM-based gesture recognition process framework

3.2 手势数据分析

微惯性传感器通过捕捉一段时间内信号的动态变化,从而实现不同手势区分,故本文讨论基于动态手势识别,图3呈现了动态手势和无操作手势数据的频域图像,二者进行对比,发现手势动作基本没有噪声干扰,故而直接在获取的原始加速度、角速度数据上进行工作,只需最少的预处理,最大限度的减少工程偏差.后面工作也充分验证了基于原始数据的优势,能够帮助网络更高效准确的收敛.

3.3 ConvBLSTM神经网络设计

手势识别作为一种时序性任务,时序性建模的优劣是识别效果好坏的关键因素.传统的时序建模方法包括HMM、DTW等,通过人工设计的特征作为数据输入,利用手势标签进行模型的训练,进而实现手势的分类.但由于传统方法过程较为复杂,且模型的设计大多基于理想的假设前提,因此存在一定不足.近年来,伴随着深度学习的迅猛发展,卷积神经网络(Convolutional Neural Networks,CNN)、循环神经网络(Recurrent Neural Network,RNN)在各类任务包括图像分类[22]、人脸识别[23]、机器翻译[24]、手势识别[25,26]中取得了突出成绩.

图3 动作手势和无操作手势在某通道的频域图Fig.3 Frequency domain diagram of action gestures and no operation gestures in a channel

我们提出了一种基于原始陀螺仪和加速度计传感器数据的手势识别框架ConvBLSTM.主要由4个卷积层和1个双向LSTM循环层组成.对于输入的传感器数据,由四层卷积层从手势序列中提取特征并生成特征映射,输入双向LSTM层,通过有效计算梯度分量来学习时序数据.

我们所提出的算法结构如图4所示.输入数据大小为36×80×1,单个手势作为一个样本输入网络,包括36通道(6个加速度计x,y,z轴和6个角速度计x,y,z轴)和80时间序列.Conv1和Conv4采用大小为2×2的滤波器,Conv2和Conv3采用大小为3×3的滤波器,步长均为1.使用卷积运算提取特征图的方法表示为:

(1)

池化层对输入的特征图进行压缩,提取主要特征,可以减少下一层参数和计算量,简化网络复杂度,同时也能够有效地控制过拟合现象.计算公式表示为:

(2)

BiLSTM作为一种传统RNN改进结构可以通过减轻RNN的梯度消失问题来模拟长期依赖性.我们采用双向LSTM神经网络有效地提取手势运动序列的时间特征.基于BiLSTM的神经网络的时序建模,根据卷积层提取的手势特征,在双向LSTM层,按手势采集的时间顺序将特征一帧一帧正向和反向同时输入,利用BiLSTM的时序表达能力进行时序编码,从而获取手势样本的时序特征,每个输出时刻根据前一输出时刻的输出来判断最优输出,从而可构建动态手势的前后动作联系,最终可得到手势样本的对应表达.

双向LSTM单元主要由一个有记忆能力的细胞态和三种称为门的结构组成,通过门结构来控制信息通过细胞,选择性增加和去除通过细胞结构的信息.正向LSTM正序处理手势数据,反向LSTM逆序处理手势数据来实现长期记忆能力.

图4 ConvBLSTM网络模型Fig.4 ConvBLSTM network model

下面描述所提出的LSTM网络的细节.

1)首先是决定前一时刻细胞态中的信息去留,称为遗忘门,该门会读取前一个LSTM神经网络模块的输出ht-1和当前神经网络模块的输入xt,然后通过sigmoid激活函数输出0到1之间的数值ft,用于决定有多少分量可以通过.

ft=σ(Wf·[ht-1,xt]+bf)

(3)

it=σ(Wi·[ht-1,xt]+bi)

(4)

(5)

(6)

3)最后是输出新的记忆信息,称为输出门.我们需要基于细胞状态来确定一个输出的值,这个输出值不是原样输出,而是经过过滤的版本.首先我们通过Sigmoid层决定我们将要输出的细胞状态信息,接着将细胞状态通过tanh处理,将二者相乘得到我们想输出的信息.

ot=σ(Wo·[ht-1,xt]+bo)

(7)

ht=ot*tanh(Ct)

(8)

在所有卷积层和双向LSTM层后都加入批规范化层(Batch Normalization,BN),可以稳定训练过程并加快学习速度,从而避免梯度消失.

最后由全连接层通过Softmax函数激活,实现由特征到类别的映射关系.

(9)

其中zi表示上一层的输出,i表示分类维度为C,yi表示预测为第i类的概率.

4 实验和结果分析

4.1 数据集

为了验证所提出系统,我们采集了10名被试者的手势数据,获得了由10个类别组成的手势数据集.被试者为10名男性,年龄在22到25岁之间(平均值23.6),在满足手势定义的要求下,被试者以他们各自的习惯方式用右手操作上、下、左、右、前、后,左转、右转、悬停、无操作共十种手势,图5显示了所确定的10种手势,十种手势选择旨在控制与无人机交互.例如,up和down用于无人机俯仰,turnleft和turnright用于无人机偏航等.每种手势采集300次,因此,从每名被试者得到了3000个手势样本,总共30000个数据样本.

图5 定义的十种手势Fig.5 Ten gestures defined

使用采集程序来同步采集手势数据,通过刺激界面提示用户做出相应的十种手势.每个手势采集时间为2s,采样频率为100Hz,手势之间休息2s,要求每名被试者在满足手势定义的要求下,按照各人的习惯每种手势采集300次,在每次数据采集之前给每名被试者示范每个手势动作十次,被试者看了示例手势并重复相同的手势10次.被试者坐在椅子上,数据手套通过USB连接到采集电脑进行手势采集,被试者打开数据采集的刺激界面,通过提示并且与示例手势类似的速度执行手势.为了避免连续采集大量数据以及重复手势带来的动作变形等不利于实验结果的影响因素,每种手势采集十次共100个手势记录为一组数据,分时间,分多次在闲暇时候进行数据采集,以提供多样性的数据.并且为了确保数据的科学严谨,每组数据的100个手势采用随机出现的方式采集.

手势识别首先需要准确检测手势时间窗口的起点和终点,从而实时截取有效的手势信号段.将传感器数据取绝对值并将36通道数据全部叠加,可以清晰地看到手势叠加信号如图6所示,依据实验经验,手势动作约在传感器数值之和大于500时开始,有效手势长度为600~800ms.经过反复实验分析,我们设定阈值为500,即从传感器数值之和大于500时判定为手势开始标志并开始截取数据,截取数据长度为800ms.由于单个数据样本每个手势截取的手势时间窗口长度为800ms,采样频率为100Hz,单个样本大小为36×80.

图6 手势36通道叠加时域图以及截取阈值Fig.6 Time domain graph of thirty-six-channel superimposed signal during gesture movements and the corresponding threshold for data segment

4.2 实验设置

本文所提出的ConvBLSTM模型基于Keras深度学习框架实现,使用TensorFlow作为后端引擎,模型学习和分类在NVIDIA GeForce RTX 2080Ti GPU上运行,显存为11G.模型按照有监督的方式学习,以Adam优化器为优化规则,以分类交叉熵损失函数为优化方向,学习率(learning_rate)设置为0.0001进行训练,网络每次训练的样本数(batch_size)大小为20.

4.3 算法性能比较

4.3.1 有训练

我们将提出的ConvBLSTM算法分别与BiLSTM、KNN和SVM三种典型手势识别算法进行了比较.具体算法设置为:①SVM算法核函数使用的是rbf,为高斯核,gamma值越小,分类界面越连续;gamma值越大,分类界面越散,分类效果越好,但有可能会过拟合.分类方法为One vs Rest,即一个类别与其它类别进行划分.②KNN算法使用统一的权重,即在每一个邻居区域里的点的权重都是一样的,计算最近邻居使用ball_tree算法.③BiLSTM算法输出大小(lstm_size),批处理参数(batch_size),学习率(learning_rate)分别设置为200,160,0.0001.

在10名实验者数据集上执行准确性和有效性实验.采用5折交叉验证来测量所提出系统的性能.分别将每名被试者的数据集划分为5组,其中4组用于训练,其余用于测试.我们获得了5折的10个训练模型准确度,评估结果如表1所示,显示了每个被试者的4种机器学习算法的准确率以及平均准确率.由于执行手势的速度和方法不同并且传感器和手之间的距离对于每个被试者是不同的,因此手势识别的准确性对于每个被试者而变化.4种算法中ConvBLSTM的平均识别准确率高达99.2%,显著优于其余三种算法(ConvBLSTM vs.BiLSTM,p<0.0001;ConvBLSTM vs.KNN,p<0.01;ConvBLSTM vs.SVM,p<0.01).当在显著性水平α=0.05的情况下,ConvBLSTM和其它三种算法分别进行T检验时的p值均小于0.05,h均为1,表明可以从统计上断定算法ConvBLSTM的结果大于BiLSTM、KNN、SVM的结果,即两组数据均值的比较是有意义的,存在显著性差异,表明ConvBLSTM样本间差异小,更加精确和稳定.对于ConvBLSTM、BiLSTM、KNN以及SVM算法,每个被试者的准确率标准差分别为0.75,1.39,2.57,2.19.我们发现第3和第5名被试者的数据集在BiLSTM,SVM以及KNN上的准确率均是十名被试者中最低的,但在ConvBLSTM上的表现依然优秀,表明ConvBLSTM算法具有最佳精度,而且对被试者执行的各种手势特征具有更强的鲁棒性.

表1 每个被试者的4种机器学习算法的准确率以及平均准确率Table 1 Accuracy comparisons among four machine learning algorithms across participants

4.3.2 无训练

为验证算法的跨被试迁移学习能力,我们将分别将上述S1至S10被试者的手势数据作为测试集,其余被试者数据混合作为训练集,得到的每个被试者的ConvBLSTM、BiLSTM、KNN、SVM算法的无训练模型.通过无训练的新人验证试验,以测试学习模型的泛化能力,得到了10名实验者的4种机器学习算法混淆矩阵,如图7所示.

ConvBLSTM模型在无训练情况下对大多数手势进行了充分分类,能够有效地提取特征,对于新被试者它依然保持着95.01%的高识别精度.除此之外,BiLSTM、KNN以及SVM模型也较好的对手势进行了分类,识别精度分别为89.17%,90.80%,92.15%,但是很大程度的混淆了以类似模式完成的手势动作,证明了ConvBLSTM模型泛化性能显著优于其他模型.

4.5 无人机同步控制

为了验证手势控制的效果,我们进行了无人机的同步控制实验.本文所使用的无人机型号是大疆的Mavic air.是大疆公司旗下的一款旗舰机型.Mavic air机身小巧轻便,自稳性能好,灵敏度高,其内置天线可以增强飞行时信号的收发,在实验室环境下抗干扰能力强.重量约430g,折叠后的飞行器面积大小与智能手机相当,携带方便,飞行姿态可控性强,适合较狭小室内飞行实验.

手势动作信号与无人机交互是基于DJI的Windows SDK开发的控制程序.实现了和定义的十手势分别对应的无人机飞行功能,即上升,下降,前进,后退,左转,右转,左移,右移,悬停,无操作.

当同步控制程序启动时,根据提示界面在规定时间2s内做出任意一个手势动作,手势数据传入神经网络识别出结果.然后译为对应飞行指令输出,发送到无人机.由于在基础的10手势中,没有设计控制无人机起飞和降落对应的手势动作,我们在程序中设计了复合指令用于扩展指令集.

图7 10名被试者的4种机器学习算法混淆矩阵Fig.7 Four machine learning algorithm confusion matrices for 10 participant

无人机开启后在地面处于待命状态,在第1次执行上升手势时控制起飞,以及需要降落时执行连续3次下降手势控制其降落.成功起飞后,无人机悬停于距地面1.2m高度.此时可以执行不同的手势动作控制无人机进行不同的移动,还可使其悬停在空中.在手势切换过程中,控制无人机停止上一个动作再而执行当前动作.在与无人机交互期间可以使其随时起飞或降落并关闭控制程序.

实际控制效果如图8所示.分为四个部分:A是起飞状态;B为起飞后的悬停状态;C是无人机接收到左转向的指令,执行左转的状态;D是控制无人机下降的状态.

图8 同步控制无人机Fig.8 Synchronous model for UAV control

10名被试分别基于各自数据集的训练模型测试10种手势动作10次,准确率与4.3.1节离线训练下相近.可能有以下方面原因:1)基于个人数据有训练情况下,所提出的模型特征学习能力强;2)执行手势时有明确的开始结束提示信号,交互过程过于理想化.基于上述问题并考虑到实际交互情况,我们进一步讨论了连续指令的无人机实时控制.

4.6 无人机实时控制

4.5节验证了本文所述控制无人机方法的可用性.为了验证手势控制方法的普遍适用性,进行了无人机的实时控制实验.由于实时系统要求系统处理到给出控制交互指令的时间间隔越短越好[27],为了保证在手势识别精确性的前提下提高无人机控制的实时性,我们进行了手势数据点长度准确性检验.

如图9所示,显示了ConvBLSTM和其他三种算法BiLSTM、KNN、SVM对手势数据点长度和准确率的含误差线的对比图,误差线代表10名被试不同手势数据点长度准确率在该点的标准差.

可以观察到ConvBLSTM在每个数据点长度的平均准确率相较于其他机器学习算法均为最高.ConvBLSTM在300ms时平均准确率已经达到了95%以上.用300ms滑动窗口进行实时手势识别控制无人机实验.为了避免误操作,添加空闲态检测机制,设定输出阈值为0.5,当最大概率比第二大概率超过设定阈值时输出为最大概率对应手势,否则输出空闲手势.

图9 数据点长度准确性检验Fig.9 Data point length accuracy test

划定3m×3m的方形任务区域,以区域一角为起始点,无人机由起始位置起飞,绕区域四个角飞行一圈落回原点,记录飞行时间.我们将10名被试者样本均匀混合,采用5折交叉验证,获得全体数据集的有训练模型.参与数据采集的S1-S10被试依次进行三次飞行实验,每名被试由起飞到降落执行飞行任务平均所用时间如图10所示.

图10 每名被试执行飞行任务平均所用时间Fig.10 Average time for each participant to perform a mission

误差线代表该被试执行三次飞行实验的标准差,十名被试平均任务时间为122.8s,平均用时最短者为S4(std=7.93),平均用时最长者为S8(std=22.91),S3被试最不稳定(std=45.17).

样本分布反应了如下情况:1)S4、S7(std=5.56)、S9(std=5.44)三名被试离线准确率最高,实际控制用时最短,样本数据质量好,ConvBLTM模型表征能力强,手势区分度显著,执行任务效率高.2)S3虽然不是平均用时最长者,但标准差为45.17,相较其余被试最不稳定,与离线训练中较低的识别准确率相对应.3)除被试数据质量好坏有区分度之外,被试适应手势操控无人机的能力不同,也会在一定程度上影响任务时间.

无人机实时控制验证了本文所述方法的普遍适用性,达到了预期效果.

5 结 论

本文介绍了用于手势动作捕捉的数据手套的设计和开发,并使用所提出的ConvBLSTM框架进行手势识别.采用低成本的惯性传感器来捕获手势,提出了基于6个6轴IMU提出了新型数据手套.微型化与简单化等优点表明所提出的数据手套优于其他数据手套.性能评估验证了所提议的数据手套可以准确地捕获手势,并且基于ConvBLSTM的方法可以直接工作在原始传感器数据上并准确地识别手势,有训练平均识别准确率达99.2%,无训练平均识别准确率为95.01%,显著优于BiLSTM、SVM和KNN方法.进一步,我们提出了一种手势控制无人机方法,通过手势装置来控制无人机,无人机响应预定义的手势并相应地移动.对手势控制无人机实验进行了分析和讨论.下一步计划采用无线模块,结合EMG和IMU进行手势识别研究.

猜你喜欢
被试者手势准确率
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
多层螺旋CT技术诊断急性阑尾炎的效果及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
德西效应
挑战!神秘手势
德西效应
儿童花生过敏治疗取得突破
胜利的手势
为什么我们会忍不住发朋友圈?