APP下载

基于小样本手部关键点的MLP 网络提升3D光场交互准确度方法

2023-09-14任尚恩邢树军于迅博颜玢玢王葵如桑新柱

液晶与显示 2023年9期
关键词:光场关键点手势

任尚恩,邢树军,陈 硕,于迅博,颜玢玢,王葵如,桑新柱

(北京邮电大学 电子工程学院,北京 100876)

1 引言

人机交互一直是目前研究的热门课题,它被应用于各种不同的显示设备,如虚拟现实(VR)、裸眼3D 显示等。其中,裸眼3D 显示技术可以通过立体显示设备将具有空间深度信息的三维立体图像再现出来,观看者可以在不佩戴任何辅助设备的前提下通过裸眼观测到立体成像,大幅降低了三维立体显示用户端的观测难度。因此,裸眼3D 显示技术被认为是未来显示领域的重要发展方向[1-11]。

在与裸眼3D 显示器交互的过程中,键盘和鼠标等传统交互方式难以满足用户进行信息交换和更加新颖的体验需求。同时由于近年全球新冠疫情的反复,减少直接接触可有效预防疫情的传播。因此无需直接接触的新型交互方式逐渐成为优先选择,如语音交互、眼动跟踪、手势交互等。

手势作为人类自原始时期至今仍在使用的古老有效的沟通方式,具有简单、表达直接、含义广的优点,在人类交流中起着重要作用。研究表明,一个人的手势和他本人的记忆存在直接关系。与身体姿势、头部姿势不同[12-13],手势作为一种肢体语言,一个简单的手势蕴涵着丰富的信息。人与人通过手势能够传达大量的信息,实现高速通信。

手势交互是一种基于人类手部运动的交互方式,它可以通过摄像机或光学传感器捕捉人手部动作,解析出手势特征,与计算机进行信息交换。手势交互有利于提高用户的操作效率,并且能够带来更加自然亲和的交互体验,因此,手势交互可能成为3D 光场最佳的交互技术之一。利用手势进行交互,核心问题是手势识别与分类,推测手势含义。手势识别主要依赖3 种方法:可穿戴的数据手套[14]、手部关键点骨骼[15]的三维位置、图像。

传统手势识别使用RGB-D 图像序列分类手势。本文提出一种基于手部关键点的深度学习手势识别方法,不需要引入大量手部图像。该方法提出使用Leap Motion 设备采集手部骨骼关键点数据,选择多层感知器神经网络(Multilayer Perceptron,MLP)对手部关键点数据进行分类训练,通过学习手部关键点的数据跳变关系提取手部特征。

本文提出的方法手势识别速度达到毫秒级,并且可以准确判断3D 光场交互中常用的简单手势和复杂手势。最后,本文展示了一种将所提出的手势识别方法应用于裸眼3D 光场交互的场景。

2 基于手部关键点的手势识别网络

2.1 手部关键点选取

手部骨骼关键点取点方式由图1给出,共21个关键点。O点是手部掌心点坐标。由于人类手部骨骼的特性,在同一种手势的前提下,手掌中心点与其他21 个关键点的相对位置恒定。pi是第i个手部关键点数据的三维坐标:

图1 手部关键点Fig.1 Key point of the hand

其中:xi表示第i个点在三维坐标系中的x值;yi表示第i个点在三维坐标系中的y值;zi表示第i个点在三维坐标系中的z值。

手部骨骼关键点三维数据通过Leap Motion设备来捕捉。虽然Leap Motion 在实现手势交互过程中可以通过人工定义骨骼点距离、方向等定义手势,但这种方法存在一定的局限性。在复杂手势的情况下,人工定义手势的过程会面临巨大的挑战。因此,本文提出的方法旨在通过省略人工定义手势的步骤提升手势识别的速度和准确度。

由于手势在空间中的高度、位置和姿态的多样性,在空间中不同位置采集的同一种手势的三维坐标数据会存在显著差异。这导致神经网络更加关注三维坐标数据的差异性而不是关键点间的数据特征,因此神经网络难以学习到有效的手部特征。

2.2 手部关键点数据预处理

为了消除三维坐标差异对手势识别的干扰,本文提出了一种手势归一化方法,旨在将不同位置的手部关键点调整到相同的位置和方向。该方法能够有效地减弱从不同位置捕捉手势所带来的影响。图2 是手部关键点数据预处理的方法图示,其核心有两点:一是将手势载入同一右手笛卡尔坐标系,二是进行位姿变换。

图2 手部关键点预处理方法Fig.2 Pre-treatment method for key hand points

首先对加载入同一右手笛卡尔坐标系中的手部关键点进行位移变换。选定掌心点O,如公式(2)所示:

