APP下载

一种基于Kinect的指尖检测算法

2016-02-27王劲东

计算机技术与发展 2016年7期
关键词:关节点曲率手部

王劲东,武 频

(上海大学 计算机工程与科学学院,上海 200444)

一种基于Kinect的指尖检测算法

王劲东,武 频

(上海大学 计算机工程与科学学院,上海 200444)

指尖检测是人机交互过程中的关键技术,因为人手的差异,对指尖的检测总会存在一些误判点。文中在基于曲率算法的基础上,提出了利用凸包算法和平行向量进行指尖检测的方法。该方法首先利用Kinect获取人体的骨骼信息和深度信息图像,通过人手的关节点锁定手部位置,并利用人手肤色特征和边缘检测算法提取手部区域轮廓。然后在手部区域的轮廓上根据曲率来检测类指尖点,结合凸包计算排除凹点和手臂点,最后根据手指的两侧接近平行的特性排除弯曲的手指或者非手指,最终检测出有效的指尖。实验结果表明,该方法在复杂背景下能够对不同的类指尖点进行排除,并且有较高的检测精度。

指尖检测;曲率;凸包;平行向量;Kinect

0 引 言

人机交互[1]是指人与计算机可以用某种对话语言进行信息交换,包括计算机通过输出设备或显示设备给人提供需要的信息,以及人通过输入设备向计算机输入相关信息。目的讨论如何使设计的计算机帮助人们更加安全可靠地、更加有效率地完成所要完成的任务。用户借助必要的设备以自然的方式与虚拟环境中的对象进行交互作用、相互影响,从而产生亲临真实环境的感觉和体验。

手势作为人机交互过程中最重要的行为特征[2],已经广泛用于机器人控制、视频监控、多媒体教学和虚拟现实中。其中指尖特征又是手势识别中最重要的特征,早期的指尖检测是借助一定设备,如带有颜色的手套[3]或者数据手套[4]。目前对于指尖的检测都是基于形状的模板匹配方法和基于轮廓的边缘特性进行分析。基于形状的模板匹配方法有归一化互相关法[5]、广义霍夫变换法[6]等。基于轮廓的边缘特性进行分析的方法有很多。文献[7]提出的边缘曲率分析,利用肤色提取出手部区域轮廓,再根据曲率对指尖点进行检测。文献[8]使用改进的K向量方法,结合轮廓阈值进行检测,实现食指的指尖检测。文献[9]在曲率检测的基础上,借助物理学中“势”和“场”的概念,把势太低的点判定为手臂点去除。文献[10]则利用手指的径向对称特性来检测各个指尖。随着Kinect的应用,一些开始基于Kinect的手势识别[11]也随之出现,如文献[12]。文中也是基于Kinect获取深度图像和目标人手部的关节点,再根据肤色分割获取手部区域图像,然后通过边缘膨胀和腐蚀处理,最后利用文中提出的指尖检测算法获取有效的指尖。

1 基于Kinect的深度图像和手部关节点的获取

Kinect[13]是微软公司在2010年推出的一款XBOX360体感外部设备,是目前世界上唯一一款较为成熟的商业人体动作感知设备。Kinect可以玩游戏,还可以应用在医疗、教育、三维人体建模等领域。另外还有许多富有创意的应用应运而生,现在越来越多的人开始对Kinect进行研究。

Kinect在实际应用中最重要的是三只眼睛,依次为红外摄影机、彩色摄像头、红外深度摄像头。文中深度图像正是由红外摄影机和红外深度摄像头获得,由深度图像进行指尖检测可以克服光照和其他物体或者人物的干扰。图1(a)为Kinect获取的人体深度图像。Kinect可以追踪到目标窗口里的六个人,并且能获得两个人骨骼信息“火柴人”[14]。第一代Kinect获取人体20个骨骼关节点,新一代Kinect可以获取人体25个骨骼关节点。Kinect将获取的人物深度信息渲染后获得人体关节点信息,如图1(b)所示。

