本發(fā)明涉及手勢識別技術(shù)領(lǐng)域,尤其涉及一種手勢變化識別方法。
背景技術(shù):
目前的智能設(shè)備中,對于手勢控制的技術(shù)不太成熟,一些支持手勢控制的智能設(shè)備,只能支持使用者戴著特定顏色的手套,穿特定要求的服裝,并且在一個統(tǒng)一的識別背景下(例如全黑的房間內(nèi))進行手勢操作才能保證手勢識別的準確度。這些限定大大增加了手勢操作的復(fù)雜度,并且現(xiàn)有技術(shù)中并沒有比較成熟的識別靜態(tài)手勢和變化手勢的技術(shù)。
技術(shù)實現(xiàn)要素:
根據(jù)現(xiàn)有技術(shù)中存在的上述問題,現(xiàn)提供一種手勢變化識別方法的技術(shù)方案,具體包括:
一種手勢變化識別方法,其中,包括如下步驟:
步驟s1,通過一圖像采集裝置獲取關(guān)聯(lián)于使用者全身的視頻數(shù)據(jù)流,并處理得到關(guān)聯(lián)于所述使用者的各個骨骼點的骨骼點信息;
步驟s2,根據(jù)所述骨骼點信息,確定表示所述使用者的手心位置的手心位置信息與表示所述使用者的手長的手長信息;
步驟s3,根據(jù)所述手心位置信息判斷所述使用者的手心距離地面的高度是否大于一預(yù)設(shè)的高度閾值:
若是,則繼續(xù)執(zhí)行所述步驟s4;
若否,則退出;
步驟s4,判斷得到手掌區(qū)域的圖像,并對所述手掌區(qū)域的圖像進行分割裁剪以及進行預(yù)處理,得到相應(yīng)的手部掩膜并輸出;
步驟s5,根據(jù)所述處理結(jié)果,于所述視頻數(shù)據(jù)流中的連續(xù)的多幀所述圖像幀中分別識別并輸出手部的指尖區(qū)域,并根據(jù)所述指尖區(qū)域的幾何關(guān)系分別對所述使用者的手勢進行識別;
步驟s6,將相鄰兩幀的所述圖像幀中分別識別并輸出的所述指尖區(qū)域進行對比,根據(jù)對比結(jié)果判斷所述指尖區(qū)域是否發(fā)生變化,并輸出每相鄰兩幀的所述圖像幀中所述指尖區(qū)域的變化軌跡;
步驟s7,判斷連續(xù)多幀的所述圖像幀中連續(xù)的所述變化軌跡是否符合預(yù)設(shè)軌跡:
若不符合,則判斷所述手勢為形態(tài)變化的手勢;
若符合,則退出。
優(yōu)選的,該手勢變化識別方法,其中,所述步驟s1中,所述圖像采集裝置為景深攝像頭;
所述視頻數(shù)據(jù)為關(guān)聯(lián)于所述使用者的全身的景深視頻數(shù)據(jù)。
優(yōu)選的,該手勢變化識別方法,其中,所述步驟s1包括:
步驟s11,采用所述圖像采集裝置采集包括背景以及所述使用者的全身的景深圖像的視頻數(shù)據(jù)流;
步驟s12,將所述視頻數(shù)據(jù)流中包括的每幀的所述景深圖像的像素的三維信息進行空間變換,以得到實際空間中的對應(yīng)的點云信息;
步驟s13,根據(jù)每個所述像素對應(yīng)的所述點云信息,獲得每個所述像素與所述景深攝像頭之間的距離;
步驟s14,分別根據(jù)每個所述像素對應(yīng)的所述距離,處理得到所述骨骼點信息。
優(yōu)選的,該手勢變化識別方法,其中,所述步驟s2包括:
步驟s21,根據(jù)處理得到的關(guān)聯(lián)于所述使用者的各個所述骨骼點的所述骨骼點信息,獲得所述使用者的所述手心位置信息;
步驟s22,根據(jù)處理得到的關(guān)聯(lián)于所述使用者的各個所述骨骼點的所述骨骼點信息,依照下述公式計算得到所述使用者的身高信息:
其中,h1表示所述使用者的身高數(shù)值,h2表示背景的像素高度數(shù)值,h3表示所述使用者在被采集的視頻圖像中的像素高度數(shù)值,d表示所述使用者與所述景深攝像頭之間的距離數(shù)值,θ表示所述景深攝像頭在水平方向上的垂直角度數(shù)值;
步驟s23,根據(jù)預(yù)設(shè)的人體身高與人體手長之間的對應(yīng)關(guān)系,獲得所述使用者的所述手長信息。
優(yōu)選的,該手勢變化識別方法,其中,所述步驟s4包括:
步驟s41,根據(jù)所述手心位置信息和所述手長信息,去除所述使用者的手部包括的所有與所述手心位置的距離大于所述手長的一半的像素點的信息,并依據(jù)去除后的手部包括的所有所述像素點的信息得到手部數(shù)據(jù);
步驟s42,通過k均值聚類算法對處理得到的所述手部數(shù)據(jù)進行聚類處理,得到經(jīng)過聚類處理后的所述手部數(shù)據(jù);
步驟s43,設(shè)置最小聚類數(shù),以對所述手部數(shù)據(jù)進行噪聲干擾像素簇的過濾排除,從而得到關(guān)聯(lián)于所述手部數(shù)據(jù)的手部掩膜并輸出。
優(yōu)選的,該手勢變化識別方法,其中,所述手部數(shù)據(jù)包含在以所述使用者的所述手長的一半為半徑、并以所述使用者的所述手心位置為圓心的一個球形區(qū)域內(nèi)。
優(yōu)選的,該手勢變化識別方法,其中,所述步驟s5包括:
步驟s51,采用moore鄰域輪廓跟蹤算法檢測得到所述手部掩膜的邊緣輪廓,并獲得包括所述邊緣輪廓上的所有輪廓點的第一點鏈集合;
步驟s52,采用graham掃描算法檢測得到所述手部掩膜的手部輪廓上的凸包集,并獲得包括所有凸包的第二點鏈集合;
步驟s53,采用輪廓最大凹陷點掃描算法,于所述手部掩膜的所述邊緣輪廓和所述手部輪廓的所述凸包集上檢測得到所有所述凸點之間的最大凹陷點,并獲得包括所述手部輪廓上的凹凸點的第三點鏈集合;
步驟s54,采用凹凸夾角識別算法,依據(jù)關(guān)聯(lián)于所述手部輪廓的所述第三點鏈集合處理得到包括手部的所有指尖點的第四點鏈集合;
步驟s55,根據(jù)所述指尖點識別得到手部的每個手指,隨后執(zhí)行手勢識別操作。
優(yōu)選的,該手勢變化識別方法,其中,所述步驟s55中,執(zhí)行手勢識別操作的步驟具體包括:
步驟s551,識別得到手部的所有所述手指的個數(shù);
步驟s552,,根據(jù)預(yù)設(shè)信息判斷得到每根所述手指的名稱、方向向量以及相鄰所述手指之間的夾角并輸出;
步驟s553,根據(jù)所述步驟s552中輸出的信息形成一三層決策樹,并根據(jù)所述三層決策樹對手勢進行識別。
優(yōu)選的,該手勢變化識別方法,其中,所述步驟s42中,所述k均值聚類算法中的k值設(shè)定為固定數(shù)值2。
上述技術(shù)方案的有益效果是,提供一種手勢變化識別方法,能夠避免一些無效手勢被誤認為使用者進行手勢指令輸入的情況發(fā)生,消除外界背景的影響,擴展了手勢識別適用的背景環(huán)境,并且能夠區(qū)分靜態(tài)手勢和形態(tài)變化手勢,進一步提升了手勢識別的準確性。
附圖說明
圖1是本發(fā)明的較佳的實施例中,一種手勢變化識別方法的總體流程示意圖;
圖2是本發(fā)明的較佳的實施例中,采集并處理得到使用者的骨骼點信息的流程示意圖;
圖3是本發(fā)明的較佳的實施例中,處理得到手心位置信息和手長信息的流程示意圖;
圖4是本發(fā)明的較佳的實施例中,處理得到手部掩膜的流程示意圖;
圖5是本發(fā)明的較佳的實施例中,對手勢進行識別的流程示意圖;
圖6是本發(fā)明的較佳的實施例中,輪廓最大凹陷點掃描算法的流程示意圖;
圖7是本發(fā)明的較佳的實施例中,凹凸夾角識別算法的流程示意圖;
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
需要說明的是,在不沖突的情況下,本發(fā)明中的實施例及實施例中的特征可以相互組合。
下面結(jié)合附圖和具體實施例對本發(fā)明作進一步說明,但不作為本發(fā)明的 限定。
本發(fā)明的較佳的實施例中,提供一種手勢變化識別方法,該方法的總體流程如圖1所示,包括下述步驟:
步驟s1,通過一圖像采集裝置獲取關(guān)聯(lián)于使用者全身的視頻數(shù)據(jù)流,并處理得到關(guān)聯(lián)于使用者的各個骨骼點的骨骼點信息;
具體地,如圖2所示,上述步驟s1包括下述步驟:
步驟s11,采用圖像采集裝置采集包括背景以及使用者的全身的景深圖像的視頻數(shù)據(jù)流;
本發(fā)明的較佳的實施例中,上述圖像采集裝置可以為安裝于支持手勢指令交互的智能終端上的攝像頭,優(yōu)選地可以為景深攝像頭,即支持在成像物體的前后距離范圍內(nèi)均能夠清晰成像的功能的攝像頭。
則在上述步驟s11中,采用上述景深攝像頭直接拍攝使用者所在畫面的背景以及使用者的全身深度圖像的視頻流,最后形成上述視頻數(shù)據(jù)流并輸出。
步驟s12,將視頻數(shù)據(jù)流中包括的每幀的景深圖像的像素的三維信息進行空間變換,以得到實際空間中的對應(yīng)的點云信息;
本發(fā)明的較佳的實施例中,上述步驟s12中,將拍攝到的視頻數(shù)據(jù)流中所獲取的每幀的景深圖像中每個像素的三維像素信息進行空間變換后分別得到其在實際空間中的對應(yīng)的點云信息。
步驟s13,根據(jù)每個像素對應(yīng)的點云信息,獲得每個像素與景深攝像頭之間的距離;
由上述步驟s12中得到的點云信息,進一步地可以在上述步驟s13中處理得到對應(yīng)每一個像素點與景深攝像頭之間的距離。
步驟s14,分別根據(jù)每個像素對應(yīng)的距離,處理得到骨骼點信息。
上述步驟s14中,最終分別根據(jù)每個像素與上述景深攝像頭之間的距離,可以處理得到使用者的骨骼點信息。所謂骨骼點,可以認為是一種人體標記模型,在該標記模型中包括多個可以用來標記人體不同部位的骨骼點,不同的骨骼點可以分別用于標記人體的各個關(guān)節(jié)處。例如某類多個骨骼點形成的人體虛擬模型,其中定義了20個骨骼點來表示人體處于站立狀態(tài)下的骨架狀態(tài),每個骨骼點即為一個關(guān)節(jié)點。換言之,在執(zhí)行上述手勢變化識別方 法之前,首先需要預(yù)先定義包括多個骨骼點的一個人體虛擬模型,現(xiàn)有技術(shù)中存在較多的能夠?qū)崿F(xiàn)預(yù)設(shè)上述人體虛擬模型的技術(shù)方案,在此不再詳細贅述。
則本發(fā)明的較佳的實施例中,每幀景深圖像的三維像素信息進行空間變換為實際空間中的點云信息的具體過程可以根據(jù)相關(guān)軟件實現(xiàn),只需要在實現(xiàn)時調(diào)用相關(guān)軟件代碼的api接口即可,在此不再贅述。
步驟s2,根據(jù)骨骼點信息,確定表示使用者的手心位置的手心位置信息與表示使用者的手長的手長信息;
本發(fā)明的較佳的實施例中,上述手心位置信息用于指示使用者的手心位置,更進一步地,手心位置信息可以用于指示使用者的手的位置。
本發(fā)明的較佳的實施例中,手長信息可以用于指示使用者的手掌長度。該手長信息通常為預(yù)設(shè)的,例如通過預(yù)先訓(xùn)練得到的人體身高與手長的比例計算得到,上述計算過程在下文中會詳述。
則本發(fā)明的較佳的實施例中,如圖3所示,上述步驟s2進一步包括:
步驟s21,根據(jù)處理得到的關(guān)聯(lián)于使用者的各個骨骼點的骨骼點信息,獲得使用者的手心位置信息;
步驟s22,根據(jù)處理得到的關(guān)聯(lián)于使用者的各個骨骼點的骨骼點信息,依照下述公式計算得到使用者的身高信息:
其中,h1表示使用者的身高數(shù)值,h2表示背景的像素高度數(shù)值,h3表示使用者在被采集的視頻圖像中的像素高度數(shù)值,d表示使用者與景深攝像頭之間的距離數(shù)值,θ表示景深攝像頭在水平方向上的垂直角度數(shù)值。則上述h2的數(shù)值可以預(yù)先設(shè)定,例如取值為240,同樣地θ也可以預(yù)先設(shè)定,例如設(shè)定為21.5°。
步驟s23,根據(jù)預(yù)設(shè)的人體身高與人體手長之間的對應(yīng)關(guān)系,獲得使用者的手長信息。
本發(fā)明的較佳的實施例中,上述人體身高與手長的對應(yīng)關(guān)系可以根據(jù)大量的人體相關(guān)數(shù)據(jù),通過大數(shù)據(jù)統(tǒng)計的方式進行多元線性回歸分析得到。
步驟s3,根據(jù)手心位置信息判斷使用者的手心距離地面的高度是否大于 一預(yù)設(shè)的高度閾值:
若是,則繼續(xù)執(zhí)行步驟s4;
若否,則退出;
現(xiàn)有技術(shù)中,在支持手勢識別的智能終端內(nèi)通常存在這樣一種情況:使用者雖然站在景深攝像頭的畫面捕捉范圍內(nèi),但是其并非想要對相應(yīng)的智能終端進行手勢操作。則此時,使用者可能會在進行一些其他事務(wù)(例如與他人交談等)時不自覺地揮動手臂,這一系列動作有可能會造成智能終端對手勢動作的誤讀,即將使用者不自覺中做的一些手勢動作識別為需要對智能終端進行控制的手勢動作。
則在本發(fā)明的較佳的實施例中,為了避免上述誤讀手勢動作的情況發(fā)生,在手勢識別之前首先預(yù)設(shè)一個高度閾值,該高度閾值為使用者做一個標準的手勢動作時,手部離地的標準高度。換言之,只要使用者的手部離地的高度高于上述高度閾值,則可以表明使用者當前在嘗試向智能終端輸入手勢指令。反之,則可以認為使用者并沒有意愿通過手勢動作控制智能終端。
則上述步驟s3中,首先可以通過手心位置以及使用者全身的圖像確定手部離地的距離。在上述高度閾值的預(yù)先設(shè)置的過程中,可以直接將高度閾值設(shè)置為標準的手勢動作對應(yīng)的手部的中心(即手心)離地的高度距離,這樣在實際計算過程中,可以直接采用上述手心位置計算離地高度并與預(yù)設(shè)的高度閾值進行對比。同樣地,上述高度閾值也可以設(shè)置為標準的手勢動作對應(yīng)的手部底部/上部邊緣離地的高度距離,在這種情況下,在實際計算過程中,就需要首先根據(jù)手心位置信息推算出大致的手部的底部/上部的邊緣位置,并進而計算得到手部實際的離地高度,并與預(yù)設(shè)的高度閾值進行對比。
步驟s4,判斷得到手掌區(qū)域的圖像,并對手掌區(qū)域的圖像進行分割裁剪以及進行預(yù)處理,得到相應(yīng)的手部掩膜并輸出;
本發(fā)明的較佳的實施例中,上述步驟s4具體如圖4所示,包括下述步驟:
步驟s41,根據(jù)手心位置信息和手長信息,去除使用者的手部包括的所有與手心位置的距離大于手長的一半的像素點的信息,并依據(jù)去除后的手部包括的所有像素點的信息得到手部數(shù)據(jù);
本發(fā)明的較佳的實施例中,基于距離深度的過濾算法,去除所有與 上述手心位置相距大于手長一半的像素點的數(shù)據(jù),從而能夠快速獲取手部數(shù)據(jù)。換言之,最終經(jīng)過過濾后保留下來的為以手心位置為圓心,以手長的一半為半徑的一個球形區(qū)域,位于該球形區(qū)域內(nèi)的所有像素點均被保留,以作為手部數(shù)據(jù)的像素點。
因此,本發(fā)明的較佳的實施例中,使用者的手部數(shù)據(jù)被包含在以使用者的手長的一半為半徑、并以使用者的手心位置為圓心的一個球形區(qū)域內(nèi)。
具體地,本發(fā)明的較佳的實施例中,上述步驟s41中,依照下述公式計算得到上述球形區(qū)域中的像素點的集合,即得到手部數(shù)據(jù):
其中,p0表示上述球形區(qū)域內(nèi)的像素點的集合,p為使用者的手部包括的像素點,p(x,y,z)用于表示坐標為(x,y,z)的像素點p,p(x0,y0,z0)用于表示坐標為(x0,y0,z0),即用于表示手心位置所在的像素點,h4用于表示手長信息的數(shù)值。
步驟s42,通過k均值聚類算法對處理得到的手部數(shù)據(jù)進行聚類處理,得到經(jīng)過聚類處理后的手部數(shù)據(jù);
本發(fā)明的較佳的實施例中,上述步驟s42中的k均值聚類算法中的k值可以由開發(fā)者指定類的個數(shù),在本發(fā)明的一個較佳的實施例中,k值取固定的數(shù)值2。
步驟s43,設(shè)置最小聚類數(shù),以對手部數(shù)據(jù)進行噪聲干擾像素簇的過濾排除,從而得到關(guān)聯(lián)于手部數(shù)據(jù)的手部掩膜并輸出。
本發(fā)明的較佳的實施例中,上述手部掩膜可以為由0和1組成的一個二進制圖像。則在本發(fā)明的一個較佳的實施例中,上述步驟s43中,設(shè)置的最小聚類數(shù)(最小的聚類數(shù)像素閾值)為50個像素點。
步驟s5,根據(jù)處理結(jié)果,于視頻數(shù)據(jù)流中的連續(xù)的多幀圖像幀中分別識別并輸出手部的指尖區(qū)域,并根據(jù)指尖區(qū)域的幾何關(guān)系分別對使用者的手勢進行識別;
本發(fā)明的較佳的實施例中,可以基于輪廓曲率的指尖檢測法結(jié)合景深圖像的特性,提出一種凹凸點夾角識別算法,這種算法克服了常規(guī)的三點對齊法對指尖檢測的不足(例如缺乏相對不變性,對成像圖像與攝像頭之間的距 離有較高的要求,并且會增加程序的運算量等)。并在上述凹凸點夾角識別算法的基礎(chǔ)上,利用人體和手部的空間位置關(guān)系識別手部的各個手指。最后可以通過形成的一個三層決策樹,依賴各個手指的指尖區(qū)域?qū)κ謩葸M行分析處理,從而識別使用者的手勢動作。
本發(fā)明的較佳的實施例中,基于上述視頻數(shù)據(jù)流中的每幀圖像幀,分別對其中包括的手勢圖像判斷其指尖區(qū)域的位置以及相互之間的幾何關(guān)系,從而識別出每個圖像幀中包括的手勢。
具體地,本發(fā)明的較佳的實施例中,如圖5所示,上述步驟s5包括:
步驟s51,采用moore鄰域輪廓跟蹤算法檢測得到手部掩膜的邊緣輪廓,并獲得包括邊緣輪廓上的所有輪廓點的第一點鏈集合;
moore鄰域輪廓跟蹤算法為現(xiàn)有技術(shù)中存在的比較經(jīng)典的用來檢測輪廓的算法,在此不再贅述。
步驟s52,采用graham掃描算法檢測得到手部掩膜的手部輪廓上的凸包集,并獲得包括所有凸包的第二點鏈集合;
graham同樣也是經(jīng)典的用于監(jiān)測輪廓的算法,在此也不再贅述。
步驟s53,采用輪廓最大凹陷點掃描算法,于手部掩膜的邊緣輪廓和手部輪廓的凸包集上檢測得到所有凸點之間的最大凹陷點,并獲得包括手部輪廓上的凹凸點的第三點鏈集合;
進一步地,本發(fā)明的較佳的實施例中,如圖6所示,上述步驟s53中,所謂的輪廓最大凹陷點掃描算法具體包括:
步驟s531,將在手部輪廓上的第二點鏈集合作為初始的第三點鏈集合。
步驟s532,依次對第二點鏈集合的前后相鄰的2個凸點之間的、第三點鏈集合中的各手部輪廓凹陷點運用點到線的距離公式,探測其手部輪廓的凹陷點到上述相鄰的2個凸點之間的連接直線具有最大距離的凹點。
步驟s533,將上述具有最大距離的凹點插入到上述第三點鏈集合中上述相鄰的2個凸點之間。
步驟s534,重復(fù)執(zhí)行上述步驟s532至s533,直到上述第三點鏈集合中的點全部被檢測完畢。
步驟s535,通過迭代求出其最大值的點,則為最大凹陷點,并 生成有序的手部輪廓上的第三點鏈集合。
步驟s54,采用凹凸夾角識別算法,依據(jù)關(guān)聯(lián)于手部輪廓的第三點鏈集合處理得到包括手部的所有指尖點的第四點鏈集合;
具體地,本發(fā)明的較佳的實施例中,如圖7所示,上述步驟s54中,所謂的凹凸夾角識別算法包括:
步驟s541,由上至下依序在手部輪廓上的第三點鏈集合內(nèi)找到一個凸點p1,并且分別從其前后2個方向上選取相鄰凹點p2和凹點p3。
步驟s542,從凹點p2到凸點p1、凸點p1到凹點p2作2條矢量,計算其在凸點p1點的夾角,如果其夾角小于設(shè)定的閾值,則凸點p1點被識別為指尖區(qū)域存入上述第四點鏈集合。
步驟s543,如果手部輪廓上的第三點鏈集合還沒有檢測完,則重復(fù)上述步驟s541,以檢測下一個候選凸點;否則結(jié)束。
步驟s55,根據(jù)指尖點識別得到手部的每個手指,隨后執(zhí)行手勢識別操作。
本發(fā)明的較佳的實施例中,上述步驟s55中,可以依次計算上述第四點鏈集合中每2個相鄰和非相鄰的指尖點的距離,并根據(jù)距離確定不同的指尖區(qū)域?qū)?yīng)的手指。
具體地,本發(fā)明的一個較佳的實施例中,可以將相鄰2個指尖點距離最大和非相鄰2個指尖點距離最大中的公共指尖點確定為大拇指,與大拇指相鄰且距離最大的指尖點確定為食指,與大拇指非相鄰且距離最大的指尖點確定為小拇指,與食指最近的指尖點確定為中指;剩下來的指尖點確定為無名指。
本發(fā)明的一個較佳的實施例中,上述凹凸點夾角的預(yù)設(shè)的閾值可以被設(shè)定為40°,則應(yīng)用本發(fā)明技術(shù)方案能夠有效解決傳統(tǒng)的指尖檢測中存在的誤判問題,同時降低計算量。
本發(fā)明的較佳的實施例中,對于一個手勢的識別,首先依照上述步驟識別出手指的個數(shù),并獲得手指的名稱,以及各個手指的方向向量和它們之間的夾角,并以上述三個條件形成一個三層決策樹,最終依據(jù)上述三層決策樹實現(xiàn)手勢動作的識別。
本發(fā)明的較佳的實施例中,上述三層決策樹是通過對樣本進行歸納學(xué)習(xí), 生成對應(yīng)的決策樹或決策規(guī)則,然后依據(jù)決策樹或規(guī)則對新的數(shù)據(jù)進行分類的一種分類方法,在各種分類算法中,決策樹是最直觀的一種。三層決策樹就是將上述三個條件各自作為樹中一層決策節(jié)點的分類依據(jù),從而達到分類目的。
在本發(fā)明中手部檢測和手指識別的處理過程是在每一次有景深圖像數(shù)據(jù)輸入的時候進行的,如果同樣的對象在下一幀景深圖像中依然存在,且外形只是和前一幀圖像有所變形時,則所有的對象屬性將繼續(xù)引用舊的景深圖像幀分析得出的特征點,這樣就可以減少程序工作量,提高效率。
在本發(fā)明的一個較佳的實施例中,根據(jù)上述三層決策樹對手勢進行識別的過程例如在識別數(shù)字比劃的手勢與手勢”iloveyou”:
首先識別出使用者當前的手勢動作涉及到三根手指,并獲取相應(yīng)的手指名以進行進一步識別。
通過預(yù)先的訓(xùn)練可以獲知,在手勢“iloveyou”中用到了大拇指、食指和小指,而比劃數(shù)字例如比劃阿拉伯數(shù)字“3”時用到了食指、中指和無名指,因此可以直接通過該手勢動作中用到了哪幾根手指來進行手勢動作的區(qū)分。
又例如,同樣進行數(shù)字的手勢動作比劃,例如比劃阿拉伯數(shù)字“2”以及比劃中文數(shù)字”七”,兩個手勢用到的手指數(shù)和手指名都相同,則可以通過兩個手勢的向量夾角來區(qū)分:
對于阿拉伯數(shù)字“2”而言,使用者在比劃時,其兩根手指的方向向量夾角一定是一個銳角,并且小于我們可以實現(xiàn)預(yù)設(shè)的一個閾值,此時就能讓計算機識別出這是阿拉伯數(shù)字“2”。
相應(yīng)地,對于中文手勢“七”而言,使用者在比劃時,其兩個手指的方向向量夾角大于比劃阿拉伯數(shù)字“2”時的夾角,則可以當夾角大于上述預(yù)設(shè)的閾值時,將當前的手勢動作識別為“七”。
本發(fā)明的較佳的實施例中,上述利用三層決策樹對手勢動作進行識別還可以包括多種具體的實施例,在此不一一列舉,但凡是利用上述三個條件形成的三層決策樹對手勢進行識別的方式均包括在本發(fā)明的保護范圍內(nèi)。
步驟s6,將相鄰兩幀的圖像幀中分別識別并輸出的指尖區(qū)域進行對比,根據(jù)對比結(jié)果判斷指尖區(qū)域是否發(fā)生變化,并輸出每相鄰兩幀的圖像幀中指 尖區(qū)域的變化軌跡;
具體地,本發(fā)明的較佳的實施例中,首先根據(jù)相鄰兩幀的圖像幀中識別出的指尖區(qū)域,判斷前后相鄰的兩幀圖像幀中的指尖區(qū)域是否不同:
若相同,則返回至上述步驟s6,繼續(xù)對下一個相鄰兩幀的圖像幀中識別的指尖區(qū)域進行對比;
若不同,則繼續(xù)對下一個相鄰兩幀的圖像幀中識別的指尖區(qū)域進行對比,從而對連續(xù)的多幀圖像幀進行識別,以得到指尖區(qū)域的一個連續(xù)的變化軌跡。
本發(fā)明的較佳的實施例中,上述步驟s6中,若相同,則返回上述步驟s6并繼續(xù)對下一個相鄰兩幀的圖像幀中識別的指尖區(qū)域進行對比,直到對比預(yù)設(shè)數(shù)量的幀數(shù)的圖像幀后發(fā)現(xiàn)指尖區(qū)域仍然沒有變化為止。
步驟s7,判斷連續(xù)多幀的圖像幀中連續(xù)的變化軌跡是否符合預(yù)設(shè)軌跡:
若不符合,則判斷手勢為形態(tài)變化的手勢;
若符合,則退出。
具體地,本發(fā)明的較佳的實施例中,上述步驟s7中,所謂預(yù)設(shè)軌跡,可以被設(shè)置為一種比較規(guī)則的變化軌跡,則若上述變化軌跡符合預(yù)設(shè)軌跡,則表示對應(yīng)的手勢的變化是有規(guī)則的,此時不應(yīng)將其確認為形態(tài)發(fā)生變化的手勢,而應(yīng)該將其確認為其他手勢例如正在移動的手勢。只有在變化軌跡不符合上述預(yù)設(shè)軌跡(即變化軌跡并不規(guī)則)的情況下,才能將當前的手勢確認為是形態(tài)變化的手勢,并根據(jù)形態(tài)的變化狀況確定相應(yīng)的手勢指令,以控制智能設(shè)備執(zhí)行相應(yīng)的操作。
以上所述僅為本發(fā)明較佳的實施例,并非因此限制本發(fā)明的實施方式及保護范圍,對于本領(lǐng)域技術(shù)人員而言,應(yīng)當能夠意識到凡運用本發(fā)明說明書及圖示內(nèi)容所作出的等同替換和顯而易見的變化所得到的方案,均應(yīng)當包含在本發(fā)明的保護范圍內(nèi)。