改进型高精度实时视频多指尖检测方法的研究

2014-03-21 09:59黄阿云郭太良林志贤姚剑敏
液晶与显示 2014年1期
关键词:指尖手势曲率

黄阿云,郭太良,林志贤,姚剑敏

(1.福州大学 物理与信息工程学院,福建 福州350002;2.TCL 集团工业研究院 新型显示技术与系统项目组,广东 深圳518052)

1 引 言

键盘与鼠标长久以来作为人与计算机之间的交互技术,使用起来方便简单,但同时人们仍在不断地寻求突破人机交互设备的局限性。随着计算机视觉技术的发展和摄像头在电子产品中的广泛应用,很多基于视觉技术的人机交互从理论变成了现实,自然、直观的人机交互技术研究成为国内外科研工作的热点,比如基于人脸识别以及人手移动的游戏等[1-10]。其中基于视频的手势识别与跟踪成了基于视频人机交互系统的重要组成部分,通过手指运动及跟踪和人手形态检测来实现非接触式的人机交互,既方便有效,又简单易操作[11-12]。

现有的人机交互的指尖识别与跟踪技术主要有佩戴特殊的数据手套和计算机视觉识别等方法。通过佩戴数据手套可以降低指尖检测的难度,而且为了达到实时性的要求,还可以在手指上贴上特殊标记或者颜色,这种方法虽然降低了识别难度,但是给用户增加了额外的负担,使用不便[13]。也有采用红外摄像头或多目视觉的方式提高手指检测的精度,但是设备成本较高,且增加了三维重构所带来的计算复杂问题。目前有很多识别手势和指尖检测的方法都局限于单指检测,应用局限性比较高,且对于弯曲手指存在误检问题。

针对以上问题,本文提出了一种基于改进曲率法的指尖检测方法,该方法通过肤色识别法跟踪识别手势图像,然后通过各种预处理方法分割出手势图像,得到指尖位置的候选区域,然后通过改进的曲率计算法得到指尖大概位置,再通过椭圆拟合法聚类指尖位置,同时根据本文提出的一种重心测距法排除误检测的类指尖点。此指尖检测方法能够精确地检测出多指尖,同时实时性好,鲁棒性强,处理速度可达到30frame/s。

2 视频图像输入与预处理

2.1 基于肤色模板的跟踪

手势分割是整个识别分析的关键和前提,它的好坏直接影响系统的识别率[6-8]。对于彩色图像,皮肤的色彩是一个有效的特征。相对于其他的几何特征来讲,皮肤的色彩具有不受形状、大小、姿态等因素的变化所影响,而且对于手势的旋转、手势的变化以及手势被遮挡等情况都能适用,具有相对的稳定性。大量的试验证明,不同肤色的人手的区别主要在于灰度,而不是色调,即不同肤色的人手对应的色调是比较一致的[14]。一般说来,色调和饱和度相对亮度来说,是相互独立的。在不同的光照条件下,虽然物体颜色的亮度会产生很大的差异,但是它的色度在大的颜色分布范围内具有恒常性。HSV 颜色空间采用了近似人眼视觉的认知表示,用色调、饱和度和亮度3个相关性比较弱的维度来表示颜色。因此,我们可以将图像由RGB色彩空间转换到HSV 颜色空间后进行分割[15]。主要转换公式如式(1)所示。

色彩空间转换后经过直方图计算等操作等到直方图反向投影图,根据所等到的肤色模板进行camshift跟踪[9],此过程中增加了亮度和对比度的变换,通过将相邻像素灰度值之差放大增强对比度提高图像的细节鉴别能力,使得跟踪效果更加准确。

2.2 输入的每帧图像的预处理

将得到的跟踪图像进行各项预处理,首先对图像进行平滑处理,去除多余的噪声干扰,进行二值化处理通常有Ostu自阈值法[16-17]和普通阈值法等,由于Ostu自阈值法可根据图像的灰度特性,自动选择阈值来分割图像,阈值效果较好,但由于其增加了迭代过程,使得程序效率大大降低。为提高系统运行效率,本文采用普通阈值法,快速有效,且满足系统要求。对图像进行开闭运算,消除小噪声和小空洞。本文使用漫水填充法进行连通域判断,去除小面积无效连通域,与传统逐行逐列数组标记法相比,明显提高了程序的运行效率。经预处理后得到的图像效果如图1所示。

图1 图像预处理Fig.1 Image preprocessing results

