專利名稱:一種基于計算機視覺的實時手勢交互方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖像分析與識別技術(shù)領(lǐng)域,特別是基于手勢的交互方法。
背景技術(shù):
近年來,隨著軟硬件技術(shù)的飛速發(fā)展,社會的信息化程度獲得了前所未有的提高,計算機已逐漸在人們生活的方方面面得到了廣泛應(yīng)用,人機交互方式因而成為一個越來越重要的問題。從最開始的文本交互方式到后來以鼠標(biāo)鍵盤為主要工具的圖形用戶界面,人機交互一直在朝著友好易用的方向不斷發(fā)展。 傳統(tǒng)的交互方式盡管有著很多優(yōu)點,但依然不夠自然,并且限制了人機交互的速度,對于低文化人群和殘疾人群更是如此?;谟嬎銠C視覺的手勢交互技術(shù)具有友好、方便、簡潔直觀等特點,是傳統(tǒng)人機交互方式的一種自然擴充,在計算機游戲控制、智能家電控制、虛擬現(xiàn)實、智能輪椅控制等方面有著廣泛的應(yīng)用,因而有著重要的實用價值。
發(fā)明內(nèi)容
本發(fā)明目的是一種基于計算機視覺的實時手勢交互方法,通過利用圖像分析技術(shù)對用戶手勢動作所包含的語義信息進行理解,達(dá)到與計算機進行自然交互的目的,是對鍵盤鼠標(biāo)所代表的傳統(tǒng)交互方式的擴展。 為了實現(xiàn)上述目的,本發(fā)明提出的技術(shù)方案是一種基于計算機視覺的實時手勢交互方法,其步驟包括 步驟S1 :通過統(tǒng)計方法學(xué)習(xí)人手目標(biāo)樣本,得到級聯(lián)結(jié)構(gòu)的分類器;
步驟S2 :通過統(tǒng)計方法學(xué)習(xí)預(yù)定義手勢的樣本,得到各手勢的隱馬爾科夫模型;
步驟S3 :通過圖像輸入設(shè)備實時采集視頻圖像,如果手勢當(dāng)前已經(jīng)開始,則執(zhí)行步驟S8 ;否則執(zhí)行步驟S4 ; 步驟S4 :利用級聯(lián)結(jié)構(gòu)的分類器在輸入的視頻圖像上進行人手檢測,如果檢測成功,則執(zhí)行步驟S5 ;如果檢測不成功,則執(zhí)行步驟S3 ; 步驟S5 :利用人手在圖像中的位置,判斷手勢是否開始,如果手勢開始,執(zhí)行步驟S6,如果沒開始手勢,執(zhí)行步驟S3 ; 步驟S6 :根據(jù)人手在圖像中的位置初始化人手輪廓跟蹤算法,得到初始人手輪廓; 步驟S7 :根據(jù)初始人手輪廓建立人手的膚色模型,返回步驟S3 ; 步驟S8 :利用輪廓跟蹤算法跟蹤視頻圖像中人手輪廓,得到視頻圖像中的人手輪
廓狀態(tài)及手勢軌跡; 步驟S9 :根據(jù)人手輪廓狀態(tài)及手勢軌跡,判斷手勢是否終止,如果有握手動作發(fā)生則手勢終止,則執(zhí)行步驟SIO,如果沒有握手動作發(fā)生但跟蹤時間超過預(yù)先選定的時間閾值,則認(rèn)為手勢終止,執(zhí)行步驟SIO ;如果沒有握手動作發(fā)生且跟蹤時間小于預(yù)先選定的時間閾值,則手勢沒有終止,執(zhí)行步驟S3 ;
步驟S10 :利用隱馬爾科夫模型,對手勢軌跡進行識別,得到手勢的識別結(jié)果;
步驟Sll :將手勢識別結(jié)果用于具體應(yīng)用。 本發(fā)明的有益效果通過用戶的手勢信息與計算機進行交互,就是以用戶的手部運動信息作為傳統(tǒng)的鍵盤鼠標(biāo)交互方式的補充,來豐富人機交互的方式。它僅通過攝像頭實時獲取含有用戶手部的圖像,在計算機中進行手部運動信息的分析,并將分析結(jié)果轉(zhuǎn)化為應(yīng)用程序的控制指令,實現(xiàn)與計算機的自然交互,有效擴展了傳統(tǒng)的人機交互方式。本發(fā)明包括人手檢測、跟蹤與手勢識別技術(shù)以及一個綜合利用三種技術(shù)的完整系統(tǒng),三種技術(shù)及其綜合應(yīng)用系統(tǒng)都能在自然背景下達(dá)到實時穩(wěn)定的效果。人手檢測創(chuàng)造性的將方向梯度直方圖(HOG)特征和Adaboost算法相結(jié)合,可以準(zhǔn)確獲取圖像中人手的位置,基于輪廓的人手跟蹤算法創(chuàng)造性的綜合了條件概率密度傳播(Condensation)和啟發(fā)式掃描技術(shù),可以準(zhǔn)確得到每一幀圖像里人手的狀態(tài),包括位置、大小、旋轉(zhuǎn)角度以及各手指的長度和角度,手勢識別能分析人手運動軌跡包含的語義信息。人手檢測和跟蹤均可以分別單獨作為一種方式應(yīng)用于人機交互,而三種技術(shù)相結(jié)合可以構(gòu)造一個完全自動的手勢交互系統(tǒng),能夠表達(dá)更為豐富的語義信息。隨著軟硬件技術(shù)的快速發(fā)展,計算機視覺技術(shù)逐漸成熟,攝像頭也已經(jīng)成為計算機的常用配置,應(yīng)用視覺技術(shù)進行自然的人機交互已經(jīng)成為可能,本發(fā)明可以廣泛應(yīng)用于計算機游戲控制、智能家電控制、虛擬現(xiàn)實、智能輪椅控制、廣泛應(yīng)用于數(shù)字娛樂、數(shù)字教育等方面。
圖1為本發(fā)明實施例基于手勢的交互方法流程圖。 圖2為采用本發(fā)明實施例HOG特征結(jié)構(gòu)。 圖3為本發(fā)明實施例人手分類器級聯(lián)結(jié)構(gòu)。 圖4為本發(fā)明實施例人手輪廓模板。 圖5a和圖5b為本發(fā)明實施例條件概率密度傳播算法所用度量模型。 圖6a和圖6b為本發(fā)明實施例構(gòu)造膚色模型所用前景及背景模板。
具體實施例方式
下面對本發(fā)明加以詳細(xì)說明,應(yīng)指出的是,所描述的實施例旨在便于對本發(fā)明的理解,而對其不起任何限定作用。 如圖1所示,示意本發(fā)明集成了人手檢測、跟蹤和手勢識別的實時手勢交互方法
流程圖,它提供了應(yīng)用本發(fā)明所闡述的人手檢測、跟蹤和手勢識別技術(shù)進行人機交互的一
種可能方式。需要注意的是,本發(fā)明所闡述的人手檢測、人手跟蹤方法均可單獨作為一種人
機交互方式應(yīng)用于游戲控制、家電控制等方面。 本發(fā)明實現(xiàn)方法需要的硬件為計算機及圖像采集設(shè)備。 所述的人手檢測是指通過視覺算法在圖像中自動確定包圍人手的一個較小矩形框;所述人手跟蹤是指在視頻序列中計算出每幀的人手輪廓狀態(tài),包括位置、旋轉(zhuǎn)角、放縮量以及各個手指的長度和角度;所述手勢識別是指對用戶完成某個預(yù)定義手勢的軌跡進行分類,確定用戶完成的是哪個手勢。手勢是否開始的判斷依據(jù)是在連續(xù)20幀的人手檢測結(jié)果里,有超過12幀檢測到人手處于同一個位置。
5
關(guān)鍵技術(shù)的實現(xiàn)細(xì)節(jié) —、本發(fā)明所述的人手檢測是采用方向梯度直方圖(HOG)特征,通過基于 Adaboost的統(tǒng)計學(xué)習(xí)方法來實現(xiàn)的。 HOG特征主要是將圖像梯度在各個不同方向上進行投影,然后對某個局部區(qū)域的
方向梯度投影加以統(tǒng)計分析,對輪廓具有一定規(guī)律的物體有著很好的描述能力。
—個HOG特征定義如下,假設(shè)用C(x。,y。,w。,h。)表示圖像中某個方格(cell)的位 置以及大小,其中(x。,y。)指方格(cell)左上角的圖像坐標(biāo),w。和h。指方格(cell)的寬度 和高度,將方格(cell)C(x。, yc, wc, h》所屬的一個圖像塊(block)記為B(xb, yb, wb, hb),其 中(xb,yb)指圖像塊(block)左上角的圖像坐標(biāo),Wb和hb指圖像塊(block)的寬度和高度。 將
<formula>formula see original document page 6</formula><formula>formula see original document page 6</formula>定義梯度(Gx, Gy)在角度區(qū)間bink的投影u/k(x, y)如下 ^ (x,力=<j
<formula>formula see original document page 6</formula>
利用這些式子,定義HOG特征如下,其中e代表一個很小的正數(shù),防止分母為O的 情況,圖2示意了幾類常見的HOG特征。
為加速特征的計算,定義如下積分圖
<formula>formula see original document page 6</formula>IGk(x, y)表示一個積分圖像的定義式,IG(x, y)表示另一個積分圖像的定義式' 利用積分圖,可以簡化HOG特征的分子和分母如下
<formula>formula see original document page 6</formula>
圖像塊(Block)、方格(cell)的不同位置和尺寸以及不同的投影角度范圍,對應(yīng) 著不同的方向梯度直方圖(HOG)特征,對于一幅訓(xùn)練圖像,如果不對這些參數(shù)加以限制,那 么可用的特征數(shù)目將是非常巨大的,這其中的很多圖像塊(block)相互間有著較大面積的 重疊,為了減少特征數(shù)目從而降低冗余,需要對特征的參數(shù)加以限制。我們給出如下一些約束來減少特征的冗余,首先,圖像塊(block)的最小寬度和高度分別為wmin = 8和hmin = 8,
其長寬比例限制為i : 2、i : l和2 : i。其次,在對樣本圖像進行掃描時,圖像塊(block)
移動的步長為較短邊的0.5倍,圖像塊(block),尺寸的放縮因子sc二 1.2。另外將角度區(qū) 間數(shù)目取為N = 9。根據(jù)人手的平均長寬比例,將訓(xùn)練圖像大小取為48X56。
用于學(xué)習(xí)人手模式的統(tǒng)計學(xué)習(xí)方法是Adaboost算法。 Adaboost算法是在人臉檢測中應(yīng)用極其廣泛的一種成熟算法,它通過調(diào)用弱學(xué)習(xí) 器不斷學(xué)習(xí)訓(xùn)練樣本中難學(xué)習(xí)的樣本,從而達(dá)到較高的泛化精度。Adaboost算法的主要過 程是首先給定訓(xùn)練樣本集合,然后對該樣本集合進行循環(huán)操作,每次循環(huán)用所選特征訓(xùn)練 得到一個弱分類器,然后計算該假設(shè)的錯誤率,根據(jù)該錯誤率改變每個例子的權(quán)重進入下 一個循環(huán),若干個弱分類級聯(lián)組成一個強分類器。最終的分類器由一系列相似的強分類器 級聯(lián)而成,分類器的分類能力隨著級聯(lián)結(jié)構(gòu)中強分類器的數(shù)目增加而增加,如圖3所示其
中1、2......M為級聯(lián)起來的各個強分類器,T表示候選區(qū)域被某個強分類器接受(即認(rèn)為
是人手區(qū)域),F(xiàn)表示候選區(qū)域被強分類器拒絕,是被排除了的候選區(qū)域,即認(rèn)為是非人手 區(qū)域。只有候選區(qū)域被所有強分類器接受才認(rèn)為它是真正的人手區(qū)域,只要某一個強分類 器拒絕,即認(rèn)為它是非人手區(qū)域。 學(xué)習(xí)人手目標(biāo)樣本的步驟包括步驟Sla:利用視頻圖像采集大量的人手樣本和
非人手樣本,并進行歸一化處理,獲得歸一化樣本;步驟Slb :取歸一化樣本的方向梯度直
方圖(HOG)特征作為訓(xùn)練特征,采用Adaboost算法訓(xùn)練得到級聯(lián)結(jié)構(gòu)的分類器。 二、本發(fā)明所述的手勢識別通過隱馬爾科夫模型實現(xiàn)。 所述手勢樣本學(xué)習(xí)的步驟包括 步驟21 :根據(jù)應(yīng)用需要預(yù)定義動態(tài)手勢集合; 步驟22 :通過人手輪廓跟蹤,采集大量預(yù)定義動態(tài)手勢樣本; 步驟23 :去除預(yù)定義動態(tài)手勢樣本中的異常樣本; 步驟25 :對預(yù)定義動態(tài)手勢樣本軌跡進行預(yù)處理,去掉密集點,得到預(yù)處理后的 樣本軌跡; 步驟26 :取預(yù)處理后的樣本軌跡的方向編碼作為特征,采用Baum-Welch算法訓(xùn)練 得到每類手勢的隱馬爾科夫模型。 步驟23所述異常樣本包括跟蹤實效時采集到的樣本,以及同預(yù)定義手勢相差過 大的樣本。 步驟25所述預(yù)處理過程如下依次計算軌跡中相鄰兩個點之間的距離,若小于某 個經(jīng)驗閾值,則去掉后面那個點,多次重復(fù)這個過程直至不再有任何點被去掉。這里閾值根 據(jù)所有相鄰點間的平均距離設(shè)定,比如可以取為平均距離的1/4。 步驟26所述方向編碼特征是指,首先將
等分為M個區(qū)間,并按逆時針順 序給每個區(qū)間一個序號,然后計算手勢軌跡中每對相鄰點連線的傾斜角,將這個角度映射 到前述M個角度區(qū)間對應(yīng)的編號,這樣就將手勢軌跡變換為一個編號序列,即方向編碼特 征。 本發(fā)明所述手勢識別的步驟包括 步驟101 :對從輪廓跟蹤獲得的手勢軌跡進行預(yù)處理去除密集點,獲得預(yù)處理軌 跡;
步驟102 :對預(yù)處理后的軌跡提取方向編碼特征,對特征歸一化; 步驟103 :采用前向遞推算法計算步驟102得到的特征對應(yīng)于步驟2得到的各類
手勢模型的概率,取概率最大者為識別結(jié)果。 三、本發(fā)明所述人手輪廓跟蹤采用條件概率密度傳播和啟發(fā)式掃描技術(shù)相結(jié)合的 方法實現(xiàn),所述輪廓跟蹤算法的步驟如下 步驟81 :采用條件概率密度傳播(Condensation)算法跟蹤輪廓的平移、旋轉(zhuǎn)和放 縮運動分量,得到若干候選輪廓,這些候選輪廓關(guān)于手指的狀態(tài)分量還未確定;
步驟82 :對每個確定了平移、旋轉(zhuǎn)及放縮運動分量的候選輪廓,逐步調(diào)整每個手 指的長度和角度,得到各個輪廓的手指運動狀態(tài)分量,從而產(chǎn)生所有狀態(tài)分量都確定的最 終的候選輪廓; 步驟83 :從最終的所有候選輪廓中產(chǎn)生一個輪廓作為跟蹤結(jié)果。
具體實施過程如下 人手輪廓采用B樣條曲線建模,如圖4所示。
人手輪廓的運動狀態(tài)向量如下 x = ax, ty, a , s, e l, iL, e K, iK, e M, iM, e I7 ", e Thl, e Th2) 子向量(tx, ty, a , s)描述了輪廓的剛體運動,其中(tx, ty)是掌心的圖像坐標(biāo), 也可以理解為相對于模板輪廓的平移運動,a表示整個輪廓繞著掌心的面內(nèi)旋轉(zhuǎn)角,s表
示相對于模板輪廓的放縮量。子向量(V, lj表示小指的運動狀態(tài),其中e,表示小指繞 其軸點的旋轉(zhuǎn)角,k表示小指相對于模板在軸向上的伸縮量。子向量(%, lK), (eM, lM), (0p 1》意義類似,分別對應(yīng)于無名指、中指和食指。分量e,和e^分別表示大拇指第 一關(guān)節(jié)和第二關(guān)節(jié)繞各自軸點的旋轉(zhuǎn)角度。 本發(fā)明所述跟蹤算法將人手輪廓的運動分解看待,首先是整體的運動,包括平移、 旋轉(zhuǎn)和縮放,由(tx, ty, a , s)描述,這一部分通過條件概率密度傳播算法進行跟蹤。然后 再在完成整體運動的基礎(chǔ)上確定各個手指的運動分量,由狀態(tài)向量的后10維分別描述,這 一部分通過啟發(fā)式掃描的方法實現(xiàn)。 條件概率密度傳播算法是粒子濾波思想在跟蹤中應(yīng)用,它利用加權(quán)粒子集描述待 跟蹤目標(biāo)狀態(tài)的后驗概率分布,通過預(yù)測和度量兩個階段更新每幀的粒子集。設(shè)t-l時刻 的加權(quán)粒子集(描述了 t-l時刻狀態(tài)的后驗概率分布)為{(Xi(t—D, ") , i = 1,2,3,., N),其中N為粒子數(shù)目,(Xi(t—D, n,—")表示第i個粒子的狀態(tài)值和權(quán)重,為得到t時刻的 加權(quán)粒子集,首先根據(jù)t-l時刻的粒子狀態(tài)集預(yù)測t時刻的狀態(tài)集,然后再利用觀測模型對 所有的新狀態(tài)進行度量以得到其權(quán)重。 預(yù)測過程包含重采樣和狀態(tài)運動。重采樣是指對t-l時刻的粒子狀態(tài)按一定策略 進行復(fù)制得到N個狀態(tài)的過程,該過程應(yīng)該保證不改變粒子集的分布。通常采用累積概率 來實現(xiàn)重采樣,首先計算t-l時刻所有粒子的累積概率,然后隨機產(chǎn)生一個[O,l]之間的 數(shù),找到恰好剛剛大于這個隨機數(shù)的累積概率的位置,然后復(fù)制一個這個位置的粒子狀態(tài), 直到得到N個狀態(tài)為止。利用這種方法,原來權(quán)重很大的那些粒子狀態(tài)將會被復(fù)制多份,原 來權(quán)重很小的粒子狀態(tài)很可能不會再出現(xiàn),從而保持了粒子集的分布。接下來要根據(jù)對重 采樣的得到的狀態(tài)集進行運動,運動模型通常是二階線性自回歸過程,它將t時刻的狀態(tài) 表示為前兩時刻狀態(tài)的線性組合再加上一個隨機高斯噪聲,
xt = A2xt—i+Bwt 其中,^和4是常量矩陣,描述了狀態(tài)的確定性運動,B也是常量矩陣,描述了隨 機運動部分,Wt是由獨立的標(biāo)準(zhǔn)正態(tài)分布隨機變量組成的向量。由于可以假設(shè)狀態(tài)向量的 各個分量是獨立的,因而矩陣A" A2和B可以設(shè)為對角陣,這樣每個分量的運動實際上相當(dāng) 于一個獨立的一維諧振器,例如描述x方向平移運動的諧振器表示為,
《=fl2 x《—2 + a, x f + 6 x 其中><表示一個標(biāo)準(zhǔn)正態(tài)分布的隨機變量,參數(shù)ai、 a2和b是諧振運動的系數(shù),這 些系數(shù)通過如下公式確定 ai = 2 X exp (_ P t ) X cos (2 Ji f t ) , a2 = -exp (_2 P t )
6 = px 1 -("2)2 —2X("1)2X"2 式中參數(shù)|3是諧振運動的衰減因子,f稱為自然頻率,P稱為平均均方根位移 (root-mean-sqimre average displacement), t是以秒為單位的時間步長(幀率為25時 t = (1/25) s)。 通過預(yù)測得到了一系列新的狀態(tài),它們并沒有權(quán)重,需要根據(jù)觀測模型及圖像信 息對每個狀態(tài)賦予權(quán)重,這是度量階段的任務(wù)。在此階段,采用的度量方法是,對于每個候 選狀態(tài)對應(yīng)的輪廓曲線,首先在該曲線上取若干度量點并作關(guān)于度量點對稱的法線段,然 后對每條法線上的像素進行處理以尋找圖像邊界特征和膚色邊界特征,每個找到的特征都 會對粒子的最終權(quán)重產(chǎn)生一定貢獻(xiàn)。每個特征對于粒子權(quán)重的貢獻(xiàn)采用一個中心位于度量 點的單高斯模型描述,圖5a示意候選輪廓上的度量法線,圖5b示意了描述每條度量法線上 特征分布的高斯模型。為了加快速度,將所采用的高斯模型制成查找表,這樣通過查表代替 直接的計算(包含指數(shù)運算)可以大大提高度量速度。對于度量線上的特征,主要選擇膚 色邊界和圖像邊界,膚色的判斷采用后面介紹的線性膚色分類器。這兩類信息是分開利用 的,對每條度量法線i,會根據(jù)膚色邊界特征得到一個分?jǐn)?shù)SSkin(i),根據(jù)圖像邊界特征得 到另一個分?jǐn)?shù)SEdge(i),然后將這兩個分?jǐn)?shù)加權(quán)求和作為該度量法線的分?jǐn)?shù)S(i):
S (i) = t X SSkin (i) + (l_t) X SEdge (i) 考慮到膚色是人手顯著的特征,而圖像邊界不僅人手有,而且也大量出現(xiàn)在背景 中,所以給予膚色特征更大的權(quán)重,根據(jù)實驗,t取0. 75效果較好。 在對狀態(tài)向量前4維分量運用條件概率密度傳播算法后,得到了一系列候選輪
廓,再采用啟發(fā)式掃描的方法確定每個候選輪廓的手指狀態(tài)。具體實施過程如下,對于每個
候選輪廓,選定某個手指,以固定步長遞增或遞減其角度,選使得手指輪廓度量值最大的作
為結(jié)果,在確定角度后,再以固定步長遞增或遞減手指的長度,選使得度量值最大的作為結(jié)
果,采用同樣的方式確定其余手指的狀態(tài)。通過啟發(fā)式掃描的方式就確定了所有候選輪廓
的手指運動分量。最終的跟蹤結(jié)果是權(quán)重最大的輪廓。 四、本發(fā)明所述跟蹤初始化是完全自動的,方法如下 設(shè)人手檢測得到的矩形框由(x。, y。, w。, h。, a 。)表示,其中(x。, y。)為矩形框中心 的坐標(biāo),w。、h。為其寬度和高度,a。表示對應(yīng)圖像的旋轉(zhuǎn)角,也就是人手的傾斜角。設(shè)圖4 所示輪廓模板的包圍框面積大小為S。,那么可以近似認(rèn)為人手輪廓的初始狀態(tài)為
9
& = (a , y0, a0, VO。x^)/So, 0.0,1.0, 0.0,1.0,0.0,1.0,0.0,1.0,0.0,0.0) 對于本發(fā)明所述跟蹤算法,初始化就是要生成第一幀的粒子集,可以通過如下方
法實現(xiàn),首先從x。產(chǎn)生N個新的狀態(tài),每個狀態(tài)的前四維通過對x。的前4個分量添加高
斯噪聲擾動得到,其余的分量不變,然后通過稍前的啟發(fā)式掃描方法確定各狀態(tài)向量關(guān)于
手指狀態(tài)的分量(即后10維分量),并度量獲取整個狀態(tài)的權(quán)重。這樣,根據(jù)人手檢測的結(jié)
果,自動確定了第一幀的加權(quán)粒子集,將權(quán)重最大的粒子取為跟蹤結(jié)果,完成跟蹤初始化。 五、本發(fā)明所述建立人手膚色模型的步驟包括 步驟71 :定義如下線性膚色分類器BGhmin G+BRmin R < B < BGhmax G+BRmax R,BGvmin B+GRmin R < G < BGvmax B+GRmax R, 其中BGhmin, BRmin, BGhmax, BRmax, BGvmin, GRmin, BGvmax, GRmax是分類器的參 數(shù),R, G, B表示像素的RGB顏色分量。
步驟72 :根據(jù)跟蹤初始化得到的人手輪廓建立前景圖像背景圖像; 步驟73 :利用前景圖像與背景圖像定義如下優(yōu)化目標(biāo)F : F = k FSkinArea/FArea-BSkinArea/BArea FSkinArea =前景圖像里膚色像素數(shù)目 FArea二前景圖像里非零像素數(shù)目 BSkinArea =背景圖像里膚色像素數(shù)目 BArea =背景圖像里非零像素數(shù)目 k是一個大于1的常量,根據(jù)經(jīng)驗選取為2 ; 步驟74 :逐步調(diào)整BGhmin, BRmin, BGhmax, BRmax, BGvmin, GRmin, BGvmax, GRmax,
使得步驟73定義的目標(biāo)F達(dá)到最大值,得到線性膚色分類器的最優(yōu)參數(shù)。 步驟72所述的前景圖像及背景圖像構(gòu)造過程如下,首先利用跟蹤初始化得到的
輪廓曲線構(gòu)造兩個模板,如圖6a和圖6b所示。圖6a所示膚色模板是輪廓曲線的控制多邊
形所圍區(qū)域,圖6b所示背景模板基本與膚色模板互補,為了更好的去掉人手及手臂區(qū)域,
從手掌末端引出了兩條射線并將控制多邊形稍微向外圍擴大了一些。接下來將兩個模板分
別與初始圖像進行"與"操作,得到前景圖像及背景圖像。 上面的描述是用于實現(xiàn)本發(fā)明及其實施例,因此,本發(fā)明的范圍不應(yīng)由該描述來 限定。本領(lǐng)域的技術(shù)人員應(yīng)該理解,在不脫離本發(fā)明的范圍的任何修改或局部替換,均屬于 本發(fā)明權(quán)利要求所限定的范圍。
權(quán)利要求
一種基于計算機視覺的實時手勢交互方法,其特征在于,包括如下步驟步驟S1通過統(tǒng)計方法學(xué)習(xí)人手目標(biāo)樣本,得到級聯(lián)結(jié)構(gòu)的分類器;步驟S2通過統(tǒng)計方法學(xué)習(xí)預(yù)定義手勢的樣本,得到各手勢的隱馬爾科夫模型;步驟S3通過圖像輸入設(shè)備實時采集視頻圖像,如果手勢當(dāng)前已經(jīng)開始,則執(zhí)行步驟S8;否則執(zhí)行步驟S4;步驟S4利用級聯(lián)結(jié)構(gòu)的分類器在輸入的視頻圖像上進行人手檢測,如果檢測成功,則執(zhí)行步驟S5;如果檢測不成功,則執(zhí)行步驟S3;步驟S5利用人手在圖像中的位置,判斷手勢是否開始,如果手勢開始,執(zhí)行步驟S6,如果沒開始手勢,執(zhí)行步驟S3;步驟S6根據(jù)人手在圖像中的位置初始化人手輪廓跟蹤算法,得到初始人手輪廓;步驟S7根據(jù)初始人手輪廓建立人手的膚色模型,返回步驟S3;步驟S8利用輪廓跟蹤算法跟蹤視頻圖像中人手輪廓,得到視頻圖像中的人手輪廓狀態(tài)及手勢軌跡;步驟S9根據(jù)人手輪廓狀態(tài)及手勢軌跡,判斷手勢是否終止,如果有握手動作發(fā)生則手勢終止,則執(zhí)行步驟S10,如果沒有握手動作發(fā)生但跟蹤時間超過預(yù)先選定的時間閾值,則認(rèn)為手勢終止,執(zhí)行步驟S10;如果沒有握手動作發(fā)生且跟蹤時間小于預(yù)先選定的時間閾值,則手勢沒有終止,執(zhí)行步驟S3;步驟S10利用隱馬爾科夫模型,對手勢軌跡進行識別,得到手勢的識別結(jié)果;步驟S11將手勢識別結(jié)果用于具體應(yīng)用。
2. 根據(jù)權(quán)利要求1所述的實時手勢交互方法,其特征在于所述學(xué)習(xí)人手目標(biāo)樣本的步驟包括步驟Sla :利用視頻圖像采集大量的人手樣本和非人手樣本,并進行歸一化處理,獲得歸一化樣本;步驟lb :取歸一化樣本的方向梯度直方圖(H0G)特征作為訓(xùn)練特征,采用Adaboost算法訓(xùn)練得到級聯(lián)結(jié)構(gòu)的分類器。
3. 根據(jù)權(quán)利要求1所述的實時手勢交互方法,其特征在于所述學(xué)習(xí)手勢樣本的步驟包括步驟21 :根據(jù)應(yīng)用需要預(yù)定義動態(tài)手勢集合;步驟22 :通過人手輪廓跟蹤,采集大量預(yù)定義動態(tài)手勢樣本;步驟23 :去除預(yù)定義動態(tài)手勢樣本中的異常樣本;步驟25 :對預(yù)定義動態(tài)手勢樣本軌跡進行預(yù)處理,去掉密集點,得到預(yù)處理后的樣本軌跡;步驟26 :取預(yù)處理后的樣本軌跡的方向編碼作為特征,采用Baum-Welch算法訓(xùn)練得到每類手勢的隱馬爾科夫模型。
4. 根據(jù)權(quán)利要求l所述的實時手勢交互方法,其特征在于采用方向梯度直方圖特征,通過Adaboost算法實現(xiàn)人手檢測。
5. 根據(jù)權(quán)利要求1所述的實時手勢交互方法,其特征在于所述手勢是否開始的判斷依據(jù)是在連續(xù)20幀的人手檢測結(jié)果里,有超過12幀檢測到人手處于同一個位置。
6. 根據(jù)權(quán)利要求1所述的實時手勢交互方法,其特征在于所述建立人手膚色模型的步驟包括步驟71 :定義如下線性膚色分類器BGhmin G+BRmin R < B < BGhmax G+BRmax R,BGvmin B+GRmin R < G < BGvmax B+GRmax R,其中BGhmin, BRmin, BGhmax, BRmax, BGvmin, GRmin, BGvmax, GRmax是分類器的參數(shù),R, G, B表示像素的RGB顏色分量;步驟72 :根據(jù)跟蹤初始化得到的人手輪廓建立前景圖像和背景圖像;步驟73:利用前景圖像與背景圖像定義如下優(yōu)化目標(biāo)F:FSkinArea =前景圖像里膚色像素數(shù)目FArea =前景圖像里非零像素數(shù)目BSkinArea =背景圖像里膚色像素數(shù)目BArea =背景圖像里非零像素數(shù)目k是一個大于1的常量,根據(jù)經(jīng)驗選取為2 ;步驟74 :逐步調(diào)整BGhmin, BRmin, BGhmax, BRmax, BGvmin, GRmin, BGvmax, GRmax,使得定義的優(yōu)化目標(biāo)F達(dá)到最大值,得到線性膚色分類器的最優(yōu)參數(shù)。
7. 根據(jù)權(quán)利要求1所述的實時手勢交互方法,其特征在于所述輪廓跟蹤算法的步驟包括步驟81 :采用條件概率密度傳播(Condensation)算法跟蹤輪廓的平移、旋轉(zhuǎn)和放縮運動分量,得到若干候選輪廓,這些候選輪廓關(guān)于手指的狀態(tài)分量還未確定;步驟82 :對每個確定了平移、旋轉(zhuǎn)及放縮運動分量的候選輪廓,逐步調(diào)整每個手指的長度和角度,得到各個輪廓的手指運動狀態(tài)分量,從而產(chǎn)生所有狀態(tài)分量都確定的最終的候選輪廓;步驟83 :從最終的所有候選輪廓中產(chǎn)生一個輪廓作為跟蹤結(jié)果。
8. 根據(jù)權(quán)利要求1所述的實時手勢交互方法,其特征在于所述手勢識別的步驟包括步驟101 :對從輪廓跟蹤獲得的手勢軌跡進行預(yù)處理去除密集點,獲得預(yù)處理軌跡;步驟102 :對預(yù)處理后的軌跡提取方向編碼特征,對特征歸一化;步驟103 :采用前向遞推算法計算歸一化特征對應(yīng)于各類手勢模型的概率,取概率最大者為識別結(jié)果。
全文摘要
本發(fā)明公開一種基于計算機視覺的實時手勢交互方法,包括從圖像輸入設(shè)備獲取數(shù)字圖像;通過統(tǒng)計學(xué)習(xí)方法進行人手的檢測;根據(jù)檢測結(jié)果對人手輪廓跟蹤器進行初始化,并計算特定人手的膚色模型;通過條件概率密度傳播算法和啟發(fā)式搜索技術(shù)相結(jié)合的方法對人手輪廓進行跟蹤;通過隱馬爾科夫模型對人手運動軌跡進行分析,得到手勢識別結(jié)果;將手勢分析的結(jié)果用于各種應(yīng)用程序的交互。本發(fā)明實時手勢交互方法擴展了傳統(tǒng)的鼠標(biāo)鍵盤交互方式,利用計算機視覺與圖像處理技術(shù)實現(xiàn)了自動的人手檢測、跟蹤與手勢識別,實時、魯棒、易于實現(xiàn)和操作,能使計算機用戶通過手部姿態(tài)與計算機進行更自然、更直觀、更智能的交互。
文檔編號G06K9/66GK101763515SQ200910093890
公開日2010年6月30日 申請日期2009年9月23日 優(yōu)先權(quán)日2009年9月23日
發(fā)明者吳曉雨, 周代國, 李基拓, 汪曉妍, 王陽生 申請人:中國科學(xué)院自動化研究所;北京盛開互動科技有限公司