劉馨陽 李成博
摘? 要:針對傳統(tǒng)手勢識別準(zhǔn)確率不高、運算復(fù)雜度高的問題,采用YCbCr膚色分割算法與運動檢測方法結(jié)合,保留手勢圖像;分類、分層手勢圖像識別,即通過手指數(shù)目m可做判據(jù)的,及剩余手勢構(gòu)建手勢模型參數(shù)Ki;通過模板匹配判別,并比較文章方法與傳統(tǒng)Hu不變矩方法的識別效果,該方法可針對預(yù)定義的11種手勢進行快速、準(zhǔn)確的判別,具有較高的準(zhǔn)確性和魯棒性。
關(guān)鍵詞:手勢識別;圖像處理;OpenCV;Hu不變矩;幾何特征;膚色分割
中圖分類號:TP391.4? ? ? ? ? ? ? ? ? ? 文獻標(biāo)識碼:A文章編號:2096-4706(2021)15-0116-03
Abstract: Aiming at the problems of low accuracy and high computational complexity of traditional gesture recognition, combines the YCbCr skin color segmentation algorithm and the motion detection method to retain the gesture image; classification and hierarchical recognition of gesture images, that is, the criterion can be made by the number of fingers m, and the remaining gestures construct the gesture model parameter Ki. The result of template matching is judged, and the recognition effect of the method in this paper and the traditional Hu invariant moment method are compared. This method can quickly and accurately distinguish 11 predefined gestures with high accuracy and robustness.
Keywords: gesture recognition; image processing; OpenCV; Hu invariant moment; geometric features; skin color segmentation
0? 引? 言
近年來,伴隨計算機視覺以及機器學(xué)習(xí)領(lǐng)域的發(fā)展,人機交互已經(jīng)成為人們生活中必不可少的部分,其目的就是實現(xiàn)人與機器自然的交流,相關(guān)的研究包括:指紋、人臉、步態(tài)、手勢等交互技術(shù)研究。其中,手勢具有自然性、便捷性的特點,所以,手勢識別的研究引起了研究者們極大的關(guān)注。
手勢識別已從借助外界設(shè)備的數(shù)據(jù)手套時代發(fā)展到基于機器視覺識別的時代,本文是結(jié)合計算機視覺的手勢識別探究,其基本過程為:(1)手勢分割:將圖像中的手部圖像分離出來;(2)手勢分析:提取手勢特征,進而定量表示該手勢的特性;(3)手勢識別:利用手勢參數(shù)模型識別判定[1]。
其中步驟2中的特征提取對結(jié)果的準(zhǔn)確性起著至關(guān)重要的作用,為提高手勢的識別準(zhǔn)確率,許多學(xué)者從多角度考慮手勢的幾何特征,文獻[3,4]采用圖像的幾何矩和多項式矩描述手勢特征,利用Hu不變矩的旋轉(zhuǎn)不變性,但是存在數(shù)據(jù)量大,計算復(fù)雜的缺點。本文通過手勢圖像幾何參數(shù)建立模型進行手勢識別,減少了計算的復(fù)雜度。
1? 手勢分割
通常圖像的內(nèi)容復(fù)雜,且包含很多無用信息,所以首先要將圖像中的手勢圖像部分分離出來便于后續(xù)分析[2]。手勢分割的方法有很多,本文采用的是基于YCbCr的膚色分割算法與基于運動檢測方法相結(jié)合。
1.1? 膚色檢測
不同人種的膚色在RGB顏色空間和HSV顏色空間中顯示,膚色在前者顏色空間中更為分散[3],將圖像從RGB彩色空間轉(zhuǎn)換到HSV色彩空間采用以下公式:
觀察不同的人種的H值的直方圖可以看出,H值大部分集中于0.045~0.135,據(jù)本文測試結(jié)果,確定膚色閾值為0.04~0.131。按照下式分割得到二值圖像。
1.2? 運動分割
膚色分割僅僅只能將圖像中的膚色部分分離出來,當(dāng)圖像中出現(xiàn)人臉等膚色時,也會和手勢一起被分離出來,為解決上述問題,本文采用以下方法:(1)利用cvAbsDiff()函數(shù)計算累計多幀圖像之間的絕對差;(2)選取它們的適當(dāng)倍數(shù)作為分離的閾值;(3)將上述方法分離得到的二值圖像與膚色分割得到的二值圖像進行與運算,進而得到只有手勢的圖像。
2? 手勢識別
2.1? 手指檢測
手勢圖像中最顯著的就是手指,因此,本文進行了手指的數(shù)目檢測,以初步判定手勢分類,即得到手勢的二值圖像后,進行手指檢測,得到手指的個數(shù)。具體操作步驟如以下所示:(1)將手勢分割后的二值圖像進行尺度歸一化后進行開運算,得到結(jié)構(gòu)元素為半徑為15像素的圓;(2)再利用二值圖像與上述得到的掌心圖像進行差運算,得到只包含手指部分圖像;(3)為去除小區(qū)域聯(lián)通面積及噪聲干擾區(qū)域,對步驟2圖像進行腐蝕運算;(4)連通區(qū)域個數(shù)即為手指個數(shù)。上述方法主要程序為:
import cv2
import numpy as np
in_img=imread(imgSrcPath,1);
resize(in_img,out_img_rsize,dst_img_rsize.size(),0,0,INTER_LINEAR);
kerne=cv2.getStructuringElement(cv2.MORPH_RECT,(15,15));
img_open=cv2.morphologyEx(out_img_rsize,cv2,MORPH_OPEN,kernel);
zhi_img=in_img-img_open;
...
Mat ele=getStructingElement(MORPH_RECT,Size(15,15));
Mat nu_img;
erode(zhi_img,nu_img,ele);
2.2? 特征提取
通過手勢分割及手指數(shù)數(shù)目的檢測,可以區(qū)分僅靠手指數(shù)作為唯一特征的手勢,例如:無手指伸出(握拳狀態(tài))、五個手指全部伸出、只有一個手指伸出的手勢。為能夠判別更多種類的手勢,本文在手勢分割及手指數(shù)目判別的基礎(chǔ)上,提取手勢的幾何參數(shù),進而實現(xiàn)相同手指數(shù)目不同手勢的識別。
提取幾何特征參數(shù)的方法有很多,比如采用Hu特征方法,構(gòu)建有權(quán)重融合的特征距離,將要識別的手勢圖像與特征參數(shù)模型相匹配判定,許多學(xué)者驗證這種方法的準(zhǔn)確度高,但特征參數(shù)多,計算復(fù)雜[4]。
本文提出在檢測手指數(shù)目后,計算指間夾角和手型長寬比,對手勢進一步分類識別。通常,在手勢圖形中手指呈現(xiàn)長條狀,故而采用最小外接矩替代手指,以每個矩形的重點作為手指的質(zhì)點,進而量化了手指相關(guān)參數(shù),如圖1所示,以外接矩形最外側(cè)兩個邊的所在的直線構(gòu)建向量、,兩向量中間的夾角即為指間夾角θ,接著利用外接矩形,構(gòu)造整個手勢的外接矩形,并計算長寬比,即為手型長寬比。
具體識別過程為:首先,通過連通區(qū)域檢測得到手勢圖像中手指個數(shù)m,當(dāng)m=0,1,5時,可以直接判別手勢類別中的手勢1、手勢2、手勢3;接著當(dāng)m=2,3,4時,通過計算指間夾角θ和手形長寬比,進而定義手勢模型參數(shù);最終,通過手勢模型參數(shù),判定剩余手勢類別,即手勢4~11。具體手勢模型構(gòu)建方法流程圖如圖2所示。
本文采用如圖3所示的11種手勢圖像作為識別對象進行實驗驗證,并且依次編號為:手勢1~手勢11,其中根據(jù)手指個數(shù)m的值進行分類,分別為:m=0(手勢1)、m=1(手勢2)、m=2(手勢3、4、5)、m=3(手勢6、7、8)、m=4(手勢9/10)、m=5(手勢11)。實驗中15位研究對象在相同環(huán)境下做出以下11種手勢圖形,每種手勢采集5次,總共825幅手勢圖像。
OpenCV是視覺領(lǐng)域中最有力的研究工具之一,本文借助OpenCV視覺庫進行圖像處理操作[5]。在實驗中,分層分階段實現(xiàn)手勢圖像的判別。首先,計算手指數(shù)目初步分為兩類,即手勢數(shù)m=0,1,5和m=2,3,4,再進一步結(jié)合指間夾角θ和手型長寬比參數(shù),與手勢模型參數(shù),進行最終判決,手勢圖像的特征參數(shù)如表1所示。
3? 實驗對比
通過測試,按照本文的算法進行實驗,在運用膚色分割和運動檢測結(jié)合的方法進行手勢圖像分割后,能夠完全正確的檢測出手指的數(shù)目,故而針對序號為手勢1~手勢3可以達到百分之百的識別率。在剩余手勢類別識別過程中,由于手勢形狀相似,還不能到達完全正確的識別率。但是由于本文先運用手指個數(shù)將手勢進行了初步判別,即使進入到手指個數(shù)m=2,3,4環(huán)節(jié),每種類型下最多不超過3種手勢,進而所計算的數(shù)據(jù)量大大減少。
對比傳統(tǒng)基于前四個矩作為Hu矩特征值的模板匹配法,即特征空間為(φ1,φ2,φ3,φ4),接著定義輸入手勢與模板手勢的特征矩距離DM,找到最小的DM值,其對應(yīng)的手勢類型即為判定結(jié)果。
對比本文方法與傳統(tǒng)的Hu特征方法,前三種手勢,本文可以達到100%,而傳統(tǒng)方法僅能達到97%,剩余9種手勢類別中,使用傳統(tǒng)方法識別,識別率在71%~82%,采用本文方法可以達到89%~100%。
4? 結(jié)? 論
本文對基于OpenCV對手勢圖像的識別方法進行了研究,針對許多學(xué)者提出來的復(fù)雜特征值的提取及運算,結(jié)合簡單手勢識別需求,進行了方法的改進,減少多余運算,識別更加快速、準(zhǔn)確。首先,本文采用基于YCbCr的膚色分割算法與基于運動檢測方法相結(jié)合,將對于背景及誤檢測的膚色背景區(qū)域去除,保留手勢圖像;然后,進行分層手勢圖像識別,即對于通過手指數(shù)目就可以做出唯一判據(jù)的,直接輸出識別結(jié)果,剩余手勢圖形需要構(gòu)建手勢模型,接著,進行模板匹配,進而判別最終結(jié)果。本文設(shè)計的手勢識別方法,可以對上述的11種手勢類型進行快速卻準(zhǔn)確的手勢判定,這種方法能夠滿足一些簡單情境下的需求。
參考文獻:
[1] 陳鑫,劉振國,張穎.基于Kinect的手部分割混合識別技術(shù) [J].電子器件,2021,44(4):965-968.
[2] 李虹飛,胡滿紅.采摘機器人SEMG手勢識別研究——基于RNN循環(huán)神經(jīng)網(wǎng)絡(luò) [J].農(nóng)機化研究,2022,44(5):212-216.
[3] 李東東,張立民,鄧向陽,等.基于多特征融合的動態(tài)手勢識別 [J].計算機應(yīng)用與軟件,2021,38(8):214-219.
[4] 張輝,鄧?yán)^周,周經(jīng)緯,等.基于幾何特征的桌面靜態(tài)手勢識別 [J].計算機工程與設(shè)計,2020,41(10):2977-2981.
[5] 趙健,張冬泉.基于OpenCV的數(shù)字手勢識別算法 [J].計算機應(yīng)用,2013,33(S2):193-196.
作者簡介:劉馨陽(1993.10—),女,漢族,內(nèi)蒙古巴彥淖爾人,助教,碩士研究生,研究方向:圖像處理與模式識別;李成博(1994.02—),男,漢族,寧夏吳忠人,本科,研究方向:圖像處理。
3777500338293