胡宗承,周亞同,史寶軍,何 昊
(1.河北工業大學 電子信息工程學院,天津 300401;2.河北工業大學 機械工程學院,天津 300401)
手勢識別是人機交互的一個重要研究方向,在體感游戲、智能家居等場景有著廣泛應用。LIAN[1]及YANG 等[2]利用穿戴設備識別簡單手勢,但穿戴設備使用不便且難以推廣。基于視覺的手勢識別方法,由于其靈活便捷的優勢成為研究熱點。在深度學習成為研究熱點之前,基于視覺的手勢識別的重大突破多是由于使用了人工特征提取方法,如方向梯度直方圖[3-5]、SIFT[6]等。對特征分類多采用支持向量機(Support Vector Machine,SVM),如文獻[7]提出一種基于RGB-D 數據的手勢識別方法,通過分割手部區域提取手勢特征,進而使用SVM 進行分類。TARVEKAR 等[8]提出一種用于非接觸式的手勢識別系統,該系統在多種顏色空間中檢測膚色信息,應用皮膚閾值從分割圖像中分割手部區域,從中提取顏色和邊緣特征,并利用SVM 分類器進行手勢識別。文獻[9]提出一種基于梯度方向直方圖與局部二值模式融合的手勢識別方法,利用主成分分析對梯度方向直方圖特征描述算法進行降維,將降維后的數據與局部二值模式特征融合,最后利用SVM 實現靜態手勢識別。
隨著深度學習的發展,卷積神經網絡逐漸被應用于各種領域。文獻[10]通過Faster RCNN 深度網絡模型進行手勢識別,能夠在識別手勢的同時進行手勢檢測。ZHANG 等[11]采用改進的YOLOV3 算法對靜態手勢進行識別,并綜合使用Kinect 設備采集的4 種信息的優勢,利用K-Means 聚類算法對YOLOV3 候選框參數進行優化,以提高手勢識別精度。ZHOU 等[12]基于DSSD 算法提出一種靜態手勢識別算法,DSSD 算法中的先驗框寬高比并非手動設定,而是使用K-Means 聚類算法和手肘法共同決定先驗框寬高比,同時還利用遷移學習解決數據量小的問題。CHAUDHARY 等[13]提出一個用于光不變手勢識別系統的神經網絡,利用方向直方圖提取手勢特征向量并對6 類手勢分類,結果表明,該網絡在極端光照強度變化環境下的總體精度達到92.86%。ALNUJAIM 等[14]利用手勢對天線阻抗產生的變化進行分類,并將采集阻抗轉化為光譜圖,在采集時將信號轉變為圖像,利用卷積神經網絡進行分類。
針對現有神經網絡模型對手勢特征表征不足的問題,本文提出一種結合注意力和特征融合的靜態手勢識別算法。引入注意力機制對輸入特征圖進行選擇性輸入,并通過特征融合將高級特征經上采樣與低級特征相結合,增強特征表征能力,提高手勢識別的分類精度。
注意力機制研究源于19 世紀的實驗室心理學,Google DeepMind 團隊提出注意力機制并將其用在圖片分類中[15]。注意力機制的本質是對輸入數據特定選擇,使網絡模型更加關注輸入數據中的重要信息,抑制非重要信息。
WANG 等[16]提出殘差注意力網絡,殘差學習機制由多個注意力模塊堆疊而成,注意力模塊內部采用自底向上、自頂向下結構與堆疊的沙漏網絡,能夠快速收集圖像全局信息,并將全局信息與原始特征圖相結合,但存在計算量大的問題。HU 等[17]提出SENet 網絡,通過壓縮—激勵方法使特征圖通道間建立相互依賴關系,自適應調整特征圖通道權重。WOO 等[18-19]提出BAM 及CBAM 兩種不同注意力模塊,同時考慮空間注意力和通道注意力。BAM 在深度神經網絡下采樣前發揮作用,其中通道注意力模型和空間注意力模型采用并聯方式。CBAM 通道注意力模型和空間注意力模型采用串聯方式相結合,是一個輕量級注意力模塊。WANG 等[20]提出一種有效的通道注意力深度卷積神經網絡ECA,通過借鑒SENet 思想,將全連接層替換為一維卷積,并且采用自適應一維卷積對通道進行特征提取,聯合相鄰通道信息,雖然實驗取得不錯結果,但沒有引入特征圖空間關系。WU 等[21]將多通道注意力機制用于人臉替換的鑒別任務中,在多通道注意力中融合了全局注意力和局部注意力。LU 等[22]提出一種特征圖注意力機制用于超分辨率圖像重建,并獲取特征通道間依賴關系,自適應地調整特征圖通道權重。
特征融合多用于目標檢測、圖像分割領域中,通常通過融合多層特征提升檢測和分割能力。LIN等[23]提出目標檢測的特征金字塔網絡,采用具有橫向連接、自頂向下結構將高層語義特征與低層語義特征相結合,提高小目標檢測能力。LIU 等[24]提出路徑聚合網絡(Path Aggregation Network,PANet),采用自底向上的路徑增強方法,以較底層的精確定位信號增強整個特征層,縮短較底層與最上層間的信息路徑,并且提出自適應特征池化,將特征網絡與各特征層連接。CAO 等[25]提出一種基于注意力引導的語義特征金字塔網絡(Attention-guided Context Feature Pynamid Network,ACFPN),利用注意力機制整合不同大規模區域信息。CHEN 等[26]提出基于級聯的多層特征融合策略,將淺層特征圖與深層特征圖按通道維度連接,解決小目標識別效果差的問題。LI 等[27]針對目標尺度不同的問題,采用多尺度融合的思想,構建三分支網絡,然后對低層特征和高層特征進行選擇性融合。
本文算法創新點在于提出了一種新的注意力機制ACAM 及特征圖融合方式CFP。ACAM 綜合特征圖的通道和空間信息,CFP 融合低層和高層特征,有效提高了分類的準確度。除以上兩點外,本文將ACAM、CFP 運用在改進的MobileNetV2[28]上,提出了r-mobilenetv2 算法。
本文提出的注意力模塊ACAM 如圖1 所示。ACAM 由通道注意力模型和空間注意力模型兩部分組成。通道注意力模型采用自適應一維卷積操作,且在通道注意力模型后添加跳躍連接,將通道注意力模型輸出特征圖F1與空間注意力模型輸出特征圖F2線性相加。假設初始輸入特征圖F大小為H×W×C,通過ACAM 中的通道注意力模型可得大小為1×1×C的一維通道注意力特征圖;通過ACAM 中的空間注意力模型可得大小為H×W×1 的二維空間注意力特征圖。

