结合肤色和Hough变换的人手检测方法

2019-10-10 06:55杨永辉鄢阳宋友张海龙冯运郭子娟
广东电力 2019年9期
关键词:人手二值肤色

杨永辉,鄢阳,宋友,张海龙,冯运,郭子娟

(1.南瑞集团(国网电力科学研究院)有限公司,江苏 南京 211106;2. 国网电力科学研究院武汉南瑞有限责任公司,湖北 武汉 430074;3. 国网四川省电力公司电力科学研究院,四川 成都 610072;4. 中国电力科学研究院有限公司,湖北 武汉 430074)

目前,我国很多电力企业引入了三维虚拟仿真培训系统[1-3]。该系统不仅可以提供学员漫游的功能,而且学员还能在虚拟场景内实现电气测试和设备校准的操作,这既能有效提高培训的效率,又能消除因为误操作所造成的风险[4-5]。但是,学员在三维虚拟场景中对虚拟设备进行测试操作和校准控制时,需要频繁地移动和点击鼠标,大大影响了学员的沉浸感。为了实现电气测试设备校准全景仿真中的人机交互,研究基于人手的自然特征来进行手势的识别,不仅可以降低电气测试设备校准全景仿真培训系统中人机交互的成本,而且更加符合人类的自然习惯[6]。

基于人手的自然特征来识别手势,首先要进行手部的检测,以确定手部的大小、位置和形状。只有获得了手部区域的信息,才可以进一步提取出相应的手部特征,完成后续的手势识别任务。因此,手部检测精度的高低会直接影响到手部特征的提取,进而影响到最终交互操作的结果[7]。

常规的手部检测方法往往通过提取图像的底层特征来对图像进行分析,进而获取图像中的手部区域,最后进行手部的分割和识别[8],其中,肤色是人手检测最常用的特征。杨世强等[9]研究了基于肤色的人手检测方法,提出先在YCrCb色彩空间上对肤色信息进行多混合高斯建模,来获得肤色信息的多混合聚类表示,再利用该高斯模型在线快速学习肤色分布,最终实现利用肤色信息来对人手进行检测。形状也是一种常用的人手检测特征。张国家[10]和郭文爽[11]分别提出提取图像的圆形梯度和梯度方向直方图来进行手势的检测与分割,准确率分别为90%和92.4%。Guo[12]提出基于运动的人手检测方法在交通系统的应用中也取得了不错的效果。对于复杂的图像,提取单一的特征难以取得好的检测效果,为此,袁敏[13]提出先通过计算三幅相邻数据帧的帧差来得到图像的运动信息,以此来得到确定人手在图像中位置的信息,再引入椭圆模型的肤色检测方法来对手部区域进行分割,最终得到人手检测结果。跟单独使用肤色特征或运动特征相比,该方法的准确率更高,鲁棒性更强。张玉美[14]提出了一种改进的聚合通道特征算法来对手部进行检测,该方法结合了Edge Boxes、多色彩空间肤色模型、边缘直方图和Xgboost等特征,在存在高斯噪声和受人脸干扰的情况下,该方法依然可以有效地进行手部检测。

随着深度学习概念的提出和发展,越来越多的研究者开始将深度学习引入到手部检测的研究领域。王龙[15]和Roy[16]提出先基于肤色模型将手势区域从背景中分割出来,然后采用卷积神经网络(convolutional neural network,CNN)模型对分割出来的手势区域进行分类识别。刘壮[17]研究了基于Fast R-CNN的通用物体检测方法,提出了基于双通道Fast R-CNN的手部检测框架,该框架有效融合了图像的彩色和深度信息,能够有效提高手部检测的精度。Hoang等人[18]提出了采用多尺度Fast R-CNN进行人手的方法,该方法利用全局和局部深度特征对图像中的人手进行编码从而获取人手的位置。跟常规的手工特征提取方法相比较,基于深度特征的人手检测方法的检测准确性得到了很大的提升。但是,深度学习需要大数据的支持。考虑到目前尚未整理出大规模的、适用于电气设备测试及校准的手势图像数据集,本文选用常规的图像处理方法来进行人手检测。通过对已采集到的人手图像进行分析发现:尽管电气测试设备及其校准装置繁多,但是这些设备和装置的颜色比较单一,以灰色和白色为主,这跟人体肤色的差别比较明显;人的脸部线条多为曲线,而与手部相关的部分多为直线,例如人的手指与前臂。为此,本文提出结合肤色和Hough变换来实现人手的检测,为后续手部特征提取以及手势识别提供研究基础。

