黃 圣, 茅 健
(上海工程技術大學機械與汽車工程學院, 上海 201620)
人機交互系統是人與機器之間進行交流和信息傳遞的橋梁[1]。 手勢是人類有效表達自身想法的主要工具,其從簡單到復雜的不同動作,使之能夠與他人交流。 隨著科學技術的發展和人們對智能設備的應用需求的不斷增加,通過機器識別肢體動作,成為研究熱點之一[2]。
學習時空特征對于人類手勢或動作識別的性能穩定至關重要。 Li 等人[3]提出了一種具有注意力機制技術的三維卷積神經網絡(3D-ConvNets),用于學習時空特征。 該模型在特征的時空學習方面優于簡單的2D-CNN。 Hakim 等人[4]提出使用3DCNN 模型和LSTM 提取23 個手勢的時空特征,在分類階段之后,將有限狀態機(FSM)與3D-CNN、LSTM 模型融合,以監督分類決策。 從上述的研究中可以得出:時間信息和LSTM 對于處理動態手勢時獲得準確的手勢預測非常重要。 因此,許多研究者開始利用混合模型來學習和進行動態手勢識別任務[5]。
近年來,注意力機制作為深度學習領域的重大突破,通過計算特征信息的重要程度并分配權重來增強模型對重要特征的關注度。 對此,本文提出了一種基于注意力機制的動態手勢識別方法,結合3D-CNN、CBAM 和LSTM 的混合模型使用,并在20BN-Jester 數據集上進行實驗。
在2D CNN 中,卷積層執行2D 卷積,從前一層特征圖上的局部鄰域中提取特征,應用加性偏差,結果通過sigmoid 函數傳遞。 卷積應用于2D 特征圖,僅從空間維度計算特征;當應用于視頻分析問題時,需要捕獲編碼在多個連續幀中的運動信息,為此在CNN 的卷積階段執行3D 卷積,以計算空間和時間維度的特征[6]。 將多個連續幀堆疊在一起形成立方體,將該立方體與3D 內核進行3D 卷積。
通過這種構造,卷積層中的特征圖連接到前一層中的多個連續幀, 從而捕獲運動信息。 形式上,第i層中第j個特征圖上位置(x,y,z) 的值由式(1) 給出:
式中: tanh 是雙曲正切函數,bij是該特征圖的偏差,m是與當前特征圖相連的第(i- 1) 層中特征圖集上的索引數,wpqrijm是連接到前一層中第m個特征圖內核的第(p,q,r) 個值,Ri是3D 內核沿時間維度的大小,Pi和Qi分別是內核的高度和寬度。
在子采樣層中,通過在前一層的特征圖上對局部鄰域進行池化,來降低特征圖的分辨率,從而增強輸入失真的不變性。 可以通過以交替方式堆疊多層卷積和二次采樣,來構建CNN 架構,CNN 的參數(如偏差bij和核權重wpqrijm) 通常使用有監督或無監督方法來學習。
因為核權重會在整個立方體中復制,3D 卷積核只能從框架立方體中提取一種類型的特征。 CNN的一般設計原則是通過從同一組較低級別的特征圖生成多種類型的特征,來增加后期層的特征圖數量。與2D 卷積情況類似,可以通過將具有不同內核的多個3D 卷積,應用到前一層的相同位置來實現[7]。
長短期記憶網絡(LSTM)是對神經網絡的擴展。 LSTM 單元結構由輸入門、輸出門和遺忘門組成,其控制學習過程,內部結構如圖1 所示。 這些門是在sigmoid 函數的幫助下調整,以控制學習過程中的打開和關閉[8]。 LSTM 中的長期記憶稱為細胞狀態,負責控制上一個LSTM 單元格狀態的信息,如果遺忘門輸出狀態為0,則告訴單元門忘記信息,如果為1,則告訴單元門將其保持在單元狀態。