3 手势图像凹凸点提取

3.1 用曲率法手势凹凸点

通过图像开闭运算、保留手部连通域之后,开始寻找指尖点。目前有些文献使用多边形拟合法来突出手势特征,虽然可以大致拟合出手的多边形特性,但通过拟合识别出的指尖点误差大。还有些直接采用凸包缺陷的方法估算指尖点的位置,但由于二值化之后的手势图像边缘并不非常完整,造成较大的误判现象。本文通过曲率法[13],对边缘点进行曲率计算,将较大曲率点标记出来,将其定为可能的指尖点位置,再通过各种方法筛选出指尖点,提高了检测精度。

提取手势轮廓点序列有很多方法,如cvFind-Contours函数和传统边缘检测法等。cvFind-Contours虽然使用起来简单方便,但其检测的边缘点序列有很多冗余信息,边缘粗糙,造成后期计算量增大。本文通过将待提取边缘的图像进行3×3元素腐蚀一次,然后将未腐蚀图减去腐蚀后的图像保留一个完整的四连通的手势边缘,再通过逐个遍历法将边缘点保存下来,此法减少了边缘冗余信息,提取的边缘较光滑。B(x)代表结构元素,对于工作空间E 中的每一点x,腐蚀公式如(2)所示。

有些文献中将图像边缘序列点进行了插值,减少后期计算量,但此方法降低了指尖检测的精度,造成指尖点的偏离。本文保留了所有边缘序列点,设置一个根据手离摄像头的距离远近可自动调整数值的整形数k,对轮廓上某点Pi求曲率,则对取序列点中与Pi等距的两点Pi-k和Pi+k。计算向量Pi-kPi与向量PiPi+k夹角的余弦值为Pi点的近似曲率,向量夹角余弦值公式如公式(3)所示。

将边缘序列中的每一点的曲率计算出来后,根据手离摄像头的距离远近设定一个可自动调节的阈值T,手离摄像头的距离可根据手势连通域面积占图像总面积的比例来确定,将曲率大于此阈值的边缘序列点标记并保存下来。经过曲率法检测到的手势凹凸点如图2所示。从图中可以看出,曲率法检测到的手势凹凸点效果很好,但此检测方法在检测到凸点的同时并没有办法排除凹点,则无法直接标定指尖点,且半弯手指也被检测为凸点,所以还需对这些点进行筛选。

图2 曲率法检测手势凹凸点Fig.2 Detection results of gesture concave and convex points by curvature method

3.2 手指凹槽的去除

由图2可以看出,手势图像中曲率较大的点除了真正的指尖点外,还有手指与手指间的凹槽,想要得到正确的指尖点,必须将这些凹槽点去除。有文献中去除凹槽点采用的方法是通过判断计算曲率的两向量之间的向量积符号正负。此方法有一定的可行性,但其局限性比较大,如图3(a)所示。若手势边缘不够平滑,有多余的凸包如p 点被检测到,用判断向量积符号的办法便无法排除非指尖点凸点。由于经过处理的手势图像为二值图像,手势部分像素值为255,非手部分像素值为0,本文采用一种有效的方法,如有曲率大于T 的某点Pi,取边缘序列中与它等距的点Pi-k和Pi+k,判 断Pi-kPi+k线 段 中 点 的 像 素 值 是 否 为255,若该点像素值为255 则判断为有效的指尖点,否则排除。如图3(b)所示,此方法很好地去除了非指尖的其他凹凸点。

3.3 指尖点标记

图3 去除手指凹槽效果Fig.3 Results of wiping out the finger grooves

图4 指尖点聚类标记Fig.4 Results of sign the fingertips

通过计算手势图像边缘点曲率法得到了大于曲率阈值的新的点序列后,再通过判断像素值法排除了非指尖的凹凸点后,得到了较为准确的指尖点序列集合。如图3(b)所示,要得到精确的指尖点,则需要对这些序列点进行进一步的提取,将每个指尖点用一个最合适的点标记出来。

本文将每个指尖点处的凸点序列独立分割成新的点集,对这些新的点集进行聚类,取每个点集合中曲率最大的点Pmax。采用椭圆拟合的方法,计算拟合后的椭圆外接矩阵四边中点离Pmax最近的点,确定该点为指尖点。指尖点标记如图4所示。

4 指尖检测精度的提高

4.1 非规则手势的检测

