袁 帥,韓曼菲,張莉莉,呂佳琪,張 鳳
(沈陽建筑大學(xué) 信息與控制工程學(xué)院,沈陽 110168)
手勢識別[1]作為人機(jī)交互技術(shù)的一種重要方法已經(jīng)在電子產(chǎn)品和智能設(shè)備中得到廣泛關(guān)注與深入研究.例如聾啞人的手語翻譯[2],手勢控制的智能無人機(jī),保時捷MissionE手勢識別系統(tǒng)等已經(jīng)有實際應(yīng)用.手勢識別的早期設(shè)備數(shù)據(jù)手套[3]因硬件設(shè)備造價昂貴,使用復(fù)雜,很難實現(xiàn).目前基于深度學(xué)習(xí)的計算機(jī)視覺主流方法存在著泛化能力不強(qiáng)、結(jié)構(gòu)過于復(fù)雜等不足,導(dǎo)致檢測時間過長、精度不高等問題.因此,深入研究基于深度學(xué)習(xí)的手勢識別方法對人機(jī)交互技術(shù)發(fā)展具有重要意義.
手勢識別算法在傳統(tǒng)方法方面通常依賴硬件設(shè)備或者基于視覺方法進(jìn)行識別.Jayashree R.Pansare等[4]提出采用網(wǎng)絡(luò)攝像機(jī)的實時手勢識別,通過連通域提取和標(biāo)記手勢特征,能夠可靠地識別單手手勢,但在復(fù)雜背景下識別精度不高.因此,為了減少背景因素對于檢測結(jié)果的影響,Singha J等[5]采用基于視覺的手勢動態(tài)識別系統(tǒng),該系統(tǒng)采用改良的Kanade-Lucas-Tomasi特征跟蹤器用來跟蹤手進(jìn)而選擇最優(yōu)特征,確定手勢區(qū)域,該方法減少了背景的影響,并且提高了識別精度,但是訓(xùn)練時間較長.為解決訓(xùn)練時間較長的問題,潘志庚等[6]提出了基于Kinect和膚色檢測算法結(jié)合的手勢識別系統(tǒng),然后使用改進(jìn)的凸分解算法和骨架匹配算法,算法效率有所提升,硬件設(shè)備影響較大.任彧等[7]提出將梯度方向直方圖與支持向量機(jī)結(jié)合進(jìn)行手勢識別,減小了環(huán)境對識別任務(wù)的影響.并且譚臺哲等[8]采用深度信息與膚色信息結(jié)合的方法,也減少了硬件設(shè)備的影響,并且具有更高的魯棒性.此外,James Rwigema等[9]提出的一種差分進(jìn)化方法來優(yōu)化參數(shù),訓(xùn)練速度與之前相比明顯提高,但精度有所下降.以上通過自行設(shè)計建模方法進(jìn)行手勢識別的一系列方法,沒有能夠挖掘手勢的深度特征,不能深度檢測手勢的深層信息,所以以上基于傳統(tǒng)模型的識別方法有著許多的弊端.
隨著近年來深度學(xué)習(xí)的發(fā)展,深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)算法得到迅速發(fā)展,并且廣泛的應(yīng)用,不少學(xué)者開始將深度卷積網(wǎng)絡(luò)應(yīng)用在手勢識別的研究中.Alani A A等[10]提出一種自適應(yīng)深度卷積網(wǎng)絡(luò)的手勢識別系統(tǒng),來解決模型過擬合問題,提高了手勢識別的性能但是訓(xùn)練時間較長.Bo Liao等[11]提出雙通道CNN來融合顏色信息和深度信息,利用雙通道的網(wǎng)絡(luò)結(jié)構(gòu)提高識別精度,并且通過深度信息對圖像進(jìn)行分割,以消除復(fù)雜背景和光照變化的影響.以上方法都存在網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,系統(tǒng)參數(shù)數(shù)量過多,導(dǎo)致學(xué)習(xí)時間過長的問題,因此,Muneer Al-Hammadi等[12]提出了基于三維CNN卷積神經(jīng)網(wǎng)絡(luò),該網(wǎng)絡(luò)利用轉(zhuǎn)移學(xué)習(xí)進(jìn)行手勢識別.另外,Rubin Bose S等[13]提出基于faster rcnn與Inception V_2結(jié)合的手勢識別系統(tǒng),獲得了較好的查準(zhǔn)率和召回率,較好地解決了進(jìn)行識別任務(wù)時所用時間較長的問題.Sruthi C J等[14]提出了基于視覺的印度手語自主識別系統(tǒng)深度學(xué)習(xí)體系結(jié)構(gòu),提高了識別性能,但泛化能力不強(qiáng).隨著遞歸網(wǎng)絡(luò)的發(fā)展,許多學(xué)者將其引入識別任務(wù)中.Lu Dongwei等[15]提出了利用CNN與時間遞歸神經(jīng)網(wǎng)絡(luò)結(jié)合構(gòu)造的手勢識別模型,該模型相對于一般的CNN有著更好的性能,并且泛化能力較強(qiáng).Ji-Hae Kim等[16]提出了基于深度卷積和遞歸神經(jīng)網(wǎng)絡(luò)的手勢識別算法,利用了4個卷積層處理數(shù)據(jù),通過遞歸神經(jīng)網(wǎng)絡(luò)進(jìn)行手勢分類,但是由于神經(jīng)元個數(shù)較多導(dǎo)致學(xué)習(xí)時間過長,收斂速度較慢.另外,吳曉鳳等[17]采用Faster R-CNN進(jìn)行手勢識別,為適應(yīng)不同的手勢類別,先修改Faster R-CNN網(wǎng)絡(luò)中的參數(shù),再使用擾動交疊率算法,使訓(xùn)練過程中的對于數(shù)據(jù)過于嚴(yán)格的現(xiàn)象不再發(fā)生.Chi D等[18]提出了采用多卷積神經(jīng)結(jié)構(gòu)的手勢識別系統(tǒng),利用SSD結(jié)構(gòu)和神經(jīng)網(wǎng)絡(luò)提取關(guān)鍵點特征,該方法在復(fù)雜環(huán)境下有較好魯棒性,但是也存在收斂速度較慢的問題.為解決模型收斂速度的問題,Redmon J[19]等提出了YOLOV3算法,該算法很好的平衡了準(zhǔn)確度與速度這兩項指標(biāo),雖然該算法的一些表現(xiàn)良好,但是在手勢檢測領(lǐng)域還有待提高,例如相對小目標(biāo)的手勢圖像存在著空間位置、尺寸范圍變化影響檢測效果等問題.
針對上述方法存在的諸如速度較慢、檢測精度易受背景圖像影響等問題,本文提出基于改進(jìn)YOLOV3網(wǎng)絡(luò)與貝葉斯分類器結(jié)合的手勢識別模型.采用空間變換網(wǎng)絡(luò)改進(jìn)YOLOV3網(wǎng)絡(luò)來對手勢特征進(jìn)行深層次提取,然后通過結(jié)合主成分分析(Principal Component Analysis,PCA)網(wǎng)絡(luò)與貝葉斯分類器對特征維數(shù)進(jìn)行降維并分類.最后本文在標(biāo)準(zhǔn)數(shù)據(jù)集與自制數(shù)據(jù)集上進(jìn)行測試,驗證了本算法的有效性.本算法增強(qiáng)了特征提取能力與特征分類的準(zhǔn)確度,提升了目前手勢識別方法檢測效果.
YOLOV3網(wǎng)絡(luò)的主要思想是將輸入圖像預(yù)處理至416×416大小,然后分成13×13個網(wǎng)格,如果ground truth中某個目標(biāo)的中心坐標(biāo)落在某個網(wǎng)格中,則由該網(wǎng)格預(yù)測目標(biāo),其中每個網(wǎng)格都會預(yù)測3個邊界框.
首先通過特征提取網(wǎng)絡(luò)Darknet53對輸入圖像進(jìn)行特征提取,其中經(jīng)過5次下采樣,并且采用殘差結(jié)構(gòu),目的是使網(wǎng)絡(luò)結(jié)構(gòu)在很深的情況下,仍然能夠收斂并且繼續(xù)訓(xùn)練下去,得到大小一定的特征圖,具體檢測方法是先對13×13的特征圖進(jìn)行卷積預(yù)測,得到第1個尺度下的檢測結(jié)果;然后將13×13的特征圖上采樣得到 26×26 特征圖,與網(wǎng)絡(luò)下采樣生成的 26×26特征圖進(jìn)行特征融合后進(jìn)行卷積預(yù)測,得到第2個尺度下的結(jié)果;同理得到第3個尺度下的結(jié)果.每個尺度的特征圖負(fù)責(zé)預(yù)測不同大小的目標(biāo).每個特征圖對應(yīng)3種大小不同的anchor負(fù)責(zé)預(yù)測目標(biāo).將3次檢測結(jié)果進(jìn)行非極大值抑制(Non Maximum Suppression,NMS)得到最終結(jié)果.
卷積神經(jīng)網(wǎng)絡(luò)[20]由于最大池化操作,可在一定程度上實現(xiàn)平移不變形.但是當(dāng)圖像發(fā)生一定程度尺寸、角度和規(guī)模的變化時,會對最終識別結(jié)果產(chǎn)生影響.所以針對輸入數(shù)據(jù)部分空間變化特性不敏感的問題,本文提出利用空間變換網(wǎng)絡(luò)[21](Spatial Transformer Networks,STN)對輸入圖像進(jìn)行空間變換操作,該網(wǎng)絡(luò)能夠依據(jù)自身的較強(qiáng)的空間不變性來降低輸入數(shù)據(jù)在空間多樣性上受到的影響,提高算法模型的識別檢測和提取特征的能力.STN的輸入特征圖為U,輸出特征圖為V,其由定位網(wǎng)絡(luò)(Localisation Network),網(wǎng)絡(luò)生成器(Grid generator)和采樣器(Sampler)3部分構(gòu)成,網(wǎng)絡(luò)結(jié)構(gòu)圖如圖1所示.
圖1 STN網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.1 STN network structure diagram
1)定位網(wǎng)絡(luò)的目標(biāo)是生成學(xué)習(xí)空間變換參數(shù)θ.輸入特征圖維度為U∈RH×W×C,其中H為特征圖的長,W為寬,C為通道數(shù).通過卷積與全連接回歸操作得到空間變換參數(shù)θ=floc(U),其中floc()代表定位網(wǎng)絡(luò).
2)網(wǎng)絡(luò)生成器利用仿射變換將輸入特征圖進(jìn)行對應(yīng)的坐標(biāo)變換.坐標(biāo)轉(zhuǎn)換的計算公式如式(1)所示:
(1)
3)采樣器利用采樣網(wǎng)格和輸入特征圖同時作為輸入產(chǎn)生輸出,得到特征圖經(jīng)過變換之后的結(jié)果.由于在第2步計算出了V中每個點對應(yīng)到U的坐標(biāo)點,在這一步就可以直接根據(jù)V的坐標(biāo)點取得對應(yīng)到U中坐標(biāo)點的像素值來進(jìn)行填充,而不需要經(jīng)過矩陣運算.此時計算出來的坐標(biāo)可能是小數(shù),使用雙線性插值.輸出的表達(dá)式如式(2)所示:
(2)
樸素貝葉斯分類器[22]是以貝葉斯理論為基礎(chǔ)的一種分類方法.該分類方法是基于樣本的先驗概率預(yù)測樣本屬于某一類別的概率,并選擇其中的最大概率作為最終預(yù)測類別.具體的分類過程為:假設(shè)各個特征條件是獨立的,根據(jù)給定的訓(xùn)練數(shù)據(jù)集,計算聯(lián)合概率分布,用來生成分類器,然后根據(jù)訓(xùn)練生成的分類器,對輸入的樣本進(jìn)行分類.
假設(shè)x=(a1,a2,…,am)為一個待分類項,其中每個a為x的一個特征屬性,類別集合為C={y1,y2,…,yn}.現(xiàn)對樣本進(jìn)行分類,即計算P(y1|x),P(y2|x),…,P(yn|x).首先統(tǒng)計各類別下各個特征屬性的條件概率,即P(a1|y1),P(a2|y1),…,P(am|y1);然后由于各個特征屬性都是獨立的,則根據(jù)貝葉斯定理:
(3)
其中分母對于所有類別都為常數(shù),都是相同的,又因各特征屬性是條件獨立的,所以只需將分子最大化,則式(3)可寫成式(4),選取最大的后驗概率P(yi|x),作為待分類項x的類別.
(4)
最終選取最大的后驗概率P(yi|x),作為待分類項x的類別.
基于改進(jìn)的YOLOV3網(wǎng)絡(luò)與貝葉斯分類器的手勢識別方法的主要思想是先利用STN對輸入圖像進(jìn)行特征提取與圖像矯正,以此加強(qiáng)模型的特征提取能力和空間變換能力;然后通過Darknet-53網(wǎng)絡(luò)中的一系列卷積與殘差交替結(jié)構(gòu)對輸入數(shù)據(jù)進(jìn)行下采樣與特征提取操作,該部分將得到13×13、26×26和52×52這3種不同尺度的特征圖;接著通過進(jìn)一步的上采樣與張量拼接等操作進(jìn)行特征提取,最終輸出經(jīng)過網(wǎng)絡(luò)提取出的手勢特征.然后進(jìn)入特征分類部分,由于經(jīng)過神經(jīng)網(wǎng)絡(luò)提取出的手勢特征維數(shù)特別多,影響識別效率,所以本文中先利用PCA進(jìn)行降維,來減少特征的維數(shù);然后融合貝葉斯分類器,對經(jīng)過降維的特征進(jìn)行分類,輸出層有0-9共計10個類別,最終輸出手勢的分類類別.本文手勢識別系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)圖如圖2所示.
圖2 STN結(jié)合YOLOV3的手勢識別系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.2 STN combined with YOLOV3 gesture recognition system network structure diagram
手勢相對于整張圖像來說屬于小目標(biāo),并且存在手勢圖像存在扭曲、拉伸或在圖像中的位置差異等問題,將會影響最終的檢測結(jié)果.因此,為了減小以上問題對于檢測精度的不良影響,本文在YOLOV3網(wǎng)絡(luò)框架的基礎(chǔ)上結(jié)合了STN網(wǎng)絡(luò),該網(wǎng)絡(luò)可以對數(shù)據(jù)進(jìn)行空間變換操作,整合以后的結(jié)構(gòu)仍舊可以進(jìn)行端到端的訓(xùn)練.STN能自動獲取感興趣區(qū)域,因此通過卷積層與池化層交替設(shè)置來提取空間變換特征信息,然后通過全連接層輸出學(xué)習(xí)得到的仿射變換矩陣,在測試樣本上通過仿射變換進(jìn)行空間變換,最后得到優(yōu)化后的圖像.優(yōu)化后的輸入圖像能夠?qū)⑿枰獧z測的關(guān)鍵區(qū)域即手勢區(qū)域盡量分布到圖像中間,以此來減少對檢測結(jié)果產(chǎn)生的影響.通過STN與網(wǎng)絡(luò)的結(jié)合,不但對圖像進(jìn)行自動校正,手勢的空間位置,還通過仿射變換進(jìn)一步對更高層次的手勢特征進(jìn)行處理,大大增加了網(wǎng)絡(luò)的處理精度,并且能夠增強(qiáng)算法的空間變換能力與特征提取能力.
在高維數(shù)據(jù)的特征向量中,手勢特征具有信息冗余的缺點.因此,需要采用降維去除高維數(shù)據(jù)中的冗余特征,同時將重要信息保留在降維之后的特征向量中.本文采用PCA降維,用來降低深度卷積神經(jīng)網(wǎng)絡(luò)特征的維數(shù),降維能夠減少數(shù)據(jù)在訓(xùn)練時所需的存儲空間,能夠訓(xùn)練算法使其速度加快,并且去除數(shù)據(jù)中的冗余特征和噪聲.在應(yīng)用貝葉斯分類器之前,根據(jù)零均值和單位方差對手勢特征進(jìn)行歸一化處理,然后采用貝葉斯分類器進(jìn)行分類.對于給定的圖像,貝葉斯分類器能夠在很多類別中找到屬于該類的最大后驗概率,從而使測試手勢圖像能夠被正確地分類.
經(jīng)過降維之后需要解決手勢的識別分類問題,降維之后的特征數(shù)據(jù)明顯減少,大大減少了運算量,并且本文手勢識別屬于分類問題,本文將融合貝葉斯分類器對手勢進(jìn)行分類.
利用貝葉斯公式對提取出的手勢特征求出最大后驗概率來進(jìn)行手勢的分類.手勢特征的待分類項為X(x1,x2,…,xm),手勢的類別集合為(y1,y2,…,yn),先計算在訓(xùn)練集中每個手勢類別的條件概率如式(5)所示,再求解手勢屬性屬于不同類別的后驗概率如式(6)所示,最后將該手勢歸類為具有最大后驗概率的手勢類別.
P(X|yi)=P(x1,x2,…,xm|yi)
(5)
(6)
實驗主要配置:CPU為Intel(R) Xeon(R) CPU E5-2650 v3,GPU為AMD Radeon HD 7000 series,操作系統(tǒng)為Windows10,深度學(xué)習(xí)框架為TensorFlow.使用標(biāo)準(zhǔn)數(shù)據(jù)集與自制數(shù)據(jù)集進(jìn)行對比實驗,用來驗證改進(jìn)方法的有效性.
實驗采用的數(shù)據(jù)集分為兩部分,一部分是以美國標(biāo)準(zhǔn)手語0-9為標(biāo)準(zhǔn)的10種手勢組成的數(shù)據(jù)集,如圖3所示;另一部分是自制數(shù)據(jù)集,包含采用計算機(jī)攝像頭進(jìn)行采集的圖像,并且運用圖像標(biāo)記軟件labelImg對圖像進(jìn)行標(biāo)記,如圖4所示,均采用上下左右不同手勢角度及不同光照強(qiáng)度的手勢.每種手勢包含314個樣本,共3140個樣本,隨機(jī)選取其中90%的數(shù)據(jù)作為訓(xùn)練集,10%的數(shù)據(jù)作為測試集,測試集圖片一共有314張.
圖3 標(biāo)準(zhǔn)手勢數(shù)據(jù)集示例Fig.3 Samples of standard hand gesture dataset
圖4 自制手勢數(shù)據(jù)集示例Fig.4 Samples of self-made hand gesture dataset
為了更準(zhǔn)確比較本文算法的檢測性能,現(xiàn)采用以下性能指標(biāo)來衡量算法性能:
1)平均精度AP(average precision):AP是針對單一類別的精度,表示為:
(7)
(8)
2)平均檢測精度均值mAP(mean Average Precision):mAP為每一個類別的AP的均值,計算公式如式(9)所示,其中Q為識別目標(biāo)的類別數(shù).
(9)
在YOLOV3網(wǎng)絡(luò)進(jìn)行多尺度檢測時,對每一個尺度都產(chǎn)生3個邊框的預(yù)測,將會導(dǎo)致同一檢測目標(biāo)被重復(fù)檢測,產(chǎn)生重疊的檢測框,對檢測結(jié)果造成一定的影響,為避免這樣的問題,采用非極大抑制的方法對檢測結(jié)果進(jìn)行處理來得到最終的檢測結(jié)果.現(xiàn)選擇不同的非極大抑制閾值(NMS thresh)對原YOLOV3和改進(jìn)YOLOV3模型在測試集上進(jìn)行測試.測試結(jié)果如表1所示.
表1 不同NMS閾值的平均檢測精度均值Table 1 Mean average precision of different NMS thresholds
如表1所示,在NMS閾值為0.5時,原YOLOV3的mAP為93.99%,改進(jìn)YOLOV3的mAP為96.73%,改進(jìn)模型相比原模型的mAP提高了2.74%,并且總體上改進(jìn)模型的mAP比原模型都要高.因此,改進(jìn)模型的檢測效果更好,并且選擇NMS thresh為0.5作為改進(jìn)模型的參數(shù),具有更好的檢測精度.
將原YOLOV3和改進(jìn)YOLOV3模型在測試集上對不同的手勢類別class 0-class 9進(jìn)行檢測結(jié)果如表2所示.原模型的AP值浮動較大,且精確度不高;改進(jìn)模型的AP值較穩(wěn)定,且均高于95%,相比原模型有著較大的改進(jìn).圖5中橫軸為手勢類別,縱軸為AP值,將兩模型進(jìn)行柱狀圖對比,更形象地顯示出了不同手勢類別在測試集上的檢測結(jié)果.
圖5 不同手勢類別在測試集上的檢測結(jié)果Fig.5 Histogram of the detection result of different hand gesture categories on the test set
表2 不同手勢類別在測試集上的檢測結(jié)果Table 2 Detection result of different hand gesture categories on the test set
YOLOV3與改進(jìn)YOLOV3網(wǎng)絡(luò)的準(zhǔn)確率指標(biāo)對比曲線如圖6所示.隨著迭代次數(shù)的增加準(zhǔn)確率逐漸提高,經(jīng)過大約30000次迭代后,準(zhǔn)確率變化趨于穩(wěn)定,此時網(wǎng)絡(luò)已經(jīng)達(dá)到收斂狀態(tài).并且改進(jìn)網(wǎng)絡(luò)的準(zhǔn)確率明顯優(yōu)于原網(wǎng)絡(luò),證實了改進(jìn)算法的有效性.
圖6 迭代次數(shù)與準(zhǔn)確率關(guān)系曲線Fig.6 Contrast curve between the YOLOV3 algorithm and the improved algorithm
由表3可知,采用傳統(tǒng)方法HOG與SVM相結(jié)合的方法,識別準(zhǔn)確率較低;采用深度學(xué)習(xí)中的Faster RCNN方法得到的結(jié)果雖然相比傳統(tǒng)方法有著一些提升,但是結(jié)果并沒有本文提出的方法好;并且對比改進(jìn)的YOLOV3模型比原YOLOV3模型提高了2.74個百分點,由于改進(jìn)模型中貝葉斯分類器方面的改進(jìn),大大減少了計算量,加快了檢測速率,相比原模型檢測時間減少了3.1%.
表3 改進(jìn)模型與原模型性能對比Table 3 Performance comparison between the improved algorithm and the original algorithm
本文提出一種改進(jìn)的YOLOV3手勢識別網(wǎng)絡(luò),能夠更快更準(zhǔn)確地識別出手勢目標(biāo).本文工作首先融入空間變換網(wǎng)絡(luò)對訓(xùn)練數(shù)據(jù)進(jìn)行空間校正與初步特征提取,降低了數(shù)據(jù)在空間多樣性上受到的影響;使用YOLOV3網(wǎng)絡(luò)進(jìn)一步提取特征;然后采用PCA降維技術(shù)對提取出的特征向量中冗余特征進(jìn)行降維操作,隨后采用貝葉斯分類器對手勢類別進(jìn)行判定,提高了網(wǎng)絡(luò)的檢測效率.本文算法在保持網(wǎng)絡(luò)深度特征的同時減少了運算量,控制了網(wǎng)絡(luò)的參數(shù)數(shù)量.最后在公開數(shù)據(jù)集與自制數(shù)據(jù)集上進(jìn)行對比實驗,實驗結(jié)果表明本文改進(jìn)算法精度明顯提高,檢測時間有所縮減,證明了提出算法的有效性.