程淑紅, 程彥龍
(燕山大學 電氣工程學院, 河北 秦皇島 066004)
目前,手勢識別在手語認知、輔助駕駛、電子游戲以及機器控制等領域應用前景廣闊[1,2],隨著深度學習的快速發(fā)展,基于視覺的手勢識別成為人機交互領域重點研究方向之一。手勢識別一般分為手勢分割、手勢特征提取和手勢識別3個步驟[3],手勢分割是從前景和手臂中分離出手部區(qū)域,常見的分割方法是利用膚色特征模型[4],但此類方法對光照變化和復雜背景都十分敏感。為減少光照條件影響,宋曉娜等[5]采用一種基于亮度高斯模型的手部檢測算法,首先在RGB顏色空間建立亮度高斯模型,然后通過閾值方法獲取手部區(qū)域,但由于膚色差異,該方法適用性不強。為減弱類膚色物體干擾,張明達[6]結合膚色模型和人手結構特征,通過檢測指尖個數(shù)、計算手勢輪廓周長面積比提高復雜背景下手勢分割的準確性,但處理時間較長,無法滿足實時性要求。手勢特征提取和識別[7~9]是先提取手勢幾何特征、Haar-like特征、方向梯度直方圖(histogram of oriented gradient,HOG)特征、局部二值模式(local binary patterns,LBP)特征等,然后借助模板匹配和支持向量機(support vector machine,SVM)[10]等方法完成識別,但以上這些手勢特征對手勢細粒度的表征能力較差,對區(qū)分度低的相似手勢識別準確性低,很難滿足應用需求。以上方法雖然能在某種程度上識別簡單手勢,但均存在手勢分割易受光照變化和類膚色物體干擾、手勢特征表達不充分,無法區(qū)分相近手勢和手勢識別實時性差的局限性。為此,本文提出融合批量再標準化和YOLOv3的手勢識別方法,進行端到端手勢識別,識別速度快,識別率較高,并已得到實驗驗證。
手勢識別系統(tǒng)總體流程如圖1所示。先采集手勢圖像并進行樣本預處理,建立標準手勢數(shù)據(jù)庫;使用K均值聚類方法獲得適合訓練集手勢的錨點框;然后使用手勢錨點框 、YOLOv3和批量再標準化進行手勢建模,最后通過遷移學習和微調方法訓練得到手勢識別模型。YOLOv3具有強大的自主學習能力和快速性,在其基礎上訓練手勢識別模型可避免手勢分割和人工設計手勢特征,提高手勢識別速率。批量再標準化可通過等效數(shù)據(jù)規(guī)范化處理提高YOLOv3網絡的泛化能力,提高手勢識別準確性[11]。
圖1 手勢識別算法流程
2.1.1 YOLOv3網絡結構
YOLOv3網絡結構由提取圖片特征的網絡Darknet-53和預測層2部分構成[12,13],可以直接預測手勢的類別及位置,識別速度也可以達到實時性要求。
如圖2所示,Darknet-53網絡作為YOLOv3中提取圖片特征的主要網絡結構,Darknet-53包含一系列1×1、3×3的卷積核,并在每個卷積層后面連接Batch Normalization層和Leaky ReLU層。
圖2 YOLOv3網絡結構
為避免訓練時出現(xiàn)梯度彌散或梯度爆炸,Darknet-53將深度神經網絡分為若干子段,每個子段包含的網絡層數(shù)較淺,然后通過躍層連接使得每個子段對殘差進行訓練,最后達到總體損失最小的目的。Darknet-53能夠提取比手勢幾何特征、HOG特征、Harr特征等表征能力更好的手勢細粒度特征。預測層在13×13,26×26,52×52這3種尺度上對手勢進行預測,每個邊界框負責對3個錨點框進行回歸,選其中1個作為最終預測結果輸出,包括手勢的中心位置,寬高, 置信度和類別。通過在3種尺度上進行預測的方法,有效增強了對不同尺度手勢及被遮擋手勢的檢測效果,并引入Concatenate層連接以強化網絡收斂效果。
2.1.2 手勢邊界框預測與損失函數(shù)
YOLOv3使用K均值維度聚類對手勢訓練樣本邊界框進行聚類,獲取最合適的錨點框尺寸,對不同尺度手勢進行邊界框預測, 通過本文20種標準手勢數(shù)據(jù)聚類出的9個手勢錨點框尺寸為(21×32),(28×62),(31×81),(32×26),(39×64),(48×65),(53×99),(68×67),(92×112),然后按照式(1)對每個手勢邊界框獲取4個坐標值。
(1)
式中:cx和cy為一個網格與手勢圖像左上角的縱橫距離;tx,ty為網絡預測的坐標偏移量;σ為logistic函數(shù),將坐標值縮放到0和1之間;tw和th為尺度縮放因子;pw和ph為網格對應錨點框的寬和高。通過對置信度這項設定閾值過濾掉低分的手勢預測框,然后對留下的預測框通過非極大值抑制輸出最終手勢預測結果。
YOLOv3中使用的損失函數(shù)包括坐標損失、置信度預測損失和類別損失。通過損失函數(shù)可以評估手勢分類模型的穩(wěn)定程度,損失值越小,表明模型越穩(wěn)定,預測結果也更加可靠。本文手勢識別模型的訓練損失函數(shù)如圖3所示,可以看到模型的損失值逐漸降低,最后趨近理想狀態(tài),說明本文手勢識別模型對復雜背景下定義的20種手勢能夠提供穩(wěn)定可靠的識別結果。
圖3 損失函數(shù)變化
YOLOv3網絡在進行訓練時主動學習手勢數(shù)據(jù)特征的分布規(guī)律,如果測試階段所用手勢數(shù)據(jù)與訓練階段的手勢數(shù)據(jù)存在較大偏差會嚴重影響網絡的泛化能力,降低預測階段手勢識別的準確性。批量標準化處理可以減小手勢數(shù)據(jù)間可能存在的較大偏差,然而簡單標準歸一化處理并不能很好體現(xiàn)手勢訓練樣本的數(shù)據(jù)特征分布,反而會削弱YOLOv3網絡的特征表達能力,為此YOLOv3采用的批量規(guī)范化處理[14]如下所示:
(2)
式中:γ、β為尺度因子和平移因子;uB,σB分別為每次mini-batch訓練數(shù)據(jù)的均值和標準差;xi,yi為手勢數(shù)據(jù)輸入輸出特征;k是為避免除數(shù)為0所引入的微小正數(shù)。YOLOv3網絡在訓練階段先記錄每個小批量手勢數(shù)據(jù)的均值和方差,待訓練結束后求得手勢訓練樣本的均值和方差期望作為手勢預測階段執(zhí)行規(guī)范化處理的均值和方差,即在手勢訓練階段和預測階段實際上用了不同的數(shù)據(jù)在進行規(guī)范化處理。然而現(xiàn)實場景中在手勢預測階段有時只需要預測一個或很少的手勢樣本,此時均值與標準差的計算會存在較大偏差。為減小因前后兩個階段手勢數(shù)據(jù)間發(fā)生較大偏差對手勢識別準確性造成的影響,對YOLOv3中的批量規(guī)范化處理進行改進,采用批量再標準化方法進行規(guī)范化處理:
(3)
式中:rmax,dmax為最大允許修正值;σ,u為測試階段均值和標準差估計值。批量再標準化通過引入新的參數(shù)r和d保證了YOLOv3網絡在手勢訓練和測試階段執(zhí)行規(guī)范化處理時數(shù)據(jù)的等效性,從而提高預測階段手勢識別準確性。
復雜背景下的手勢識別要求YOLOv3網絡在訓練階段有豐富的手勢樣本,為此采用數(shù)據(jù)增廣策略對采集的20種手勢進行樣本擴充,建立一個復雜背景下的手勢庫,最終定義的20種標準手勢如圖4所示。所采用樣本擴充方法包括隨機裁剪、水平翻轉、亮度調整和增加椒鹽噪聲處理。
在訓練深層神經網絡時,使用遷移學習和微調方法不僅可以加快網絡收斂[14],而且能夠提升YOLOv3網絡的特征表達能力。訓練手勢識別模型時先使用National University of Singapore(NUS) 手勢數(shù)據(jù)集NUS Hand Posture Dataset II中提供的10類手勢,共2000個手勢樣本,對Darknet-53網絡進行預訓練,然后將訓練好的網絡參數(shù)遷移到我們的基礎網絡中并初始化,獲得遷移模型Darknet-53,之后使用自定義的手勢集,共5000個手勢樣本,經過遷移模型Darknet-53提取手勢細粒度特征,以達到微調網絡參數(shù)適應新任務的目的。
圖4 20種手勢示意
用于實驗的電腦配置:Intel i7 6700K處理器、8G運行內存、GTX 1080 顯卡。軟件在Ubuntu 16.04環(huán)境下運行。
3.2.1 算法的準確性和魯棒性
為便于定量分析,從20種手勢中選取POWER-ON、OFF、SWITCH、READY、SHOW共5種手勢進行測試,通過圖4可以發(fā)現(xiàn)POWER-ON和SHOW代表的手勢區(qū)分特征不明顯,這類手勢之間極容易出現(xiàn)誤識別情況。由6位測試者分別在正常實驗環(huán)境、強光、暗光以及強光和搖蕩的復雜環(huán)境下對每種手勢測試25次,每次測試手勢與相機距離一致,其中對3種復雜環(huán)境下的手勢識別隨機抽幀的效果如圖5所示。
手勢識別效果主要使用識別率和識別速度2個指標評價,其中識別率通過計算測試階段正確識別次數(shù)與測試次數(shù)的比值得到,在4種實驗環(huán)境下單次手勢識別速度0.04 s,識別率如表1所示。
從表1可以看到,正常實驗環(huán)境下平均手勢識別率可以達到97.6%,可以滿足實際應用中手勢識別的準確性要求,由于POWER-ON和SHOW所代表的這兩類手勢的特征十分相似,因而對其識別的準確性較低。在強光、暗光以及強光和搖蕩的實驗環(huán)境下的平均識別率均低于97.6%,可見光照變化和圖像抖動對手勢識別存在嚴重影響,但就整體識別率而言仍可以達到92.3%以上,說明本文手勢識別方法具有較好的魯棒性。
表1 種實驗環(huán)境下的手勢識別準確率
3.2.2 本文手勢識別算法與其它方法的對比
為進一步驗證本文方法的有效性,在正常實驗室環(huán)境下將本文方法與基于HOG特征和SVM分類器[15]、深度學習模型SSD、Fastern-RCNN、YOLOv3的手勢識別方法進行比較,結果如表2所示。
表2 手勢識別方法對比結果
觀察表2可知,通過提取手部HOG特征然后使用SVM進行分類的手勢識別方法,由于提取的HOG特征對手勢特征信息表征不充分,識別率較低,而且識別速率很難滿足對實時性要求高的應用場景,基于深度學習模型Faster-RCNN的手勢識別方法識別率高,但同SSD方法一樣存在實時性差的局限性。
本文方法通過K均值聚類獲得手勢錨點框和批量再標準化方法在YOLOv3基礎上提高了手勢識別的準確性和實時性,能夠滿足手勢應用場景需求。
圖5 3種復雜環(huán)境下的手勢識別隨機抽幀效果
本文在目標檢測模型YOLOv3的基礎上進行手勢識別算法設計,融合批量再標準化方法保證訓練階段和測試階段數(shù)據(jù)處理的等效性,使用K均值聚類方法獲取手勢樣本錨點框,提高了手勢識別的實時性和準確性;建立了一個復雜場景下的手勢數(shù)據(jù)庫,共包含20種單手手勢,可用于手勢識別模型的訓練與測試;通過大量實驗研究了本文方法在正常環(huán)境及強光、暗光、強光和搖蕩的復雜場景下的魯棒性,同時與基于HOG特征和SVM、SSD、Faster-RCNN、YOLOv3的手勢識別方法進行識別率和識別速度對比,驗證了本文方法的優(yōu)越性。