李云峰 張澎悅
(河南科技大學機電工程學院 河南 洛陽 471003) (機械裝備先進制造河南省協同創新中心 河南 洛陽 471003)
最近幾年,人們對智能化生活的需求日益增強,發展方便、舒適、靈活的交互方式成為研究人員的迫切要求。以人類手部為基礎的手勢語言具有直觀、自然、豐富的特點,符合人類的交流習慣,手勢識別正引起國內外研究學者的關注。對于手勢識別,提取手勢特征是手勢識別算法的重要組成部分。
楊紀爭等[1]從手勢邊緣序列角度出發,建立跟隨空間變化的時空域邊緣序列,并根據計算遞歸圖像之間的距離完成手勢識別。Ren等[2]利用輪廓梯度多尺度加權直方圖進行手勢方向的計算,并使用輪廓點的位置與方向進行特征提取,利用支持向量機進行手勢識別。Zhou等[3]從手勢圖像中提取邊緣,通過并行邊緣特征提取手勢輪廓突出的邊緣點,并以手腕位置為中心,提取手的位置、方向進行手勢識別。文芳等[4]提取手勢輪廓的圓形度、凸包點以及缺陷點等信息構建特征向量進行手勢識別。高晨等[5]提出一基于輪廓凸包檢測指尖的算法,并將指尖數目、相鄰兩個指尖夾角等作為特征向量進行手勢識別。上述文獻是在手勢輪廓的基礎上運用相應的算法進行手勢識別。雖然這些算法的運算量較小,算法結構不復雜,具有一定的實用性,但是手勢輪廓所包含的信息有限,較難為手勢識別提供更多有效的特征,不便進一步提升算法的性能,具有一定的局限性。
除了利用手勢輪廓信息構建特征外,還有研究學者使用手勢的二值圖像進行特征提取。蒲興成等[6]利用手勢二值圖像的 Hu不變矩以及手指個數作為特征向量,使用支持向量機進行手勢識別。Chevtchenko等[7]對手勢二值圖像采用傅立葉描繪子、Zernike矩、偽Zernike矩、Hu矩、復數矩構建特征向量,采用多層感知器神經網絡進行分類識別。曹雛清等[8]利用深度傳感器的數據分割出手勢,并提取手勢二值圖中包含的手指數量、手指間的夾角作為特征向量進行手勢識別。劉淑萍等[9]利用形態學處理消除手掌區域,通過計算連通域個數檢測手指數量,并結合手勢圖像的HOG特征進行手勢識別。屈燕琴等[10]利用手勢二值圖像提取手指弧度、指間弧度、手指數目等組建特征向量進行手勢識別。楊學文等[11]利用重心與邊緣確定手勢主要方向,并建立手勢直角坐標系提取空間特征,使用手勢坐標點分布特征以及距離模板進行手勢識別。曹杰等[12]利用曲率提取手勢中指尖位置,并結合二值圖像的Hu不變矩進行手勢識別。上述文獻多利用手勢二值圖像的表觀特征進行手勢識別。雖然這些算法提取的手勢特征結合相應的識別算法在識別率上取得一定的效果,但仍存在一些不足需要進一步改進,如算法結構復雜,實時性和魯棒性不高等。
除了上述利用輪廓、二值圖像提取手勢特征外,機器學習中的一些網絡模型可以從圖像中自動提取相應的手勢特征。王龍等[13]利用卷積神經網絡自動提取手勢圖像的特征進行手勢的分類與識別。吳曉鳳等[14]利用改進的卷積神經網絡Faster R-CNN對手勢圖像進行特征提取以及識別分類。Gomez-Donoso等[15]使用卷積神經網絡估計手勢圖像中手部的關節點位置,并利用關節信息預測手勢的類別。蔣穗峰等[16]利用稀疏自編碼器提取手勢圖像的特征,并利用softmax分類器進行手勢識別。陶美平等[17]將手勢圖像分塊后訓練稀疏自動編碼器獲取手勢的邊緣特征,并使用該特征利用分類器進行手勢識別。上述文獻雖然算法復雜程度較低,但算法的針對性不強,平均識別率不高,還需諸多改進來滿足手勢識別的要求。
目前手勢識別算法多利用輪廓、二值圖像等提取相應特征,雖然取得了諸多進展,但是在特征提取過程中丟失較多手勢的紋理信息,如邊緣輪廓細節、手掌紋路、肌肉凸凹區域、手指關節表面細節等。因此本文從手勢灰度圖像的紋理含有豐富的手勢類別信息的角度出發,提出一種基于GLCM和Gabor小波變換的手勢紋理特征的手勢識別方法。該方法首先通過構造多方向共生矩陣和Gabor濾波器來提取手勢紋理的GLCM特征和Gabor特征;其次將所提取的兩種紋理特征歸一化后串聯構建手勢紋理特征向量;最后,利用深度堆棧自編碼網絡對所構建的手勢紋理特征向量進行學習與識別,進一步提高手勢識別方法的泛化能力。本文算法的流程圖如圖1所示。

