孫 紅,廖 蕾
(上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院,上海 200093)
隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展和普及,與計(jì)算機(jī)的交互方式也不斷在變化,而符合人際交流習(xí)慣的人機(jī)交互技術(shù),建立和諧自然的人機(jī)交互環(huán)境成為當(dāng)前的發(fā)展趨勢[1]。手勢作為一種自然直觀、表達(dá)意義豐富的肢體語言,越來越多地被運(yùn)用到人機(jī)交互技術(shù)。手勢識(shí)別技術(shù)也因此成為了當(dāng)前人機(jī)交互研究的熱點(diǎn)。
早期的手勢識(shí)別要求用戶佩戴特殊的數(shù)據(jù)手套[2],這種方法雖能精確的識(shí)別手勢,但掩蓋了手勢自然的表達(dá)方式,且設(shè)備昂貴。為此,基于視覺的手勢識(shí)別應(yīng)運(yùn)而生?;谝曈X的手勢識(shí)別輸入簡單,對(duì)設(shè)備要求低,更加自然直接。在此基礎(chǔ)上,有學(xué)者提出了眾多的識(shí)別方法。張良國[3]等人首次利用Hausdorff 距離模板匹配的思想,實(shí)現(xiàn)了基于單目視覺的30 個(gè)手指字母的手勢識(shí)別,但沒有考慮Model 的旋轉(zhuǎn)與縮放;黃國范[4]等人采用模板匹配的方法,用改進(jìn)后的Hu 矩作為特征向量進(jìn)行測試樣本與模板之間的相似性度量,但識(shí)別率仍然差強(qiáng)人意;楊波等人[5]提取空間相對(duì)密度和指節(jié)相對(duì)間距特征的手勢空間分布特征,計(jì)算總的相似性來識(shí)別手勢,雖引入隨機(jī)采樣機(jī)制提高了識(shí)別速度,但只有少數(shù)手勢識(shí)別率高;林水強(qiáng)[6]等人通過分析手勢的幾何特征計(jì)算特征參數(shù),采用決策樹分類方法進(jìn)行手勢識(shí)別,該方法識(shí)別率達(dá)到94%以上,但能識(shí)別的手勢種類不多。
針對(duì)上述問題,本文給出一種基于手勢表觀特征的手勢識(shí)別方法。采用HSV 顏色空間膚色分割算法分割出膚色區(qū)域,然后根據(jù)手勢的幾何特征排除非手勢區(qū)域;繼而檢測指尖,結(jié)合指尖個(gè)數(shù),手指間角度特征和輪廓長寬比特征來進(jìn)行手勢識(shí)別。實(shí)驗(yàn)結(jié)果表明,本文算法在保證旋轉(zhuǎn)、平移和縮放的不變性的前提下,既能識(shí)別較多的手勢,又有較高的識(shí)別率。
由于HSV(Hue-Saturation-Value)色彩空間是從人的視覺系統(tǒng)出發(fā),用色調(diào)、飽和度和亮度來描述色彩,比RGB 空間更符合人的視覺特性[7]。本文采用膚色模型,把獲取的圖像從RGB 空間轉(zhuǎn)化到HSV 空間,膚色在HSV 空間的取值范圍為Hue∈[30,45],Saturation∈[35,200],Value∈[20,255],由此轉(zhuǎn)換可得到膚色二值圖。再運(yùn)用去噪、膨脹腐蝕等技術(shù)獲得最終的分割區(qū)域,膚色分割如圖1(a)所示。
按照文獻(xiàn)[8]的方法:排除小面積區(qū)域,計(jì)算膚色的高度(height)及寬度(width)的比例K,若滿足0.7≤K≤3.0,即為手勢區(qū)域。至此,可得到最終的手勢區(qū)域。對(duì)于得到的二值圖像,由以下幾個(gè)條件去除干擾的膚色區(qū)域,進(jìn)而得到最終的手勢分割結(jié)果:
(1)去除膚色區(qū)域面積<400 像素的區(qū)域。
(2)為排除某些滿足條件(1)的狹長區(qū)域,設(shè)定膚色區(qū)域的高和寬必須大于20 像素。
(3)膚色區(qū)域的重心在膚色區(qū)域內(nèi)部,既重心在手掌上。
(4)計(jì)算膚色的高度(height)及寬度(width)的比例K,若滿足0.7≤K≤3.0,即為有意義的手勢區(qū)域。
本文識(shí)別出手勢區(qū)域之后,將手勢區(qū)域分離出來,并畫出手勢輪廓,手勢分割如圖1(b)所示。
圖1 膚色分割圖和手勢分割圖
在做手勢時(shí),手指經(jīng)常遠(yuǎn)離手掌中心,且指尖離得最遠(yuǎn)。根據(jù)這一情況建立數(shù)學(xué)模型。因?yàn)橥拱讣獾狞c(diǎn),基于Graham scan 凸包算法找到手型外部的凸包[9]。具體過程如下:
(1)在所有點(diǎn)中選取y 坐標(biāo)最小的一點(diǎn)H,當(dāng)作基點(diǎn)。如果存在多個(gè)點(diǎn)的y 坐標(biāo)都為最小值,則選取x坐標(biāo)最小的一點(diǎn)。坐標(biāo)相同的點(diǎn)應(yīng)排除。然后按照其他各點(diǎn)p 和基點(diǎn)構(gòu)成的向量<H,p >與x 軸的夾角進(jìn)行排序,夾角由大至小進(jìn)行順時(shí)針掃描,反之則進(jìn)行逆時(shí)針掃描。
(2)線段<H,K >一定在凸包上,接著加入C。假設(shè)線段<K,C >也在凸包上,因?yàn)榫虷,K,C 這3 點(diǎn)而言,其的凸包就是由此3 點(diǎn)所組成。但接下來加入D時(shí)會(huì)發(fā)現(xiàn),線段<K,D >才會(huì)在凸包上,所以將線段<K,C >排除,C 點(diǎn)不可能是凸包。
(3)即當(dāng)加入一點(diǎn)時(shí),必須考慮到前面的線段是否會(huì)出現(xiàn)在凸包上。從基點(diǎn)開始,凸包上每條相臨的線段的旋轉(zhuǎn)方向應(yīng)該一致,并與掃描的方向相反。如果發(fā)現(xiàn)新加的點(diǎn)使得新線段與上線段的旋轉(zhuǎn)方向發(fā)生變化,則可判定上一點(diǎn)必然不在凸包上。
在圖2 中,加入K 點(diǎn)時(shí),由于線段<H,K >相對(duì)于<H,C >為順時(shí)針旋轉(zhuǎn),所以C 點(diǎn)不在凸包上,應(yīng)該刪除,保留K 點(diǎn)。接著加入D 點(diǎn),由于線段<K,D >相對(duì)<H,K >為逆時(shí)針旋轉(zhuǎn),故D 點(diǎn)保留。按照上述步驟進(jìn)行掃描,直到點(diǎn)集中所有的點(diǎn)都遍歷完成,即得到凸包。
圖2 凸包示意圖
提取到手的輪廓后,計(jì)算輪廓內(nèi)接圓的中心坐標(biāo)得到掌心。通過計(jì)算那些既在凸包上又在輪廓上的點(diǎn)來找到指尖[10]。
(1)初始化C 序列既為凸包上的點(diǎn)又是輪廓上的點(diǎn)的集合。
(2)遍歷C 序列上的每個(gè)點(diǎn)p,取其左右m 和n點(diǎn),分別計(jì)算它們到p 的矢量值
通常情況下,圖像特征的選取往往對(duì)識(shí)別結(jié)果的準(zhǔn)確性有較大的影響,單一的特征一般會(huì)受環(huán)境的影響和其他因素的干擾。考慮到計(jì)算的復(fù)雜性和識(shí)別的實(shí)時(shí)性等因素,本文定義了4 種手勢表觀特征。圖3列出了12 種常見的手勢。
圖3 12 種常見的手勢
根據(jù)上文的方法得到指尖,指尖依次記為P1,P2,…,PN(N≤5);檢測到的指尖個(gè)數(shù)記為N;通過測量得知,正常人5 指分開后,手指間的角度在10°180°~之間[11]。大拇指與食指間的角度為40°~90°,食指與中指、中指與無名指、無名指與小指的角度為10°~35°,大拇指與小指間的角度為95°~150°,這為本文的算法提供了依據(jù)。本文將指尖與掌心O 以直線連接,計(jì)算手指間的相對(duì)角度。計(jì)算相鄰兩個(gè)指尖與掌心的角度βN-1,即β1為P1和P2與掌心O 的夾角;β2為P2和P3與掌心O 的夾角;β3為P3和P4與掌心O 的夾角;β4為P4和P5與掌心O 的夾角。
本文定義4 個(gè)手勢表觀特征:指尖個(gè)數(shù)N;手勢的最小外接矩形的長寬比K=L/W;相鄰兩個(gè)指尖與掌心的角度βN-1在40°~90°之間的個(gè)數(shù)N1、在10°~35°之間的個(gè)數(shù)N2。
根據(jù)以上4 個(gè)特征,可通過建立決策樹來分類識(shí)別上述12 種常見的手勢,其識(shí)別流程圖如圖4 所示。
圖4 手勢決策樹圖
首先根據(jù)所檢測到的指尖的個(gè)數(shù)N 對(duì)12 種手勢加以區(qū)分,當(dāng)N=5 和N=0 時(shí)可分別分離手勢5 和手勢10;當(dāng)N=1 時(shí),手勢1 和手勢11 由于指尖只有一個(gè),無法用角度特征區(qū)分,只能用K 加以區(qū)分。當(dāng)K >時(shí)(σ 取1.8),能分離手勢1;當(dāng)N=2 時(shí),手勢7 的N1=1,而手勢2 的N1≠1 且N2=1,故此能分離手勢2和6;當(dāng)N=3 時(shí),食指與小指之間的角度范圍在30°~105°之間,而大拇指和食指之間的角度在40°~90°所以根據(jù)N1來區(qū)分手勢8 和手勢9 有較的誤差,所以本文根據(jù)N1≥1 來分離手勢3,然后手勢8 的N2=1,手勢9 的N2≠1;當(dāng)N=4 時(shí),手勢12 和手勢4 根據(jù)N1≥1 與否來確定。至此,本文定義的12 種常見的手勢均可識(shí)別,部分手勢識(shí)別結(jié)果如圖5 所示。
圖5 部分手勢識(shí)別結(jié)果
本文在Windows 環(huán)境下,借助計(jì)算機(jī)視覺庫OpenCV 提供圖像算法函數(shù)和微軟Visual Studio 2010搭建開發(fā)平臺(tái),實(shí)現(xiàn)手勢識(shí)別。實(shí)驗(yàn)在光照條件良好的環(huán)境下,由10 人分別在不同背景條件下對(duì)每種手勢做10 次,并且每次都相對(duì)平面旋轉(zhuǎn)一定得角度,手離攝像頭的距離也在30 ~50 cm 不等,每種手勢共計(jì)100次,表1 給出了12 種手勢的識(shí)別結(jié)果及準(zhǔn)確率。
表1 手勢識(shí)別結(jié)果
由實(shí)驗(yàn)結(jié)果可知,識(shí)別手勢10 的準(zhǔn)確率為100%,手勢1,2,5,6,7,9,11 的識(shí)別準(zhǔn)確率均在94%以上,而手勢3,手勢4,手勢8 和12 識(shí)別率偏低,主要是由于不同的人在這些手勢上表達(dá)有所不同,不同的人每次做出的手勢手指間的角度不同,過小則可能導(dǎo)致指尖的識(shí)別產(chǎn)生誤差。
文獻(xiàn)[5]綜合手勢的空間相對(duì)密度特征和指節(jié)相對(duì)間距特征來識(shí)別手勢,多數(shù)手勢識(shí)別率低。本文分別采用這兩種方法對(duì)兩方法均能識(shí)別的部分手勢做了對(duì)比實(shí)驗(yàn),結(jié)果如表2 所示,表明本文算法準(zhǔn)確率較高。
表2 對(duì)比試驗(yàn)
本文實(shí)驗(yàn)在Windows7 操作系統(tǒng),VS2010+OpenCV環(huán)境下完成。本文提出的基于手勢表觀特征的靜態(tài)手勢識(shí)別方法,利用凸包和輪廓檢測指尖,結(jié)合指尖個(gè)數(shù),手指角度特征和輪廓長寬比來分類,利用本方法成功地對(duì)本文定義的12 種手勢進(jìn)行了識(shí)別,通過多人在不同背景下做不同大小、角度的手勢進(jìn)行識(shí)別,結(jié)果表明該算法對(duì)平移、旋轉(zhuǎn)以及縮放有魯棒性,實(shí)時(shí)性好,識(shí)別率高且能識(shí)別的手勢種類多。但仍有不足之處,如不能有效識(shí)別垂直旋轉(zhuǎn)的手勢,指間角度過小時(shí)影響指尖的檢測精度等。因此,下一步的工作重點(diǎn)是繼續(xù)完善該方法,提高指尖的檢測精度,考慮增加雙手的手勢識(shí)別。
[1] Sushmita Mitra,Tinku Acharya.Gesture recognition:a survey[J].IEEE Transactions on Systems,Man,and Cybernet-ics-Part C:Applications and Reviews,2007,37(3):311-324.
[2] Frati V,Prattichizzo D.Using kinect for hand tracking and rendering in wearable haptics[C].Istanbul:World Haptics Conference(WHC),IEEE,2011:317-321.
[3] 張國良,吳江琴,高文,等.基于Hausdorff 距離的手勢識(shí)別[J].中國圖象圖形學(xué)報(bào),2002,7(11):1144-1150.
[4] 黃國范,李英.基于改進(jìn)Hu 矩的字母手勢識(shí)別[J].赤峰學(xué)院學(xué)報(bào),2013,29(3):23-24.
[5] 楊波,宋曉娜,馮志全,等.復(fù)雜背景下基于空間分布特征的手勢識(shí)別算法[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)報(bào),2010,22(10):1841-1848.
[6] 林水強(qiáng),吳亞東,陳永輝.基于幾何特征的手勢識(shí)別方法[J].計(jì)算機(jī)工程與設(shè)計(jì),2014,35(2):636-640.
[7] 成琳,陳俊杰,相潔.圖像顏色征提取技術(shù)的研究與應(yīng)用[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(14):3451-3454.
[8] 翁漢良,戰(zhàn)萌偉.基于視覺的多特征手勢識(shí)別[J].計(jì)算機(jī)工程與科學(xué),2012,34(2):123-127.
[9] Adams W,Belotti P,Shen R.Convex hull characterization of lexicographic orderings[J].Writing,2013,23(6):719-726.
[10]Zhang Binjue,Zhao Liaoyin,Wang Yixuan.Fingeritip detection and gesture recognition based on kinectdepth data[J].IEEE Trasactions on Computer Science and Technology,2014,3(1):9-14.
[11]Stenger B.Template-based hand pose recognition using multiple cues[C].Haikou:Proceeding of ACCV'06,2006:551-560.