圖1 LSTM 網絡單元Fig. 1 LSTM network unit
LSTM 單元內的學習過程如式(2)~式(7):
其中,it是輸入門;ft是遺忘門;ot是輸出門;σ為sigmoid 激活函數;xt為t時刻的輸入向量;wx為相應門的權重;bx為相應門的偏差;ht為t時刻的隱藏層狀態向量;Ct是t時刻LSTM 單元的細胞狀態。
遺忘門經由激活函數,輸出一個0 ~1 之間的數值,1 表示完全保留,0 表示完全舍棄。 輸入門通過tanh 層創建候選狀態,經由激活函數同樣輸出0 ~1之間的數值,決定候選狀態需要存儲多少信息。更新記憶單元將更新舊的細胞狀態,將Ct-1更新為Ct,遺忘掉由ft確定的需要遺忘的信息,然后加上it*,確定新的記憶單元Ct。 輸出門將內部狀態的信息傳遞給外部狀態ht,經由激活函數層確定需要被傳遞出去的信息,將細胞狀態通過tanh 層進行處理并于輸出門的輸出相乘,最終外部狀態會獲取到輸出門確定輸出的那部分[9]。
在人類視覺大腦皮層中,使用注意力機制能夠更快捷、高效地分析復雜場景信息,后來這種機制被研究人員引入到計算機視覺中來提高性能。 注意力在告訴網絡模型該注意是什么的同時也增強圖像特定區域的表征能力[10]。 Woo 等人[11]提出了一種結合空間(spatial)和通道(channel)的注意力機制模塊,被稱為CBAM,相較于單一的注意力機制,混合注意力機制顯得更加全面。 CBAM 模塊能夠針對一張特征圖從通道和空間兩個維度上產生注意力特征圖信息,經過自適應修正產生最后的特征圖。
如圖2 所示,通道注意力機制,通過特征內部之間的關系來獲取最終的通道注意力值,特征圖的每個通道都被視作一個特征檢測器。 通過同時采用平均池化和最大池化來壓縮特征圖的空間維度,實現更高效地計算通道注意力特征;將特征輸入多層感知機(MLP)生成最終的通道注意力機制特征圖Mc。 綜上,通道注意力計算公式總結為式(8):

圖2 通道注意力模型Fig. 2 Channel attention model
其中,σ為sigmoid 函數;W1、W0為MLP 權重;和分別代表平均池化特征和最大池化特征。
如圖3 所示,空間注意力機制是通過特征圖空間內部的關系,來產生空間注意力特征圖。 為了計算空間注意力,首先在通道進行維度平均池化和最大池化,然后將其產生的特征圖拼接起來,對拼接后的特征圖中進行卷積操作,來產生空間注意力特征圖Ms。 最終實現過程如式(9):

圖3 空間注意力模型Fig. 3 Spatial attention model
其中,σ為sigmoid 函數,f7×7為7×7 大小的卷積核。
CBAM 注意力機制模塊結構如圖4 所示,其完整計算過程可以概括為如下公式:

圖4 CBAM 完整結構Fig. 4 CBAM complete structure
其中,F為輸入特征圖,為輸出特征圖。
本文構建的是動態手勢識別方法,數據集均為動態手勢視頻幀圖像所組成的集合。 由于數據采集環境不受限制,視頻幀圖像可能存在環境背景復雜、光線強弱等方面的問題,因此對模型的特征提取能力和抗干擾能力要求較高。 傳統卷積神經網絡(CNN)模型雖然擁有較強的深層特征提取能力,但是空間信息特征提取能力不足,同時無法捕捉時間序列信息的前后關系。 學習空間和時間特征的結合是動態手勢分類的必要要求。 為了實現這一點,本研究使用了5 層3D-CNN 模型,其可以通過保留視頻幀的空間信息來提取時間特征。 但是,僅僅使用3D-CNN 模型進行動態手勢識別還不足以從視頻數據中學習長期的時空信息。 LSTM 作為RNN 的改進體,使用了一種特定的學習機制,明確了信息中需要被記住、需要被更新以及需要被注意的那些部分,以一種非常精準的方式來傳遞記憶,有助于在更長的時間內追蹤信息。 基于此,本文將3D-CNN 與LSTM 結合,使模型可以從空間和時間兩個維度提取特征,使提取到的特征更加全面并且更具有代表性。
此外,在3D-CNN 層后加入CBAM,這種融合網絡不會影響信息傳輸,同時模型可以自動學習得到圖像的空間特征和通道特征的重要程度,根據重要程度來增強有用特征,自適應校準特征圖像的空間和通道信息。 相比于未添加注意力機制模塊的網絡模型,添加CBAM 注意力機制模塊對整體的網絡結構影響不大,同時網絡可以學習圖像中更加重要的空間特征和通道特征。
基于注意力機制的動態手勢識別模型主要由3D-CNN 層、注意力層、LSTM 層、Dropout 層以及Softmax 層組成,模型結構如圖5 所示。

