



摘 要: 隨著計算機的廣泛發展,鍵盤、鼠標等傳統的人機交互方式很難滿足用戶自然、便捷的交互需求。研究手勢建模、人手跟蹤和手勢交互系統的應用成為熱點趨勢。提出了一種簡化的2D人手模型,該模型將人手建模為掌心點和5根手指,同時設計了一種基于粒子群優化(PSO)算法的人手跟蹤方法,通過建模人手的生理和運動學約束關系,實現了基于2D/3D人手模型的PSO人手跟蹤,該手勢交互系統框架更具適用性和擴展性,融合了語義和反饋信息,提高了人手跟蹤的魯棒性和手勢識別的準確度。
關鍵詞: 人手跟蹤; 人機交互; 手勢識別; 粒子群優化; 計算機視覺
中圖分類號: TN911.73?34; TM417 文獻標識碼: A 文章編號: 1004?373X(2016)17?0026?04
手勢是人們日常生活中最常用的交流方式之一,具有很強的表意功能,與鍵盤、鼠標等傳統交互設備相比,具有自然、直觀、友好、便捷等特點,更符合人們的交流習慣[1]。但是,由于手勢本身具有多樣性、多義性、多變性和時空差異性等特點,背景環境復雜多變、不可預知,加之人手自由度高而靈活,使得基于視覺的手勢交互成為一個極富挑戰性的多學科交叉的研究課題?;谝曈X的手勢交互技術和方法的研究,不僅在人工智能、模式識別、機器學習等學科中具有重要的理論意義,在智能化的學習、工作以及生活中也具有非常廣泛的應用前景[2]?;谝曈X的手勢交互技術是實現新一代人機交互不可缺少的一項關鍵技術。
1 二維人手跟蹤方法
1.1 2D人手建模
3D人手模型雖然能夠更加完備地建模人手參數空間,且有利于恢復3D人手信息,但由于3D人手模型維度高、參數空間復雜,且人手模型參數的渲染過程及模型投影過程都很復雜,故很難達到實時。而簡化的2D人手模型,自由度相對較低,參數空間小,且省略了復雜的渲染、投影過程,在執行時間和效率上更具優勢,且2D人手模型在一般情況下能夠滿足應用需要,達到實時性要求,所以更具有實際應用性。
在二維空間中對人手進行建模,該人手模型由一個手掌和5根手指組成,如圖1(a)所示,其中每根手指用其英文單詞的大寫首字母表示,則5根手指的集合可以表示為[F=]{T,I,M,R,L}。將整個人手表示成32維的向量[S=c(x,y);P,]其中[c(x,y)]是手掌矩形框的中心點坐標,用來表示人手的全局運動;[P=(kif,dif)f∈F,i∈{1,2,3}]是5根手指的參數集合,每根手指用3個直線段[(kif,dif)]表示,[kif]和[dif]分別表示手指[f]中第[i]段指節的斜率和截距,如圖1(b)所示。目前,嘗試使用手指間的夾角作為參數,這樣幾乎可將人手參數空間減半,還可避免斜率為無窮時的復雜計算[3]。
參考3D人手骨架模型的約束關系,同樣為2D人手模型引入約束[4]。假設已知各個手指指節的長度和寬度,每個手指即可用2個角度表示,一個角度表示根指節與圖像平面的夾角,另一個角度表示中指節與圖像平面的夾角,根據根指節、中指節夾角與中指節、端指節夾角之間的線性約束關系,即可由中指節與圖像平面夾角推導得到端指節與圖像平面的夾角。
1.2 基于PSO的二維人手跟蹤
1.2.1 預處理
采用從RGB?D傳感器獲得的彩色圖[I]和與之對應的深度圖[D]作為原始輸入數據。其中,[I]和[D]都是640×480的矩陣,且[D]中的每個深度值對應彩色圖[I]中的一個像素值[5]。對深度圖[D]進行閾值操作,得到目標人手區域,并進行平滑、去噪,得到新產生的深度圖[Od;]然后,對彩色圖[I]進行預處理,獲得膚色圖[Os;]將[Os]和[Od]進行融合并二值化作為評價假設人手參數的真實觀測數據[O。]
1.2.2 搜索空間
每根手指用3條直線段[(kif,dif)]表示,其中[kif]和[dif]分別表示手指[f]中第[i]段指節的斜率和截距,再加上表示人手全局運動的手掌中心點[c(x,y)],則整個人手可表示為32維向量[S=c(x,y);P]的形式,[P=(kif,dif)f∈F,i∈1,2,3]是5根手指的參數集合。人手參數空間即構成PSO的優化搜索空間,且參數的取值范圍服從線性約束??紤]到手指指節線段之間的斜率線性約束關系,在計算過程中可以化簡降維,從而減少計算量,提高PSO優化搜索的時間性能[6]。
1.2.3 目標函數
為了度量人手假設參數[h]與真實觀測幀[O]之間的差異,從而尋找出與真實觀測幀[O]最為接近的人手參數[h,]需要建立一個適應度評測函數[E(?)],即PSO優化求解中的目標函數。將目標函數[E(?)]定義為:
[E(O,h,C)=P(h)+λk?D(O,h,C)] (1)
式中:[λk]是歸一化因子;[C]表示攝像機的校準參數;[P(?)]用于懲罰無效的人手假設;[D(?)]用于度量真實觀測幀[O]與人手假設[h]之間的不一致性。在本文中只考慮[D(?),]首先將假設人手參數[h]模型化,然后以表示手指指節的直線段為中軸線,以固定寬度為指長,通過渲染生成人手剪影,最后將其與真實觀測得到的人手目標區域進行異或操作,從而得到兩者之間的差值,并使其最小化。
1.2.4 PSO優化
假設粒子群的粒子個數為[N,]迭代次數為[M。]在原始PSO方法中,隨機產生[N]個粒子,或是采用搜索空間的均勻分布作為粒子群的初始位置,其初始速度均為[0;]利用時序關系約束并減小有效搜索空間,即將上一幀的人手跟蹤結果及其隨機擾動產生的鄰近位置作為當前幀粒子群的初始位置信息[7]。每一幀真實觀測[O]對應一個優化求解問題。在人手參數搜索空間[S]中,通過最小化PSO方法的目標函數[E(?)]進行求解,并將最優人手假設[hmax]作為當前觀測幀的輸出,其中:
[hmax=arg minhE(O,h,C)] (2)
對于視頻序列中的每一幀[O,]在第[k+1]次迭代中,第[i]個粒子的速度更新公式為:
[vk+1,i=ω(vk,i+c1r1(Pk,i-hk,i)+c2r2(Gk-hk,i))] (3)
式中:[ω]為收縮因子;[c1]和[c2]為加速系數(又稱為學習因子),分別調節向個體最優粒子和全局最優粒子方向運動的最大步長;[r1]和[r2]是服從[0,1]均勻分布的隨機數;[hk.i]表示第[k]次迭代時第[i]個粒子的當前位置,也即人手參數空間中的某個點(對應一個人手假設);[vk,i]表示第[k]次迭代時第[i]個粒子的速度矢量,且每一維度[d]都限定在某個速度變化范圍[-vdmax,vdmax]之內;[Pk,i]表示至目前的前[k]次迭代中第[i]個粒子的自身局部最優位置;[Gk]表示至目前的前[k]次迭代中所有粒子的全局最優位置。粒子當前位置的更新公式為:
[hk+1,i=hk,i+vk+1,i] (4)
即粒子的當前位置是粒子在上次迭代中的位置矢量與當前粒子速度矢量之和。第[i]個粒子的自身局部最優位置[Pk+1,i]的更新公式為:
[Pk+1,i=hk+1,i,F(hk+1,i) 所有粒子的全局最優位置[Gk+1]的更新公式為: [Gk+1=Pk+1,l,l=arg mini(F(Pk+1,i))] (6) 在經過[M]次迭代后,所有粒子的全局最優位置[Gk(k=M)]就是當前觀測幀[O]的最優人手假設[hmax。]將[hmax]及其[N-1]個隨機擾動產生的鄰近位置作為下一觀測幀對應粒子群的初始位置信息[h0,i,]從而進行下一幀的PSO優化人手估計。 2 三維人手跟蹤方法 2.1 基于PSO的三維人手跟蹤 2.1.1 搜索空間 人手模型參數空間即構成搜索空間。根據27個自由度的人手骨架模型,加之各手指運動角度范圍的靜態約束和手指運動指節之間的動態約束,人手模型參數向量從27維降至15維:其中,拇指自由度由5降為2,中指自由度由4降為1,其他三根手指自由度均由4降為2,人手的全局位置信息表示有3個自由度,人手的旋轉角度表示有3個自由度[8]。所以,搜索空間是15維的模型參數空間,每個參數服從線性約束關系。 2.1.2 目標函數 在得到3D人手模型的參數表示后,即對模型參數進行評估,以獲得與真實觀測最為匹配的人手模型參數。已知人手假設參數[h]和攝像機校準參數[C,]通過渲染技術得到[h]的渲染深度圖[rd(h,C),]并將其與對應觀測幀的深度圖[Od]匹配,得到二值匹配深度圖[rm(h,C)。]也就是說,當渲染深度圖[rd]與觀測深度圖[Od]相同像素位置的深度值之差小于預定義深度閾值[dm]或觀測深度圖[Od]相應位置的深度丟失(深度值為零)時,[rm]相應像素位置的深度值設為1,否則設為0。然后,將[rm]與真實觀測的膚色圖[Os]進行比較。 定義一個目標函數[E(h,O)]用來度量當前觀測幀對應的膚色和深度圖[O]與給定假設人手配置[h]渲染生成的二值匹配深度圖[rm]之間的差異,如式(7)所示: [E(h,O)=D(O,h,C)+λk?kc(h)] (7) 式中:[λk=2]是歸一化因子;函數[D(?)]被定義為: [D(O,h,C)=min(Od-rd,dM)(Os∨rm)+τ+λ1-2(Os∧rm)(Os∧rm)+(Os∨rm)] (8) 式中:第一項表示建模真實觀測[O]與人手假設配置[h]之間增強深度差異的絕對值;第二項表示建模假設人手配置與真實觀測之間的膚色像素差異;[λ]是歸一化常數,需在整幅特征圖像上求和。 式(7)中,函數[kc]表示對運動學和生理學上難以實現的人手配置的懲罰項: [kc(h)=p∈Q-min(φ(p,h),0)] (9) 式中:[Q]表示拇指除外的三個相鄰手指對;[φ]表示給定假設人手配置[h]中手指之間外伸?內收的角度差;取常量[λ=20,][λk=10,]預定義深度閾值[dm=1]cm,[dM=]4 cm。 2.1.3 優化處理 (1) PCA主要步驟 假設給定[N]個[D]維的樣本[h,]由于存在噪音和數據冗余,它們并不分布在整個[RD]空間,而只分布在[RD]的某個子空間中。首先,通過子空間方法尋找符合某種準則的[d]個基向量[wi∈RD,i=1,2,…,d;]然后,將高維數據投影到這[d]個基向量確定的子空間中,即[zi=Whi]且[W=(w1,w2,…,wd)T]。經變換[zi]下降到[d]維,在保持絕大部分原始高維數據信息的同時,達到了降維的目的,具體步驟如下所述: (1) 計算[h=(h1,h2,…,hN)T]的協方差矩陣,計算公式如下: [S=i=1N(hi-μ)(hi-μ)T, μ=1Ni=1Nhi] (10) (2) 對矩陣[S]進行特征值分解:[SW=WΛ,]其中[W]和[Λ]如式(11)所示,將特征值[λ]按從大到小降序排列: [W=(w1,w2,…,wd)T,Λ=diag(λ1,λ2,…,λD)] (11) (3) 使用前[d]個特征值作為子空間的基底,設為矩陣[L=(l1,l2,…,ld)T,][L]中的單位基向量之間彼此正交; (4) 原始數據[h=(h1,h2,…,hN)T]通過線性轉換[Z=Lh]得到新的數據表示[Z,]此時每個樣本維度為[d,]從而達到了降維的目的。 通常用[αi=λijλj]表示主成分[zi]的方差貢獻率,稱[i=1Kαi]為前[K]個主成分的方差累計貢獻率。因此,選擇主成分個數的方法是增大[K]值,直到近似數據與真實數據的誤差平方在可允許誤差范圍內,通常取[K]使得其方差累計貢獻率達到98%。 2.2 實 驗 在實驗室光照條件下,使用微軟的Kinect傳感器采集無標記人手運動的彩色圖像序列和與之對應的深度圖像序列作為實驗室數據,圖像大小為640×480。實驗是在CPU為Interl CoreTM 2 Quad Q9550,內存為4 GB的普通PC機上完成的。當粒子個數[N=60,]最大迭代次數[M=40]時,人手跟蹤結果及其性能達到最優。實驗結果表明,基于3D人手骨架模型的PSO人手跟蹤方法在復雜背景下能獲得較精確、魯棒性較好的人手跟蹤結果。 3 基于視覺的手勢交互應用 3.1 手勢交互系統框架 在現有手勢交互系統的基礎上,構建了一種具有可擴展性的基于視覺的手勢交互系統框架,如圖2所示,以適應不同的應用環境和操作需求。同時,由于基于視覺的手勢識別方法具有參數獲取不夠準確、識別率不夠高等特點,本框架通過引入多通道反饋機制,以便實時地在線修正參數誤差以提高識別率,從而提供更好的用戶體驗。 3.1.1 模塊劃分 基于視覺的手勢交互系統框架包括上、下兩層:頂層交互界面反饋層和底層數據處理層。其中,底層數據處理層又可分為三大模塊:感知模塊,手勢識別模塊和交互模塊。其中,感知模塊由[N]個攝像頭組成,負責交互手勢動作的圖像序列采集工作;手勢識別模塊將手勢識別過程劃分為數據預處理、人手定位、人手跟蹤、連續手勢分割、手勢識別五個階段;交互模塊的功能是根據手勢識別結果語義信息,在預先定義好的手勢任務邏輯和底層操作庫的指導下,給出系統響應或提示。 3.1.2 反饋機制 在手勢交互系統框架中加入顯式和隱式兩層反饋機制,在保證系統時效性的基礎上,又能及時反饋系統信息,從而讓操作用戶擁有良好的操作體驗和真實的沉浸感。為給用戶提供良好的操作體驗和真實沉浸感,本文針對視覺數據流的3個不同處理階段,采用3種不同的界面反饋形式:手勢自反饋、識別結果反饋、系統響應反饋。 基于語義反饋的手勢識別系統,如圖3所示。首先,在預定義交互手勢基元庫的指導下,根據預定義手勢組合規則,對連續手勢分割的結果——手勢基元序列進行分析,輸出識別結果。當結果不滿意時,則根據交互手勢語義信息,對前面各模塊的參數進行調整:如調整圖像序列采集所使用的Camera個數及其所占權重,調整連續手勢的分割規則權值,以最大化可能的分割決策等。在各模塊參數得到更新后,重新進行手勢識別過程,如此循環,直到得到滿意的識別結果為止。 3.2 基于視覺手勢的影像交互系統 3.2.1 系統流程 以交互影像系統為應用背景,以基于視覺的手勢交互技術為支撐,實現了基于視覺手勢的影像交互系統,系統的框架和操作流程如圖4所示,分為輸入、交互、輸出三個階段。 3.2.2 系統演示 (1) 手勢控制場景圖片 在手勢控制場景圖片實驗中,系統控制命令由右手手勢表達。其中,五指并攏表示標定初始幀,表示手勢交互的開始;使用手指之間張角的大小控制虛擬場景圖片(本實驗采用虛擬圓球)的縮放尺度,即圓球隨著手指之間張角變大/變小進行相應的放大/縮小;使用手勢與圖像平面之間的夾角控制圓球的旋轉角度,從而讓圓球球心與中指一直保持在同一條直線上;握拳手勢表示退出交互系統。手勢控制場景圖片的演示截圖如圖5所示。 (2) 手勢控制影像交互 在手勢控制影像交互實驗中,同樣用右手手勢控制系統命令。首先,按照舞臺劇或情景劇的模式設計并拍攝各節視頻段,以及中間過程需要的道具圖片,并定義手勢與系統命令的映射關系。在沒有用戶參與交互的情況下,各段視頻按照預先設定的順序播放,當播放至選擇階段,系統彈出提示界面,并定位在當前幀,當用戶根據提示信息和自己的意愿進行選擇,做出相應的動作和手勢。手勢捕捉系統實時對當前手勢進行預處理、分析和識別,當手勢被識別后,直接調用或觸發系統命令,實時反饋或響應,獲得預期的視覺效果或視頻播放序列。 4 結 論 人手建模、手勢跟蹤以及手勢交互系統框架在基于手勢識別的交互應用中是非常重要的三個方面。本文首先提出了一種簡化的2D人手模型,并通過添加各個手指之間以及手指指節之間的運動約束,從而將整個人手表示為12維向量的形式;然后提出了一種基于粒子群優化(PSO)的人手跟蹤方法,并分別實現了基于2D簡化人手模型和3D骨架模型的PSO人手跟蹤方法,采用PSO方法在人手模型參數空間尋找與真實觀測最為匹配的假設人手配置作為跟蹤結果輸出;最終,完成了一種具有可擴展性的融合語義和反饋信息的手勢交互系統框架,實現了一種基于視覺手勢的影像交互系統。 參考文獻 [1] REKIMOTO J. GestureWrist and GesturePad: unobtrusive wea?rable interaction devices [C]// Proceedings of the Fifth IEEE International Symposium on Wearable Computers. Zurich: IEEE, 2001: 21?27. [2] 武匯岳,張鳳軍,劉玉進,等.UIDT:基于視覺的手勢界面關鍵技術研究[J].計算機學報,2009(10):2030?2041. [3] 李清水,方慮剛,沈模衛.手勢識別技術及其在人機交互中的應用[J].人類工效學,2002,8(1):27?33. [4] 任海兵,祝遠新,徐光佑,等.基于視覺手勢識別的研究綜述[J].電子學報,2000,28(2):118?121. [5] 王西穎,張習文,戴國忠.一種面向實時交互的變形手勢跟蹤方法[J].軟件學報,2007,18(10):2423?2433. [6] 陳守滿,朱偉,王慶春.圖片操作的手勢動態識別系統[J].現代電子技術,2012,35(22):4?6. [7] ZHOU H, LIN D J, HUANG T S. Static hand gesture recognition based on local orientation histogram feature distribution model [C]// Proceedings of 2004 IEEE Conference on Computer Vision and Pattern Recognition Workshop. Washington, D. C.: IEEE, 2004: 161?167. [8] 朱衛華,劉國穩,肖沛,等.基于SoC的數據采集與交互系統設計[J].現代電子技術,2014,37(2):127?130.