專利名稱:基于方向運動歷史圖及競爭機制的手揮運動方向判定方法
技術領域:
本發明涉及計算機視覺手勢識別技術領域,尤其涉及的是一種基于方向運動歷史圖及競爭機制的手揮運動方向判定方法。
背景技術:
手勢交互是一種自然、直觀的人機交互方式,將手勢直接作為計算機的輸入,人機間的通訊將不再需要媒介。手勢識別是手勢交互的技術基礎,視覺手勢識別由于其簡單易行,目前是手勢識別技術的主流。視覺手勢識別雖然是手勢識別的主要發展方向,但是還存在很多問題,比如易受 背景變化、光照變化、運動噪聲的影響,手本身也容易發生非剛體變形,手勢中有很多冗余不必要的信息等。如何克服手勢識別中這些技術困難,使其能充分應用以改變未來人機交互模式,是手勢交互技術的關鍵問題。視覺手勢識別一般通過攝像頭采集手勢視頻流數據。目前,視頻攝像頭分為2D攝像頭和3D攝像頭。3D攝像頭獲得的是手勢的三維信息,比如微軟推出的kinect就可以采集3D手勢信息,但是其成本貴不利于普及。因此研發基于廉價的USB 2D攝像頭的手勢識別技術,具有積極意義但是由于手是非剛體物體,且手勢跟蹤一般基于膚色進行,導致這種基于跟蹤的方法不穩定,易受環境光照、及背景色的干擾,無法形成正確的跟蹤軌跡。目前,也出現了利用運動歷史圖來進行手勢運動方向判定的方法。這種方法首先利用幀差法生成手揮運動歷史圖,然后計算其梯度向量來獲取運動方向。這種方法的主要問題是無法克服手揮動時的運動覆蓋問題;容易受運動噪聲的影響,導致方向判斷及其不穩定。通過手上下左右揮動來直接控制菜單或調節某些功能,是手勢交互的一種快速廣泛的應用模式。此時,正確判定手上下左右運動的方向將是該種手勢交互的技術基礎。現有的手勢運動方向判定主要是基于手勢運動跟蹤,通過跟蹤手勢,計算手位移距離從而判定其運動方向的方法。I、方向判定依賴于手勢跟蹤的效果,而跟蹤易受光照變化、人臉膚色及手變形的影響,效果差,不穩定;2、跟蹤算法復雜,速度慢,不能快速判定手揮方向。利用運動歷史圖來進行手勢運動方向判定的方法。這種方法首先利用背景差或幀差法生成運動歷史圖,然后計算其梯度向量來獲取運動方向,優點是速度快。I、無法克服手揮動時的運動覆蓋問題;2、容易受運動噪聲的影響,導致方向判斷不準確。
發明內容
本發明所要解決的技術問題是針對現有技術的不足提供一種基于方向運動歷史圖及競爭機制的手揮運動方向判定方法。本發明的技術方案如下一種基于方向運動歷史圖及競爭機制的手揮運動方向判定方法,包括以下步驟Al、從視頻流中獲取當前運動圖像,建立膚色概率模型,作為手揮過程中手膚色提取的依據,在HSV顏色空間,統計大量膚色與非膚色信息,建立歸一化的H-S膚色直方圖,用于后續視頻幀圖像的膚色分割,膚色提取的閾值概率設定為O. 85,當前幀的膚色概率圖
Skin(x,y,t) =;獲取當前視頻運動圖像的三幀差圖像,將膚色概率圖與幀
差結果相乘后的數據經中值濾波器進行濾波,得到當前的手勢區域灰度圖iKnO;A2、計算手勢區域灰度圖爐(XjM)的光流矢量場F(x,y,t)后,首先將其分解成水平 和垂直兩個標量場Fx (X,y, t),Fy (X,y, t),然后進行半波整流,進一步分解成四個非負通道并進行高斯平滑和歸一化,最終得到四個光流方向圖F: (X,少,t), F; (X,少,t), Fy+ (x, y, t), F; (x, y, t),其中巧=Fx+ - F; ,Fy = Fy+ — F;;A3、根據步驟A2中的四個光流方向圖,分別計算四個方向運動歷史圖,
[max(0 -1)-3], otherwise
Hxr~(x,yj) = \ (T’『Ax’y個 ,
[max^O Fx (x,y^t-\)-6\otherwise
Κ ( :f(x,十V,
[max(0,Fy (x,y,totherwiseHr{x,y,t)^l ( T,fy,其中Α4、根據手勢運動歷史圖,獲得四個方向運動能量圖
「、 fl Hx+(x,y,t)>l 、 il Hx-(x,yj)>lEx+(x,y,t)=\ , ^, E- (x >; i) = J r,
rIO otherwiser[ O otherwise
Ey;{x,y,t) = ^= H f (w’Wi,其中Mx,y,t)為運動能
Γ[ O otherwise τ[ O otherwise
量圖,τ為描述運動的時間范圍的參數,x,y分別為運動能量圖的橫縱坐標,t為時刻;
A5、計算每幀圖像的運動方向并編碼wg& = argtan^~^,其中Sx+ =
size [Ey_ (x, y,t) > 0],若 Sx+_Sx_ = Q, angle = 或=—,具體值根據 Sy+_Sy_ 大于或
小于O進行判斷,若valy+-valy_也為0,則判定當前未動,編碼為-I ;其它情況時將根據計算得到的angle,將其值根據需要進行劃分并編碼,進行“上、下、左、右”四個方向判斷;將(-50。,50。)編碼為 “O”, (50。,140。)編碼為 “1”,(140。,230。)為 “2”,(230。,310。)為 “3”,不在這些區間的值,賦值為“-I ”;分析一段手勢運動視頻,對每幀都進行上述計算并進行方向編碼,從而得到運動方向編碼序列O (O1, O2,…oN),其中Oi E {-1,0,1,2,3}, i = I…N, N是有效編碼序列長度;A6、判定整個運動序列的運動方向;為克服運動噪聲,將此運動方向編碼序列中的每個編碼依次送入競爭器進行競爭投票,最終溢出(獲勝)的編碼對應的方向就是本次手勢揮動對應的運動方向;具體來說首先建立4個小格,并標記0,1,2,3分別對應各個運動方向編碼,同時設置票數極值Vmax及票數溢出閾值Vth ;每個進入的方向編碼將使其對應的小格加1,而使其它小格減I ;每小格票數一直增長直到Vmax,而任一時刻,其票數達到了 Vth,則就會溢出該小格對應的標號。所述的方法,所述步驟A6中,設置Vth = 6, Vmax = 8。所述的方法,所述步驟Al中,幀差的計算方法為<P0 O,yJ) = min(|(/(x, y,t)- f(x, y, t -1)|, |(/(x, yj) - f(x, y, t +1)|),其中 f (x, y, t)表示當前
幀圖像,t表示時間,X,y表示像素位置(下同),符號I I表示取絕對值,函數min表示取最小值;為服噪聲和光線變化,可設置一自適應閾值^-OJqmax^^-minOo)],這里的max(<^)和Hiin(A)表示取ΦC1的最大和最小值,則最終計算幀差為
十(4::匕匕-減1嘬后棚膚色概率圖Skin(x,y,t)和幀差圖爐。(…),
可得手勢區域灰度圖=其中符號X表示相乘。所述的方法,所述步驟A5中計算每幀圖像運動方向并編碼,也可以采用比較大小并直接編碼的方法來進行,即Oi = code (max (Sx+, Sx_, Sy+, SyJ),其中code (Sx+)為“0”,code (Sx_)為 “1”,code (Sy+)為 “2”,code (Sy+)為 “3”。所述的方法,所述步驟A6中,得到運動方向編碼序列后,判定整個序列最終運動方向,可以通過隱馬爾科夫模型進行方向推定。本發明具有以下有益效果I、由于采用幀差和膚色聯合提取感興趣區域,將減少背景和人臉膚色的干擾。;2、由于采用四個方向運動歷史圖和能量圖以方向統計的方式來計算整體運動方向,可以有效克服運動覆蓋問題。3。由于采用了動作競爭機制確定運動方向,可大大降低動作噪聲的影響,提高運動方向判定的準確性和穩定性。
圖I為本發明方法流程圖;圖2是實施例I中競爭投票勝出確定整體運動方向的方法的示意圖。
具體實施例方式以下結合具體實施例,對本發明進行詳細說明。實施例I參考圖1,基于方向運動歷史圖及競爭機制的手揮運動方向判定方法,包括以下步驟Al、從視頻流中獲取當前運動圖像,建立膚色概率模型,作為手揮過程中手膚色提取的依據,在HSV顏色空間,統計大量膚色與非膚色信息,建立歸一化的H-S膚色直方圖,用于后續視頻幀圖像的膚色分割,膚色提取的閾值概率設定為O. 85,當前幀的的膚色概率圖Skin{x,y,O = {^^s^,y,0>-0.s5。獲取當前視頻運動圖像的三幀差圖像,將膚色概率圖與幀
差結果相乘后的數據經中值濾波器進行濾波,得到當前的手勢區域灰度圖< (>,}^)。幀差的計算方法為
Ψο O,少,O = min(j(/(x, y, t) - f(x, y, t -1)|,|(/(x,少,t) - /(χ,少,,+ i)|),其中 f (χ,y,t)表示當前
幀圖像,t表示時間,X,y表示像素位置(下同),符號I I表示取絕對·值,函數min表示取最小值。為服噪聲和光線變化,可設置一自適應閾值.dioWl = 0.2 *[max(^0)-min((p0)],這里的max(i3Q)和min(>Q)表示取ΦC1的最大和最小值,則最終計算幀差為
。最后根據膚色概率圖Skin(x,y,t)和幀差圖化(x,,
可得手勢區域灰度圖其中符號χ表示相乘。Α2、計算手勢區域灰度圖ρ(ΧΜ)的光流矢量場F(x,y,t)后,首先將其分解成水平和垂直兩個標量場Fx(x,y, t), Fy(x, y, t),然后進行半波整流,進一步分解成四個非負通道并進行高斯平滑和歸一化,最終得到四個光流方向圖K (X,少,t\F; (x,少, , F; (x, y, , F; (χ, y, ,其中Fx = F; - F; Fy = F/ - F;。A3、根據上面四個光流方向圖,分別計算四個方向運動歷史圖,
Ηχτ + (χ,γ, )=\ (十,
[max(0,\x,y,t -\)~ δ\otherwise
Hr{X,y,t) = \ (,
[max^O,Fxotherwise
Hr{x,y,t) = \ ( 7( Γ,
|max(0,{x^yj ~\)~δ\otherwise
權利要求
1.一種基于方向運動歷史圖及競爭機制的手揮運動方向判定方法,其特征在于,包括以下步驟 Al、從視頻流中獲取當前運動圖像,建立膚色概率模型,作為手揮過程中手膚色提取的依據,在HSV顏色空間,統計大量膚色與非膚色信息,建立歸一化的H-S膚色直方圖,用于后續視頻幀圖像的膚色分割,膚色提取的閾值概率設定為O. 85,當前幀的膚色概率圖Skin{x^t) =,0^0.85 ,獲取當前視頻運動圖像的三幀差圖像,將膚色概率圖與幀差結果相乘后的數據經中值濾波器進行濾波,得到當前的手勢區域灰度圖爐O,O; A2、計算手勢區域灰度圖的光流矢量場F(x,y,t)后,首先將其分解成水平和垂直兩個標量場Fx (X,y, t),Fy (X,y, t),然后進行半波整流,進一步分解成四個非負通道并進行高斯平滑和歸一化,最終得到四個光流方向圖&+(x,M),F;(x,_y,0,其中足=K — F: ,Fy = Fy - Fy ; A3、根據步驟A2中的四個光流方向圖,分別計算四個方向運動歷史圖,H;+ (x, y,t)=\ , τ:「(Χ,少’ ^, [max(0,F: (x, yj-\)-δ\otherwiseHr(x,yj)4 ([max^O,Fxotherwisec(w)=i ( T(x’十V, [^max(0,7^ {x^yjotherwise H^{x,y,t) = \ / T,Fy,其中 τ , [max(0,Fy{x,y,t-\)-d\otherwise,”(x,y,t)、Hx~{x,y,t)、/^+(^,0、丹廠(1,>^)為各個方向當前的手勢運動歷史圖(MHI),<;(χ,Μ)為當前的光流方向區域灰度圖,τ為描述運動的時間范圍的參數,一般可以取間隔幀數,δ為手勢運動歷史圖衰減參數,可以設置為5,^)_為各方向手勢區域圖二值化閾值,可以視實際效果設置為5-10 ;通過獲取四個方向的運動歷史圖,可以有效克服運動覆蓋問題; Α4、根據手勢運動歷史圖,獲得四個方向運動能量圖 r[ O otherwiseτ[ O otherwiseEy+{x,y,t)=\l Hy^y^-l,Ey;{x,y,t)=^ 丑:1,其中 Ετ (x,y,t)為運動能 [O otherwise[ O otherwise量圖,τ為描述運動的時間范圍的參數,x,y分別為運動能量圖的橫縱坐標,t為時刻; A5、計算每幀圖像的運動方向并編碼cingle = argtan^—,其中Sx+ = + —size[Ex+ (x, y, t) > O], Sx_ = size[Ex_(x, y, t) > O], Sy+ = size[Ey+ (x, y, t) > 0], Sy_ = TT3 TTsize [Ey_ (x, y, t) > 0],若 SX+_SX_ = Q, angle = y或ang/e =—,具體值根據 Sy+_Sy_ 大于或小于O進行判斷,若valy+-valy_也為O,則判定當前未動,編碼為-I ;其它情況時將根據計算得到的angle,將其值根據需要進行劃分并編碼,進行“上、下、左、右”四個方向判斷;將(-50。,50。)編碼為 “O”, (50。,140。)編碼為 “1”,(140。,230。)為 “2”,(230。,310。)為 “3”,不在這些區間的值,賦值為“-I ”;分析一段手勢運動視頻,對每幀都進行上述計算并進行方向編碼,從而得到運動方向編碼序列O (O1, O2,…oN),其中Oi E {-1,0,1,2,3}, i = I…N, N是有效編碼序列長度; A6、判定整個運動序列的運動方向;為克服運動噪聲,將此運動方向編碼序列中的每個編碼依次送入競爭器進行競爭投票,最終溢出(獲勝)的編碼對應的方向就是本次手勢揮動對應的運動方向;具體來說首先建立4個小格,并標記0,1,2,3分別對應各個運動方向編碼,同時設置票數極值Vmax及票數溢出閾值Vth ;每個進入的方向編碼將使其對應的小格加1,而使其它小格減I ;每小格票數一直增長直到Vmax,而任一時刻,其票數達到了 Vth,則就會溢出該小格對應的標號。
2.根據權利要求I所述的方法,其特征在于,所述步驟A6中,設置Vth= 6,Vfflax = 8。
3.根據權利要求I所述的方法,其特征在于,所述步驟Al中,幀差的計算方法為φ0 (X, y, O = min(|(/(x, y, t) - f{x, y, t -1)|, |(/(x, y, t) — f(x,少夕 +1)|),其中 f (x, y, t)表示當前幀圖像,t表示時間,X,y表示像素位置(下同),符號I I表示取絕對值,函數min表示取最小值;為服噪聲和光線變化,可設置一自適應閾值= 0.2* [max(^0) - min(^0)],這里的max(<^)和Hiin(^e)表示取ΦC1的最大和最小值,則最終計算幀差為十福·’最后根據膚色概率圖Skin (χ, y, t)和幀差圖外“少冰可得手勢區域灰度圖^^^二撕七士小外^^小其中符號χ表示相乘。
4.根據權利要求I所述的方法,其特征在于,所述步驟A5中計算每幀圖像運動方向并編碼,也可以采用比較大小并直接編碼的方法來進行,即Oi = code (max(Sx+, Sx_, Sy+,SyJ),其中 code (Sx+)為 “0”,code (Sx_)為 “I”,code (Sy+)為 “2”,code (Sy+)為 “3”。
5.根據權利要求I所述的方法,其特征在于,所述步驟A6中,得到運動方向編碼序列后,判定整個序列最終運動方向,可以通過隱馬爾科夫模型進行方向推定。
全文摘要
本發明公開了一種基于方向運動歷史圖及競爭機制的手揮運動方向判定方法,包括以下步驟A1、從視頻流中獲取當前運動圖像,建立膚色概率模型,得到四個光流方向圖;A3、根據步驟A2中的四個光流方向圖,分別計算四個方向運動歷史圖;A4、根據手勢運動歷史圖,獲得四個方向運動能量圖;A5、計算每幀圖像的運動方向并編碼;A6、判定整個運動序列的運動方向;由于采用幀差和膚色聯合提取感興趣區域,將減少背景和人臉膚色的干擾。由于采用四個方向運動歷史圖和能量圖以方向統計的方式來計算整體運動方向,可以有效克服運動覆蓋問題。由于采用了動作競爭機制確定運動方向,可大大降低動作噪聲的影響,提高運動方向判定的準確性和穩定性。
文檔編號G06K9/00GK102779268SQ201210190678
公開日2012年11月14日 申請日期2012年6月4日 優先權日2012年2月6日
發明者劉恒, 呂金剛, 吳斌, 張彩紅, 梁艷陽 申請人:西南科技大學