張長青,宋 旭
(安陽師范學(xué)院 計(jì)算機(jī)與信息工程學(xué)院,河南 安陽 455002)
手勢是一種自然直觀的人機(jī)交流方式,它符合人的生活習(xí)慣。手勢識別研究的主要目的是將手勢引入到人機(jī)接口HCI(Human Computer Interface)中[1]。
手勢識別技術(shù)最初是基于數(shù)據(jù)手套,人需要戴上有傳感器的數(shù)據(jù)手套[1],通過傳感器系統(tǒng)感知手的位置和關(guān)節(jié)的相對位置,這種方法由于需要在使用者手上帶上固定的物理裝置,影響了系統(tǒng)使用的自然性和友好性。另外,物理裝置的價(jià)格以及容易磨損的特性都嚴(yán)重影響了系統(tǒng)的整體使用,尤其嚴(yán)重影響了用戶體驗(yàn)。后來,人們逐漸把手勢識別研究的焦點(diǎn)轉(zhuǎn)移到了自然狀態(tài)的手上,這種識別方式主要基于計(jì)算機(jī)視覺的識別?;谝曈X的手勢識別解除了物理裝置的限制,使人機(jī)交互更加自然、直接和簡潔[2]。
基于手勢識別的應(yīng)用方興未艾,目前手勢識別的產(chǎn)品并不多見,然而可以預(yù)見,手勢識別等更為豐富和自然的人機(jī)交互方式是未來研究和應(yīng)用的一個(gè)趨勢,然而,由于手勢識別的專業(yè)性和復(fù)雜性,阻礙了基于手勢識別的系統(tǒng)的研究和開發(fā)?;诖?,本文提出并設(shè)計(jì)了一種通用的手勢識別應(yīng)用軟件開發(fā)框架,降低了軟件開發(fā)成本,將主要精力集中于應(yīng)用的業(yè)務(wù)本身,而非對手勢識別技術(shù)本身的研究。
自然手勢識別方法大致可以分為兩大類:基于三維手勢建模的方法和基于表觀建模的方法?;谌S手勢建模的方法需要估算的參數(shù)值多,比較復(fù)雜。而基于表觀的方法直接從圖像中提取相應(yīng)的特征進(jìn)行識別,不需要恢復(fù)手勢在三維空間中的信息[3],但可識別的手勢種類較少。文獻(xiàn)[4]的方法就是通過視頻圖像序列的前若干幀來建立靜態(tài)手勢框架,文獻(xiàn)[5]提出了一種基于2D的變形手勢的實(shí)時(shí)跟蹤方法。但是考慮到在給定軟件的人機(jī)交互中,有限的手勢種類即可滿足要求,重點(diǎn)要考慮自然性和實(shí)時(shí)性,因此本文采用基于表觀的方法。本文將手勢分為靜態(tài)手勢和動(dòng)態(tài)手勢,定義如下:
定義1 靜態(tài)手勢:單個(gè)手勢,靜態(tài)手勢是手勢模式數(shù)據(jù)庫的基本組成元素,也是構(gòu)成動(dòng)態(tài)手勢的基本要素。
定義2動(dòng)態(tài)手勢:由包含時(shí)間信息的一個(gè)或多個(gè)靜態(tài)手勢組成。在定義靜態(tài)手勢后,可通過分析視頻信息定義動(dòng)態(tài)手勢。
本文提出的框架分為手勢定義部分和手勢識別部分,基本架構(gòu)如圖1所示。該框架又可分為幾個(gè)具體部分:
(1)攝像設(shè)備:基于計(jì)算機(jī)視覺的手勢識別,攝像設(shè)備是必要的硬件裝置。通過攝像設(shè)備捕捉人手動(dòng)態(tài)信息,將視頻文件傳輸?shù)较鄳?yīng)處理模塊。
(2)視頻分幀模塊:負(fù)責(zé)初步處理視頻信息。視頻文件傳輸?shù)酱四K后,該模塊將從連續(xù)的視頻文件中提取圖像序列。
(3)手勢定義模塊:負(fù)責(zé)分析該時(shí)間段內(nèi)所形成的手勢,如果該手勢尚未定義,則提醒用戶進(jìn)行手勢含義定義,并存儲(chǔ)手勢含義信息。
(4)手勢識別模塊:負(fù)責(zé)手勢的識別和含義的確認(rèn),并將識別出的手勢含義以消息的形式封裝。
(5)手勢模式數(shù)據(jù)庫:數(shù)據(jù)庫中存儲(chǔ)了已定義手勢模式及其含義。
圖1 實(shí)時(shí)手勢識別框架
靜態(tài)手勢為單一手勢,由一幅含手勢信息的靜態(tài)圖像即可獲得。關(guān)于靜態(tài)手勢的識別方法較多,文獻(xiàn)[1]~[8]都提出了各自的識別方法。手勢分析完成后,將會(huì)形成新的手勢,對于每一種手勢,用戶根據(jù)應(yīng)用需要,按照規(guī)定格式定義自己的手勢消息。
動(dòng)態(tài)手勢由靜態(tài)手勢序列組合而成。動(dòng)態(tài)手勢的定義步驟如下:
步驟1攝像設(shè)備捕獲用戶的手形變化,形成一段視頻信息;
步驟2 將視頻(或連續(xù)的圖像幀)作為輸入,若為視頻文件,系統(tǒng)將對T0-Tn時(shí)間段內(nèi)的視頻轉(zhuǎn)化為連續(xù)的圖像幀作為輸入;
步驟3 用戶設(shè)置相應(yīng)的視頻待分析時(shí)間范圍,系統(tǒng)將根據(jù)視頻和時(shí)間信息進(jìn)行分析,嘗試識別出手勢信息;
步驟4 如果識別成功,即形成一個(gè)完整手勢模式,然后將識別完成的手勢展示給用戶,用戶確認(rèn)后,即形成新的動(dòng)態(tài)手勢模式。
手勢模式完成即手勢模式數(shù)據(jù)庫初始化完畢,之后,可進(jìn)行手勢的識別。從分割出的連續(xù)視頻幀中識別出手勢信息存在的問題,即手勢的時(shí)間效用范圍。采用滑動(dòng)窗口策略,假設(shè)視頻分幀率為f,手勢有效時(shí)間長度為t,滑動(dòng)窗口大小即一個(gè)手勢所包含的連續(xù)圖像數(shù)目為n。則有如下關(guān)系:
n=f×t
滑動(dòng)窗口策略識別步驟如下:
步驟1初始化滑動(dòng)窗口狀態(tài),起始窗口狀態(tài)如圖2(a)所示,包含第 1幅視頻幀至第n幅(此處假設(shè) n=3)。
步驟2 此時(shí)手勢分析模塊嘗試根據(jù)已定義手勢模式數(shù)據(jù)庫分析手勢。若存在匹配手勢,則轉(zhuǎn)到步驟4,否則轉(zhuǎn)入步驟3;
步驟 3 窗口向后滑動(dòng) 1步(幀),如圖 2(b),轉(zhuǎn)到步驟2;
步驟 4 窗口向后滑動(dòng) n步(幀),如圖 2(c),轉(zhuǎn)到步驟2。
圖2 滑動(dòng)窗口
滑動(dòng)窗口的大小對系統(tǒng)將會(huì)產(chǎn)生重要影響,滑動(dòng)窗口越大,分析的圖像序列越多,則信息相對越完整,識別準(zhǔn)確程度越高。但同時(shí),分析時(shí)間越長,實(shí)時(shí)效果越差。
基于本框架的應(yīng)用軟件分為框架層和應(yīng)用層,如圖3所示。
圖3 消息機(jī)制框架
框架層接收視頻輸入后進(jìn)行手勢分析,將分析所得手勢轉(zhuǎn)化為手勢消息,并將消息放入框架所維護(hù)的消息隊(duì)列;應(yīng)用層負(fù)責(zé)從消息隊(duì)列中取出消息,并進(jìn)行相應(yīng)處理。
系統(tǒng)實(shí)現(xiàn)示例代碼主要包括三個(gè)部分:消息結(jié)構(gòu)體定義、消息封裝函數(shù)、消息處理函數(shù)。
(1)手勢消息結(jié)構(gòu)體
(2)消息封裝函數(shù)
如用戶定義了手勢GM_MOUSEMOVE,該手勢表示鼠標(biāo)指針的移動(dòng),對應(yīng)消息封裝函數(shù)如下:
(3)應(yīng)用層消息處理代碼
本文在介紹手勢識別技術(shù)的基礎(chǔ)上,提出并設(shè)計(jì)了了手勢識別應(yīng)用的一種通用框架,使基于手勢識別的軟件開發(fā)框架化,將手勢識別軟件的開發(fā)重點(diǎn)轉(zhuǎn)移到了應(yīng)用業(yè)務(wù)本身,降低了手勢識別軟件開發(fā)的難度。
由于手勢變化的復(fù)雜性,手勢識別技術(shù)的準(zhǔn)確性和實(shí)時(shí)性還是制約手勢識別應(yīng)用發(fā)展一個(gè)瓶頸。因此,今后將進(jìn)一步研究和關(guān)注手勢圖像識別算法,繼續(xù)改進(jìn)手勢識別的實(shí)時(shí)性和準(zhǔn)確性,提高框架的適應(yīng)性和魯棒性。
[1]朱繼玉,王西穎,王威信,等.基于結(jié)構(gòu)分析的手勢識別[J].計(jì)算機(jī)學(xué)報(bào),2006,29(12):2130.
[2]肖志勇,秦華標(biāo).基于視線跟蹤和手勢識別的人機(jī)交互[J].計(jì)算機(jī)工程,2009,35(15):198.
[3]任海兵,祝遠(yuǎn)新,徐光祐,等.連續(xù)動(dòng)態(tài)手勢的時(shí)空表觀建模及識別[J].計(jì)算機(jī)學(xué)報(bào),2000,23(8):824.
[4]NING H Z, TAN T N, WANG L, et al.People tracking based on motion model and motion constrains with automatic initialization[J].Pattern Recognition, 2004, 37(7):1423.
[5]王西穎,張習(xí)文,戴國忠.一種面向?qū)崟r(shí)交互的變形手勢跟蹤方法[J].軟件學(xué)報(bào),2007,18(10):2423.
[6]章毓晉.基于內(nèi)容的視覺信息檢索[M].北京:科學(xué)出版社,2003.
[7]湯勇,顧宏斌,周來.交互系統(tǒng)中實(shí)時(shí)手勢分割及指尖檢測方法[J].光電工程,2010,37(7):145.
[8]劉軍,田國會(huì),李榮寬,等.智能空間下基于手勢識別的人機(jī)交互[J].北京聯(lián)合大學(xué)學(xué)報(bào)(自然科學(xué)版),2010,26(6):14.