王勁東,武 頻
(上海大學(xué) 計(jì)算機(jī)工程與科學(xué)學(xué)院,上海 200444)
一種基于Kinect的指尖檢測算法
王勁東,武 頻
(上海大學(xué) 計(jì)算機(jī)工程與科學(xué)學(xué)院,上海 200444)
指尖檢測是人機(jī)交互過程中的關(guān)鍵技術(shù),因?yàn)槿耸值牟町?,?duì)指尖的檢測總會(huì)存在一些誤判點(diǎn)。文中在基于曲率算法的基礎(chǔ)上,提出了利用凸包算法和平行向量進(jìn)行指尖檢測的方法。該方法首先利用Kinect獲取人體的骨骼信息和深度信息圖像,通過人手的關(guān)節(jié)點(diǎn)鎖定手部位置,并利用人手膚色特征和邊緣檢測算法提取手部區(qū)域輪廓。然后在手部區(qū)域的輪廓上根據(jù)曲率來檢測類指尖點(diǎn),結(jié)合凸包計(jì)算排除凹點(diǎn)和手臂點(diǎn),最后根據(jù)手指的兩側(cè)接近平行的特性排除彎曲的手指或者非手指,最終檢測出有效的指尖。實(shí)驗(yàn)結(jié)果表明,該方法在復(fù)雜背景下能夠?qū)Σ煌念愔讣恻c(diǎn)進(jìn)行排除,并且有較高的檢測精度。
指尖檢測;曲率;凸包;平行向量;Kinect
人機(jī)交互[1]是指人與計(jì)算機(jī)可以用某種對(duì)話語言進(jìn)行信息交換,包括計(jì)算機(jī)通過輸出設(shè)備或顯示設(shè)備給人提供需要的信息,以及人通過輸入設(shè)備向計(jì)算機(jī)輸入相關(guān)信息。目的討論如何使設(shè)計(jì)的計(jì)算機(jī)幫助人們更加安全可靠地、更加有效率地完成所要完成的任務(wù)。用戶借助必要的設(shè)備以自然的方式與虛擬環(huán)境中的對(duì)象進(jìn)行交互作用、相互影響,從而產(chǎn)生親臨真實(shí)環(huán)境的感覺和體驗(yàn)。
手勢作為人機(jī)交互過程中最重要的行為特征[2],已經(jīng)廣泛用于機(jī)器人控制、視頻監(jiān)控、多媒體教學(xué)和虛擬現(xiàn)實(shí)中。其中指尖特征又是手勢識(shí)別中最重要的特征,早期的指尖檢測是借助一定設(shè)備,如帶有顏色的手套[3]或者數(shù)據(jù)手套[4]。目前對(duì)于指尖的檢測都是基于形狀的模板匹配方法和基于輪廓的邊緣特性進(jìn)行分析?;谛螤畹哪0迤ヅ浞椒ㄓ袣w一化互相關(guān)法[5]、廣義霍夫變換法[6]等?;谳喞倪吘壧匦赃M(jìn)行分析的方法有很多。文獻(xiàn)[7]提出的邊緣曲率分析,利用膚色提取出手部區(qū)域輪廓,再根據(jù)曲率對(duì)指尖點(diǎn)進(jìn)行檢測。文獻(xiàn)[8]使用改進(jìn)的K向量方法,結(jié)合輪廓閾值進(jìn)行檢測,實(shí)現(xiàn)食指的指尖檢測。文獻(xiàn)[9]在曲率檢測的基礎(chǔ)上,借助物理學(xué)中“勢”和“場”的概念,把勢太低的點(diǎn)判定為手臂點(diǎn)去除。文獻(xiàn)[10]則利用手指的徑向?qū)ΨQ特性來檢測各個(gè)指尖。隨著Kinect的應(yīng)用,一些開始基于Kinect的手勢識(shí)別[11]也隨之出現(xiàn),如文獻(xiàn)[12]。文中也是基于Kinect獲取深度圖像和目標(biāo)人手部的關(guān)節(jié)點(diǎn),再根據(jù)膚色分割獲取手部區(qū)域圖像,然后通過邊緣膨脹和腐蝕處理,最后利用文中提出的指尖檢測算法獲取有效的指尖。
Kinect[13]是微軟公司在2010年推出的一款XBOX360體感外部設(shè)備,是目前世界上唯一一款較為成熟的商業(yè)人體動(dòng)作感知設(shè)備。Kinect可以玩游戲,還可以應(yīng)用在醫(yī)療、教育、三維人體建模等領(lǐng)域。另外還有許多富有創(chuàng)意的應(yīng)用應(yīng)運(yùn)而生,現(xiàn)在越來越多的人開始對(duì)Kinect進(jìn)行研究。
Kinect在實(shí)際應(yīng)用中最重要的是三只眼睛,依次為紅外攝影機(jī)、彩色攝像頭、紅外深度攝像頭。文中深度圖像正是由紅外攝影機(jī)和紅外深度攝像頭獲得,由深度圖像進(jìn)行指尖檢測可以克服光照和其他物體或者人物的干擾。圖1(a)為Kinect獲取的人體深度圖像。Kinect可以追蹤到目標(biāo)窗口里的六個(gè)人,并且能獲得兩個(gè)人骨骼信息“火柴人”[14]。第一代Kinect獲取人體20個(gè)骨骼關(guān)節(jié)點(diǎn),新一代Kinect可以獲取人體25個(gè)骨骼關(guān)節(jié)點(diǎn)。Kinect將獲取的人物深度信息渲染后獲得人體關(guān)節(jié)點(diǎn)信息,如圖1(b)所示。
圖1 Kinect獲取的深度圖像和人體骨骼圖像
文中主要用到的就是手部的關(guān)節(jié)點(diǎn)來追蹤手部的位置,從而在復(fù)雜背景和復(fù)雜手勢下進(jìn)行指尖檢測。
2.1 目標(biāo)檢測人物手部的確定
Kinect可以獲取人體的骨骼信息,通過手部關(guān)節(jié)點(diǎn)可以獲取人手的位置。但是Kinect可以同時(shí)檢測到六個(gè)人,那么如何判定哪個(gè)才是需要檢測的人手至關(guān)重要。這就要借助Kinect獲取的深度信息,通過對(duì)不同人手部關(guān)節(jié)點(diǎn)的深度信息判定位于攝像頭最近的手部關(guān)節(jié)點(diǎn)才是需要的,這樣就可以排除目標(biāo)檢測人物后面還有其他人的干擾。
2.2 獲取手部圖像
通過深度信息可以獲取目標(biāo)檢測人手,下一步就是進(jìn)行手部分割,把手部輪廓從圖像中分割出來,文中采用的是在線的自適應(yīng)膚色模型[15]。首先以Kinect追蹤到的手部關(guān)節(jié)點(diǎn)為圓心,以半徑20 cm進(jìn)行區(qū)域檢測,獲取手部膚色區(qū)域,提取其中的一小塊作為樣本。然后轉(zhuǎn)換為YCbCr顏色空間,通過膚色聚類獲取手部區(qū)域顏色空間分布進(jìn)而分割出手部區(qū)域,在不同光照情況下進(jìn)行檢測具有很好的魯棒性。在分割出手部輪廓邊緣時(shí)會(huì)有一些噪聲,手部的邊緣會(huì)有一些鋸齒和凸凹,需進(jìn)行基于形態(tài)學(xué)的腐蝕和膨脹操作。最后利用中值濾波算法對(duì)手部邊緣輪廓進(jìn)行平滑處理,得到的手部區(qū)域圖像如圖2(a)所示。
3.1 基于曲率的類指尖檢測
圖2 曲率檢測指尖點(diǎn)示意圖
曲率的值如式(1)所示。
(1)
實(shí)驗(yàn)中取常數(shù)M為5,從公式可以看出曲率是在區(qū)間[-1,1]之間,所以采取一個(gè)閾值L來判斷類指尖點(diǎn)將曲率大于等于L的像素點(diǎn)篩選出來。經(jīng)過曲率檢測所有的指尖點(diǎn)都能被檢測出來,但是也產(chǎn)生了很多誤判點(diǎn),例如手指間的凹陷點(diǎn)和手部與手臂的一些切割點(diǎn),如圖2(c)所示。
3.2 基于凸包算法的凹槽點(diǎn)和手臂點(diǎn)過濾
對(duì)于手部區(qū)域輪廓有很多的凸點(diǎn)和凹點(diǎn),通過手部輪廓的這種凸凹性可以很好地排除由曲率檢測出來的類指尖點(diǎn)。首先介紹什么是凸包,可以想象用一根繩子圍住一片樹木,拉緊繩子就會(huì)形成一個(gè)多邊形。可以把樹木理解成平面上的點(diǎn)集,那么繩子圍成的多邊形就是這些平面點(diǎn)集的最小凸包多邊形。文中采用文獻(xiàn)[16]提出的凸包算法,求取手部輪廓的凸包點(diǎn),只有在凸包上的點(diǎn)和由3.1節(jié)中曲率檢測后的類指尖點(diǎn)的交點(diǎn)才能第二次判斷為類指尖點(diǎn),如圖3(a)所示,但是也把關(guān)節(jié)處切割點(diǎn)誤判為指尖點(diǎn)。這里采用一種基于距離的判定方法來排除關(guān)節(jié)處的切割點(diǎn),即如果凸點(diǎn)到手部區(qū)關(guān)節(jié)點(diǎn)的距離大于該凸點(diǎn)到手部重心的距離,即判定為指尖點(diǎn)??梢岳脠D像的幾何特征矩來確定。圖像的幾何矩能夠有效地描述對(duì)象的形態(tài)特征,一個(gè)圖像的(p,q)矩可以表示為:
(2)
其中,xp和yq為變換核;f(x,y)為二維圖像函數(shù)。
零階矩代表圖形輪廓的質(zhì)量,一階矩代表輪廓的重心,這里把手部輪廓像素信息描述為二維函數(shù)g(x,y),其重心計(jì)算過程如下:
(3)
(4)
(5)
x0=M1,0/M0,0
y0=M0,1/M0,0
(6)
(7)
(8)
若Djoint>Dcenter,則此凸點(diǎn)為保留;反之,把此凸點(diǎn)排除。
從圖3(b)中可以看到,利用該距離判定法后,能有效地排除手臂關(guān)節(jié)處的切割點(diǎn)。
圖3 凸包檢測算法和平行向量方法排除誤判點(diǎn)
3.3 基于平行向量的手指確認(rèn)
經(jīng)過實(shí)驗(yàn)測試,文中N取值為20,如果N取值過大時(shí)會(huì)對(duì)手指較短的情況發(fā)生誤判,如果N取值較小會(huì)對(duì)彎曲的手指誤判為有效手指。
為了驗(yàn)證算法的性能,文中采用的硬件環(huán)境為二代Kinect,CPU為Intel(R)Core(TM)i5-4590CPU@ 3.30GHz、內(nèi)存為8G的筆記本,軟件環(huán)境為VS2015、OpenCV3.0。主要對(duì)人手的9種手勢進(jìn)行檢測,如圖4所示。
在復(fù)雜背景下,實(shí)驗(yàn)通過對(duì)不同的手勢進(jìn)行識(shí)別,并且同一個(gè)手勢在不同位置方向都進(jìn)行了測試。文中對(duì)圖4中的9種手勢進(jìn)行了采樣,利用Kinect獲取圖像信息,每個(gè)手勢采取200幅圖像,且這200幅圖像中的手勢一樣,但是指尖的指向和手部關(guān)節(jié)點(diǎn)位置不是固定的。
不同手勢的檢測效果圖見圖5。
從圖中可見,對(duì)于復(fù)雜背景和同一手勢在不同位置方向的檢測都達(dá)到了很好的效果,指尖的檢測結(jié)果如表1所示。
由表1可以看出,該算法檢測結(jié)果是比較高效的,對(duì)手勢0全部檢測出來了。還可以看出對(duì)手勢5的檢測誤檢率最高,這是因?yàn)樵谏扉_五指時(shí)容易造成手指之間的重疊和遮擋,其次就是手勢8的檢測,即對(duì)大拇指的檢測。由于大拇指較短,在指尖指向不同位置時(shí),造成了手指過短而形成誤判。為了驗(yàn)證該算法的高效性,在同一環(huán)境下,將文中指尖檢測方法的實(shí)驗(yàn)結(jié)果與基于曲率的檢測方法[9]和基于人體骨骼和深度圖像信息的指尖檢測方法[12]進(jìn)行比較。結(jié)果文獻(xiàn)[9]中算法的檢測準(zhǔn)確率為97.48%,文獻(xiàn)[12]中算法的檢測準(zhǔn)確率為97.95%,文中算法的準(zhǔn)確率達(dá)到了98.63%。所以文中算法在檢測的準(zhǔn)確性上具有優(yōu)越性。
圖4 9種手勢
圖5 指尖的檢測效果圖
手勢選取的幀數(shù)誤檢幀數(shù)020001200122003320024200352006620027200382005
文中提出了一種基于Kinect的指尖檢測算法,通過Kinect獲取的深度圖像和關(guān)節(jié)點(diǎn)信息,可以很好地在手部區(qū)域分割時(shí)避免復(fù)雜背景環(huán)境的影響。文中利用手部關(guān)節(jié)點(diǎn)位置結(jié)合膚色特征進(jìn)行手部區(qū)域分割,獲得了很好的效果,并且對(duì)輪廓邊緣進(jìn)行膨脹和腐蝕處理獲取相對(duì)平滑的輪廓邊緣。在基于曲率初步檢測的基礎(chǔ)上獲得初始類指尖點(diǎn),通過基于凸包的距離計(jì)算排除手臂點(diǎn)和凹點(diǎn),最后利用平行向量的思想判斷類指尖點(diǎn)是否是彎曲的手指關(guān)節(jié)點(diǎn)或者其他干擾點(diǎn)。實(shí)驗(yàn)結(jié)果表明,該算法檢測的精度較高,能在復(fù)雜背景和不同方向?qū)χ讣膺M(jìn)行檢測。
文中算法也有一定的缺陷,在手指并在一起時(shí)檢測效果受到一定的影響。下一步的研究目標(biāo)是對(duì)手勢動(dòng)作特征進(jìn)行定義,通過實(shí)時(shí)追蹤指尖點(diǎn)的位置信息來識(shí)別動(dòng)作,目前已經(jīng)取得了一些研究進(jìn)展和成果。
[1] 宋鳴僑.淺析人機(jī)交互技術(shù)的發(fā)展趨勢[J].現(xiàn)代裝飾:理論,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].南京航空航天大學(xué)學(xué)報(bào),2012,44(4):587-591.
[10] 梅萍華,李 斌,朱中的,等.基于徑向?qū)ΨQ變換的實(shí)時(shí)指尖檢測算法[J].中國科學(xué)技術(shù)大學(xué)學(xué)報(bào),2011,41(2):101-107.
[11] 劉 佳,鄭 勇,張小瑞,等.基于Kinect的手勢跟蹤概述[J].計(jì)算機(jī)應(yīng)用研究,2015,32(7):1921-1925.
[12] 宋海聲,劉平和,王全州,等.基于人體骨骼和深度圖像信息的指尖檢測方法[J].計(jì)算機(jī)工程與科學(xué),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
時(shí)間:2016-06-22
上海市科學(xué)技術(shù)計(jì)劃資助項(xiàng)目(14590500500)
王勁東(1988-),男,碩士研究生,研究方向?yàn)檐浖y試、并行計(jì)算、圖像處理等;武 頻,副教授,博士,研究方向?yàn)镃FD數(shù)值計(jì)算、高性能計(jì)算、圖像處理等。
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