图1 Kinect获取的深度图像和人体骨骼图像

文中主要用到的就是手部的关节点来追踪手部的位置,从而在复杂背景和复杂手势下进行指尖检测。

2 手部分割

2.1 目标检测人物手部的确定

Kinect可以获取人体的骨骼信息,通过手部关节点可以获取人手的位置。但是Kinect可以同时检测到六个人,那么如何判定哪个才是需要检测的人手至关重要。这就要借助Kinect获取的深度信息,通过对不同人手部关节点的深度信息判定位于摄像头最近的手部关节点才是需要的,这样就可以排除目标检测人物后面还有其他人的干扰。

2.2 获取手部图像

通过深度信息可以获取目标检测人手,下一步就是进行手部分割,把手部轮廓从图像中分割出来,文中采用的是在线的自适应肤色模型[15]。首先以Kinect追踪到的手部关节点为圆心,以半径20 cm进行区域检测,获取手部肤色区域,提取其中的一小块作为样本。然后转换为YCbCr颜色空间,通过肤色聚类获取手部区域颜色空间分布进而分割出手部区域,在不同光照情况下进行检测具有很好的鲁棒性。在分割出手部轮廓边缘时会有一些噪声,手部的边缘会有一些锯齿和凸凹,需进行基于形态学的腐蚀和膨胀操作。最后利用中值滤波算法对手部边缘轮廓进行平滑处理,得到的手部区域图像如图2(a)所示。

3 基于曲率的二次修正指间检测算法

3.1 基于曲率的类指尖检测

图2 曲率检测指尖点示意图

曲率的值如式(1)所示。

(1)

实验中取常数M为5,从公式可以看出曲率是在区间[-1,1]之间,所以采取一个阈值L来判断类指尖点将曲率大于等于L的像素点筛选出来。经过曲率检测所有的指尖点都能被检测出来,但是也产生了很多误判点,例如手指间的凹陷点和手部与手臂的一些切割点,如图2(c)所示。

3.2 基于凸包算法的凹槽点和手臂点过滤

对于手部区域轮廓有很多的凸点和凹点,通过手部轮廓的这种凸凹性可以很好地排除由曲率检测出来的类指尖点。首先介绍什么是凸包,可以想象用一根绳子围住一片树木,拉紧绳子就会形成一个多边形。可以把树木理解成平面上的点集,那么绳子围成的多边形就是这些平面点集的最小凸包多边形。文中采用文献[16]提出的凸包算法,求取手部轮廓的凸包点,只有在凸包上的点和由3.1节中曲率检测后的类指尖点的交点才能第二次判断为类指尖点,如图3(a)所示,但是也把关节处切割点误判为指尖点。这里采用一种基于距离的判定方法来排除关节处的切割点,即如果凸点到手部区关节点的距离大于该凸点到手部重心的距离,即判定为指尖点。可以利用图像的几何特征矩来确定。图像的几何矩能够有效地描述对象的形态特征,一个图像的(p,q)矩可以表示为:

(2)

其中,xp和yq为变换核;f(x,y)为二维图像函数。

零阶矩代表图形轮廓的质量,一阶矩代表轮廓的重心,这里把手部轮廓像素信息描述为二维函数g(x,y),其重心计算过程如下:

(3)

(4)

(5)

x0=M1,0/M0,0

y0=M0,1/M0,0

(6)

(7)

(8)

若Djoint>Dcenter,则此凸点为保留;反之,把此凸点排除。

从图3(b)中可以看到,利用该距离判定法后,能有效地排除手臂关节处的切割点。

图3 凸包检测算法和平行向量方法排除误判点

3.3 基于平行向量的手指确认

经过实验测试,文中N取值为20,如果N取值过大时会对手指较短的情况发生误判,如果N取值较小会对弯曲的手指误判为有效手指。

4 实验分析

