基于光流法的手勢運動方向識別方法
【專利摘要】基于光流法的手勢運動方向識別方法,通過VGA分辨率的普通攝像頭獲取計算機前的圖像序列并進行預(yù)處理;膚色樣本在CbCr平面上較為集中地分布在近似橢圓的區(qū)域中,通過像素點在CbCr平面上是否落在此橢圓域來確定是否膚色;對膚色檢測后的二值圖像進行形態(tài)學重建,采用形態(tài)學中的閉運算;對各個白色連通區(qū)域進行標記并求面積,然后按照面積從大到小排列,保留三個最大的連通區(qū)域;降低圖像的分辨率,并使用金字塔LK光流法獲取膚色區(qū)域的光流運動矢量;對光流運動矢量做方向判斷;每隔兩幀判斷一次方向,兩次一致才給出結(jié)果;在熟悉并掌握本發(fā)明的手勢運動操作規(guī)律后,在攝像頭前進行手勢的上下左右四個方向的運動,本發(fā)明可以完成實時交互并且手勢運動方向識別正確率可在95%以上。
【專利說明】基于光流法的手勢運動方向識別方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種基于光流法的手勢運動方向識別方法,屬于計算機視覺領(lǐng)域。
【背景技術(shù)】
[0002] 鼠標、鍵盤、手寫板等簡單的機械設(shè)備是目前人們最常用的人機交互方式,但是這 些人機交互方式都是以計算機為中心,不夠人性化并具有很大的局限性,不足以滿足人們 的需要。手是人最靈活的部位之一,手勢在日常的交流與操作中使用非常廣泛,方便快捷。 手勢以人為中心,符合人們的生活習慣,所以手勢作為一種新型的人機交互方式非常具有 研究價值。
[0003] 現(xiàn)有的基于計算機視覺的手勢識別研究一般是識別手勢的不同姿態(tài)來賦予不同 的意義,比如采用隱馬爾可夫模型、形狀紋理特征等方法識別手勢姿態(tài),或利用特殊的深度 攝像頭如微軟Kinect體感設(shè)備等獲取深度圖像來跟蹤識別手勢等。但前者的缺點是計算 機需要處理的數(shù)據(jù)復雜,容易存在響應(yīng)時間長、識別率低等問題,很難在實時交互的前提下 達到滿意的識別率,而后者采用特殊攝像頭,存在價格昂貴、難以普及的問題。
[0004] 手勢的不同姿態(tài)可以表現(xiàn)眾多不同的意思,而手勢的不同的運動方向也可以表現(xiàn) 少量不同的意思,但它如果用以控制不需要太多指令的計算機程序是足夠勝任的,如播放 器的播放、快進、快退等指令。研究手勢的運動方向識別可以減少計算機需要處理的數(shù)據(jù), 不像手勢姿態(tài)研究那樣過于復雜,但目前很少有對手勢運動方向的識別展開研究。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的主要目的是在使用普通攝像頭的前提下提供一種手勢運動方向的識別 方法,以動態(tài)手勢運動方向作為計算機識別的目標,使計算機可以針對不同的手勢運動方 向做出不同的反應(yīng),如利用本發(fā)明的成果來控制視頻播放器的播放暫停、快進快退等操作, 提高人機交互的靈活性。
[0006] 為實現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案為基于光流法的手勢運動方向識別方 法,該方法的流程圖如圖1所示,實施流程如下:
[0007] 步驟1、通過VGA分辨率的普通攝像頭獲取計算機前的圖像序列并進行預(yù)處理,包 含GrayWor1d彩色均衡處理與高斯平滑操作。GrayWor1d彩色均衡處理的作用是:消除彩色 偏移,圖像更加接近于實際顏色,且高光陰影部分會顯著減少,使步驟2的膚色檢測能夠適 應(yīng)不同的光照與光源的變化。先計算圖像的R、G、B三分量各自的平均值avgR、avgG、avgB, 獲得圖像的平均灰度值avgGray= (avgR+avgG+avgB)/3,然后對于圖像中的每個像素,調(diào) 整其R、G、B分量成為R=R?avgGray/avglG=G.avgGray/avgG,!? =B*avgGray/avgB, 最后將各像素的R、G、B值調(diào)整到可顯示范圍,若分量值大于255,調(diào)整為255。在GrayWorld 處理后,對圖像進行高斯平滑操作來消除攝像頭采集過程中產(chǎn)生的隨機噪聲。
[0008] 步驟2、YCbCr域橢圓膚色檢測。膚色樣本在CbCr平面上較為集中地分布在近似橢 圓的區(qū)域中,所以可以通過像素點在CbCr平面上是否落在此橢圓域來確定是否膚色。膚色 橢圓區(qū)域由式(1)表示,其中cx = 109. 83,cy = 152. 02, = 2. 53,ecx = 1. 60,ecy = 2. 41,a= 25. 39,b= 14. 03,x與y的取值由式(2)所示。
【權(quán)利要求】
1.基于光流法的手勢運動方向識別方法,其特征在于該方法的實施流程如下: 步驟1、通過VGA分辨率的普通攝像頭獲取計算機前的圖像序列并進行預(yù)處理,包 含GrayWorld彩色均衡處理與高斯平滑操作;先計算圖像的R、G、B三分量各自的平均值 avgR、avgG、avgB,獲得圖像的平均灰度值avgGray = (avgR+avgG+avgB)/3,然后對于圖像 中的每個像素,調(diào)整其 R、G、B 分量成為 R = R ? avgGray/avgR,G = G ? avgGray/avgG,B = B -aVgGrayAiVgB,最后將各像素的R、G、B值調(diào)整到可顯示范圍,若分量值大于255,調(diào)整為 255 ;在GrayWorld處理后,對圖像進行高斯平滑操作來消除攝像頭采集過程中產(chǎn)生的隨機 噪聲; 步驟2、YCbCr域橢圓膚色檢測;膚色樣本在CbCr平面上較為集中地分布在近似橢圓的 區(qū)域中,所以可以通過像素點在CbCr平面上是否落在此橢圓域來確定是否膚色;膚色橢圓 區(qū)域由式(1)表示,其中 cx = 109. 83, cy = 152. 02, = 2. 53, ecx = 1. 60, ecy = 2. 41,a = 25. 39, b = 14. 03, x與y的取值由式⑵所示;
在計算過程中,由圖像像素點的Cb、Cr值算出X與y值,當X與y值落在式(1)所表示 的橢圓區(qū)域,則令圖像像素值為1,否則為〇,這樣可以得到膚色像素點為白色,非膚色像素 點為黑色的二值圖; 步驟3、對膚色檢測后的二值圖像進行形態(tài)學重建,采用形態(tài)學中的閉運算;在數(shù)學形 態(tài)學中,腐蝕是將邊界的像素點縮小至目標物體內(nèi)部的一個像素點子集,消除圖像中目標 物體的邊界;膨脹是將圖像中的目標物體的像素點擴大至周圍的一個像素點子集,使周圍 的像素點的值與該像素點保持一致;單獨對圖像膨脹或者腐蝕都或多或少對圖像造成損 害,將膨脹和腐蝕結(jié)合在一起可以降低對圖像造成的損害,閉運算是對圖像進行先膨脹后 腐蝕,可以填補圖像中的空洞,連接細小的挨在一起的物體;對步驟2得到的二值圖像進行 閉運算可以得到人臉與人手是兩個白色清晰連通區(qū)域的圖像; 步驟4、對各個白色連通區(qū)域進行標記并求面積,即計算各個白色連通區(qū)域含有多少個 像素點,然后按照面積從大到小排列;如果畫面中有較大的類膚色物體,例如與黃種人膚色 幾乎一致的棕黃色家具,也會形成一個較大的連通區(qū)域且其像素數(shù)量未知,所以需要保留 像素數(shù)量排行前三位的連通區(qū)域,代表著人臉、人手與面積未知的干擾區(qū)域,其余所有連通 區(qū)域全部作為無關(guān)信息進行剔除; 步驟5、降低圖像的分辨率,并使用金字塔LK光流法獲取膚色區(qū)域的光流運動矢量; Lucas-Kanade光流法的公式如式(3)所示:
其中,W(x)表示窗口權(quán)重函數(shù),它使鄰域中心部分對光流約束產(chǎn)生的影響比外 圍部分更大,V = (u, V)T是要求解的光流運動信息,I (X,y, t)是圖像點(X,y)在 時刻t的照度,u和V是該點光流的水平和垂直分量,代表著運動信息,
金字塔Lucas-Kanade光流法采用常用的LK光流法算法加入高斯金字塔迭代方法,即 構(gòu)造圖像序列的一個金字塔,高層是低層圖像的下采樣形式,圖像分解到一定層數(shù)時,相鄰 幀之間的運動量就會變得足夠小,滿足LK光流法的局部約束條件;在金字塔的最高層計算 光流,然后將得到的運動估計結(jié)果作為下一層金字塔的起始點,重復迭代這個過程一直到 金字塔的底層,即具有原始分辨率的圖像,這樣可以實現(xiàn)對更快更長的運動跟蹤; 步驟6、對光流運動矢量做方向判斷;光流運動矢量可以分為水平運動分量u和垂直運 動分量V ;對相鄰兩幀圖像做光流法操作獲得的各像素的u與V值做這樣的判定:式(4)? (7)分別表示像素點向右、左、上、下運動;當運動方向一致的像素數(shù)量超過一定的閾值,則 可以判定手部的運動方向; u>10 & -10〈v〈10 (3) u〈-10 & -10〈v〈10 (4) v>10 & -10〈u〈l (5) v〈-10 & -10〈u〈10 (6) 將運動方向一致的像素數(shù)的閾值設(shè)定為圖像像素總數(shù)的二十分之一,在QVGA分辨率 下這個閾值為3840,例如運動方向判定為向左的像素數(shù)超過了 3840,而其他方向的像素數(shù) 遠少于3840,則判定手部運動方向為左移; 步驟7、每隔兩幀判斷一次方向,兩次一致才給出結(jié)果。
2. 根據(jù)權(quán)利要求1所述的基于光流法的手勢運動方向識別方法,其特征在于:本方法 使用層數(shù)為4層的金字塔LK光流法,將金字塔底層圖像的分辨率從VGA級別降低至QVGA 級別,可以非常有效的縮短光流法耗時,因為步驟4得到的膚色分割圖具有非常好的效果, 所以圖像分辨率降低一倍不會使光流法運動分析的效果變差;對相鄰兩幀膚色分割圖的連 通域像素作為特征點使用金字塔LK光流法,可以得到運動物體的光流運動矢量。
3. 根據(jù)權(quán)利要求1所述的基于光流法的手勢運動方向識別方法,其特征在于:人手在 攝像頭前做出一個方向的運動,一般會經(jīng)歷5幀以上,當每隔兩幀進行一次光流法判定,t匕 如第1、2幀給出結(jié)果A,第3、4幀給出結(jié)果B,當A與B代表的方向一致時,才給出最終結(jié)果, 當A與B不一樣時,則表示手部沒有進行一次完整的固定方向的運動。
4. 根據(jù)權(quán)利要求1所述的基于光流法的手勢運動方向識別方法,其特征在于:本發(fā)明 的手勢運動方向判斷基本流程具體包括以下步驟, 1) 通過VGA分辨率的普通攝像頭獲取計算機前的圖像序列并進行預(yù)處理,先對圖像進 行GrayWorld彩色均衡處理,再進行高斯平滑操作來消除攝像頭采集過程中產(chǎn)生的隨機噪 聲; 2) 對圖像進行YCbCr域橢圓膚色檢測;位于CbCr域的像素點的像素值設(shè)置為1,否則 為0,這樣得到二值圖像,白色為具有膚色特征的像素點,黑色為非膚色像素; 3) 對膚色檢測后的二值圖像進行形態(tài)學重建,采用形態(tài)學中的閉運算; 4) 對各個白色連通區(qū)域進行標記并求面積,即計算各個白色連通區(qū)域含有多少個像素 點,然后按照面積從大到小排列,如果畫面中有較大的類膚色物體,例如與黃種人膚色幾乎 一致的棕黃色家具,也會形成一個較大的連通區(qū)域且其像素數(shù)量未知,所以需要保留像素 數(shù)量排行前三位的連通區(qū)域,代表著人臉、人手與面積未知的干擾區(qū)域,其余所有連通區(qū)域 全部作為無關(guān)信息進行剔除; 5) 降低圖像的分辨率,并使用金字塔LK光流法獲取膚色區(qū)域的光流運動矢量;本發(fā)明 使用層數(shù)為4層的金字塔LK光流法,將金字塔底層圖像的分辨率從VGA級別降低至QVGA 級別,可以非常有效的縮短光流法耗時,因為步驟4得到的膚色分割圖具有非常好的效果, 所以圖像分辨率降低一倍不會使光流法運動分析的效果變差;對相鄰兩幀膚色分割圖的連 通域像素作為特征點使用金字塔LK光流法,可以得到運動物體的光流運動矢量; 6) 對光流運動矢量做方向判斷;光流運動矢量可以分為水平位移分量u和垂直位移分 量V ;對相鄰兩幀圖像做光流法操作獲得的各像素的u與V值做這樣的判定:式⑷?(7) 分別表示像素點向右、左、上、下運動;當運動方向一致的像素數(shù)量超過一定的閾值,則可以 判定手部的運動方向; u>10 & -10〈v〈10 (3) u〈-10 & -10〈v〈10 (4) v>10 & -10〈u〈l (5) v〈-10 & -10〈u〈10 (6) 將運動方向一致的像素數(shù)的閾值設(shè)定為圖像像素總數(shù)的二十分之一,在QVGA分辨率 下這個閾值為3840,例如運動方向判定為向左的像素數(shù)超過了 3840,而其他方向的像素數(shù) 遠少于3840,則判定手部運動方向為左移; 7) 每隔兩幀判斷一次方向,兩次一致才給出結(jié)果;如果在攝像頭開啟后每幀都進行光 流法判定,那么不僅不會滿足實時,而且由于手部完成一次具有固定方向的運動,一般運動 距離遠且耗時不短,每幀都給出運動判斷結(jié)果是不可靠的;人手在攝像頭前做出一個方向 的運動,一般會經(jīng)歷5幀以上,當每隔兩幀進行一次光流法判定,比如第1、2幀給出結(jié)果A, 第3、4幀給出結(jié)果B,當A與B代表的方向一致時,才給出最終結(jié)果,當A與B不一樣時,則 表示手部沒有進行一次完整的固定方向的運動; 8) 利用MFC制作Windows Media Player的視頻播放器,將步驟7方向判斷的四種結(jié)果 分別賦予不同的命令,可以實現(xiàn)這樣的效果:當手勢向上運動,視頻播放器執(zhí)行暫停命令, 當手勢向下運動,視頻播放器執(zhí)行播放命令,當手勢向左運動,視頻播放器執(zhí)行快退命令, 當手勢向右運動,視頻播放器執(zhí)行快進命令。
【文檔編號】G06F3/01GK104331151SQ201410535947
【公開日】2015年2月4日 申請日期:2014年10月11日 優(yōu)先權(quán)日:2014年10月11日
【發(fā)明者】楊盈昀, 茹家馨, 姜秀華 申請人:中國傳媒大學