1 人手检测与分割算法

本文所提的人手检测算法包括肤色检测、Hough变换和特征约束3个模块。整个系统的输入为实时捕获的人手图像,检测的结果为标注了人手区域的图像。肤色检测模块是指根据输入的图像,在色相、饱和度、色调(hue,saturation,value,HSV)颜色空间采用肤色模型对图像中的肤色区域进行检测,获取肤色二值掩码图像;Hough变换模块先通过Canny算子来提取人脸以及人手的边缘轮廓信息,再利用Hough变换来排除脸部区域,保留人手区域;特征约束模块基于手部轮廓对肤色二值掩码图像进行约束,以获取最终的手部区域。

具体的算法流程如图1所示。

图1 本文所提手部检测方法的流程Fig.1 The flowchart of the proposed method

1.1 肤色检测

肤色检测的主要目的是将人的脸部和手部区域从图像中区分出来,并得到二值化的掩码图像。本文的肤色检测步骤如下:

步骤1:颜色空间变换。

本文以红、绿、蓝(red,green,blue,RGB)的形式表示捕获的图像数据。考虑到RGB的3个颜色通道存在相关性,一个颜色通道的值发生变化会严重影响到最终的检测结果,为了降低RGB的3个颜色通道的冗余,先对图像的颜色空间进行变换,把RGB颜色空间转换成HSV颜色空间。变换公式如下:

(1)

(2)

(3)

步骤2:建立肤色模型。

在电气测试设备校准过程中采集了200幅人手图像。对图像进行人工分割,并对肤色部分的信息进行统计后发现,人皮肤像素的色调值的分布范围很有规律,97.8%的肤色像素的色调值的范围为[13,65]。为此,本文通过将色调值设置成阈值来对图像进行二值分割,以获得图像中的肤色区域。大量实验结果表明,当阈值的范围为[20,45]时,能够获得较好的分割效果。

步骤3:后处理。

使用色调值对图像进行肤色分割后,二值图像中除了肤色区域的信息,还存在一些非肤色的噪声区域,并且肤色区域内还存在一些空洞。针对这些干扰区域,本文选择数学形态学来对上一步所得到的二值图像进行后处理。

后处理的方法如下:先选择尺寸较小的结构元素对二值图像进行开运算,这样就能够消除背景区域的噪声信息;然后,再选用尺寸较大的结构元素对二值图像进行闭运算,这样可以填补肤色区域的孔洞。

经过开运算和闭运算后,可以得到背景干净、目标完整的主肤色区域信息。

1.2 Hough变换

Hough变换[19]是一种常用的区域边界形状描述法,它能有效检测出图像中存在的直线、圆和椭圆。考虑到人的脸部线条多为椭圆形曲线,而与手相关线条多为直线(例如人的手指与前臂),在第1.1节肤色检测结果的基础上,本文通过Hough变换来区分脸部与手部区域。具体过程如下:

步骤1:边缘检测。

使用Candy算法[20]来检测脸部和手部区域的边缘信息。在进行边缘检测前,先用高斯滤波器对二值图像进行平滑处理;然后,使用一阶偏导的有限差分来计算梯度的幅值和方向;最后,对计算所得到的梯度值进行非极大值抑制处理,并以发生边缘断裂的断点作为追踪起点实现边缘的追踪。

步骤2:Hough变换。

在极坐标下进行手部直线的检测。首先,建立一个二维累加数组A来存储(ρ,θ)参数(ρ为极坐标下直线距离原点的法线距离,θ为法线与x轴的夹角),并将A清零;对脸部和手部边缘的每个像素点进行Hough变换,计算出ρ和θ值,并且对A(ρ,θ)做加1操作;最后,A(ρ,θ)中数据个数即为落在距原点的法线距离为ρ、法线与夹角为θ的直线上像素点的个数;对A(ρ,θ)作阈值处理,得到最后的手部检测结果。

1.3 特征约束

特征约束就是根据Hough变换所提取的手部轮廓特征,对第1.1节肤色检测所得到的二值掩码图进行约束,获取最终的人手区域,特征约束计算公式如下:

(4)

式中Ires是特征约束后的结果,即人手图像像素。

2 实验结果与分析