圖1 自適應通道注意力模塊Fig.1 Adaptive convolution attention module
整體注意力過程如式(1)所示:

其中:CA 為通道注意力模型;SA 為空間注意力模型;F為輸入特征圖;F1為經過通道注意力模型處理后的特征圖;F2為經過空間注意力模型處理后的特征圖;F3為整體注意力模型處理后的重建特征圖。
通道注意力模型采用一維卷積對特征圖通道信息處理,根據特征圖通道數動態選擇卷積核大小。通道注意力模型的工作流程如圖2 所示。首先對輸入特征圖進行壓縮,即在空間方向進行壓縮,得到大小為1×1×C的特征圖。然后,根據特征圖通道數C,自適應選擇一維卷積核大小,并根據卷積核大小使用一維卷積對相鄰通道特征進行處理,增加通道間的相關性。再將一維卷積處理后的特征圖通過激活函數進行重建。最后,將一維通道注意力特征圖與輸入特征圖F相乘,輸出為通道注意力輸出特征圖F1。

圖2 通道注意力模型Fig.2 Channel attention model
根據特征圖共享卷積核的原則,可以推斷通道數C與一維卷積核kernel-size:k必然存在某種聯系,即滿足C=?(k)=2(r×k+b)。最基礎假設從簡單的線性映射驗證該函數,即C=r×k+b,但線性映射表達性有限。另一方面由于計算機是二進制,而卷積神經網絡中batch-size、通道維度大多習慣設為2n,故設C=?(k)=2(r×k+b)。采用非線性表示通道數C與一維卷積核k之間關系,相較線性關系有更強的表現型,如式(2)所示:

