时间:2024-05-04
包先宏 邢邓鸿 吴庚明 张森文
(佛山科学技术学院 广东省佛山市 528200)
随着社会的不断进步和发展,越来越多新型电子产品出现在人们的日常生活中,为便于人们与电子设备间的高效交流,人机交互已经成为了计算机领域一个非常重要的研究热点。其中,手势交互无疑是人机交互中最主要的交互方式之一,被广泛应用于手语翻译、游戏交互、机器人交互和智能家居等诸多领域。准确的手势识别是人机交互稳定性的基础,因此手势识别是人机交互领域的一个重要研究方向。
在手势识别研究中,基于视觉的手势识别是当前应用最为广泛的手势识别技术。手势分割是手势识别的前提和基础,其分割效果的好坏会直接影响后续手势识别的效果。因此,手势分割是手势识别系统中极为关键的步骤。手势分割的方法有肤色提取和运动分析等,因为肤色是人类最显著的特征之一,所以大多数情况下则选取肤色提取进行手势分割。
对于肤色提取,常用的方法有基于RGB 颜色空间和HSV 颜色空间下的肤色提取和基于YCbCr 颜色空间的肤色提取。然而在手指有装饰物的时候,这些方法在处理过程中会出现手指被截断的现象,从而影响手势识别的准确性。本文针对YCbCr 颜色空间下的肤色提取方法因手指装饰物造成的截断问题展开研究,并通过形态学操作对截断区域进行最大限度的还原。
基于肤色模型的手势分割优化方法总体设计如图1 所示。
图1: 基于肤色模型的手势分割优化方法总体设计流程图
颜色空间又称彩色模型,是某些标准下用通常可接受的方式对颜色的阐述。而颜色可以通过不同的角度,用几种不同的属性加以描述,就产生了不同的颜色空间。常用的颜色空间有RGB 颜色空间、HSV 颜色空间和YCbCr 颜色空间,而本文采用的是YCbCr 颜色空间。
RGB 颜色空间是生活中最常见的颜色空间,以RGB(R代表红色值,G 代表绿色值,B 代表蓝色值)三原色为基础,进行不同程度上的混合叠加,表现出不同的颜色。常用于视频、多媒体、网页设计和各种硬件设备等。但RGB 颜色空间存在易受光照因素干扰的缺点。
YCbCr 颜色空间是肤色提取常用的颜色空间,它从三个方向描绘颜色,其中Y 代表亮度分量(灰度值),Cb 代表蓝色色度分量,Cr 代表红色色度分量,相比于常见的RGB颜色空间,YCbCr 颜色空间的优势在于亮度和色度进行累分离,消除了光照因素的干扰,所以YCbCr 是计算机系统中应用最广泛的颜色空间,JPEG 和MPEG 都采用了此格式。在视觉传感器获取到RGB 颜色空间的图像后,再对其颜色空间进行转换,其中RGB 颜色空间与YCbCr 颜色空间转换关系如公式(1)。
Otsu(最大类间方差法,又称大津法)是一种适合于双峰情况的自动确定阈值的方法,其实现简单,处理速度快,是图像分割阈值法中最为常用的方法之一。Otsu 法将图像按照灰度特征分离成前景和背景两部分,因为方差是灰度分布均匀程度的一种度量,前景和背景之间的类间方差越大,则说明构成图像的两部分差别越大。Otsu算法的基本原理如下:
设图像中像素点总数为N,n表示图像中灰度为i 的像素点个数,则有N=n+n+…+n= 。根据Otsu 算法的思想,此时选取一个阈值τ,τ∈(0,255),将所有像素点分为A,B 两类使得两类的方差最大,其中A={0,1,…,τ},B={τ+1,τ+2,…,255}。设像素被分到A 类的概率为P(A),被分到B 类的概率为P(B),计算如下:
将式(4))代入式(5)中,设m(τ)= ,整理得:
对于已经在较小范围内框选出了的手部区域来说,前景和背景的分离较为明显,Cr 分量直方图如图2 所示。通过式(1)获取的Cr 分量值进行Otsu 法阈值分割,记为bin,实例如图3 所示。
图2: Cr 分量灰度直方图
图3: 原图与初步处理效果图
图4: 优化前后手势分割图
首先提取手掌位置,为进行截断手指部分与手掌区域重新建立连线,对后续的填充提供方便。因此,基于整幅图片进行区域划分,将图像划分为n×n 的一共n个区块,在第一次进入程序时,图像被划分为4×4 的区块,对每个区块进行遍历,由于每一个区块的像素点数是相同的,设一个像素点为Point(x,y),简写为P(x,y),一个区块的像素点集为Vector〈P(x,y)〉,简写成V,若区块内的像素点∀P(x,y)∈V,并且满足P(x,y)=255,即区块内每个像素点都为白色,则认为该区块为手掌待选区块,存至待选区块集,记为S{V〈P(x,y))},简写为S。若S.size<2,则令n=n+1,并重新划分区块;若S.size ≥2,并且∀V,V∈S(j ≠k,0<j<k<n)满足(j±1=k)||(j±n=k),则将该V和V存至手掌区块集,记为S{V〈P(x,y)〉},简写为S(i=2,…,m),然后继续令n=n+1,并重新划分区块,若第i+1 次划分出现了两个或两个以上的连通区域,则将第i 次筛选出的S作为手掌区域,并求得S连通区域的外层轮廓,记外层轮廓点集为V〈P(x,y)〉。
进一步对截断手指进行处理,由于有着部分类肤色小区域干扰,所以需要对处理过后的bin 图像进行轮廓遍历,使用面积比较法,筛选出面积为第二大的连通区域,默认该区域为截断手指区域,将该区域轮廓记为Vector〈Point(x,y)〉,简写为Vc。遍历Vc 中的点,通过公式(8)计算截断手指区域中心Point(x,y)。
之后遍历点Point(x,y)和Point(x,y)之间的直线上的点Point(x,y),若Point(x,y)=0,即其像素值为0,则将其置为255,并且将该点存入V〈P(x,y)〉中。
膨胀操作是一种经典的图像形态学滤波,通常用于消除图像中的噪声干扰,隔离单个元素并连接图像中的不同元素。其操作过程是将输入图像与一个任意形状结构的元素(内核)进行卷积,该内核通常为正多边形及圆形,一般规定该内核的中心为该内核的锚点。而后将锚点对图像像素点进行注意扫描,在内核对图像进行扫描的过程中,会用内核与图像重叠处灰度最大值替换掉锚点处的像素值。在二值图中,膨胀操作会使白色区域得到扩张。膨胀操作示意图如图5 所示,膨胀操作表达式如下:
图5: 膨胀操作示意图
图6: 其他手势优化前后对比图
实验数据集收集了500 张图片,分别来自于10 人,手势类型为5 种(类型1 为食指,类型2 为食指和中指,类型3 为食指、中指和无名指,类型4 为处大拇指外的其他手指,类型5 为所有手指),每种手势类型每人10 张,干扰类型有手指戒指佩戴干扰和黏贴止血贴干扰,以及手势朝向分为垂直朝向、斜45 度朝向和横向。统计手掌区域判定准确率和截断区域填充准确率,由于手掌区域轮廓触及到手指区域的时候,会一定程度上影响截断区域的判定效果,所以对于手掌区域判定标准为最大手掌区域且不触及手指区域,对于截断区域填充准确率判定标准为填充效果是否超过截断区域的3/4 以上且填充不过度超出截断区域。
通过实验数据表1 和表2 可以看出,在干扰类型中,对手掌区域判定影响不大,但是因为止血贴比戒指的截断区域更长,所以对填充准确率有一定影响;在手势类型中,可以发现类型1 的手势判定准确率和截断区域填充准确率都是98%,而其他手势的准确率随着手指的增加,准确率呈现下降的趋势,这是因为截断手指以外的手指伸出会导致在框选手掌区域轮廓时部分区域被框选,影响截断手指对最近手掌点的判断,从而导致截断区域的判定错误。
表1: 戒指佩戴干扰填充结果
表2: 止血贴粘贴干扰填充结果
通过表3 可以看出,在手势垂直的情况下对手掌区域的判定截断影响较大,而斜45 度手势和横向手势的非常高,根据分析得知原因和手指增加导致准确率下降的原因相同,由于手掌区域判定通过方形区域进行辅助,容易造成垂直手势中垂直手指方形区域纳入手掌区域,从而导致截断区域的判定错误;而斜45 度手势中,少有垂直手指的出现,所以手掌判定高达98.8%,截断区域填充准确率高达97.6%。
表3: 手部区域朝向对填充影响结果
表4: 平均准确率
本文的手势分割优化方法,在原有肤色提取基础上,对手势分割进行了优化。针对手指饰品等物品对原有手势分割方法带来的局部干扰,提出了一种新的解决方法,通过形态学操作对饰品等物品截断区域进行填充,将截断手指区域与手掌区域进行重新连通,并尽可能的保证了手势的完整性,能够为手势识别系统中发挥更积极的作用。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!