圖5 模型框架Fig. 5 Model Framework
其中,3D-CNN 層由5 個三維卷積層、4 個最大池化層組成,通過視頻幀圖像提取時空特征。 每個3 維卷積核大小均為3×3×3,考慮到更好的保留時間細節,將第一卷積層和第一池化層的步幅和池化大小設置為1×2×2,其余各層的步幅和池化大小設置為2×2×2。 特征圖分別設置有32、64、128 3 種不同的過濾深度。 池化方式采用最大池化,用于保留主要特征信息。
將3D-CNN 層提取到的特征圖直接輸入注意力層,CBAM 模塊會根據輸入的特征圖,序列化的生成通道注意力機制特征圖和空間注意力機制特征圖,兩種特征圖信息與原特征圖相乘進行自適應修正,產生最后的特征圖。
將最終提取到的特征輸入LSTM 層,獲取序列特征間的長期依賴關系。 在LSTM 層后添加一個值為0.5 的Dropout 層,保證輸出的稀疏性,然后使用Softmax 函數計算概率結果,實現動態手勢的分類識別。
本次實驗環境的硬件配置為Intel Core i7-11800H CPU,顯卡為NVIDIA RTX 3070。 軟件環境為64 位Ubuntu 20.04 操作系統,深度學習框架PyTorch,Python 版本為3.8.10。
實驗使用20BN-Jester 大規模真實數據集,該數據集由1 376 個不同的參與者在不同的約束環境中生成。 其中包含約148 092 個3 秒長的短視頻片段,每個視頻至少由27 幀視頻圖像組成。 由于時間及內存資源限制,這項工作僅使用了27 個手勢中的12 個。 在原始數據集中,視頻序列具有不同的長度,從27 幀到46 幀不等。 對于數據預處理,首先統一所有視頻幀數,將每個視頻片段統一為30 幀視頻圖像來訓練模型。 對于每幀視頻圖像均調整為112×112 像素。 整個數據集中包含12 個類共計6 000個樣本,每個類有500 個樣本。 數據集按照8 ∶2分為訓練集和驗證集,其中80%為訓練集和20%為驗證集。
為了證明本文方法的有效性,實驗對比了LSTM 網絡、3D-CNN 網絡、3D-CNN-LSTM 混合網絡在同一數據集上的識別效果,各個方法的輸入均為經過預處理后的數據集。 LSTM 方法其模型主要由3 個LSTM 層、1 個全連接層和Softmax 層組成,LSTM 單元數為128,全連接層節點數為64;3DCNN 網絡模型包含5 個三維卷積層、4 個最大池化層、一個全連接層和Softmax 層;3D-CNN-LSTM 混合網絡模型包含5 個三維卷積層、4 個最大池化層、1 個LSTM 層、1 個Dropout 層和Softmax 層,卷積核尺寸為3×3×3,LSTM 單元數為128。
測試集數據包含12 個動態手勢類,每個類別分別包含100 個文件。 表1 顯示了使用20BN-Jester數據集中12 個類在準確率方面對提出的混合模型與其它模型的比較結果。

表1 數據訓練集和測試集實驗結果Tab. 1 Experimental results of data training and testing sets
其中,本文提出模型對于動態手勢實現了95.58%的驗證準確率,相比較于不包含注意力機制模塊的模型,在準確率方向提高了4.36%;相比較于單一模型的動態手勢識別方法,準確率都有明顯提升,該模型在取自20BN-jester 數據集中12 個類上產生了良好的結果。
如圖6、圖7 所示,從模型精度和模型損失曲線來看,由于模型是從頭開始訓練的,因此本次設置了100 個epoch 來達到所需要的損失。 對于前5 個epoch,精度上升明顯,損失非常高。 后來,經過10個epoch,模型達到了較高的準確率。 經過100 個epoch 的訓練,模型的驗證準確率達到95.58%且損失達到0.165 6。

圖6 模型準確率Fig. 6 Model accuracy

圖7 模型lossFig. 7 Model loss
在總共1 200 個視頻剪輯中,有100 個被歸類為“向左滑動”手勢。 實際上,有98 個視頻片段屬于向左滑動類,因此模型正確預測了98 個片段,但有2 個視頻片段被預測為其他類別,因此該類別的識別準確率為98%。 所有類別中相對簡單的手勢如“豎起大拇指”手勢,其識別準確率為100%。 同樣對于所有剩余的類,分類結果顯示在如圖8 所示的混沌矩陣中。
本文提出了一種新的深度學習模型,該模型可以學習視頻流中動態手勢序列的時空特征。 該模型由3D-CNN 網絡、LSTM 網絡和注意力機制網絡組成,該網絡在復雜的背景和照明條件下學習所有視頻幀的空間和時間特征。 在模型中,動態手勢數據的特征由3 維卷積神經網絡(3D-CNN)自動提??;使用CBAM 注意力機制網絡增強特征關注度;使用長短期記憶(LSTM)網絡來學習時間序列數據的相關優勢;最后采用SoftMax 分類器對動態手勢進行分類。
經在20BN-Jester 數據集的一個子集上進行訓練,與單一模型和不包含注意力機制的混合模型相比,所提出的組合模型提供了更好的結果,動態手勢識別性能更好。 為了實現該算法的實際應用,后續工作會對算法的效率進行分析和提高。