在本文的设计中,掌心点O不参与神经网络训练,而是通过将其位移至xyz坐标系原点来达到手部关键点位移变换的目的。由于手部关键点与掌心点O之间存在线性关系,掌心点O的位移会导致手部21 个关键点的三维坐标也发生相应的位移。通过这种方式可将所有手势调整到xyz坐标系的原点位置。

然后针对位移变换后的手势进行姿态调整。提出姿态调整的原因有二:一是在该空间内,同一种手势保留不同姿态,数据之间的显著性差异仍然存在。二是平移后,21个手部关键点与掌心坐标的相对位置等价于关键点与坐标轴原点的相对位置,手势姿态调整可简化为向量旋转问题。本文提出利用罗德里格斯公式进行姿态调整。罗德里格斯公式是描述向量三维旋转的数学方程,它可以用来计算将一个向量绕某一旋转轴旋转给定角度后得到的新向量。该公式在空间解析几何和计算机图形学领域中应用广泛,常用于填写旋转矩阵。旋转矩阵由式(3)求出:

其中:k=(kx ky kz)T为旋转轴单位向量,由原向量与旋转后的向量叉乘求出,如图2 所示;θ是旋转角度;R为旋转矩阵;E为单位矩阵。

本文在进行手势姿态调整时,首先获取掌心法向量v1,方向由手心指向手掌内侧向下。然后获取手指方向向量v2,方向由手心指向手指尖端。未进行归一化处理时,两者在空间中保持垂直关系,均可被Leap Motion 设备直接采集得到,如图2 所示。将向量v1、v2旋转到与坐标轴平行的方向,本文选择先旋转v1至v1-rot,旋转轴为k1。然后再旋转v2至v2-rot,旋转轴为k2。

由公式(3)计算出旋转矩阵R1、R2,需要注意的是,向量v1旋转后,向量v2并没有跟随旋转。这是因为本文仅对采集得到的数据进行预处理而不是对设备本身采集算法的修改,针对向量v1的数据调整并不能影响实际采集。

各个关键点相对于掌心点O的旋转等价于原点到各个关键点间向量的旋转,由公式(4)算出旋转后的三维坐标:

其中:Pi为原点到位移后各关键点的向量;Pi-rot的值为旋转后的三维坐标,如P0-rot的值为大拇指根部关键点旋转后的三维坐标值。经过位姿变换的同一种手势,可以有效抑制手部关键点数据在空间中的大幅度波动,消除三维坐标数据间的显著性差异。为了提高神经网络的鲁棒性,本文采用数据增强的方式。

数据增强是在不实质性的增加数据的情况下,从原始数据加工出更多的表示以接近于更多数据量产生的价值。其原理是通过对原始数据融入先验知识,加工出更多数据的表示,有助于模型判别数据中统计噪声,加强本体特征的学习,减少模型过拟合,提升泛化能力。本文通过添加高斯噪声的方式增强数据。高斯噪声是指它的概率密度函数服从高斯分布的一类噪声,如式(5)所示:

其中:μ为期望,σ2为方差。

2.3 基于MLP 网络的手势识别

为得到手势分类识别结果,本文使用MLP神经网络对预处理后的手部关键点进行深度学习提取手部特征。MLP 神经网络是一种人工模拟生物神经元系统的模型,其最典型的架构包括3 层:输入层、隐藏层和输出层。

MLP 神经网络不同层之间是全连接的,即上一层的任何一个神经元与下一层的所有神经元都有连接。MLP 由多个节点层组成,每一层都完全连接到下一层。除了输入节点,每个节点都是一个带有非线性激活函数的神经元。多层感知器与人类神经元工作原理相似,可以模拟人类学习时神经元的变化。多层感知器首先进行学习,然后使用权重存储数据,使用算法来调整权重并减少训练过程中的偏差,最后达到数据预测的效果。

如图3 所示,Input layer 是网络的输入层,负责输入数据。Hidden layer 是网络的隐藏层,与输入层全连接,模拟神经元。Output layer 是网络的输出层,输出分类结果。

图3 MLP 训练手势分类Fig.3 MLP training gesture classification

对每个手势关键点,将其展开成一组xyz值的集合,作为神经网络的输入。共有21 个关键点,对应输入层的63 个节点。输出层节点数与需要进行分类识别的手势种类数量相同。本文对14 种手势进行分类识别,输出层节点数为14。网络设计包括3 个隐藏层,每层包含512 个神经元。

3 手势识别实验

3.1 准备数据集

本文分别考虑了3D 光场交互系统中出现的两类手势:简单手势和复杂手势。共采集14 种,分别对应0~13 的标签。前8 种为3D 光场交互中的简单手势,后6 种为复杂手势。采集15 000 组手部关键点数据,用以训练网络。

3.2 简单手势识别结果

为了检验所提出方法的准确性和鲁棒性,本文对单一手势数据集和混合数据集进行实验。1 号测试集包括8 种手势,并且在手部捕捉过程中出现较大幅度的活动。图4 展示了本次实验采集的简单手势。