其中:k為一維卷積核大小;C為輸入特征圖通道數;r、b為超參數,這里分別取r為2,b為1。
空間注意力模型在通道注意力輸出特征圖F1的基礎上進行操作,如圖3 所示。首先沿著通道所在維度方向進行均值化處理,得到大小為H×W×1的特征圖。然后對其進行二維卷積操作,得到的特征圖經激活函數激活后輸出為二維空間注意力特征圖。最后,將二維空間注意力特征圖與通道注意力輸出特征圖F1相乘得到空間注意力輸出特征圖F2。

圖3 空間注意力模型Fig.3 Spatial attention model
本文借鑒特征金字塔的思想,提出分類特征金字塔CFP。CFP 的整體結構如圖4 所示,采用橫向連接、自頂向下與自底向上結合的連接方式。在stage2中高層特征A經上采樣和stage1中低層特征B經一維卷積后得到的特征圖線性相加,得到特征圖G,特征圖G經二維卷積得到特征圖D,特征圖D與高層特征A空間維度匹配后,在通道維度上連接,得到新特征圖E,并送入后序網絡中分類。

圖4 分類特征金字塔Fig.4 Classification feature pyramid
CFP 主 要分 為stage1、stage2、stage33 個部分,分別對應特征提取、上采樣、特征融合3 個方面。在stage1中,采用卷積神經網絡對輸入數據進行特征提取,自底而上的特征圖空間維度依次減半,取最上兩層特征圖A、B作為最終特征融合所需特征圖。stage2應用stage1中最上層高級語義特征A進行上采樣,經上采樣后的特征圖空間尺度變為原來2 倍,與stage1中特征圖B在空間維度上匹配。stage1中特征圖B經過1×1 卷積調整通道數,使其與stage2中特征圖A通道維度相匹配,兩者進行簡單線性相加。stage3將stage2中高分辨率特征圖G經卷積操作使空間維度與低分辨率特征圖A 相匹配,并在通道維度連接。最后將融合特征圖E 送入后序網絡分類。
r-mobilenetv2 在MobileNetV2 基礎上引入ACAM和CFP 的同時,對原網絡結構進行調整。具體為,刪除最后一個輸入尺寸為7×7×160 的Inverted Residuals 模塊,并加入注意力機制ACAM 和特征融合CFP。
MobileNet 系列[28-30]為輕量級網絡,雖然相較其他網絡需要犧牲部分準確度,但在計算量和參數量上有著巨大優勢。在224×224 像素的RGB 圖片上,MobileNetV2 的參數量僅為VGG16 參數量的1.72%,是ResNet-18 參數量的20.63%。故MobileNet系列及變體能夠有效地部署在移動端。本文主要對MobuleNetV2 進行改進。r-mobilenetv2 的網絡結構如表1 所示。其中:當重復次數大于1 時,每組的第一個bottleneck 中卷積步數為表中的值,其他默認卷積步數取1。一組bottleneck 構成一個Inverted Residuals 模塊。

表1 r-mobilenetv2 的網絡結構Table 1 Network structure of r-mobilenetv2
r-mobilenetv2 在 Inverted Residuals 模塊中Strides 等于1 和2 時的共同部分后添加ACAM,最后在兩個Inverted Residuals 模塊中引入CFP。加入ACAM 的位置如圖5 所示。