圖1 本文算法流程圖
如圖2所示,手勢的灰度圖像蘊含大量的紋理信息,其中不僅包含現有手勢識別常用的邊緣輪廓細節信息等,還蘊含人手的表面紋路、手指關節表面細節等類別信息。針對手勢紋理的特點,基于像素灰度統計的共生矩陣對紋理的局部變化特點,如像素點之間的變化幅度、相互關聯等,有較好的表征能力;而Gabor小波變換通過Gabor濾波函數對手勢灰度圖像進行卷積運算,可以得到其不同頻率、尺度、方向的紋理信息,對整體紋理的變化有較強的描述能力。因此,為了充分利用手勢灰度圖像中的紋理信息,提高所提取特征的有效性,本文提取手勢紋理的GLCM特征和Gabor特征構建手勢紋理特征向量。首先構建多方向共生矩陣統計手勢灰度圖像中兩個像素灰度級之間的聯合分布,并提取共生矩陣的角二階矩、對比度、相關性、熵以及逆差矩作為手勢紋理的GLCM特征;其次,構建Gabor濾波器對手勢灰度圖像進行Gabor小波變換,提取不同頻率、方向的Gabor小波系數作為手勢紋理的Gabor特征;最后分別將提取到的GLCM特征和Gabor特征進行歸一化后串聯構建本文的手勢紋理特征向量。

圖2 典型手勢的灰度圖像
1.1.1多方向共生矩陣的構建
共生矩陣通過統計手勢灰度圖像中灰度為a和b的像素對滿足某一方向位置關系次數來表征紋理分布。圖像中像素對的位置關系越多,所構建的共生矩陣數量就越多,對手勢紋理的描述就越豐富。因此本文首先建立像素對多個方向的位置關系,以達到提取多個共生矩陣的目的。
設Q代表中心像素點與其圓形鄰域邊界上像素點所有方向的位置關系,規定中心像素點水平向右為該圓形鄰域的0°方向,且像素對位置關系的指向是從中心像素點至圓形鄰域邊界上的像素點。若以圓形鄰域的0°方向為起始位置,以角度θ為間隔在圓形鄰域中建立像素對位置關系,那么中心像素點與其圓形鄰域邊界上的像素點一共存在360°/θ個方向的位置關系,即Q∈ [ 0°,θ,2θ,…,kθ],kθ=360°-θ。圖3為中心像素點與其圓形鄰域邊界上像素點所有方向的位置關系示意圖,其中圓形鄰域半徑r=3,間隔角度θ=45°,從而形成8個方向的位置關系。通過調整圓形鄰域半徑r與間隔角度θ可以形成多種不同的像素對位置關系,進而統計生成相應的共生矩陣。

圖3 圓形鄰域中的位置關系
假設一幅手勢圖像f擁有L個灰度級,G代表一個矩陣,則矩陣中元素gi,j的值是中心像素點灰度值為zi和其圓形鄰域邊界上像素點灰度值為zj的像素對在圖像f中符合某一方向位置關系的總次數,其中1≤i,j≤L,按此方法統計所形成的矩陣為該方向位置關系的共生矩陣。
圖4為共生矩陣生成過程。以圖4(a)中灰度圖像統計生成0°方向位置關系共生矩陣的過程為例。首先按上述形成位置關系Q的方法構建圓形鄰域0°方向的位置關系,位置關系的指向是從中心像素點至圓形鄰域邊界上0°方向的像素點,為方便示例圓形鄰域的半徑r=1。

