文章信息
- 杨红玲, 宣士斌, 莫愿斌, 赵洪
- YANG Hong-ling, XUAN Shi-bin, MO Yuan-bin, ZHAO Hong
- 基于YCbCr颜色空间手势分割
- Based on the Gesture Segmentation YCbCr Color Space
- 广西民族大学学报(自然科学版), 2017, 23(3): 61-66
- Journal of Guangxi University for Nationalities(Natural Science Edition), 2017, 23(3): 61-66
-
文章历史
- 收稿日期: 2017-05-21
近年来随着计算机在人们生活中日益重要,人机交互越来越亲密,最原始的基于鼠标和键盘的图形用户界面交互方式已经不能满足人们的交互需求,无法满足人类的精神世界,更加自然化的人机交互方式成为新的需求.随着计算机视觉等科学技术的高速发展,给人机交互的发展带来了更多的可能.由于手势作为人们日常生活中的重要交互方式之一,包含着丰富的交互信息,因此基于视觉的手势分割识别技术成为现在非常热门的研究课题,也得到更多科研工作者的关注,为了能让计算机“看懂”人的手势信息,最初的手势识别是通过利用穿戴技术,让用户戴上数据手套做手势,数据手套将用户手势和位置信息反馈给计算机,让其理解用户的手势行为.基于穿戴技术的人机交互模式有定位准确性高、数据简单、处理速度较快等优点,虽然有很好的检测效果但是由于设备比较昂贵、操作性不够方便、不适合远距离操控等缺点使得难以得到推广[1].
随着计算机视觉、机器人技术的高速发展,更加自然的手势分割成为现代人机交互技术的基础与关键性支撑,手势分割的精确程度会对交互效果带来直接的影响.在复杂背景下由于光照变化、背景环境、手势变化等外界条件的影响会对手势分割带来一定的困难.目前常见的手势分割方法大多是基于肤色聚类的特性[2],通常可以通过颜色信息获取手势部位的所在区域.由于人体的肤色信息是区别于周围环境物体的显著特征之一,经过大量科学研究发现,人体肤色信息具有非常好的聚类性[3].
Jones[4]通过大量的被标定的肤色区域图像,建立了肤色模型,并与直方图肤色模型和混合高斯肤色分割模型的性能进行了比较,事实证明其建立的肤色模型在准确性能上有较大的优势.O1iver[5]对大量的肤色样本的颜色进行统计后发现肤色分布有着高斯分布的特点,并由此建立了肤色模型,根据输入颜色的Mahalanobis距离与建立的肤色模型相比较.该模型虽然有着较高的肤色检测效率,但是当背景有跟肤色相近的颜色时,检测效果就会受到很大的影响.此外,还有学者把其他的模型跟肤色模型相结合,充分发挥了各自的优势.Wu[6]使用Farnsworth's的UCS来表示颜色信息,建立了SCDM和HCDM两个模型,分别用来描述皮肤颜色和头发颜色,并以此对皮肤颜色和头发颜色相似度进行了分析;此外,对人脸还进行二维图案的建模,定义了各模板相应的隶属度函数及其相关模糊匹配规则,对输入图像进行不同尺寸的扫描匹配,进而实现人脸检测,该模型在更复杂的情形有着很好的适用.RL Hsu[7]通过大量的统计计算发现,肤色在CbCr空间中的投影近似一个椭圆,因此,通过计算改变椭圆相关参数进行肤色检测,获取人脸的区域,进而实现人脸检测.袁敏[8]通过构建基于肤色的椭圆模型结合三帧差分的方法,在动态的手势分割方面同样取得了不错的效果.由此可见,皮肤颜色信息是一种很重要的区分皮肤和周围环境的特征.
因此针对复杂环境下的静态手势图像,提出了一种基于YCbCr颜色空间进行肤色检测的手势分割方法.该方法通过对比人体肤色在各颜色空间中聚类效果,选取对光照环境变化不太敏感的椭圆模型在YCbCr空间进行肤色检测实现复杂背景环境下手势分割,然后针对分割图像中可能存在非手势区域的问题,采用最大类间方法获取初步分割图像中对各个联通区域进行手势分割的阈值,去除图像中非手势区域,获取较高质量的手势二值图像.
1 基于肤色检测的手势分割文中提出的算法包括图像预处理、肤色分割、手势分割三个模块.其中,输入端为采集得到的原始手势图像,根据采集的背景环境可以分为干净背景环境下手势图像和复杂背景环境下的手势图像.图像预处理模块是指肤色分割前的一些操作,比如高斯滤波、去噪、图像增强等,去除一定的环境干扰;肤色分割模块主要是根据人体肤色在颜色空间中具有良好的聚类效果,通过椭圆模型的肤色检测方法,实现对图像中前景和背景进行分割,提取包含手势区域的二值图像;手势分割模块采用最大类间方差的方法获取最大联通区域,对手势区域和非手势区域进行分割,去除非手势区域,获取较为干净的手势二值图像.最后算法的输出为手势分割的二值图像,具体的算法流程图如图 1所示.
|
| 图 1 手势分割算法流程图 Fig. 1 Gesture segmentation algorithm flow chart |
由于手势分割过程输入的采集图像中非人手背景的存在会对手势识别造成一定的影响,因此笔者提出了一种肤色检测与最大类间方差相结合的手势分割方法,采用基于椭圆模型的肤色检测方法进行手势分割,获取只包含手势区域的二值图像,然后对获取的包含手势区域的二值图像采用最大类间方差的方法获取阈值,去除非手势区域,进行手势分割.该方法主要包括基于椭圆模型的肤色检测和基于最大类间方差的手势分割两部分.
1.1 基于椭圆模型的肤色检测人体肤色在不同的颜色空间表现出不同的聚类特性,要想得到较为干净的手势分割效果,选择颜色空间就尤为重要.通常采集的图像为RGB形式,其中R、G、B分别代表了红、绿、蓝颜色的亮度信息,相互之间存在着一定的相关性,亮度稍稍的变化就会对肤色分割产生巨大变化,并不适合进行手势分割[9],需要利用线性或者非线性变化将其转化到其他颜色空间进行肤色分割.
由于HSV空间对光照更为敏感,分割效果并不是特别理想,因此算法采用计算过程和表示形式比较简单的YCbCr颜色空间进行分割.YCbCr颜色空间是CCIR601编码方式的色彩模型[10],用Y描述颜色的明亮度,Cb、Cr描述颜色的色调和饱和度.Cb通道反映的是蓝色信号部分与RGB信号亮度值之间的差异,而Cr通道反映了RGB颜色模型中红色信号部分与RGB信号亮度值之间的差异.由于YCbCr颜色空间具有和人的视觉感知的一致性并且肤色聚类的效果好及亮度和色度相互独立的特征,并且肉眼对图像Y分量更敏感,因此在通过对色度分量进行子采样来减少色度分量后,肉眼将察觉不到的图像质量的变化.由于YCbCr颜色空间能够很好地把颜色的亮度信息和色度信息分开,在Cb-Cr平面上肤色能够很好地聚集在一个小范围区域,将色彩转换到YCbCr颜色空间有一定的好处,YCbCr颜色空间中亮度被单独分为一个维度,分析色彩信息不考虑亮度信息的时候,在该空间中只需要分析Cb和Cr两维就行了,这样就减少了色彩空间的维度,降低了计算的复杂度;并且肤色在YCbCr颜色空间中有着很好的聚类性[11],在此空间中,肤色没有分散,能够很好地聚集在一块很小的区域.
笔者采用了YCbCr空间作为手势分割肤色颜色空间,图像从RGB颜色空间转化到YCbCr空间的公式如下所示:
| $ \left[{\begin{array}{*{20}{c}} {\rm{Y}}\\ {{\rm{Cb}}}\\ {{\rm{Cr}}} \end{array}} \right] = \left[{\begin{array}{*{20}{c}} {{\rm{16}}}\\ {{\rm{128}}}\\ {{\rm{128}}} \end{array}} \right] + \left[{\begin{array}{*{20}{c}} {{\rm{65}}{\rm{.481}}}&{{\rm{128}}{\rm{.553}}}&{{\rm{24}}{\rm{.966}}}\\ {{\rm{-81}}{\rm{.085}}}&{{\rm{112}}}&{{\rm{-30}}{\rm{.915}}}\\ {{\rm{112}}}&{{\rm{-93}}{\rm{.786}}}&{{\rm{ - 18}}{\rm{.214}}} \end{array}} \right]\left[{\begin{array}{*{20}{c}} {\rm{R}}\\ {\rm{R}}\\ {\rm{B}} \end{array}} \right] $ |
为了更好地对人体肤色聚类,我们排除亮度的干扰,只考虑色度信息,在Cb-Cr平面内寻找肤色聚类区域.为此,需要对大量皮肤区域颜色值进行统计,然后在此基础上统计出Cb-Cr平面中肤色的区域.为了探究YCbCr颜色空间对肤色的聚类性能,笔者采集了不同环境下的手部图像共计88张,手动裁剪出人手肤色区域113块,共计6007466个像素.经过计算得出这些像素的灰度平均值为128.95,RGB三个通道的平均值分别为149.23,124.21,99.90.这里R, G, B∈[0, 255].将此结果转换到YCbCr空间,抛弃颜色的亮度信息Y,观察Cb-Cr平面中肤色分布近似呈现一个椭圆形状,如图 2所示:
|
| 图 2 肤色在Cb-Cr平面中呈现椭圆分布 Fig. 2 Color in Cb-Cr plane presents elliptical distribution |
因此经过大量的统计数据发现,将皮肤信息映射到YCbCr空间,会在CbCr二维空间中肤色像素点近似形成椭圆分布,通过判断坐标(Cb, Cr)是否在椭圆内(包括边界),来判断其为皮肤的概率.
基于椭圆模型的肤色检测是基于YCrCb色彩空间的肤色分割模型.基于该颜色空间的肤色模型包括:阈值边界模型、高斯模型和椭圆模型等.阈值边界模型中,满足133<Cr<173且77<Cb<127的待判像素即被认为是肤色,但是该方法的漏检和误检可能性较大.虽然高斯模型和椭圆模型都具有相对精确的肤色判断依据,然而后者比前者具有更高的分割精度和更低的时间复杂度[12].因此本文选择椭圆模型进行肤色检测.
由于肤色区域的颜色与亮度成非线性函数关系,在低亮度条件下,YCbCr空间中色度的聚类性会随Y呈非线性变换降低.本文中为使肤色聚类不受亮度Y的影响,首先去掉高光阴影部分,并将YCbCr颜色空间中的色度Cb, Cr进行非线性变换得到C′b, C′r.椭圆方程具体参数如下所示:
| $ \frac{{{{(x - {\rm{ecx}})}^2}}}{{{a^2}}} + \frac{{{{(y - {\rm{ecy}})}^2}}}{{{b^2}}} = 1 \\ \left[{\begin{array}{*{20}{c}} x\\ y \end{array}} \right] = \left[{\begin{array}{*{20}{c}} {{\rm{cos}}\theta }&{{\rm{sin}}\theta }\\ {-{\rm{sin}}\theta }&{{\rm{cos}}\theta } \end{array}} \right]\left[{\begin{array}{*{20}{c}} {{\rm{C'b-Cx}}}\\ {{\rm{C'r}}-{\rm{Cy}}} \end{array}} \right] $ |
其中,Hsu等人经过大量统计实验,根据肤色点在CbCr子空间的聚类特性计算得出Cx=109.38, Cy=152.02, θ=2.53, ecx=1.60, ecy=2.41, a=25.39, b=14.03.当待判断的像素点的颜色分量(Cb, Cr)值符合该模型时,则判定该点为肤色点.
1.2 基于最大类间方差方法的手势分割Otsu于1978年提出的最大类间方差法,是一种常用的阈值选取方法,能够有效地对图像进行分割[13].由于基于椭圆模型进行肤色检测中可能会受到类似人体肤色的干扰,肤色检测时会对类似肤色的区域进行分割,为了实现对肤色检测获取二值图像中的手势区域和非手势区域进行分割,去除非手势区域对手势分割的影响,在此引入最大类间方差的方法,获取进一步分割手势区域和非手势区域的阈值.
为获取分割阈值,首先选取各图像的连通区域,以连通区域的个数为横轴,以对应连通区域像素个数为纵轴,归一化处理建立直方图.利用下式进行归一化处理:
| $ j = \frac{{N[i]}}{{\sum\nolimits_{i = 1}^M {N[i]} }}*255 $ |
式中:j为第i个连通区域被归一化到直方图的Bin,M为图像中灰度值为255的连通区域的个数,N[i]为第i个连通区域像素的大小.
同时采用最大类间方差法获取连通区域直方图阈值r,根据阈值k进行分割处理,去除各方向肤色检测后图像上的一些非手势区域,对肤色检测二值图像进行更加精准的手势分割处理.阈值r由下式可得:
| $ r = \arg \left( {\max _{i = 0}^{255}\left( {\frac{{{{({v_t}{w_r}-{w_r})}^2}}}{{{w_r}(1-{w_r})}}} \right)} \right) $ |
式中:vt为像素的大小期望,wr为连通区域像素的大小落在[0~r]范围内概率和,1-wr为连通区域像素的大小落在[r~255]范围内概率.
但是为了去除更多的非手势区域,采用人工的手段提高分割阈值,将最后用于分割手势区域的阈值设置为1.2*r.则图像中所有连通区域的像素在[0~ 1.2*r]范围的像素值设置为0(背景),落在[1.2*r~255]内的像素全部设置为255(手势区域),采用这样的方法,将去除肤色检测后图像中的一些非手势区域,获取更加精确的手势分割.
|
| 图 3 基于肤色检测的手势分割效果图 Fig. 3 Gesture segmentation rendering based on skin color detection |
2 实验结果和分析
为验证基于椭圆模型进行手势分割的实时性、准确性和抗干扰性等性能,进行实验演示.该实验通过在window 10的操作系统环境下运用Matlab编程进行实现.
该方法在处理一张640*450分辨率的图像时,运行机器在2.1 G,2 G RAM的情况下,执行时间大约在500~800 ms之间,因此在时间上,还需要采用一些加速策略,提高时间执行速度.
同时用该方法的实验结果与国内相关论文进行了比较,结果如图 4~6所示:
可以看到,本文方法在肤色检测方法能获取较好的效果,如图 4~6中能很好地将与背景区分度不大的指甲部分很好的检测出来;同时在图 4中大拇指处由于光照的影响文献[14-15]较难将此处进行分割,而本文方法却能很好地排除光照变化造成的干扰;并且本方法也能很好地排除非手势区域,获取较为分割清晰的手势二值图像.
另外,虽然本方法能够很好地处理光照变化带来的影响,但是在细节的处理方面却有着一定的不足之处,如图 4中无名指与小拇指处的细节处理就不能很好的进行检测,会将背景阴影处认为是手势的一部分进行分割显示,因此本文仍然有着改进空间.
3 结论笔者针对不同的复杂环境下的静态手势图像,提出了一种基于YCbCr颜色空间进行肤色检测的手势分割方法.通过对比人体肤色在各颜色空间中聚类效果,选取对光照环境变化不太敏感的椭圆模型在YCbCr空间进行肤色检测实现复杂背景环境下手势分割,获取初步的包含手势区域的二值图像,然后针对基于椭圆模型进行肤色检测中可能会受到类似人体肤色的干扰,分割时产生类似肤色的区域的问题,采用最大类间方法去除图像中非手势区域,获取较高质量的手势二值图像,实现了对复杂背景环境下手势的自动分割.同时通过用本文方法的实验结果与其他分割方法对比的结果表明,该方法在获取整体手势图像方面,能得到很好的效果;但是在手势指间的细节分割方面,还需要进一步提高.
| [1] | Panwar M.Hand gesture recognition based on shape parameters[C]//International Conference on Computing, Communication and Applications.IEEE, 2012:1-6. |
| [2] | Licsar A, Sziranyi T. User-adaptive hand gesture recognition system with interactive training[J]. Image & Vision Computing, 2005, 23(12): 1102–1114 |
| [3] | 陶霖密, 彭振云, 徐光裕. 人体的肤色特征[J]. 软件学报, 2001, 12(7): 1032–1041. |
| [4] | M J Jones, J M Rehg. Statistical color models with application to skin detection[J]. Int' Journal of Computer Vision archive, 2002, 46: 81–96 DOI:10.1023/A:1013200319198. |
| [5] | N.O1iver, A.Pentland, and F.Berard.LAFTER:A real-time face and lips tracker with facial expression recognition[J], Pattern Recognition, 2000, 33:1369-1382. |
| [6] | Wu H Y, Chen Q, Yachida M.A fuzzy-theroy-based face detector.[C]//Proceedings of the 13th International Conference on Pattern Recognition, Vienna, Austria, 1996.USA:IEEE Computer Society, 1996:406-410. |
| [7] | Hsu R L, Abdelmottaleb M, Jain A K. Face Detection in Color Images[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2002, 1(5): 696–706 |
| [8] | 袁敏, 姚恒, 刘牮. 结合三帧差分和肤色椭圆模型的动态手势分割[J]. 光电工程, 2016, 43(6): 51–56. |
| [9] | 张洪超, 侯德文. 一种基于HIS颜色空间的分割复杂背景图像算法[J]. 山东师范大学学报:自然科学版, 2015(3): 49–52. |
| [10] | 万静, 袁泽, 张雪超. 复杂背景下基于人脸的自适应肤色检测[J]. 计算机应用与软件, 2016, 33(11): 148–152. DOI:10.3969/j.issn.1000-386x.2016.11.035. |
| [11] | Senior A, Hsu R L, Mottaleb M A, et al. Face Detection in Color Images[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2008, 24(5): 696–706 |
| [12] | Elgammal A, Muang C, Hu D. Skin Detection[J]. Ceur, 2009: 1218–1224 |
| [13] | Otsu N. Threshold Selection Method from Gray-Level Histograms, IEEE Transactions on Systems Man and Cybernetics[J]. Systems Man & Cybernetics IEEE Transactions on, 1979, 9(1): 62–66 |
| [14] | 许雪梅, 黄征宇, 李丽娴, 等. 一种基于HSV颜色分割和模糊级联分类器的人脸检测技术[J]. 计算机应用与软件, 2014(4): 197–200. |
| [15] | 李丹丹, 史秀璋. 基于HSI空间和K-means方法的彩色图像分割算法[J]. 微电子学与计算机, 2010, 27(7): 121–124. |
2017, Vol. 23