为了验证算法的性能,文中采用的硬件环境为二代Kinect,CPU为Intel(R)Core(TM)i5-4590CPU@ 3.30GHz、内存为8G的笔记本,软件环境为VS2015、OpenCV3.0。主要对人手的9种手势进行检测,如图4所示。

在复杂背景下,实验通过对不同的手势进行识别,并且同一个手势在不同位置方向都进行了测试。文中对图4中的9种手势进行了采样,利用Kinect获取图像信息,每个手势采取200幅图像,且这200幅图像中的手势一样,但是指尖的指向和手部关节点位置不是固定的。

不同手势的检测效果图见图5。

从图中可见,对于复杂背景和同一手势在不同位置方向的检测都达到了很好的效果,指尖的检测结果如表1所示。

由表1可以看出,该算法检测结果是比较高效的,对手势0全部检测出来了。还可以看出对手势5的检测误检率最高,这是因为在伸开五指时容易造成手指之间的重叠和遮挡,其次就是手势8的检测,即对大拇指的检测。由于大拇指较短,在指尖指向不同位置时,造成了手指过短而形成误判。为了验证该算法的高效性,在同一环境下,将文中指尖检测方法的实验结果与基于曲率的检测方法[9]和基于人体骨骼和深度图像信息的指尖检测方法[12]进行比较。结果文献[9]中算法的检测准确率为97.48%,文献[12]中算法的检测准确率为97.95%,文中算法的准确率达到了98.63%。所以文中算法在检测的准确性上具有优越性。

图4 9种手势

图5 指尖的检测效果图

手势选取的帧数误检帧数020001200122003320024200352006620027200382005

5 结束语

文中提出了一种基于Kinect的指尖检测算法,通过Kinect获取的深度图像和关节点信息,可以很好地在手部区域分割时避免复杂背景环境的影响。文中利用手部关节点位置结合肤色特征进行手部区域分割,获得了很好的效果,并且对轮廓边缘进行膨胀和腐蚀处理获取相对平滑的轮廓边缘。在基于曲率初步检测的基础上获得初始类指尖点,通过基于凸包的距离计算排除手臂点和凹点,最后利用平行向量的思想判断类指尖点是否是弯曲的手指关节点或者其他干扰点。实验结果表明,该算法检测的精度较高,能在复杂背景和不同方向对指尖进行检测。

文中算法也有一定的缺陷,在手指并在一起时检测效果受到一定的影响。下一步的研究目标是对手势动作特征进行定义,通过实时追踪指尖点的位置信息来识别动作,目前已经取得了一些研究进展和成果。

[1] 宋鸣侨.浅析人机交互技术的发展趋势[J].现代装饰:理论,2012(2):148-148.

[2]CarrollJM.Human-computerinteraction:psychologyasascienceofdesign[J].AnnualReviewofPsychology,1997,48(1):61-83.

[3]IwaiY,WatanabeK,YagiY,etal.Gesturerecognitionusingcoloredglove[C]//Proceedingsofthe13thinternationalconferenceonpatternrecognition.[s.l.]:[s.n.],1996:662-666.

[4]WeissmannJ,SalomonR.Gesturerecognitionforvirtualrealityapplicationsusingdataglovesandneuralnetworks[C]//Proceedingsofinternationaljointconferenceonneuralnetworks.[s.l.]:IEEE,1999:2043-2046.

[5]ViolaP,JonesM.Rapidobjectdetectionusingaboostedcascadeofsimplefeatures[C]//Proceedingsofacceptedconferenceoncomputervisionandpatternrecognition.[s.l.]:[s.n.],2001:511-518.

[6]BarrhoJ,AdamM,KienckeU.FingerlocalizationandclassificationinimagesbasedongeneralizedHoughtransformandprobabilisticmodels[C]//Proceedingsof9thinternationalconferenceoncontrol,automation,roboticsandvision.[s.l.]:[s.n.],2007:1-6.

[7]LeeD,LeeSG.Vision-basedfingeractionrecognitionbyangledetectionandcontouranalysis[J].ETRIJournal,2011,33(3):415-422.