(a) 灰度圖像 (b) 共生矩陣圖4 共生矩陣生成過程
然后遍歷圖4(a)中的灰度圖像,統計所有中心像素點灰度值為zi和其圓形鄰域邊界上像素點灰度值為zj的像素對符合0°方向位置關系的總次數,并將其值賦予共生矩陣中的元素gi,j。當共生矩陣中所有元素均統計完畢時,即可得到0°方向位置關系的共生矩陣。例如在圖4(a)中所有中心像素點灰度值為1和其圓形鄰域邊界上像素點灰度值為2的像素對符合0°位置關系的總次數為2,圖中的實線箭頭為圖5中圓形鄰域0°方向位置關系的簡化表示,則圖4(b)中共生矩陣元素g12的值為2。其他方向位置關系共生矩陣的生成方法與0°方向位置關系共生矩陣的方法相同,只是統計時所使用位置關系的方向不同。

圖5 圓形鄰域中的0°方向位置關系
根據本文建立的位置關系可以生成360°/θ個共生矩陣,從而可以使共生矩陣能夠統計多個方向的手勢灰度紋理。另外從共生矩陣的生成方法可知所生成矩陣大小與手勢圖像f的灰度級相關,為L×L。而手勢圖像的灰度級數較大,在統計共生矩陣時較大幅度的增加算法的運算量。因此,在使用手勢灰度圖像統計多個方向的共生矩陣前,先對手勢灰度圖像進行灰度級數縮減處理,減小算法運算量,公式如下:
(1)
式中:f(x,y)為原手勢灰度圖像,f′(x,y)為灰度級縮減后的灰度圖像,n為縮減后灰度級數。最終可以統計得到360°/θ個n×n大小的共生矩陣。
1.1.2手勢紋理GLCM特征的構建
通過本文共生矩陣的構造方法,可以得到手勢圖像中多個方向的紋理分布特點。為了對這些紋理分布特點進行有效的表征,本文計算所有方向共生矩陣的角二階矩、對比度、相關性、熵、逆差矩五個特征參數作為手勢紋理的GLCM特征,從而達到描述手勢紋理分布特點的目的,公式如下所示:
角二階矩W1:
(2)
對比度W2:
(3)
(4)
(5)
(6)
(7)
(8)
熵W4:
(9)
逆差矩W5:
(10)
式中:G為共生矩陣,n為共生矩陣的階數,u1、u2、δ1、δ2為式(4)中的過渡參數。從而構建5×360°/θ維的手勢紋理的GLCM特征:
式中:多個共生矩陣的特征參數按其統計時所對應位置關系方向的大小排列。
1.2.1Gabor濾波器的構建
二維Gabor小波變換可以提取圖像不同頻率尺度和方向的紋理信息。Gabor小波變換是利用濾波器與圖像進行卷積運算將原始圖像轉換到頻域空間,濾波器的表達式為:
(11)
(12)


(13)
(14)
從上述Gabor濾波器的表達式可知,Gabor濾波函數受參數φμ、kν和σ的影響。通過調整參數φμ、kν和σ即可得到不同方向、頻帶、大小的Gabor濾波器,然后利用得到濾波器對圖像進行Gabor小波變換的處理,從而獲取圖像中每個像素點所對應的Gabor小波系數。對圖像的Gabor變換可以用與圖像卷積來表達:
有些美索不達米亞文化相信,眾神甚至會不時犧牲自己或彼此,以確保宇宙持續存在,人類繼續生存。例如瑪雅人相信,玉米是眾神的肉,含有神圣的力量,在收獲的時節,眾神其實是犧牲自己來養活人類。當人類進食時,這種神圣的力量便傳入人體內,特別集中于血液,殺害活人以作祭品,是回報這個恩惠,并讓神圣力量回歸眾神的一種方式。食物和熏香也被當作供品呈現,但人祭(human sacrifice)仍被認為是最重要的祭品。
(15)

