基于RGB&D传感器的手势与人脸识别智能轮椅控制系统

2021-12-30 01:26万昔源
河北软件职业技术学院学报 2021年4期
关键词:识别率手势轮椅

万昔源

(义乌工商职业技术学院 义乌创新研究院,浙江 义乌 322000)

0 引言

中国发展基金会发布报告预测,到2022年中国65岁以上人口将占总人口的14%,从老龄化社会进入老龄社会。报告还显示,2050年左右,中国60岁以上的人口将达到5亿人[1]。因此,轮椅的需求量将越来越大。但是,目前市场上的电动轮椅仍然以通过摇杆控制为主。部分科研机构已进行新型人机交互控制轮椅方式的研究。比如,重庆邮电大学智能机器人研究所开发了基于手指命令识别的机器人运动控制系统,如图1所示[2];日本神奈川理工学院的方案是,将手作为虚拟鼠标进行轮椅控制,如图2所示[3]。但是,手指识别的方案受限于操作者的手指灵活度;虚拟鼠标控制的方案经过测试,操作难度较高,容易误操作。考虑到老年用户的操作精度问题,本文利用深度摄像头,采用了较大幅度的手势以及头部动作识别来控制轮椅[4],并设计了一套安全优先的控制逻辑。

图1 重庆邮电大学研究成果

图2 日本神奈川理工学院研究成果

本系统整体研究框架如下:第一,原始数据利用Kinect传感器深度数据与RGB图像;第二,通过双指数平滑滤波,以消除抖动,平滑数据;第三,将用户深度数据与背景分离,以降低背景噪声干扰;第四,创新地利用匹配深度坐标系和RGB相机坐标系的方式检测用户手势命令,提高识别率,并使得用户操作感知更加直观。系统框架如图3所示。

图3 系统框架

1 数据获取与处理

1.1 深度数据的获取

Kinect传感器的深度数据流由图像帧组成(如图4所示)。在每幅深度图像帧中,任意像素都有特定的深度数据,即Kinect传感器到物体的距离,单位为mm。每个像素有16位数据,较高的13位是Kinect到对象的深度数据,较低的3位是用户索引数据,如图5所示。因此,Kinect可以测量的理论深度为0-213(mm)。

图4 深度数据图

图5 深度数据流

1.2 双指数平滑滤波

由于硬件与软件性能限制,有多种原因会引起数据的抖动。其中一个主要原因是由于数据量大,每分钟系统要处理超过1000万次的深度数据。因此,在使用深度数据之前的一个重要步骤是使用降噪滤波器从数据中去除尽可能多的噪声,使得获取到的数据更平滑。

一个理想的滤波器用于消除所有不必要的噪音和抖动的数据,并且没有任何滞后或延迟。但是,在实践中,滤波与无延迟之间几乎是一对矛盾,滤波过程中,必然产生一些程序运行的延时。所以需要在这两个目标之间找一个折中点。经过测试,本系统中选择了双指数平滑滤波算法[5-6]。算法公式如下:

其中,bn是利用特定时间间隔获取的数据拟合形成预测的趋势,xn是通过控制趋势bn的权重所输出的结果。滤波结果如下:

做如图6和图7所示的姿势,并保持图7的姿势一段时间。检测右手深度数据的输出如图8所示,滤波参数α=0.35,γ=0.7,X轴单位为帧,Y轴单位为米。灰色线是过滤后的数据,黑色线是原始数据。可观察到,滤波后的输出数据比原始数据平滑,虽有一定的延迟,但在可接受范围内。

图6 滤波测试手势a

图7 滤波测试手势b

图8 滤波测试结果

1.3 分离用户与背景数据

背景数据的存在会引起不必要的干扰,因此需要在获取到的深度数据中,将用户的数据提纯。

数据处理方法如图9所示,矩阵a表示一组简化的深度图像的16位数据矩阵示例,它包括一个用户和其他背景。将矩阵a的每个像素左移13位,就可以得到矩阵b。从矩阵b中,很容易区分哪些数据代表用户,哪些是背景。因此,可以从矩阵a中得到用户的数据,如矩阵c所示。

图9 深度图像矩阵

提纯后的深度数据图像如图10所示。

图10 分离背景

2 动作识别

2.1 命令识别