图4 简单手势(左:手势0~3;右:手势4~7)Fig.4 Simple gesture (Left: Gesture 0~3;Right: Gesture 4~7)

图5 复杂手势(左:手势8~10;右:手势11~13)Fig.5 Complex gestures (Left: Gesture 8~10;Right:Gesture 10~13)

对简单手势的实验结果如表1 所示。单独的8 种手势识别均达到95%以上的准确率,说明本文提出的方法可以准确识别简单手势。通过分析1 号测试集可以得出,当手部运动速度较快或幅度较大时,识别准确率显著下降。因此,在进行手势捕捉时应注意保证手部运动幅度较小,避免快速移动。

表1 简单手势识别结果Tab.1 Simple gesture recognition results

3.3 复杂手势识别结果

在复杂手势捕捉过程中,应避免手部快速移动、运动幅度较大的情况。

对复杂手势的实验结果如表2 所示。6 种复杂手势的识别正确率均在90%以上,说明本文提出的方法可以用于识别复杂手势。

表2 复杂手势识别结果Tab.2 Complex gesture recognition results

3.4 小样本数据集识别准确率对比结果

为验证本文提出的方法在小样本数据集训练下具有优秀的性能,将手势0、1、2、3、4、5、8、12采用不同的分类器进行验证对比。分别使用本文提出的方法、Leap Motion 自有手势识别和YOLO 目标检测进行实验。实验中的小样本数据集图片数量不超过150 张。

实验结果见图6。通过对比分析可知,本文提出的方法在小样本数据集下表现出优秀的准确率和稳定性,并且优于另外两种比较方法。其中,Leap Motion 自有手势识别方法稳定性较差,YOLO 目标检测统计的是低置信阈值(0.1)的手势识别准确率,即YOLO 标注出的物体与目标值在相似度较低的情况下,仍然无法高效准确识别手势,因此YOLO 目标检测并不适合小样本数据集,更适用于数据集样本多的情况。

图6 小样本数据集手势识别结果Fig.6 Gesture recognition results for small sample dataset

3.5 归一化对识别率的影响

本文提出的方法核心在于对采集得到的手势数据做归一化数据处理。对所有手势分别进行归一化数据处理和不进行归一化数据处理。其中,不进行归一化数据预处理的手势从不同位置以细微差异姿态采集两组数据。

实验结果如图7 所示。进行归一化预处理后,手势识别准确率远高于未进行归一化预处理的实验样本,且未归一化的手势数据随采集姿态、位置的不同,手势识别结果也不同。由该实验可以得出结论,对采集的手势数据归一化预处理是本文提出方法的核心。

图7 归一化影响识别准确率对比结果Fig.7 Normalization affects the comparison results of recognition accuracy

4 基于3D 光场的人机交互与显示

为验证所提出的方法可被用于裸眼3D 光场交互,本文设计了一种手势控制光场显示内容切换的交互场景作为评估。图8 展示了所提出的方法在裸眼3D 人机交互场景中的应用。

图8 3D 光场交互与显示。(a)文物模型;(b)猴头模型。Fig.8 3D light field human-computer interaction and display. (a) Artifact model;(b) Monkey head model.

图8 (a)和图8(b)依次展示了从最左侧视点、正前方视点、最右侧视点3 个角度下拍摄的文物模型和猴头模型的3D 光场显示照片。右上角的手势对应进行光场人机交互时的手势类型。切换测试共计20 次,全部正确触发光场内容切换,可见本文提出的方法可以成功应用于3D 光场的人机交互。

5 结论

本文提出了一种基于手部关键点的MLP 网络提升3D 光场交互准确度的方法。该方法的核心是通过位移和罗德里格旋转公式对简化后的手势模型进行姿态调整,将同一种手势归一化,以消除不同位置采集手部关键点三维数据间存在的显著性差异。为了从关键点的跳变关系中提取手部特征,引入了多层感知器神经网络。实验结果表明,该方法对3D 光场交互中简单手势的识别率可以达到为95%以上,对复杂手势的识别率高于90%,识别速度达到毫秒级。另外,本文提出的方法在小样本数据集训练下表现出优秀的性能,满足精准、快速实现手势分类识别的要求。最后,本文通过展示一种手势交互控制光场内容切换的场景,验证了所提出的方法可以成功应用于裸眼3D 光场交互与显示。

猜你喜欢

光场关键点手势
聚焦金属关键点
肉兔育肥抓好七个关键点
利用新型光场显微镜高速记录神经元活动和血流动态变化
挑战!神秘手势
V字手势的由来
压缩混沌光场的量子统计性质研究
胜利的手势
集成光场三维显示亮度均匀性校正方法
医联体要把握三个关键点
疯摄影