1.2.2手勢紋理Gabor特征的構建
對灰度圖像進行Gabor小波變換后可以得到所有像素點對應的Gabor小波系數。而對于一幅手勢灰度圖像,其中位置較鄰近的像素點所對應的Gabor小波系數相似,可以使用一點的小波系數代替周圍的像素點。如圖6所示,在手勢灰度圖像中選取若干均勻分布的離散像素點,并將灰度圖像劃分為與離散像素點相對應的若干鄰域,劃分數量記為n。在對離散位置像素點進行Gabor小波變換時,濾波器窗口σ的大小與離散位置像素點的鄰域大小相同。在利用式(15)進行卷積運算時,Gabor濾波器不再遍歷整個圖像,而是只與n個離散像素點對應的鄰域進行卷積運算,從而得到離散像素的Gabor小波系數Fi,i∈[1,2,…,n]。提取所有離散位置像素點的Gabor小波系數,即可得到m×n個Gabor小波系數,m為所構建的濾波器個數,并將這些Gabor小波系數作為手勢紋理的Gabor特征。

圖6 離散像素示意圖
本文所選取的Gabor濾波器參數如下:kv=π/4,π/2,φμ=0,π/4,π/2,3π/4,σ與離散點鄰域的大小相同,從而可以得到8個Gabor濾波器,如圖7所示。經過離散像素位置Gabor計算后,最終提取到8×n維的手勢紋理的Gabor特征:
式中:上標對應不同的Gabor濾波器,下標對應所選取的離散位置像素點的標號。

圖7 Gabor濾波器
由于所提取的兩種紋理特征的數量級不同,因此先對提取到的GLCM特征和Gabor特征分別進行歸一化處理,公式如下所示:
(16)
式中:xi為特征向量中的第i個特征值,yi為歸一化后的結果。設α′、β′分別表示歸一化后的GLCM特征和Gabor特征,并將兩者串聯組成本文的手勢紋理特征量γ=[α′,β′],共178維,其中手勢紋理的GLCM特征50維,Gabor特征128維。
本文手勢紋理特征向量中包含兩種不同表征意義的紋理特征量,為了更加有效地進行手勢的分類與識別,本文利用機器學習理論中的稀疏自動編碼器與softmax分類器組建深度堆棧自編碼網絡進行手勢識別。深度堆棧自編碼網絡共四層,分別為輸入層、兩層稀疏編碼器以及softmax分類器, 如圖8所示,圖中+1節點為該層的偏置項。深度堆棧自編碼網絡的層數和節點數遠遠多于傳統神經網絡,通過采用逐層訓練的預訓練方法,加快了網絡的收斂速度并避免陷入局部最優解,使其可以通過輸入特征數據形成具有更加抽象、高級的特征,從而發現輸入數據的分布式特征表征,到達有效學習輸入特征數據的目的。其中稀疏自動編碼器為3 層神經元結構,輸入層的節點數與輸出層節點數相等,隱含層節點數少于輸入層的節點數,如圖9(a)所示,其通過學習一個恒等函數,使輸出層的目標值接近于輸入層的輸入值,從而獲得輸入特征數據的相關性和壓縮表示。而softmax分類器則利用softmax回歸模型將經過兩層稀疏自動編碼處理的輸入特征數據進行分類,從而完成本文紋理特征的識別分類。
本文網絡的數據傳遞過程如下,首先將提取的特征數據輸入第一層稀疏自動編碼器,可以得到輸入數據在FeatureI層的特征表征數據,如圖9(a)所示;然后將FeatureI層的特征表征數據作為第二層稀疏自動編碼器的輸入,可以得到FeatureII層的特征表征數據,如圖9(b)所示;最后將FeatureII層的特征表征數據作為softmax分類器的輸入,如圖9(c)所示,從而完成網絡的數據傳遞。

圖8 深度堆棧自編碼網絡結構

(a) 第一層編碼器

(b) 第二層編碼器