手势是一种旨在传达信息的人体运动或动作,特定的手势可以让应用程序知道我们要做什么。在获取到深度数据后,需要做的就是将若干深度数据组合起来,设计一组发送手势命令的逻辑。手势识别大体上有两种方案:第一种是采用识别双臂交叉的手势发送命令[7]。交叉手势方法的主要思想是跟踪两个或多个指定的关节,当它们交叉或重叠时触发事件执行。但它也有一些缺点,例如,做手势如图11左图所示并获取400帧图像数据,然后切换到手势如图11右图所示,同样获取400帧数据,从左侧y轴数据(图12)可以看出,前半部分与后半部分完全不同。前400帧是稳定的,而400帧到800帧有很多抖动。这样的抖动情况,用于轮椅控制中是不能接受的。

图11 交叉手势测试

图12 交叉手势测试数据

因此本文采用了另一种方案:利用在RGB图像中计算关节相对坐标的方式来设计控制命令。此方法的主要思想是跟踪人体骨骼的关节数据,然后在RGB图像上进行匹配。这样就可以得到RGB图像中人体关节点的相对位置。由于传感器获取的深度坐标数据是原点位于传感器中心的三维数组,而RGB图像数据是原点位于图像左上角的二维数组,故物体深度数据的坐标系与RGB图像坐标系有所偏差。正如我们在图12中所看到的,当两个关节交叉时,骨架坐标系中的X和Y轴数据将有很大的抖动,所以我们不能使用深度数据中的X和Y轴值。为了让图像呈现更加直观,不直接使用X和Y轴深度数据来呈现给用户,而需将深度图像坐标系映射到RGB图像坐标系中。映射公式如公式(3)和(4)所示,其中Point.x为X轴方向得出的映射结果,Xd为深度图像X坐标系值,Xmax为深度图像坐标系x轴的最大值,image.width为图像的宽度,Point.y为Y轴方向得出的映射结果,Yd为深度图像Y坐标系值,Ymax为深度图像坐标系y轴的最大值,image.height是图像高度,k是经验值。

2.2 控制方式设计

本系统设计了如下5种控制方式:

(1)前进:点头(超过20度)二次;

(2)左转:头向左转大约20度,并保持;

(3)右转:头向右转大约20度,并保持;

(4)停止:举起双手或者张开嘴巴;

(5)加/减速:举右/左手过头顶并保持;

(6)开关:双手同时举过头顶。

3 系统测试

本文设计了两个部分的测试(如表1所示):首先,在第一节中测试了每个功能的动态和静态性能,比较了这两种不同状态下得出的识别率;其次,在第二节中测试了环境对系统的干扰,如将行人、运行时间等作为变量。

表1 系统测试项目

测试结果如下:

如图13所示,系统对初学者手势命令的识别率在80%左右,经过一段时间训练,能显著提高识别率,最终达到95%以上;

图13 用户熟练度对比测试数据

如图14所示,系统能够规避路人的干扰,紧紧跟踪住操作者;

图14 路人干扰测试

如图15所示,系统在运行60分钟后,由于硬件设备原因,识别率产生了一些衰减。今后将在硬件稳定性方面,做进一步优化。

图15 系统运行时常对比测试数据

4 结语

随着传感器技术的进步,人机交互技术近年来得到了长足发展。如Kinect、Leap Motion等产品不断涌现。如何将人机交互技术与老年人的出行需求结合起来,开发出新型的智能轮椅,是一个值得深入研究的课题。

本文对传感器数据的获取、原始深度数据的滤波、用户与背景分离等做了深入研究,并开发出了一套能够识别多种命令的轮椅控制逻辑。实验结果表明,基于RGB&D传感器的手势与人脸识别智能轮椅控制系统抗干扰效果良好,识别率在95%以上。今后的研究中,还将与轮椅生产相关企业如联谊电机股份有限公司等深入合作,加入自动避障等模块,改进研究成果。

猜你喜欢
识别率手势轮椅
轮椅上的爱
我的轮椅
挑战!神秘手势
基于真耳分析的助听器配戴者言语可懂度指数与言语识别率的关系
听力正常青年人的低通滤波言语测试研究*
轮椅上的姑娘(外三首)
胜利的手势
档案数字化过程中OCR技术的应用分析
科技文档中数学表达式的结构分析与识别
轮椅