为了验证本文所提人手检测方法的有效性,本文进行了一系列的实验。实验时使用的PC机CPU为2.40 GHz Intel(R) Core(TM) i7-5500U,内存为8 GB,操作系统为Windows 7,软件编译环境为MATLAB 2015。在实验过程中一共使用了100幅包含手部信息的图像。部分图像如图2所示。

图2 电气测试设备校准过程中捕获的人手图像Fig.2 Hand images captured during the process of electrical test equipment verification

图3是使用本文所提方法,对图2中的5幅图像进行基于HSV的肤色检测后所得到肤色区域的二值掩码图像。在进行肤色检测时,饱和度阈值为34;在对二值图像进行形态滤波时,开运算使用的是半径为2的圆形结构元素,闭合运算使用的是半径为6的圆形结构元素。

图3 肤色检测后所得到的二值掩码图像Fig.3 Binary mask images obtained after skin detection

分析图3可以看出,图3(b)(c)中的肤色区域除了人手以外还有人物脸部及脖子区域。而本文的目的是将手部信息从图像中分割出来,因此,还需要对图3(b)(c)进行手部检测。图4是使用本文所提方法对图2(b)进行手部轮廓检测后,再对二值掩码图像进行特征约束后的结果。从图5可以发现,本文所提方法可以很有效地去除了人脸部分的肤色区域,保留了人手区域的轮廓信息。

图4 对图2(b)特征约束后的效果图Fig.4 Result of Fig.2(b) obtained after feature constraint

为了进一步验证本文所提方法的有效性,本文对3种人手检测方法进行了比较,分别为基于肤色的人手检测方法[9](方法1),基于聚合通道特征(aggregate channel features,ACF)的手部检测方法[14](方法2)和本文提出的结合肤色和Hough变换的人手检测方法(方法3)。

本文使用检测正确率来对3种方法进行比较,检测正确率

η=Nr/Na.

(5)

式中:Nr为检测正确的图像数量;Na为所有被检测的图像数量。

图5是使用上述3种方法对图2中的人手进行检测后所得到的结果。

第1行到第3行图片分别为使用方法1、方法2和方法3所得检测结果。

从图5可以看出,3种方法均可以将人手从图中分割出来。但是,方法1不能解决类肤色背景对检测结果的干扰;方法2能够解决人脸对检测结果的干扰,但是不能完全解决其他类肤色背景的干扰,并且方法2分割出的人手部分不完整,存在较多缺陷;跟方法1和方法2相比,方法3能够有效解决类肤色背景的干扰,并且分割出的人手部更完整。

使用3种不同方法对100幅图像进行测试,所得到的正确率和时间见表1。

表1 使用3种不同方法所得结果比较Tab.1 Comparison results of three different methods

从表1可看出,本文所提方法的正确率为93%,而方法1所得到的正确率只有81%,比本文所提方法低12%。主要原因在于方法1只是基于肤色来进行手部检测,而本文所提方法综合考虑了肤色和手部边缘特征。分析表1还可以看出,方法2的检测正确率为89%(比本文所提方法低4%),并且在类肤色背景下,方法3的检测正确率也要高于方法2。主要原因在于方法2不能有效解决图像存在严重噪声的问题。

从算法的执行速度来看,本文所提方法的平均速度为0.081 s,比方法1慢0.008 s,但是远远快于方法2的0.152 s。

3 结束语

本文实现了电气测试设备校准全景仿真中的人手检测与分割。通过对进行肤色检测,将图像中包含人脸和人手在内的肤色区域检测出来,再对上述2个结果进行Hough变换与特征约束,实现了人手的检测与分割。实验结果表明,本文所提方法能够很好地将人的手部区域从图像中分割出来。

图5 使用3种不同方法对图2中的人手检测后得结果Fig.5 Detection results of images in Fig.2 by using three different methods

后续的工作包括:在现有人手检测与分割的基础上,提取人手的特征,并对手势进行识别,以实现电气测试设备校准全景仿真培训系统中通过手势与虚拟电气设备进行交互的目的;采集和整理大规模的电气设备测试校准人手图像数据,将深度学习应用于人手检测与分割中,进一步提高检测的精度。

猜你喜欢
人手二值肤色
肤色(外一首)
Conversation in a house
人的肤色为什么不同
为什么人有不同的肤色?
木兰从军
面向网络边缘应用的新一代神经网络
基于二值图像数字水印算法研究
基于稀疏表示的二值图像超分辨率重建算法
基于曲率局部二值模式的深度图像手势特征提取
人手不够 ——原载俄罗斯漫画网▲