(c) softmax分類器圖9 網絡數據的傳遞過程
本文利用逐層訓練的方法對深度堆棧自編碼網絡進行預訓練,過程如下:首先輸入手勢紋理特征向量訓練網絡中的第一層稀疏自動編碼器,當訓練完成后可以得到FeatureI層的一階特征數據;其次輸入該一階特征數據訓練第二層稀疏自動編碼器,當訓練完成后可以得到FeatureII層的二階特征數據;然后輸入該二階特征數據訓練softmax分類器,從而完成網絡的預訓練過程。當所有層訓練完畢,對整體網絡進行微調,從而完成對深度堆棧自編碼網絡的訓練。通過微調可以大幅提升網絡的性能表現,首先將網絡的所有層視為一個模型,在每一次迭代中優化整體網絡中所有的連接權重以及偏值項。
為驗證本文手勢方法的有效性,利用手勢樣本提取特征進行實驗。本文數據庫包含15種手勢,每種手勢200幅圖像,如圖10所示,并從1到15進行編號。其中從本文數據庫中挑選800個手勢圖像作為訓練數據,1 200個作為識別數據。


圖10 本文手勢種類
圖11為本文、文獻[7]以及文獻[13]的實驗結果。圖12為將數據庫中的樣本分別旋轉-20°、-10°、10°、20°后本文、文獻[7]以及文獻[13]的實驗結果。圖13為將數據庫中的樣本分別縮放0.5、0.75、1.25、1.5倍后本文、文獻[7]以及文獻[13]的實驗結果。圖中橫坐標為手勢序號,縱坐標為相應的序號的識別率。為驗證識別率的穩定性,采用各個手勢識別率的標準差作為參考,手勢識別實驗結果的對比如表1所示。

圖11 手勢識別結果

(a) 旋轉-20度

(b) 旋轉-10度

(c) 旋轉10度

(d) 旋轉20度圖12 旋轉后手勢識別結果

(a) 縮放0.5倍

(b) 縮放0.75倍

(c) 縮放1.25倍

(d) 縮放1.5倍圖13 縮放后手勢識別結果

圖像類別參數類型手勢識別方法本文文獻[7]文獻[13]原始圖像平均識別率97.4%95.8%94.5%識別率標準差0.590.650.88旋轉-20°處理平均識別率96.8%95.1%94.4%識別率標準差0.570.790.84旋轉-10°處理平均識別率96.9%95.7%94.9%識別率標準差0.550.730.86旋轉10°處理平均識別率97.1%96.1%94.7%識別率標準差0.590.700.79旋轉20°處理平均識別率96.8%95.5%95.1%識別率標準差0.611.070.85縮放0.5處理平均識別率97.0%95.7%95.3%識別率標準差0.650.860.72縮放0.75處理平均識別率96.8%95.5%94.8%識別率標準差0.600.740.90縮放1.25處理平均識別率97.1%95.7%94.3%識別率標準差0.610.940.76縮放1.5處理平均識別率96.9%95.6%94.0%識別率標準差0.540.820.93
從上述對比實驗的結果可知,本文方法的平均識別率高于文獻[7]以及文獻[13]的方法,且識別率的標準差最小。在不同旋轉角度下以及縮放尺度下,依然保持較高的識別率,對于所有手勢種類而言十分穩定,具有良好的旋轉不變性以及縮放不變性,從而也驗證了本文手勢識別方法的穩定性和準確性。
本文利用手勢灰度圖像的紋理含有豐富的手勢類別信息的特點,提出一種基于共生矩陣和Gabor小波變換的手勢紋理特征提取方法。首先,構建多方向共生矩陣提取手勢紋理的GLCM特征;其次,通過在手勢灰度圖像的Gabor小波變換提取手勢紋理的Gabor特征;然后通過歸一化處理將兩種特征串聯構建手勢紋理特征,并利用稀疏自動編碼器和softmax分類組成的深度堆棧自編碼網絡進行手勢識別。實驗表明,本文方法有效可行,對15種手勢的平均識別率為97.4%。但是本文的特征提取方法對手勢圖像中紋理信息的利用仍然不夠充分,還有待提升。因此下一步工作是優化本文的特征提取方法,使其能夠最大程度地利用手勢紋理信息,從而進一步提高識別的準確率以及對各種類型的手勢圖像的適應性。