三维骨骼特征融合技术在娱乐机器人系统上的应用
2024-01-12潘言心朱兴隆
潘言心, 吴 涓, 朱兴隆, 王 飞
(东南大学 仪器科学与工程学院,江苏 南京 210096)
随着人工智能和机器人技术的快速发展,休闲娱乐机器人作为一种新兴的智能产品逐渐走进人们的视野[1-2]。人机对抗型机器人就是其中广受欢迎的一种[3]。其系统的研发常常需要研究者对人机交互和智能算法进行深入研究。手势交互作为一种自然、便捷的交互手段,在人机对抗型机器人系统中扮演着越来越重要的角色[4]。手势识别是手势交互的首要步骤,准确、实时的手势识别对交互性能有着重要影响,因此对手势识别技术的研究显得尤为重要。
目前,手势识别技术主要分为基于可穿戴设备的手势识别技术和基于视觉的手势识别技术。基于可穿戴设备的手势识别技术鲁棒性强、准确度高[5],通过使用数据手套等设备捕捉手势信息,并使用分类算法进行识别,实现了高精度的手势识别[6]。但其供电和校准程序相对复杂,限制了其实际应用的范围[7-8]。而基于视觉的手势识别技术需要对摄像头捕捉到的图像进行处理,包括检测和识别两个步骤,通常采用基于模板[9]、方向直方图、隐马尔可夫模型[10]、支持向量机[11]等方法进行识别。手势识别过程中需要从输入的手势图像中提取特征,识别效果受光照、背景等因素的影响[12]。近年来,基于手部骨骼关节点检测的手势识别技术被提出,其利用骨骼信息,通过分类器实现手势识别。手部骨骼关节模型只保留了人手中最重要的信息,是一种简化模型,对图像中背景和光线的变化具有较好的鲁棒性[13-15]。
尽管人机对抗型机器人系统的设计更注重娱乐性功能的实现,但机器人的实用性,如系统鲁棒性、便携性和友好交互等问题也需要被重视。因此,本文基于MediaPipe Hand人手骨骼关节点检测框架设计了人机猜拳博弈机器人系统,并提出一种三维骨骼信息的融合特征提取方法。该方法先利用骨骼关节点检测算法对手势进行细化,得到手部区域的骨骼关节模型,然后采用多特征融合提取方法,从不同角度、不同尺度的手势中提取关键特征,大幅提高了手势识别的准确率,增强了系统的鲁棒性。同时,基于NI myRIO控制器的系统设计使其具有较强的便携性和可靠性,能满足不同场景的应用需求。
1 系统平台搭建
人机对抗型智能机器人是目前娱乐机器人方面研究的热点,而猜拳游戏是人机对抗中最直接的游戏模式。因此,本文设计了一个能进行猜拳游戏的人机博弈机器人系统。其系统架构图如图1所示,包括数据采集、融合特征提取、手势识别和机械手控制等组件,其中融合特征提取组件是该系统的核心,其主要功能是提取能区分不同手势的融合特征。摄像头将捕捉到的手势图像作为输入,经过分类算法得到手势识别结果并通过串口发送给上位机;下位机使用NI myRIO控制器完成系统硬件控制,机械手作为系统的执行机构,根据控制指令对手势识别结果做出响应。本系统采用实时性较好的主从控制方式,以保证整体的控制性能。
图1 系统架构图
1.1 数据采集
数据采集是进行手势识别的第一步。目前,大多数手势识别算法使用公开数据集进行模型训练。这些数据集通常是完备的,包含了不同拍摄角度、摄像头不同摆放位置、不同背景和不同操作者的手势图像。为保证模型的准确性和系统的完整性,本文使用USB摄像头采集人手的图像信息,制作了包含剪刀(Scissor)、石头(Rock)和布(Paper)3种手势的数据集(SRP数据集)。该数据集用于训练和验证手势识别模型,以及后续的系统设计。
为获得较为理想的模型训练效果,每个手势采集2 400幅大小为480像素×640像素的RGB图像,这些图像涵盖了不同角度和深度的变化。考虑到人手动作的复杂性,本文按照以下标准采集图像:手掌与摄像头所在水平面的俯仰角度为-90°~90°,旋转角度为0°~180°,与摄像头之间的距离为0~50 cm不等。SRP数据集中的部分图像如图2所示,图2(a)~图2(c)依次为剪刀、石头和布3种手势的示例图像。
图2 SPR数据集中的部分图像
1.2 手势特征提取
手势动作的呈现方式因人而异,同一个人在不同时刻做出同一种手势动作也很难保证前后手势动作特征完全相同。实际的手势识别过程面临着手部特征差异、手势不断变化和外部环境复杂等诸多挑战。因此,需经过复杂的过程来提取多个手势特征。本文采用MediaPipe Hand人手骨骼关节点检测框架进行手势识别,通过其提取图像中的人手骼信息为后续的手势识别提供数据支持[16]。
为增强模型的鲁棒性以适应不同的场景,本文基于MediaPipe Hand人手骨骼关节点检测框架提出了一种融合特征提取方法。该方法提取手势的角度特征和二值特征,并通过多特征融合突出不同手势之间的差异,能够更好地应对识别过程中手部特征差异、手势不断变化和外部环境复杂等挑战。
1.2.1 角度特征提取
MediaPipe Hand人手骨骼关节点检测框架可以检测人手21个骨骼关节点,如图3所示。基于这些关节点信息建立手势特征是手势识别的主要方法。
图3 MediaPipe Hand框架
对于某一特定手势而言,它应独立于手部骨骼关节点的空间位置,且依赖于所有骨骼关节点的相对位置。手部关节运动的角度特征符合此要求,角度特征可用于描述手势的形态信息和动态变化,对不同手势具有较好的区分度和识别能力。相关研究[17]已经证实,在表现人体运动时,建立人体球面坐标系是一种有效且鲁棒性高的骨骼构型。为更好地表示三维空间中手部关节的位置,首先建立人手球面坐标系。
(1)
AiAj={xj-xi,yj-yi,zj-zi}
(2)
人手能很容易地绕着腕部旋转,为获得旋转不变的角度特征,选择掌骨关节为球面坐标系的中心点,如图4所示,以食指为例展示手指弯曲时骨骼关节点的变化,A0~A4分别代表手部骨骼关节点的三维坐标:Ai=(xAi,yAi,zAi)。式(1)计算了点Ai所在的角度αi,分母范数将两个向量长度规范化,在一定程度上消除了向量长度的差异对角度计算产生的影响。除拇指外,根据式(1)和式(2),每个手指提取α1~α3这3个角度特征,拇指提取α1、α2这两个角度特征,提取长度为14的角度特征向量[α1,α2,…,α14]。
图4 食指角度弯曲示意图
1.2.2 二值特征提取
在进行手势识别时,不同试验者的手势动作差异较大。如图5所示,同一手势除了存在空间位置的差异,还存在手势方向的差异。手势方向影响手部的几何形状和骨骼关节点的相对位置,从而影响手势特征。因此融合表征方向信息特征能够进一步提高手势识别准确率。
图5 同一手势的部分骨骼图像数据集
本文采用二值特征提取方法:将初始读取的特征点坐标转换为二进制数据,选择每个手指的前3个特征点的横纵坐标作为手势特征,并提取了腕部骨骼关节点[0]以及除大拇指外每个手指的掌指骨骼关节点[5,9,13,17]的横纵坐标。
(3)
(4)
为表示方向信息,对特征点横纵坐标进行两两比较并转换二进制数据。使用式(3)和式(4)提取两个相邻骨骼关节点i、j之间的二值特征,对除拇指外的剩余4个手指进行特征提取,共选取32个二值特征。
1.2.3 特征融合
前两节分别介绍了不同手势下角度特征和二值特征的提取方法。考虑到两种特征的维度不同,结合其各自的优势,采取拼接的方法融合成维度为46的新特征向量,利用该新特征对神经网络进行训练可得到较高的分类精度。由于在数据采集阶段考虑了所有可能出现的手势类型,相比于其他的特征提取方式[18-19],本文使用的特征提取方法计算量更小、数据可靠性更高、抗干扰性更强,能够克服不同操作方式带来的影响,增强了模型的鲁棒性。
1.3 手势分类模型
人工神经网络是一种模仿人脑神经网络的计算系统,而BP神经网络正是前向传播网络的核心,因其具有较强的非线性逼近能力而被广泛使用。BP神经网络是一种单向多层前馈网络,由输入层、隐藏层和输出层组成。网络的学习过程由信号的正向传播和误差的反向传播两部分组成。本文采用3层BP神经网络,理论上可实现任意的非线性拟合。
数据集有剪刀、石头、布3种手势共7 200个样本数据,在使用BP神经网络进行手势分类前,将训练集与测试集的样本按7∶3的比例进行划分,训练集用于训练模型参数,测试集用于验证模型准确度。在BP神经网络中,输入层的神经元个数由输入样本的维度决定,根据1.2节提出的手势特征提取方式从每一帧图像中提取46个手势特征。因此,神经元的输入个数为46,输出个数为3,将石头、剪刀和布3个手势的标签分别标记为“0”“1”和“2”。隐藏层神经元个数设置为64,选择Adam作为优化器,学习率设定为0.001,使用交叉熵损失进行网络训练。网络训练过程如图6所示,经过80轮训练,训练集上的损失为0.038,测试准确率为99.3%。
图6 网络训练过程
1.4 机械手控制
NI myRIO控制器是一款基于FPGA的嵌入式系统,可实现低延迟和高响应速度的实时控制,能够进行高速的脉冲宽度调制(Pulse Width Modulation,PWM)输出,快速响应机械手控制指令。本文使用0、1、2对石头、剪刀、布3种手势进行编码,当系统未检测到手势或用户的手势与本文定义的3种手势不一致时,系统会自动判定为Error。机械手采用连杆结构设计,单个舵机可实现手指3个关节的运动,由于手指关节间的关联性,使用3个PWM端口就可以实现文中3种手势控制。为保证机械手的实时性和响应速度,在手势进行切换时需尽量减少舵机运动调整的次数。因此,每次最多调整两个舵机的运动以减少调整时间,使机械手的运动更加连贯,同时避免了因频繁调整舵机运动而导致的响应延迟和不稳定问题。
2 系统功能测试结果与分析
为验证系统的鲁棒性和实用性,本节将对系统进行功能测试,并分别从不同场景、人员、算法和系统运行性能等方面进行分析和评估。通过试验结果分析,可进一步了解本文设计的人机博弈机器人系统在各种情况下的性能表现,并为系统的进一步优化提供参考。
2.1 不同试验场景的影响
在进行实时手势识别过程中,试验环境会对手势识别性能产生影响。为验证本文设计的人机博弈机器人系统的鲁棒性,在会议室、教室和实验室3种不同环境下进行系统测试,其具有不同的物理属性和人员流动性。同时,考虑光照强度的影响,将试验分为3种情况:暗光、正常光和亮光。在暗光条件下,保持室内灯光不开启;在正常光条件下,使用环境灯光进行照明;在亮光条件下,使用更高亮度的灯光进行试验。为了使试验结果更具有代表性和可靠性,对每种情况下的手势动作进行了随机选择,并在每组试验中记录30次不同手势动作的识别情况。试验结果如图7所示,系统在不同的试验环境下手势识别精度都较稳定,在亮光和暗光条件下,系统的识别精度都相对较低,而在正常光条件下,系统表现出最佳的识别性能。需要针对不同的试验环境和光照条件进行针对性的优化和改进,以进一步提高系统的鲁棒性和实用性。
图7 不同试验场景的识别率
2.2 不同试验人员的影响
在数据采集过程中,由于手掌大小、手掌与摄像头的距离、手掌倾斜程度等因素的影响,不同试验人员在做出相同手势时可能会呈现不同的形式,导致手势特征不同。为使机器人系统能够识别不同试验人员的手势动作,本文提取了不同手势的角度特征和二值特征,将其融合成新的特征。共采集10个试验人员的3种手势,每种手势采集2 000幅图片,并对其进行融合特征提取。使用t-SNE[20]算法对手势特征进行可视化分析,t-SNE是一种非线性降维算法,用于将高维数据转换至低维空间,并且保留原始数据的局部结构信息。通过聚类分析提取手势的特征,将结果可视化在二维平面,以便分析不同手势类别之间的相似性和差异性,结果如图8所示,能够直观地发现不同手势之间的相异性和不同试验人员做出相同手势时的相似性,融合特征可更加全面地表征手势特征,验证了特征融合方法在实际应用中的有效性。
图8 t-SNE算法下不同试验人员手势特征聚类结果
2.3 不同特征融合方法的影响
特征融合是将不同特征组成一个新特征向量的过程,特征融合方法的选择影响手势识别准确率。本文针对手势识别任务,采用拼接融合方法进行特征融合,并将其与卷积融合[21]和加权融合[22]两种方法进行对比。卷积融合是指将不同特征向量进行卷积操作后拼接成新特征向量,而加权融合是指将不同的特征向量进行加权求和得到融合后的新特征向量。采用交叉验证的方法确定了角度特征和二值特征以7∶3的比例融合时手势识别精度最高。本文对这3种特征融合方法进行试验比较,结果如表1所示。
表1 不同特征融合方法对比
由表1可知,拼接融合方法具有最高的手势识别精度。卷积融合会将二值特征中的0值参与计算,从而导致特征信息的混淆和损失;加权融合效果较差的原因可能是特征维度不同,角度特征为连续的取值范围,而二值特征为0或1导致加权融合时对不同特征的权重估计不准确,从而影响识别效果。
2.4 不同特征的影响
算法最终的识别准确率主要受两方面影响:手部骨骼特征点检测的可靠性和特征提取方法的有效性。为研究融合特征提取方法相比单一特征提取方法是否具有优越性,在SRP数据集上进行了特征融合前后手势识别效果的对比试验。具体而言,本文采用3种不同的特征提取方法:角度特征(单一特征)、二值特征和融合特征,并在会议室、教室和实验室3种不同的试验环境下进行了系统测试,结果如图9所示,可见单一特征提取方法中角度特征的识别效果优于二值特征,主要由于角度特征能够反映手指弯曲信息,对数据集中的各种手势有更好的表征效果。在SRP数据集上,单一特征提取方法的手势识别准确率较低,主要原因是手势在单一特征提取方法的区分度较低。融合特征的手势识别准确率均高于单一特征,精度分别达到了98.9%、99.2%和98.7%,说明相比单一特征提取方法,融合特征提取方法不仅能避免单一特征识别的偏差性,还能提高识别算法的泛化能力。同时,在不同环境下,融合特征提取方法也表现出更好的鲁棒性。
图9 特征融合前后手势识别精度
2.5 不同算法的影响
采用自制的SRP数据集进行训练,将训练好的BP算法模型在测试集上进行评估,在ASL数字手势数据集[23]上验证模型的泛化性能,将得到的结果与ART-1型[24]和CNN算法进行对比。CNN算法与其他常规神经网络的区别在于其能够利用卷积来提取图像中的特征,是图像处理领域常用的特征提取网络;而ART-1型算法适用于处理二进制数据,是为了解决神经网络的稳定性-可塑性问题而提出的,其采用竞争学习策略和自稳机制,会自发地在神经网络中产生对环境信息的编码,能够对任意复杂环境输入模式实现自稳定和自组织的识别,分别使用准确率(P)、召回率(R)和F1-Score来评估分类算法性能,结果如表2所示。
表2 分类算法性能对比
由表2可知,BP算法在自制SRP数据集的3种算法对比中表现最佳,在准确度、召回率和F1-Score指标上分别达到了99.57%、99.27%和99.42%。同时,在ASL数字手势数据集上,BP算法的准确率也最高,这表明该算法具有很好的鲁棒性。在准确率方面,BP、CNN和ART-1型算法的效果依次变差,这种试验结果的原因可能是多方面的。相比其他两种算法,ART-1型算法是一种聚类算法,根据相似度阈值进行分类,不具备非线性变化能力,因此分类效果最差。针对实现特定任务的分类算法而言,CNN算法具有映射任意复杂非线性关系的能力。然而,在试验结果中它的效果不如BP算法,可能是由于将一维的二进制数据转换为二维数据进行卷积操作,从而添加了大量无效的位置信息,导致算法的准确率有所下降。
2.6 系统运行性能评估
友好的交互界面设计能够增强交互的真实感和用户体验,本文设计了一个包含3种不同游戏模式的交互界面,如图10所示。在游戏过程中,系统提供语音辅助功能,帮助用户更好地理解游戏规则和操作流程。用户按下“开始”按钮后,游戏正式开始。在“一局定胜负”模式中,系统会提示用户出拳,以此模拟真实的石头剪刀布游戏。在“随机模式”中,系统会在规定的时间间隔内随机变化手势,让用户难以预测,增加游戏难度和趣味性。在“机器必赢”模式中,系统能够准确识别试验者手势的变化,并根据手势规律来预测下一个手势,从而实现机器必赢的效果。最终游戏结果将在前面板上显示,提供实时的反馈和游戏分析。
图10 交互界面
为验证本文设计的人机猜拳博弈机器人系统整体运行的可靠性,在“机器必赢”模式下进行了试验,如图11所示,在该模式下检测到用户手势为剪刀的交互场景。试验开始前,首先进行初始化操作,并选择游戏模式。试验过程中,10名试验人员分成5组,在“机器必赢”模式下进行试验。剪刀、石头、布分别被编码为0、1、2,构建一维手势序列{0,1,2…},并在前面板进行显示。试验人员根据该提示做出相应手势,另一名试验人员记录机械手动作变化序列。每组试验包括40次手势变化,每名试验人员进行10次试验,共计400次手势变化。将这400次手势变化的序列作为手势识别网络的输入,并将输出结果与记录的机械手动作变化序列进行对比。结果显示,系统的整体预测准确率为99.3%,表明该系统具有较好的稳定性。同时,手势平均识别时间约为0.012 5 s,机械手的响应时间约为0.13 s,满足了实时性要求。
图11 机器必赢模式下的交互场景
3 结束语
本文提出了一种基于三维骨骼信息的融合特征提取方法,该方法能够有效地提取手势的空间和位置信息,与MediaPipe Hand人手骨骼关节点检测框架快速检测手部骨骼特征和深度网络的特征提取优势相结合,大幅提高了手势识别的准确率。在此基础上,设计了一个能够实时进行人机博弈的交互系统,并将该方法应用到人机猜拳博弈机器人系统,系统的整体预测准确率达到99.3%,同时系统能够实时响应用户手势的变化,为用户带来更好的沉浸感。
未来的研究将重点关注两个方面:一是增加其他手势以实现更多的功能;二是进一步结合视觉和触觉传感器,以使机器人系统具备触觉感知功能,从而完成更加复杂的任务。