一种基于SURF 与YCbCr 模型的陪护机器人手势识别交互方法
2023-07-26刘世超曹巨江
梅 准,刘世超,曹巨江,张 佳
(1.陕西科技大学机电工程学院,陕西 西安 710021;2.中航西安飞机工业集团股份有限公司,陕西 西安 710089;3.西安交通大学城市学院,陕西 西安 710018)
0 引言
随着我国及世界主要国家人口老龄化程度的逐步加深,老年人的日常生活陪伴与护理这一社会问题已经得到越来越多的关注。特别是对于半失能、语言或听力受损的老年人,如何完成与护工或助老机器人间的交互,成为了影响这类机器人实现方式与使用效能的重要因素,视觉技术、人工智能等相关技术的发展为这一问题的解决提供了途径。
手势识别是通过人手部的姿态或动作识别来传输特征信息以控制设备或机器人作为一种输入方式,实现人与机器之间的交互。目前,手势识别在手语识别[1]、虚拟现实、机器人控制[2]、交通指挥[3]、医疗辅助等领域有较多的研究。随着计算机视觉和人工智能的不断发展,因基于视觉的手势识别具有非接触、成本低、简单直观且自然便捷的特点,成为了机器交互领域的重要解决方式。
基于视觉的手势识别主要通过Kinect、立体相机、RGB-D 等深度摄像机作为采集设备对手部图像进行采集和处理,实现手势的识别。由于手势的多样性和现实环境背景的复杂性,采集到的手部图像容易受光照强度、肤色、服装、噪声、遮挡以及背景复杂环境的影响。因此手部图像的分割以及边缘、纹理等特征的提取是手势识别的难点[4],同时提取过程中也会难以避免的产生错误识别和无法识别,导致识别的成功率降低,鲁棒性较差。近年来,各国学者在该领域展开了研究,并取得了显著的进展。为了能在训练集较少的情况下实现较好的识别率,文献[5]采用了分类的方法,提出使用基于离散小波变换和费舍尔比率的特征提取对复杂环境的静态手势进行识别。在机器人动态物料搬运中,学者研究了基于OpenCV 进行物料轮廓提取与曲线拟合实现典型零件特征识别的方法[6]。为了得到可信度更高的手势识别特征点,学者提出了基于特征跟踪的人机交互多点手势识别方法[7]。在文献[8]中,为了实时迅速的自动识别出篮球比赛视频中裁判员的手势,作者提出了一种基于定向梯度直方图和局部二值式(LBP)特征的图像分割方法,但该方法采用的边缘检测算法提取的边缘信息较少,影响了识别的成功率。在文献[9]中,作者提出了一种低成本可用于穿戴设备的手势识别方法,该方法通过TOF 深度相机捕捉手掌区域,并进行边缘切割计算,同时可以减少计算时间,但该方法采用的相机成本高,同时识别成功率偏低。
为了将手势姿态识别应用于助老服务机器人的交互场景中,提出了一种基于SURF 特征点匹配算法和YCbCr 肤色模型相结合的方法对复杂背景中的手势图像进行识别与分割。首先通过SURF 特征点匹配算法对复杂背景中的手进行一次粗识别。基于SURF特征点的匹配可以解决特征提取数据量过大的问题,同时提高了识别的效率。此外,SURF 特征还具有尺度、方向不变性,光照条件下保持稳定的优点。肤色模型可以实现手部区域的分割,提高了识别的准确性。最后对提出的方法进行了实验的验证,证实了算法的可行性。
1 手势识别方法
提出的静态手势识别过程如图1 所示。主要包括:图像预处理、特征提取与分割、形态学处理等步骤。其中特征提取与分割是手势识别的核心。
图1 静态手势识别过程
1.1 图像预处理
由于手势图像在形成或运输的过程中会受到复杂环境的干扰产生噪声[10],这些噪声会导致图像模糊、图像失真和图像特征缺失。为了不影响后续手势识别和手部分割等工作的进行,本文采用中值滤波对手势图像进行图像平滑处理,去处图像中的椒盐噪声。中值滤波可定义为:
式中:g(s,t)为原始图像;f(x,y)为滤波后图像;Sxy为滤波器模板。
如图2 所示为手部图像降噪后的结果。
图2 手部图像降噪结果
1.2 SURF 特征点提取
SURF 算法采用了SIFT 算法的思想[11],在特征提取和描述方式上进行了改进,提高了算法的效率和稳定。该算法核心在于采用Hessian 检测图像尺度不变关键点,生成稳定的边缘点,提高了算法的鲁棒性。SURF 算法的步骤如下:①检测关键点;②构建图像尺度空间;③选取特征主方向;④特征点描述;⑤特征点匹配。
(1)检测关键点
设图像为I(x,y),(x,y)是尺度为σ的图像中的像素点,其Hessian 矩阵为:
其中Lxx为高斯滤波函数卷积后的二阶微分,同理其余三项含义相似。可以得到每个像素点Hessian 的判别式为:
其中ω为平均近似代替误差的权值,满足一定阈值条件Det(H)的像素点,即为检测的关键点。
(2)构建图像尺度空间
通过构建图像尺度空间,获得尺度不变的特征点,SURF 算法主要通过改变滤波器的大小对图像进行高斯模糊,不改变图像的尺寸大小,得到多层的尺度空间图像。最后,使用相同尺寸的滤波器检测特征点。
(3)选取特征主方向
首先利用阈值进行特征点的筛选,获取特征点的位置,其次统计6s(s 为尺度因子)邻域内像素水平和垂直方向的Harr 小波特征。最后,使用60°的扇形进行旋转,然后统计区域内Harr 小波特征值,将小波特征值大的方向作为特征点主方向。
(4)特征点描述
在得到的特征点主方向后,将周围20s × 20s 的矩形区域划分为16 个子区域。分别计算每个子区域内像素点在水平方向和竖直方向的Harr 小波特征值之和Σdx和Σdy,然后再分别计算水平方向和竖直方向的特征绝对值之和最后把4个值作为每个子区域的特征向量,一共得到64 维特征向量。
(5)检测关键点
通过计算图像对之间两个特征点的欧式距离,在参考图与待匹配图中找到与它距离最近的两个特征点,通过设定的阈值进行判断,若两个点都小于阈值,那么两个点可以进行特征点匹配,反之则需要剔除。
如图3 所示为手势特征点匹配的结果,图4 所示为手势识别的粗识别。
图3 SURF 特征点匹配结果
图4 手势识别的粗识别结果1.3 YCbCr 肤色模型分割
1.3 YCbCr 肤色模型分割
在完成了手势的粗识别后,为了提高手势识别的准确性,需要把手部区域从图像背景中分割出来,减少复杂环境的干扰。肤色在手势识别中具有明显的特征,YCbCr 颜色模型是色度和亮度分割的空间[12],符合人类视觉感知,对肤色的聚类效果较好,不易受光照等其他因素干扰。因此采用了基于YCbCr 的皮肤颜色模型进行手部的分割。
在YCbCr 颜色空间中,Y 表示亮度,Cb 代表蓝色色度,Cr 代表红色色度,将手部图像由RGB 色彩空间转换到YCbCr 色彩空间的关系如下:
确定空间转换的椭圆肤色模型,在CbCr 平面上手部肤色可以近似集中在一个椭圆内,其函数模型公式如下:
经统计实验发现,可以确定的参数值为:Cx=109.38,Cy= 152.02,a= 25.39,b= 14.03,θ= 2.53。对于任意的坐标,若在椭圆内或边缘处,则被认为是手部肤色像素点,反之将其去除。若某个像素点的Y、Cb 和Cr,不在设定的阈值范围,则不属于肤色像素点,属于背景点。图5 是YCbCr 肤色模型分割的手部结果。
图5 YCbCr 肤色模型分割结果
1.4 组合形态学算法
手部肤色模型分割后可以分离出大致的手部轮廓信息,但背景环境中存在较多的干扰因素,边缘部分存在不平滑和孔洞等现象。因此需要对分割后的手部图像进行处理。本文采用组合形态学算法对手部图像进行膨胀处理、孔洞填充和连通域处理,使手势识别达到较好的效果。具体步骤如下:
首先进行膨胀处理,将边界向外部扩张,填充手部图像中的小孔及其缺失凹陷部分,确保手部边界的平滑。膨胀处理的公式为:
其中A⊕B表示结构元素B对图像A的膨胀。
孔洞填充将手部图像中封闭区域的孔洞进行填充,保证手部区域图像的完整性。孔洞填充的公式为:
其中Xk为待填充区域分割的区域块;X0为由0 组成的阵列,也是边界的初始位置;B为已知对称的结构元;Ac为即A的补集。
连通域处理可以将除手部图像以外的区域进行过滤,只将连通域面积大的手部保留下来。
如图6 所示为最终的手势识别结果。
图6 手势的最终识别图
2 实验与分析
为了验证提出方法的可行性,在复杂背景下对5种不同的手势动作进行了识别。每种特定的手势动作重复了30 次,从不同的角度和合适的距离对手势动作图像进行采集。如图7(a)所示为5 种不同的手势动作,图7(b)为最终的识别结果。
图7 5 种手势动作和5 种手势的识别
5 种不同手势分别进行了30 次的实验结果见表1。从表中可以看到,“写字”手势的识别成功率为83%,因为两只手会增加识别的误差,需要将两只手都识别出来才算识别成功。“推椅子”手势的识别成功率最高,为96.7%,椅子背景较其他手势复杂背景而言相对单一,因此识别成功率较高。此外,光照条件和目标物表面的反光也会影响手势识别的成功率。
表1 5 种不同手势的识别结果
3 结语
本文提出一种基于SURF 和YCbCr 结合的静态手势识别方法。中值滤波算法用来去除手部背景的噪声干扰;基于SURF 特征点匹配算法对手部图像进行粗识别,用于在复杂背景中找到手部特征信息,减少了算法处理占用的内存空间,提高了识别的准确率。基于YCbCr 肤色模型的手势分割算法,可以将手部特征分割出来,实现了手势的精确识别。然后通过组合的形态学算法对分割出来的手部图像和干扰背景进行细化处理,将复杂背景中的干扰物去除,只保留手部的重要信息。最后对5 种不同的手势进行了实验验证,其中“推椅子”手势识别结果的成功率最高为96.7%,实验结果表明所提出的方法具有很好的准确性和鲁棒性。