圖5 ACAM 機制在Inverted Residuals 中的位置Fig.5 Position of ACAM mechanism in Inverted Residuals
本文的實驗硬件環境為Inter?Xeon?CPU E5-2640 v4@ 2.40 GHz,GPU 為一塊顯存為11 GB 的GTX 1080Ti。軟件環境為Ubuntu16.04,Keras2.2.2。使用RMSprop 對網絡進行訓練,初始學習率為0.001,權重衰減系數為1×10-6,batch-size 設為64,若10 個epoch 后測試集準確率沒有提升,學習率將衰減為原來的1/10,若30 個epoch 后測試集準確率沒有提升,則程序停止。
本文在LaRED[31]數據集上進行實驗測評。LaRED 數據集共有27 種基礎手勢,含242 900 張圖片。27 種基礎手勢如圖6 所示,每個基礎手勢取3 個朝向,分別為基礎手勢、基礎手勢繞X 軸旋轉90°、基礎手勢繞X/Y 軸各旋轉90°的手勢。從數據集中選取部分手勢如圖7 所示。

圖6 LaRED 數據集類別Fig.6 Classification of LaRED date set

圖7 LaRED 數據集的部分數據Fig.7 Partial data of LaRED date set
原始數據集是按幀采集的連續序列,相鄰幀圖片近似,故每15 幀取一張圖片,對數據集進行篩選,并只利用數據中的RGB 信息。其中,訓練集含12 955 張圖片,測試集含3 239 張圖片。對于處理好的圖片采取RGB 的方式輸入,去均值后,送到后續網絡中進行分類。
本文首先在不同網絡模型上驗證所提注意力機制的適用性,然后在MobileNetV2 網絡的基礎上添加不同注意力機制,并與本文所提注意力機制進行對比,以綜合驗證ACAM 的有效性。選取網絡ResNet-18[32]、ShuffleNetV2[33]、MobileNetV2 進行對比,實驗結果如表2 所示。

表2 ACAM 在不同網絡模型上的結果對比Table 2 Comparison of ACAM results on different worknet models
從表2 可知,本文所提ACAM 雖然僅引入較少參數,但在不同網絡模型的準確率上均有1個百分點左右的提升,證明了ACAM 的適用性。ACAM 在ResNet-18網絡上的錯誤率降低了1.57個百分點,參數量增加214;在ShuffleNetV2網絡上錯誤率降低0.77個百分點,參數量增加864;在MobileNetV2 網絡上錯誤率降低0.98 個百分點,參數量增加892。
對比3 種不同網絡及加入ACAM 的表現,MobileNetV2 不管從Top1 錯誤率還是參數量上均有明顯優勢。從Top1 錯誤率看,MobileNetV2+ACAM 的Top1 錯誤率比ResNet-18 降低了0.31 個百分點,比ShuffleNetV2+ACAM 降低0.92 個百分點。從參數量上看,MobileNetV2+ACAM 參數量僅為RestNet-18 的20.64%,為ShuffleNetV2+ACAM 的57.18%。綜合以上考慮,選擇在MobileNetV2 基礎上進行實驗。
為驗證ACAM 的有效性,以MobileNetV2 為例,在BAM、CBAM、ECA 上與ACAM 進行對比,實驗結果如表3 所示。由表3 可知,在MobileNetV2 上,不同注意力模型對于手勢識別效果均有貢獻。與MobileNetV2基礎網絡相比,MobileNetV2+BAM 的參數量增加了157 400,在MobileNetV2參數量的基礎上增加了6.81%;MobileNetV2+CBAM 的參數量增加了60 286,在MobileNetV2 參數量的基礎上增加了2.61%;MobileNetV2+ECA 參數量僅增加了59,增加參數量相對MobileNetV2 參數量可忽略不計。本文所提ACAM與MobileNetV2 結合后參數量為2 311 703,與MobileNetV2 的參數量相比增加了892,相當于在MobileNetV2 參數量的基礎上增加3.86×10-4。在不考慮錯誤率情況下,通過引入參數量進行比較,BAM 引入參數量最多,CBAM 次之,ACAM 和ECA 引入參數量相對較少。綜合Top1 錯誤率和模型參數量兩個衡量標準考慮,本文所提ACAM 結果更優。

