占 宏, 吴碧霄, 杨辰光
(华南理工大学自动化科学与工程学院,广州 510641)
近年来,机器视觉和人工智能技术的发展有力推动了人机交互技术在各领域中的应用,如康复医疗、教育培训、智能家居、娱乐游戏等[1-4]。与传统的鼠标、键盘等接触式交互方式相比,基于人体手势的交互模式更加方便、自然、直观,有着广阔的应用前景。现有的手势交互技术主要包括基于非视觉和基于视觉两大类,前者主要采用数据手套等可穿戴设备来进行手部相关数据的采集,但该类设备价格昂贵,舒适性不够;后者利用相机以非接触方式获取手部信息,更加友好、安全,因此基于视觉的手势交互技术成为研究热点[5-6]。
基于视觉手势交互技术的关键是手势识别,传统的手势识别技术通常采集手势的二维图像经预处理,再利用模板匹配等方式完成手势识别。一方面,采集的二维图像相比于深度相机所获取的三维图像信息少;另一方面,由于易受环境背景、光线问题以及手势角度等因素影响,导致该类算法效率低、识别率不高[7-9]。因此,本文利用3D手势传感器Leap Motion采集手部运动数据,采用基于深度学习的手势预测识别算法提高识别率,同时将手势识别与机器人控制相结合,搭建人机交互实验平台,用于实验教学中。
本文设计的平台主要包括操作者、Leap Motion手势传感器、机器人、计算机等4部分,整体设计框图如图1所示,平台可实现Leap Motion数据采集、手部特征提取、手势预测识别3大功能。其中,Leap Motion是一款基于视觉的3D手势交互设备,内置有2个深度摄像头和3个红外发光二极管,能够捕捉操作者手部运动数据信息并通过USB接口与计算机通信[10-11]。该实验平台中的机器人可以是仿人机器人、工业机械手等,算法采用Python编程语言进行开发,具有一定通用性。
图1 平台整体框图
平台的整体实施方案:①采用Leap Motion检测并跟踪用户的手部运动,将所采集的手部数据信息进行处理;②提取用户手势动作执行过程中手部坐标、长度、角度特征;③利用长短期记忆网络(Long-Short Term Memory network,LSTM)对用户行为意图进行提前预测识别;④根据预测结果实时做出决策并生成相应控制指令传输至机器人。本文以猜拳游戏为例进行人机交互实验,同时提高人机交互过程中的趣味性、体验感。
(1)数据采集。手部内骨骼中每个手指都包括掌骨、近节指骨、中节指骨和远节指骨4部分(由于大拇指无中节指骨,为了各手指的统一性,将其中节指骨的长度假设为0),由Leap Motion获取手部信息,并采用卡尔曼滤波算法对所采集的手部原始数据进行处理,以减小Leap Motion在获取手部数据信息时发生抖动和跳变等现象对精度的影响。
(2)坐标系定义。Leap Motion坐标系Oxyz,以设备顶部表面中心位置为原点O,x和z分别指向设备长边和侧边方向,y为竖直方向,如图2(a)所示。为后续处理方便,定义手掌坐标系O′x′y′z′,以手掌心为原点O′,掌心到中指根部方向为y′轴方向,x′轴为垂直于y′轴的方向,z′轴为垂直于x′轴与y′轴形成的平面方向,如图2(b)所示。Leap Motion获取的手部信息主要包括手指个数n(n=1,2,…,5),三维空间中第i个手指关节位置坐标pi(xi,yi,zi)(i=1,2,…,20)以及手部掌心位置坐标p0(x0,y0,z0)。
图2 坐标系定义
为提升手势预测识别精度,此模块提取手部数据的3种特征,即:坐标特征、长度特征和角度特征[12]。
(1)坐标特征。表示手指关节在手掌坐标系中的位置。假设采集的手指关节pi(xi,yi,zi)在手掌坐标系中的坐标为p′i(x′i,y′i,z′i),其中i=1,2,…,20。显然,向量、My=(x9-x0,y9-y0,z9-z0)和分别在手掌坐标系中x′、y′、z′轴的正方向上。定义Ex′、Ey′和Ez′分别为x′、y′、z′轴的单位向量,P(p0,pi)为点p0到点pi的向量。那么,由几何关系可知:
式中:Ex′=。
(2)长度特征。表示每个手指指尖与手掌心之间的距离,即:L(n)(n=1,2,…,5),定义变量k=4×n,那么由几何关系有:
(3)角度特征。表示每个手指(除大拇指外)的近节指骨和中节指骨之间的角度,大拇指则提取远节指骨和近节指骨之间的角度,用αn表示角度。定义P(pi,pj)为点pi到点pj的向量,且i≠j,变量m=4×n(n=2,3,4,5),那么由几何关系有:
LSTM结构如图3所示,它是一种改进的循环神经网络(Recurrent Neural Network,RNN),增加了3个门来控制信息记忆与遗忘,有效地解决了RNN的长期依赖问题[13]。因此,LSTM在时间序列相关问题处理中应用广泛[14-15]。
图3 LSTM网络结构
为增强趣味性,本文采用“石头、剪刀、布”猜拳游戏人机交互实验。游戏中手势变换过程通常可分为3个阶段,以“石头”手势变换为“布”为例:①初始阶段,手势刚开始,仍处于“石头”状态;②中间阶段,手势与初始阶段明显不同,5个手指有一定程度张开;③完成阶段,手势接近于完成状态,基本是布的状态。由于不同人出拳速度不一样,每个手势包含2-6帧,因此,在LSTM网络中设置输入帧数T=4,即4帧数据作为网络的输入信息。网络的输入层为提取的3种手部运动特征,隐藏层节点个数设置为100,网络输出为手势预测的3种结果,即石头、剪刀、布。
本文以猜拳游戏为例进行人机交互实验验证的案例实验,搭建实验平台采用的主要硬件有:Magic Leap公司生产的Leap Motion手势传感器,内置有2个深度摄像头和3个红外发光二极管,视场范围可达120×150°;联想品牌thinkpad计算机,CPU为i5-6200U,用WIN10操作系统;Active8 Robots公司的AR-10仿人多指机械手,有10自由度,具有10个伺服电动机,可实现多种姿势;Aldebaran Robotics公司的第一代NAO双足人形机器人,高58 cm,质量约5.4 kg,具有25自由度,配置有摄像头、扩音器、红外发射器、触觉传感器等,支持跨平台及多种编程语言,能够通过语音系统、肢体动作灵活地与人进行互动响应。
(1)手势预测识别。由Leap Motion采集5人不同手势数据,其中每人分别以快、中、慢速度出拳各300次,共4500个不同数据样本。将样本数据经卡尔曼滤波处理,提取坐标特征、长度特征、角度特征作为LSTM网络模型的输入并进行模型训练,实验的手势预测结果正确率可达到99.31%。同时,本文对手势预测和识别模块的实时性进行了验证,如图4所示。实验中,操作者的手势由石头变换为剪刀时,LSTM网络能够在操作者所有手指完成剪刀动作之前准确预测出其出拳动作。
图4 手势预测过程
(2)猜拳游戏实验。在猜拳游戏中,由于NAO机器人手部的3根手指连在一起,因此定义手部完全握紧状态为“石头”、非完全张开为“剪刀”、完全打开为“布”状态。采用NAO机器人的左手与操作者进行互动,将所训练的LSTM网络模型应用于机器人,由Leap Motion采集操作者的手部数据信息并经卡尔曼滤波处理;然后提取手部特征,由LSTM网络对手势动作进行预测;并根据猜拳游戏规则,即“石头”赢“布”、“布”赢“剪刀”、“剪刀”赢“石头”,实时做出决策并将结果传输给机器人执行相应出拳动作。经多次实验,AR-10机械手和NAO机器人都能够实时地完成出拳动作并获胜,如图5所示。
图5 人机互动实验
本文设计并搭建的机器人手势预测识别实验平台,由Leap Motion跟踪并采集手部运动数据,通过提取手部多个特征,并采用LSTM网络模型对手势动作进行提前预测识别,模型训练及测试结果表明手势预测实时性高、正确率可达99.31%,同时由猜拳游戏验证了实验平台的有效性。该平台具有通用性强、综合实践性强的特点,可开展不同应用研究,为机器人工程专业相关实践教学提供创新实验平台,提升实验教学效果[14-15]。