上文中给出的方法可以很好地检测出多手指来,可以适用于一般的指尖检测,但若需更加精细的指尖应用中,则还需要对一些特殊情况进行改善。

图5 过滤握拳时类指尖点误判Fig.5 Results of wiping out the error detections of fist

图6 过滤半弯类指尖点误判Fig.6 Results of wiping out the error detections of bending fingers

比如握拳时,由于肤色识别边缘不够平滑或者是手指紧握度不够,造成一些小凸点被误判为指尖的情况,如图5(a)所示。这时就需要找到新的方法过滤掉这些误判点的干扰。本文提出手掌重心法和手掌外接圆法排除这些误判点。为了达到系统的高效性,本文将有效像素最集中部分当做手掌部分,通过多次腐蚀,可去除手指等细像素区域,对腐蚀过后的像素区域提取重心O,O 点即定位掌心,同时对该区域作外接圆,得到外接圆的半径R。当检测到类指尖点时,计算初步判断的类指尖点与掌心O 点的距离d,若距离d 与外接圆半径R 的比小于某阈值t1,则判定该类指尖点为误判点,若大于该阈值,则认为该指尖点为非误判点。经过滤后的检测效果如图5(b)所示。

当有手指伸出时,半弯手指的误检测也会大大的降低指尖检测的精度,如图6(a)所示。本文提出一种掌心测距法来有效地排除非指尖点。由前面所述方法找到掌心O,计算出所有检测到的类指尖点与掌心O 点的距离df,将其中距离最大的点认定为正确判断的指尖点,则该最大距离为df_max,若其他点离掌心O 点的距离与df_max的比值小于某个阈值t2,则该点定为误判点,经过误判点排除后的效果如图6(b)所示。

4.2 检测速率对比与精度对比

本文用C++和OpenCV 在VS2010编译环境下进行算法设计,视频图像分辨率为320×240。在曲率计算过程中,当手离摄像头距离大概15cm 处时,取所需的k值为50,即每个点序列取离间隔它50的两个点进行曲率计算,计算得到的向量夹角的余弦值阈值为-0.5。当提高指尖精度时使用的掌心法判断是否为握拳时的距离d与半径R 的比值的阈值t1为1.5。判断有手指伸出时,半弯手指无检测排除时的其他点到掌心O的距离与df_max的比值的阈值为0.55。

为了验证算法的有效性和本文指尖检测算法的准确性及系统效率,进行了一般曲率法指尖检测算法及本文改进的指尖检测方法进行了对比,具体的实验图如图7所示。

从图7中可以看出,一般曲率法检测的指尖会相对飘离真正的指尖点,并且各种误判问题比较多,而本文改进后的检测方法检测到的指尖准确度很高,而且对于各种情况下的误判可以有效地排除。两种指尖检测方法的性能参数对比如表1所示。从表中可以看出,本文改进的方法不仅在准确度上有所提升,而且在系统效率方面有很好的改善。

表1 实验准确率及性能对比Tab.1 Comparison of experiment accuracy and performance in defferent method

图7 指尖检测对比图Fig.7 Comparison of fingertip detection in defferent methods

5 结 论

本文根据手势图像的肤色特征进行有效跟踪的同时,根据手势图像轮廓特点,进行了曲率计算方法进行判断,在轮廓提取前需对图像进行开闭预算,平滑处理,连通域判断等,这些操作为后期的检测提供了较为平滑的手势边缘,再通过四连通域边缘的遍历,得到有效的手势轮廓边缘。在计算曲率时根据手与摄像头距离调整各阈值等参数,使得系统适用的空间范围扩大,同时采取了像素值判断法来排除手指凹槽的干扰。在提高指尖检测精度方面,提出了掌心测距法和外接圆半径比较法,有效地排除了握拳时和手指半弯情况下的误检测指尖点。同时在系统效率方面有了很大的提升,可达到30frame/s的速度,满足了视频实时性处理的需要。

该算法易受光照及类肤色的干扰,这是由于肤色特征在光照下变换及前景提取难度高,针对一个问题,可考虑用红外摄像头获取红外前景信息,或者用多摄像头获取深度信息,排除背景干扰。

[1] De Dios J J,Gareia N.Face detcection based on a new color space YCgCr[C].Proceedings of International Conference on Image Processing,2003:909-912.

[2] 蔡祖洪.复杂背景及复杂运动背景下的指尖检测方法[J].杭州电子科技大学学报.2012,32(1):60-63.Cai Z H.Fingertip detection approach from cluttered background and moving foreground[J].Journal of Hangzhou Dianzi University,2012,32(1):60-63.(in Chinese)