表3 不同注意力機制在MobileNetV2 網絡上的結果對比Table 3 Comparison of results of different attention mechanisms on MobileNetV2 network
將本文提出的注意力機制與特征融合模塊加入MobileNetV2 中,并對MobileNetV2 進行修改,mobilenetv2 為直接在MobileNetV2 上修改后的網絡,實驗結果如表4 所示,其中“×”表示未添加,“√”表示添加。

表4 ACAM 機制與CFP特征融合模塊對網絡性能的影響Table 4 Influence of ACAM mechanism and CFP feature fusion module on network performance
由表4 可知,在MobileNetV2 基礎上進行刪減后,mobilenetv2 的參數量減少了900 480,相當于MobileNetV2 參數量的38.97%。mobilenetv2 在減少參數量的同時準確率提升,Top1錯誤率減少0.3個百分點,這說明刪減后的網絡更適合手勢識別。在MobileNetV2和mobilenetv2 上添加CFP 和ACAM,添加CFP 后兩種不同的網絡MobileNetV2+CFP 和mobilenetv2+CFP Top1 的錯誤率均降低1 個百分點左右,但參數量大幅上升,相較原基礎網絡,參數量分別增加了58.96%、19.27%。添 加ACAM 后,mobilenetv2+ACAM 相 較MobileNetV2+ACAM Top1 錯誤率更低,在參數量更少的情況下,Top1 錯誤率降低0.53 個百分點。通過上述分析可知,CFP、ACAM 對手勢識別任務有效。將CFP和ACAM 加 入MobileNetV2 和mobilenetv2 中,形 成R-MobileNetV2和r-mobilenetv2。其中R-MobileNetV2以未經刪減的MobileNetV2 為基礎,r-mobilenetv2 以刪減后的MobileNetV2 為基礎。最終R-MobileNetV2 相對MobileNetV2的Top1錯誤率降低了1.26個百分點,參數量相對MobileNetV2增加了59.00%,達到了3 674 263。r-mobilenetv2 相對mobilenetv2 Top1 的錯誤率降低了1.52 個百分點,參數量相對mobilenetv2 增加了11.79%,達到1 682 849;相對R-MobileNetV2 Top1 的錯誤率降低了0.56 個百分點,參數量僅為R-MobileNetV2 的45.80%;相對MobileNetV2 Top1的錯誤率降低了1.82個百分點,達到1.17%,參數量僅為MobileNetV2 的72.83%。以上實驗結果充分驗證了CFP、ACAM 及r-mobilenetv2 的有效性。
此外,在r-mobilenetv2 網絡中,選取測試集數據制作混淆矩陣,結果如圖8 所示。由圖8 可知,r-mobilenetv2 對27 種手勢的預測基本完全正確,在手勢識別中有著優異的表現。

圖8 r-mobilenetv2 算法的混淆矩陣Fig.8 Confusion matrix of r-mobilenetv2 algorithm
為有效提取特征,解決特征表征不足的問題及提高手勢識別精度,本文結合注意力機制和特征融合,提出一種輕量級網絡靜態手勢識別算法r-mobilenetv2。通過結合空間注意力和通道注意力模型,得到一種自適應卷積注意力機制,針對高級語義特征含有的分類信息不完全問題,構建分類特征金字塔,并通過實驗驗證自適應卷積注意力機制及分類特征金字塔的有效性。實驗結果表明,r-mobilenetv2 算法的準確率達98.83%,與MobileNetV2 算法相比,其參數量及Top1 的錯誤率分別降低了27.20%、1.82 個百分點。下一步將從損失函數、卷積方式入手對網絡的適應性及實時性進行改進,提高網絡識別精度及泛化性能。