[8]GuoK,ZhangM,SunC,etal.3Dfingertiptrackingalgorithmbasedoncomputervision[J].JournalofComputerResearchandDevelopment,2010,47(6):1013-1019.

[9] 李博男,林 凡.基于曲率的指尖检测方法[J].南京航空航天大学学报,2012,44(4):587-591.

[10] 梅萍华,李 斌,朱中的,等.基于径向对称变换的实时指尖检测算法[J].中国科学技术大学学报,2011,41(2):101-107.

[11] 刘 佳,郑 勇,张小瑞,等.基于Kinect的手势跟踪概述[J].计算机应用研究,2015,32(7):1921-1925.

[12] 宋海声,刘平和,王全州,等.基于人体骨骼和深度图像信息的指尖检测方法[J].计算机工程与科学,2014,36(9):1788-1794.

[13]Wikipedia.Kinect[EB/OL].2011-01-13.http://en.wikipedia.org/wiki/Kinect.

[14]ClarkRA,PuaYong-Hao,KarineF,etal.ValidityoftheMicrosoftKinectforassessmentofposturalcontrol[J].Gait&Posture,2012,36(3):372-377.

[15]DawodAY,AbdullahJ,AlamMJ.Adaptiveskincolormodelforhandsegmentation[C]//Proceedingsofinternationalconferenceoncomputerapplicationsandindustrialelectronics.[s.l.]:[s.n.],2010:486-489.

[16]HommaK,TakenakaE.Animageprocessingmethodforfeatureextractionofspace-occupyinglesions[J].JNuclMed,1985,26(12):1472-1477.

An Algorithm of Fingertip Detection Based on Kinect

WANG Jin-dong,WU Pin

(School of Computer Engineering and Science,Shanghai University,Shanghai 200444,China)

Fingertip detection is a crucial technology in the process of human-computer interaction.Because of differences in human hands,there will always be some misjudgment points in fingertip detection.Based on curvature algorithm,a method of fingertip detection is proposed using convex-concave algorithm and parallel vector.Firstly,it obtains information of human bone and in-depth image using Kinect,locking hand position by joints of human hands,and extracts the hand contour area using color characteristics of human hand and edge detection algorithm.Then on the contour of the hand region,fingertips are detected according to the curvature,and combined with the convex hull,pits and arm points are computed and excluded.At last,according to the characteristic that both sides of the finger are nearly parallel,curved fingers or non-fingers are excluded,and valid fingertips are detected.Experimental results show that this method can exclude different classes of fingertips under complex background with higher detection accuracy.

fingertip detection;curvature;convex-concave;parallel vector;Kinect

2015-11-03

2016-03-02

时间:2016-06-22

上海市科学技术计划资助项目(14590500500)

王劲东(1988-),男,硕士研究生,研究方向为软件测试、并行计算、图像处理等;武 频,副教授,博士,研究方向为CFD数值计算、高性能计算、图像处理等。

http://www.cnki.net/kcms/detail/61.1450.TP.20160622.0844.040.html

TP391

A

1673-629X(2016)07-0014-05

10.3969/j.issn.1673-629X.2016.07.004

猜你喜欢

关节点曲率手部
基于关节点数据关注RGB视频的双人交互行为识别
手部皮肤软组织缺损修复的皮瓣选择
尺动脉腕上皮支逆行岛状皮瓣修复手部皮肤软组织缺损
封闭负压吸引技术联合游离股前外侧穿支皮瓣修复手部大面积软组织缺损
一类具有消失χ 曲率的(α,β)-度量∗
儿童青少年散瞳前后眼压及角膜曲率的变化
基于深度学习和视觉检测的地铁违规行为预警系统研究与应用
重载机车网络重联TCN 故障节点识别方法研究*
面向复杂曲率变化的智能车路径跟踪控制
关节点连接历史图与卷积神经网络结合的双人交互动作识别