[3] 于蕴杰,管业鹏,熊会军.指势识别的实时指尖提取[J].计算机工程与应用,2011,47(6):219-222.Yu Y J,Guan Y P,Xiong H J.Real-time extraction of fingertip for pointing gesture recognition[J].Computer Engineering and Applications,2011,47(6):219-222.(in Chinese)

[4] Cristina M,Javier V,Ramon M,et al.Real-time hand tracking and gesture recognition for human computer interaction[C].Electronic Letters on Computer Vision and Image Analysis,Spain:cvc press,2000:1-7.

[5] Le D,Mizukawa M.Fast fingertips positioning based on distance-based feature pixels[C].Third International Conference of Communication and Electronics,UK:IEEE,2010:184-189.

[6] Wen X T,Niu Y Y.A method for hand gesture recognition based on morphology and fingertip-angle[C].The 2nd International Conference of Computer and Automation Engineering(ICCAE),UK:IEEE,2010:688-691.

[7] 苑玮琦,朱春艳,柯丽.基于手指相对长度的手形识别方法[J].光电子·激光,2009(5):685-689.Yuan W Q,Zhu C Y,Ke L.Hand shape identification method based on finger relative length[J].Journal of Optoelectronics·Laser,2009(5):685-689.(in Chinese)

[8] Kenii O,Yoichi S.Hideki K.Real-time tracking of multiple fingertips and gesture recognition for augmented desk interface systems[J].IEEE Computer Graphics and Applications,2002,22(6):64-71.

[9] 何东健.数字图像处理[M].2版.西安:西安电子科技大学出版社,2008:186-188.He D J.Digital Image Processing[M].2nd ed.Xi’an:Xi’an University of Electronic Science and Technology Press,2008:186-188.(in Chinese)

[10] Zhang X,Li D L,Yang W Z,et al.An improved morphological edge detection method for color images of cotton foreign fibers[J].Sensor Letters,2011,9(3):1020-1023.

[11] Wang Y,Yuan J H,Chang S J,et al.Gesture labelingbased on gaze direction recognition for human-machine interaction[J].Optical Engineering,2002,41(8):1840-1844.

[12] 磨少清,刘正光,张军,等.基于图像自身的图像边缘检测阈值自动设定方法[J].光电子· 激光,2011,22(8):1246-1250.MO S Q,Liu Z G,Zhang J,et al.An unsupervised threshold selection method for edge detection based on image self-information[J].Journal of Optoelectronics·Laser,2011,22(8):1246-1250.(in Chinese)

[13] 李博男,林凡.基于曲率的指尖检测方法[J].南京航空航天大学学报,2012,44(4):587-591.Li B N,Lin F.Fingertip detection method based on curvature[J].Journal of Nanjing University of Aeronautics&Astronautics,2012,44(4):587-591.(in Chinese)

[14] Oka K,Sato Y,Koike H.Real-time tracking of multiple fingertips and gesture recognition for augumented desk interface system[C].Proceeding of the 5th IEEE Intl Conf on Automatic Face and Gesture Recognition,UK:IEEE,2002:411-416.

[15] 杨端端,金连文,尹俊勋.手指书写汉字识别系统中的指尖检测方法[J].华南理工大学学报,2007,35(1):58-63.Yang D D,Jin L W,Yin J X.Fingertip detection approach for finger writing Chinese character recognition system[J].Journal of South China University of Technology,2007,35(1):58-63.(in Chinese)

[16] Weissmann J,Salomon R.Gesture recognition for virtual reality applications using data gloves and neural networks[J].International Joint Conference on Neural Networks(IJCNN’99),1999,(3):2043-2046.

[17] Hyung-O K,Kim S,Sung-Kee.Pointing gesture-based unknown object extraction for learning objects with robot[C].Proceedings of International Conference on Control Automation and Systems,UK:IEEE,2008:2156-2161.

猜你喜欢
指尖手势曲率
大曲率沉管安装关键技术研究
一类双曲平均曲率流的对称与整体解
带平均曲率算子的离散混合边值问题凸解的存在性
治理“指尖乱像”不宜一散了之
虔诚之花在指尖绽放
半正迷向曲率的四维Shrinking Gradient Ricci Solitons
挑战!神秘手势
指尖上的生活,指尖上的美
V字手势的由来
指尖童话