福建師范大學(xué)信息技術(shù)學(xué)院 陳 威
?
基于普通PC攝像頭的手勢識別系統(tǒng)
福建師范大學(xué)信息技術(shù)學(xué)院 陳 威
該文從PC端手勢識別應(yīng)用的需求出發(fā),對常用的手勢識別技術(shù)進行了分析。通過對普通家用低分辨率攝像頭的手勢識別進行設(shè)計,實現(xiàn)通過普通攝像頭識別人的手勢動作,轉(zhuǎn)化為特定指令,嵌入其他應(yīng)用軟件或游戲中,在不增加硬件成本下帶給用戶更多的體驗。
手勢識別 攝像頭 圖像捕捉 智能匹配
隨著信息時代的來臨,傳統(tǒng)的人機交互系統(tǒng)不足以滿足信息時代智能化發(fā)展的需要。諸多產(chǎn)品的多媒體應(yīng)用需求更多元、更方便、更智能的操作方式,基于攝像頭操作的應(yīng)用由此而生。目前手勢操作在手機上大量使用,但在PC上應(yīng)用極少(如微軟的Kinect[1]、SoundWave等)。其原因,或是因需要昂貴的專用攝像頭,或應(yīng)用范圍狹小、只能實現(xiàn)簡單的功能,或還處于實驗室階段、誤差大無法進行推廣。因此,使用普通攝像頭實現(xiàn)常規(guī)手勢操作的正式產(chǎn)品目前在市面上難以找到。
基于普通攝像頭的手勢識別技術(shù)的技術(shù)難點主要在于用戶環(huán)境的多變性,不同時間、位置引起的光照強弱、角度改變以及使用者的衣著變化,都會對圖像的識別、捕獲和追蹤產(chǎn)生影響。為解決此問題,本系統(tǒng)從使用者的具體應(yīng)用角度出發(fā),讓系統(tǒng)不僅能夠動態(tài)捕捉和分析用戶手勢,轉(zhuǎn)換為指令嵌入其他軟件,同時通過對時間、空間的分析,還能夠提取用戶歷史數(shù)據(jù)以自動匹配和優(yōu)化相關(guān)參數(shù),提高手勢識別的準(zhǔn)確率。
目前在PC端的手勢識別技術(shù)在常規(guī)電腦操作、辦公、繪圖等日常應(yīng)用上,和鼠標(biāo)、鍵盤相比,并不具有優(yōu)勢,手勢識別的真正需求主要集中于專業(yè)應(yīng)用和家庭游戲兩類。專業(yè)應(yīng)用的場合如展廳、會議室、醫(yī)院等,這類應(yīng)用因操作者不方便操作鼠標(biāo)鍵盤,又有對PPT、視頻、音樂播放、圖片等遠程操作的需求,比如手術(shù)過程中醫(yī)生需要臨時查看病人的X光圖片或其他資料,戴著消毒手套不方便操作,助手協(xié)助操作又往往配合度不佳,此時即可使用手勢進行圖片的瀏覽和縮放,找到自己需要的資料。
游戲應(yīng)用上,體感游戲目前方興未艾,但專業(yè)的動作捕捉設(shè)備又過于昂貴,同時支持這類設(shè)備的游戲軟件種類也比較少,如果能夠通過普通攝像頭分析用戶體感動作,轉(zhuǎn)換為游戲操作的指令,就可以將眾多操作并不復(fù)雜的射擊、跳躍、闖關(guān)類游戲,如憤怒的小鳥、切水果、雷神之錘等,轉(zhuǎn)換為體感游戲,增強用戶體驗。
目前市場上已有少量手勢識別的軟件應(yīng)用,同時也有大量文章對這類技術(shù)進行分析,但因為都是人手皮膚顏色識別,受周圍環(huán)境干擾較大,因此在實際應(yīng)用上誤差較大,無法投入商業(yè)應(yīng)用。同時,現(xiàn)有軟件能夠支持的操作指令也比較少,只能完成簡答的PPT翻頁、鼠標(biāo)移動等操作。
為提高手勢識別的成功率,本系統(tǒng)的視頻捕捉對象可以不再是裸手,而是讓使用者帶上雙色指套(遠距離操作則可以選擇手套或袖套。顏色材質(zhì)都沒有特殊要求,如今天用戶穿紅色衣服,則可以選擇食指帶藍色指套,大拇指帶黃色指套),即可進行操作。考慮到系統(tǒng)的具體需求,對專業(yè)應(yīng)用場合,一般操作較為簡單、應(yīng)用固定,單色的手套或裸手即可滿足使用要求;對游戲玩家,雖然游戲操作比較復(fù)雜,但為獲得更好的用戶體驗,他們并不會介意使用雙色的指套進行操作。因此,以上操作設(shè)計,可以滿足用戶的要求。
系統(tǒng)分為服務(wù)器端和客戶端,客戶端采用Dephi實現(xiàn),服務(wù)器端使用ASP.NET+SQL2008實現(xiàn)??蛻舳斯┯脩裘赓M下載,除了提供系統(tǒng)默認自帶了對PPT、媒體播放器、圖片瀏覽器、音樂播放器等一些常用軟件和憤怒的小鳥等幾款游戲的手勢操作支持外,還提供系統(tǒng)配置和在線操作等功能,其系統(tǒng)功能模塊見圖1。
圖1 多樂控客戶端
其中,手勢捕捉界面平時隱藏在后臺,在用戶初次使用或改變使用環(huán)境時可調(diào)出此界面進行手動輔助操作,提高系統(tǒng)識別率;傳輸服務(wù)用于設(shè)置和服務(wù)器端相關(guān)的信息;參數(shù)設(shè)置則用于對系統(tǒng)色素誤差、靈敏度、偏差糾正等參數(shù)的調(diào)整,以適應(yīng)用戶使用習(xí)慣;指令腳本方案的設(shè)計和保存供用戶針對各款軟件和游戲定制對應(yīng)操作的手勢指令集合(一個手勢可以對應(yīng)一個鼠標(biāo)或鍵盤的操作,也可以是一系列有序操作的集合);腳本方案可以在申請賬號后通過上傳管理發(fā)送到服務(wù)器端以私有、共享、銷售三種方式進行保存;下載和購買功能則提供用戶以獲取其他用戶上傳的指令腳本方案;在線升級服務(wù)可用于系統(tǒng)的免費升級。
服務(wù)器端用于發(fā)布最新版本軟件和免費手勢腳本;收集和分析用戶設(shè)計和上傳手勢腳本,選擇優(yōu)秀作品提供用戶下載或購買;商業(yè)廣告信息配置和發(fā)布等,其具體功能模塊見圖2。
圖2 多樂控服務(wù)器端
本系統(tǒng)的技術(shù)難點在客戶端的手勢識別和環(huán)境自適應(yīng)算法上?;谝曈X的手勢識別是由分析者根據(jù)觀察到的手勢動作流,對比其大腦中的手勢含義知識,轉(zhuǎn)換為特定的含義進行解析,以得到手勢的實際意義。
基于PC攝像頭的動態(tài)手勢識別與此類似,則是通過攝像頭每秒拍攝一定數(shù)量的連續(xù)圖片,然后從圖片中進行分析,提取手指指尖位置坐標(biāo)的變化特征規(guī)律,建立手指的動作模型,并和數(shù)據(jù)庫中建立的動作模型進行匹配,識別出動作含義,轉(zhuǎn)換為計算機指令,并發(fā)送給終端程序進行解析,并驅(qū)動程序執(zhí)行特定功能[2]。
根據(jù)對目前用戶需求的分析,本系統(tǒng)將追蹤到的手指數(shù)量定為兩個,其他手指的動作自動屏蔽。其原因是因為兩個手指的動作表現(xiàn)含義已經(jīng)可以滿足用戶調(diào)查中所提出的需求。默認配置下,系統(tǒng)追蹤的是使用者的食指和大拇指。食指的移動軌跡即為鼠標(biāo)的移動軌跡;水平方向食指和大拇指并攏為按下鼠標(biāo)左鍵;分開為放開鼠標(biāo)左鍵;垂直方向則對應(yīng)右鍵的操作。以上設(shè)置已經(jīng)可以滿足計算機的基本操作。此外,只伸出一根手指進行操作又可以引申出食指和拇指的兩套動作指令集和,這樣,指令的數(shù)量上已經(jīng)能夠滿足大部分的實際應(yīng)用要求。
系統(tǒng)目前識別的手勢動作除了上面描述過的默認配置下的常規(guī)動作外,提供用戶自定義指令腳本操作的主要指令集如表1所示。
表1 主要手勢動作特征表
采用雙指識別的另一個優(yōu)勢是攝像頭遠程識別時,無法精確最終單手手指運動軌跡,此時可通過追蹤雙手(或雙袖、雙腳、單腳單手)的運動軌跡,轉(zhuǎn)換為預(yù)設(shè)的拇指和食指的指令,以實現(xiàn)PC軟件操作和體感游戲體驗。
動態(tài)手勢的識別設(shè)計時間參數(shù)和空間參數(shù)的計算,目前此方面研究多采用隱馬爾科夫模型(HMM)和動態(tài)時間規(guī)整(DTW)為基礎(chǔ),并對其進行擴展和優(yōu)化。HMM[3]是從語音識別領(lǐng)域發(fā)展而來的,它是一種基于統(tǒng)計學(xué)習(xí)的模型,隨著手勢識別研究的深入,在此基礎(chǔ)上,又提出了基于HMM的語義網(wǎng)絡(luò)模型(SNM)、轉(zhuǎn)移可變隱馬爾科夫模型(VTHMM)、三層轉(zhuǎn)移可變隱馬爾科夫模型(HVT-HMM)等,此方法具有自動分割和分類的能力,具有尺度不變性,保持了概率論的框架優(yōu)點,比較適合進行連續(xù)的手勢識別。而DTW[4]是一種動態(tài)的模版匹配算法,目前這方面的研究多集中在手勢語音和詞匯匹配轉(zhuǎn)換方面,但對每一個范圍內(nèi)變量需要建立大量的參照模版進行比較。除了這兩個技術(shù)外,還有一些相關(guān)技術(shù)也被應(yīng)用于手勢識別方面,如人工神經(jīng)網(wǎng)絡(luò)等。
在實際應(yīng)用中,以上算法遇到的主要問題是復(fù)雜的背景對手勢軌跡提取造成嚴重的干擾、復(fù)雜的算法在普通家用PC機上產(chǎn)生嚴重時延,降低了分析的效率,類似顏色的物體導(dǎo)致手勢提取誤差增大。另外,隨著使用者、使用設(shè)備、使用時間和使用地點的改變,即使是同一個手勢在采集和識別上會產(chǎn)生不同結(jié)果。
為解決以上問題,本系統(tǒng)以HMM為基礎(chǔ),在軌跡追蹤方面,加入了預(yù)判算法,以加快系統(tǒng)的分析。
如圖3所示,某操作手勢從A點經(jīng)過B點向D滑動,時間TA提取圖片分析食指色塊位于B點,時間TB提取圖片分析食指色塊位于B點,時間Tc則預(yù)判食指可能位于坐標(biāo)C(XA+2*(XB-XA),YA+2*(YB-YA)),此時根據(jù)圖3(c)的軌跡,提取C點及C點周圍(XC-k,YC-k)、 (XC+k,YC-k)、(XC-k,YC+k)、(XC+k,YC+k)……共N個點(搜索精度值k和N可以在配置中進行調(diào)整),獲取這些點的色彩均值,通過對比B點的色彩,判斷此點是否為Tc時刻食指所在位置。如果不是,則再以B為中心,根據(jù)圖3(d)的軌跡依次擴大搜索半徑,以矩形方式采用上述算法進行搜索。
圖3 軌跡預(yù)判
在搜索過程中,如果目標(biāo)對象偶爾漂移,無法通過上述算法檢測到,則在算法上,根據(jù)運動軌跡,系統(tǒng)運用數(shù)據(jù)對比法、剩余誤差觀察法、不同公式計算標(biāo)準(zhǔn)誤差比較法和計算數(shù)據(jù)比較法處理誤差,自動補充丟失坐標(biāo)。如連續(xù)多幀無法檢測,則系統(tǒng)調(diào)整回手勢的檢測初始狀態(tài),并對連續(xù)的整幅圖像進行對比檢測,判斷手指可能位置。
最終,系統(tǒng)能夠得到以時間順序排列的指尖軌跡坐標(biāo),并對軌跡進行平滑糾正,糾正后的軌跡根據(jù)用戶當(dāng)前應(yīng)用,在配套的腳本方案中進行軌跡匹配,確定手勢指令,并發(fā)送對應(yīng)控制信號給應(yīng)用,完成一個控制過程,同時系統(tǒng)拋棄無關(guān)動作圖像,回到輸入圖像跟蹤手勢位置的指令識別初始狀態(tài),繼續(xù)進行下一個指令的分析。
在客戶環(huán)境的自適應(yīng)算法方面,考慮到使用者大部分情況下都是在某個特定時間段進行某類特定操作,比如某游戲玩家,一般會在每天晚上21時至23時以及周日白天9時至12時在家里玩游戲,此時環(huán)境背景相對固定,操作內(nèi)容變化也不大。因此系統(tǒng)會根據(jù)用戶計算機的IP地址,對用戶使用地點進行分析,每個IP地址建立獨立的一套環(huán)境檔案,并根據(jù)日期和時間的編號對光照度進行預(yù)設(shè),在用戶開啟系統(tǒng)時,給出提示并讓用戶選擇確認其使用環(huán)境,以提高用戶手勢識別的成功率,降低外部環(huán)境變化產(chǎn)生的干擾。
和目前類似軟件相比,本系統(tǒng)創(chuàng)意新穎,在不增加用戶成本情況下,使用普通攝像頭實現(xiàn)各類應(yīng)用軟件、游戲的操作,提升了使用者的人機交流感受,實現(xiàn)更智能化的操控體驗。本系統(tǒng)所采用的算法,通過對捕捉到的圖像數(shù)據(jù)進行對比、誤差糾正、偏移量預(yù)估等處理,并通過具有時間、空間智能匹配功能,使得系統(tǒng)分析準(zhǔn)確、高效、快速,提高了被操作應(yīng)用程序響應(yīng)的流暢度, 帶給使用者生動、真實的操作感。
[1] Greg Borenstein.格物智知:3D圖形與人機交互技術(shù)應(yīng)用[M]. 北京:人民郵電出版社,2013.
[2] MitraS,AcharyaT.Gesture recognition A survey[J]. IEEE Transactions on Systems, Man and Cybernetics, 2007, 37(3):311-324.
[3] Hyeon-KyuLee, Jin H.Kim. An HMM-based threshold model approach for gesture recognition[J]. IEEE Transations on Pattern Analysis and Machine Intelligence,1999,21(10): 961-973.
[4] 任海兵,祝遠新,徐光祐.復(fù)雜背景下的手勢分割與識別[J].自動化學(xué)報,2000,28(2):78-85.