劉群坡,盛月琴,高如新,卜旭輝
(1.河南理工大學 電氣工程與自動化學院,河南 焦作 454003;2.河南省智能裝備直驅技術與控制國際聯合實驗室,河南 焦作 454003)
手語是聾啞人用來與外界接觸的重要工具,手語識別研究對于提高聾啞人生活質量有著重要意義。手語演示者的手部動作在整個視頻畫面中僅占有小部分區域,且視頻數據具有時序性,因此如何有效提取空間特征和時間特征對于提高識別率具有重要作用。此外,地區文化的差異和個人習慣的不同使得具有相同含義的手語卻有著不同的表達方式,考驗模型的泛化能力[1]。針對以上問題,研究人員提出了許多解決方案,分為基于傳統方法和基于深度學習的手語識別兩大類。
在傳統方法中,主要使用隱馬爾可夫模型(Hidden Markov Model,HMM)、動態時間規整和條件隨機場來人工提取特征。PU 等[2]構造一種基于形狀上下文的軌跡描述符,進而提出一種基于HMM的軌跡建模方法來進行孤立詞匯手語識別。WANG等[3]基于深度視頻數據,提出一種稀疏觀察方法來表示每個手勢,將手語詞匯之間的匹配轉換為對齊稀疏觀察序列之間的相似度計算,與傳統HMM 方法相比,精度更高、耗時更短。然而,傳統方法主要通過人工設計并提取特征,無法捕捉到手語視頻中復雜的深層特征,識別精度不高。由于深度學習在圖像分類[4]、目標檢測[5]與識別[6]等領域表現出顯著優勢,基于深度學習的手語識別方法正成為研究的熱點。長短期記憶網絡能夠很好地處理時序信息,因此被一些研究者用來處理視頻數據[7]。LIU 等[8]將手語演示過程中左右手和左右肘關節的軌跡數據作為輸入,提出基于長短期記憶網絡的端到端手語識別方法,但是骨骼關節點數據需要用特定設備獲取,基于機器視覺的識別方法在數據獲取方面優勢顯著,普通攝像設備即可實現數據采集[9]。三維卷積神經網絡[10]能夠同時獲取空間和時間信息,近年來被廣泛應用于視頻處理。王粉花等[11]提出一種融合I3D 和注意力機制的網絡CBAM-I3D,識別率達到了90.76%。ZHOU 等[12]設計一種(3+2+1)D 殘差網絡進行手語識別,該方法采用直方圖、關節點和RGB 圖像3 種模態的數據進行手語識別,數據提取過程復雜。上述方法通過改進網絡結構,增加通道注意力或空間注意力來提升識別率,忽略了通道和空間之間存在相互影響的問題。此外,現有方法大多隨機選取一定數量的幀、均勻采樣視頻幀或將所有手語視頻幀作為網絡輸入,這也是識別率不高的原因之一。
針對以上問題,本文通過設計一種關鍵幀提取算法以及改進的3D-ResNet 提升手語識別準確率。利用關鍵幀提取算法提取作為神經網絡輸入的關鍵幀,基于3D-ResNet[13]設計小卷積模塊充分提取淺層特征,結合池化卷積殘差連接方式增強對細節特征的提取能力,同時設計交互式四重注意力模塊嵌入3D-ResNet,增強對背景以及手語者無關信息的抗干擾能力,從而提高模型泛化性能。
基于關鍵幀和注意力殘差網絡的手語識別方法整體框架如圖1 所示。首先對輸入的手語視頻運用光流法確定候選關鍵幀,接著利用基于圖像相似度和模糊程度的關鍵幀提取算法從候選關鍵幀中提取出最終的若干關鍵幀,最后將關鍵幀序列送入交互式四重注意力三維卷積殘差網絡進行識別分類。

圖1 基于關鍵幀和注意力殘差網絡的手語識別方法整體框架Fig.1 Overall framework of sign language recognition method based on keyframe and attention residual network
1.1.1 基于光流法的候選關鍵幀確定
在手語視頻中,視頻開始和結尾部分為演示者的抬手和放手過程,對于整個視頻所代表的含義幾乎沒有任何意義,反而加重了模型訓練的負擔,候選關鍵幀位于視頻中間部分。因此,利用Farneback 光流法[14]確定每個手語視頻的關鍵幀時間段,主要步驟如下:
1)使用Farneback 光流計算每幀的運動速度并歸一化得到vi。
2)設定初始閾值c,若在vi大于c區間內,第一個極大值對應幀Ff和最后一個極大值對應幀Fl之間的幀個數大于等于L,則這兩個極大值點之間的時間段為候選關鍵幀的時間段T。
3)若小于L則閾值c除以2 再進行判斷,直到個數大于等于L,那么此時該區間的第一個極大值對應幀和最后一個極大值對應幀之間的時間段為候選關鍵幀時間段T。
1.1.2 基于相似度和模糊程度的關鍵幀提取算法
在確定時間段T后,T內的圖像序列仍然過多,相鄰圖像內容變化幅度小,部分視頻中手部速度過快導致提取的圖像幀出現模糊,因此提出基于圖像相似度和模糊程度的關鍵幀提取算法,用于提取最終的L個關鍵幀,流程如圖2 所示。

圖2 關鍵幀提取流程Fig.2 Procedure of keyframe extraction
首先將T均勻分為L段,將T前1 幀作為第1 個參考幀R1,第1 段t1中的每1 幀 和R1的歐氏距離如下:
其中:xij表示t1時間內第i幀的第j個像素值;xRj表示t1的參考幀的第j個像素值;N表示像素點個數;Di表示t1的第i幀和R1的歐氏距離,距離越遠意味著相似度越低。
對相似度序列進行排序,得到歐氏距離遞增的新序列{Dr,1 ≤r≤n}。然后利用準則函數將n幀分割成兩類:一類是前k幀,可視為與參考幀相似的幀;另一類是后n-k幀,可視為與參考幀不相似的幀。由于分割結果應使類間的均方誤差最大,類內的均方誤差最小,因此采用式(2)作為確定分割點的準則函數:
其中:m1和m2表示前k幀和后n-k幀的相似度的均值;σ1和σ2表示前k幀和后n-k幀的相似度的標準差。最佳分割點k*應使得此時的準則函數值大于其他分割點計算出的準則函數值,即:
在確定分割點k*后,最終關鍵幀位于后n-k*幀內,由于其中存在模糊幀,因此對后n-k*幀使用Laplacian 算子計算每幀的模糊程度,選擇模糊程度最低的一幀作為當前時間段的關鍵幀,同時作為下一個時間段的參考幀。下一個時間段的關鍵幀選取按上述方法操作,最終提取出能夠代表該視頻內容的L個關鍵幀作為神經網絡的輸入。
1.2.1 基于ResNet 和Inception 的小卷積模塊設計
Inception[15]的主要思想是堆疊多個小卷積層,并在特征維度上將它們拼接到一起,通過增加網絡寬度來提高網絡的特征提取能力。ResNet[16]通過殘差連接結構在一定程度上保留了主干網絡層傳遞信息過程中損失的部分輸入信息。3D-ResNet 網絡的第一個卷積層的核大小為7×7×7,大卷積核提取的是粗粒度特征,而手語視頻中手部動作的細粒度特征是識別手語的關鍵信息。本文結合Inception 和ResNet 的思想,設計一種基于殘差結構的小卷積模塊,用來替代第一層大卷積層,增強淺層網絡對輸入數據的細節特征提取能力,結構如圖3 所示。

圖3 小卷積模塊Fig.3 Small convolution module
Inception 結構中使用不同大小的卷積核進行不同尺度特征的融合,但手語數據集中演示者的手部動作在圖像中所占的區域較小,因此小卷積模塊使用3×3×3 的小卷積核。該模塊由3 條支路組成。在通常情況下,Inception 模塊的主分支輸出通道維度相同,因此小卷積模塊的兩條主分支輸出通道維度也相同,均為32。由于卷積層過多會造成較多的信息損失,因此第1 條主分支和第2 條主分支分別設計為1 層和2 層卷積層,核為3×3×3。第1 條主分支:1 層卷積層,通道數為32。第2 條主分支:第1 個卷積層通道數為16,對圖像進行下采樣;第2 層卷積層通道數為32,用來緩解信息丟失的問題。2 條主分支的特征維度相同,在通道維度上對它們的輸出結果進行拼接。為了充分提取輸入特征,緩解特征信息在傳遞過程中的損失問題,引入第3 條捷徑分支進行殘差學習。原始3D-ResNet 的第1 層卷積層輸出通道數為64,為了使改進前后輸出維度相同且能夠進行殘差加運算,捷徑分支采用通道數為64、核大小為1×1×1 的卷積層,用于調整輸入數據維度。此外,在每個卷積層后都連接了BN 層和ReLU 激活函數,加快網絡的收斂速度。
1.2.2 池化卷積殘差連接方式設計
在ResNet 中存在如圖4(a)和圖4(b)所示的兩種殘差連接方式。當輸入和輸出的特征圖大小相同時,使用方式1直接進行特征映射。當輸入和輸出的特征圖大小不同時,使用方式2 進行殘差連接,捷徑分支的卷積核尺寸為1×1×1,步長為2×2×2,用于將特征圖尺寸減小為原來的1/2,同時將通道數變為原來的2 倍。然而,雖然步長為2×2×2 的卷積層可以達到下采樣的目的,但弱化了細粒度特征,細節信息有所損失,從而減少了后續網絡層能夠提取的有效特征。
針對上述問題,對連接方式2進行改進,將特征圖尺寸大小減半與通道數目翻倍分兩步進行,結構如圖4(c)所示。首先在捷徑分支中加入步長為2×2×2的最大池化層,達到特征圖大小減半的目的;然后使用步長為1×1×1 的卷積層,用于改變通道數。這種先池化再卷積的操作在下采樣的過程中減少了信息損失。本文網絡部分的殘差塊1 使用方式1 進行殘差連接,殘差塊2、3和4使用改進方式2進行殘差連接。
1.2.3 交互式四重注意力模塊設計
在手語識別過程中,確定手部動作的空間位置和時間位置有利于提高識別準確率。近年來常用的注意力有SE[17]和CBAM[18],然而SE 僅在通道維度上計算了注意力權重,CBAM 雖然兼顧了通道注意力和空間注意力,但它先對通道再對空間進行卷積,前者影響了后者空間注意力的使用效果。
Triplet Attention[19]是一種通過旋轉操作建立通道維度和空間維度之間交互關系的二維注意力模塊,本文基于Triplet Attention 設計出可應用于三維卷積的四重注意力(Quadruplet Attention,QA)模塊,框架如圖5 所示。

圖5 四重注意力模塊Fig.5 Quadruplet attention module
對于輸入張量x?RC×T×H×W,其中,C、T、H和W依次表示輸入的通道、時序、高度和寬度,將其送入4 條支路。
支路1 用來獲得通道維度C與空間維度(H,W)的交互式注意力權重。輸入首先通過跨維度操作建立(C,H,W)維交互,接著依次經過Z-Pool 層、卷積層、BN 層和激活函數得到注意力權重,然后將其輸出與維度變換后的張量相乘,最后經過反向跨維度作用,獲得和原始輸入形狀相同的輸出。此處Z-Pool 是指將最大池化結果和平均池化結果進行拼接,其數學公式如下:
支路2 用于獲取通道維度C和空間維度(T,W)的交互式注意力權重。它的操作和第一條分支類似,不同的是它的跨維度操作建立的是(C,T,W)維交互,反向跨維度作用是與(C,T,W)維相對應的反向操作。
支路3 用于捕捉通道維度C和空間維度(T,H)之間的交互關系。跨維度操作建立的是(C,T,H)維交互,反向跨維度是與(C,T,H)維相對應的反向操作。
支路4 僅用于計算空間維度(T,H,W)的注意力權重。它不需要進行跨維度操作,而是直接將輸入送進Z-Pool 層、卷積層以及激活函數,然后將其輸出與輸入相乘,從而獲得最后一條分支的輸出。
最后將4 條支路的注意力權重進行平均即可得到QA 模塊的輸出:
使用兩個數據集,分別是CSL[20]和DEVISIGN[21]數據集。
1)CSL 數據集包含了500 類詞匯,每類詞匯由50 個操作者演示5 次。從中選取100 類詞匯,將視頻數據按照7∶2∶1 的比例劃分為訓練集、驗證集和測試集,即訓練集、驗證集和測試集分別有17 500、5 000、2 500 個視頻。
2)DEVISIGN 數據集包含了500 類常用詞匯,每類詞匯由8 個操作者演示,其中4 個操作者每人重復演示2 次。從中選取100 類詞匯,并進行平移變化、翻轉變化和數據裁剪對數據進行擴充,最終得到12 000 個視頻,其中,訓練集有8 000 個視頻,驗證集有2 000 個視頻,剩下2 000 個用于測試。
實驗環 境:PyTorch1.6.0+CUDA10.0,NVIDIA GeForce RTX 2080 Ti GPU。關鍵幀提取的初始閾值c設為0.2,關鍵幀個數L設為16。模型訓練使用Adam 優化器和指數衰減調整學習率,初始學習率為0.000 1,學習率調整倍數為0.9,訓練批次為4,在CSL 和DEVISIGN 數據集上分別迭代50 和100 次。
在二分類任務中,通常使用準確率(Aaccuracy)、精確率(Pprecision)和召回率(Rrecall)來評價模型的性能,它們的計算公式分別如下:
其 中:TTP、TTN、FFP、FFN表示正 樣本被 正確識 別的數量、負樣本被正確識別的數量、誤報的負樣本數量和漏報的正樣本數量。對于本文的多分類問題,采用宏平均的評價方法,即先對每一個手語詞匯計算準確率、精確率和召回率,再對所有手語詞匯計算算術平均值作為模型整體的準確率、精確率和召回率。
為了分析每種改進方法對模型性能的影響,在CSL 手語數據集上進行如表1 所示的改進實驗,其中√表示具有該模塊。實驗A 采用均勻采樣的方法提取出16 幀送入3D-ResNet 網絡進行手語識別,由于存在靜止幀,含有手語動作的幀較少,因此模型識別效果較差。實驗B 對手語視頻進行關鍵幀提取操作,獲得了更能代表視頻內容的數據,識別準確率明顯提升。實驗C 在實驗B 的基礎上,改進了3DResNet 網絡,利用小卷積模塊增強模型對輸入細粒度特征的提取能力,使得模型性能有所提升。在實驗D 中,殘差塊捷徑分支的先池化再卷積的操作減少了信息損失,為后續網絡層的特征提取打下了良好基礎。在此基礎上,實驗E 在殘差塊中嵌入了四重注意力模塊,捕捉到了通道注意力和空間注意力并且考慮了它們之間的交互關系,使得模型準確率高達92.0%。此外,每個改進實驗都在一定程度上提升了識別的精確率和召回率。

表1 不同改進實驗的結果對比Table 1 Comparison of results from different improvement experiments %
為了評估所提方法網絡部分的性能,以關鍵幀提取為前提,將本文改進的3D-ResNet和原始3D-ResNet在CSL 和DEVISIGN 數據集上進行對比分析,結果如圖6 和圖7 所示。由圖6 和圖7 可以看出,3D-ResNet在CSL 數據集上的驗證曲線與訓練曲線有著較大的差距,出現了欠擬合現象,然而改進的3D-ResNet的擬合效果更好,并且收斂于更高的準確率和更低的損失。在DEVISIGN 數據集上進行實驗,改進的3D-ResNet迭代約10 次后準確率有所上升,約35 次后開始收斂,訓練速度明顯快于3D-ResNet。在訓練后期,在這兩個數據集上,改進的3D-ResNet 相比3D-ResNet曲線震蕩幅度更小,模型更加穩定。

圖6 CSL 數據集上的實驗結果Fig.6 Experimental results on the CSL dataset

圖7 DEVISIGN 數據集上的實驗結果Fig.7 Experimental results on the DEVISIGN dataset
為了進一步說明所提方法的有效性,將其與Adaptive HMM[22]、C3D[23]、B3D ResNet[24]、3D-CNN[25]等手語識別方法分別在CSL 和DEVISIGN 數據集上進行對比實驗,結果如表2 和表3 所示。由表2 和表3 可以看出,基于深度學習的方法相比于傳統方法準確率更高,使用多模態數據相較于使用單一模態數據具有更好的性能,而所提方法僅用RGB 視頻數據模態就取得了優異的效果,并且準確率在CSL數據集上高于同樣使用視頻數據的基于B3D ResNet和CBAM-I3D 的手語識別方法,在DEVISIGN 數據集上高于同樣使用視頻數據的基于B3D ResNet 的手語識別方法。綜上,所提方法在CSL 和DEVISIGN 數據集上分別取得了92.0%和92.2%的識別準確率率,均優于其他手語識別方法。

表2 不同方法在CSL 數據集上的實驗結果Table 2 Experimental results of different methods on the CSL dataset %
本文提出一種基于關鍵幀和交互式注意力殘差網絡的手語識別方法。通過基于圖像相似度和模糊程度的關鍵幀提取算法提取能夠代表視頻內容的關鍵幀,減少了冗余數據。將3D-ResNet 的大卷積層替換為小卷積殘差模塊,更加有效地提取細節特征。采用池化卷積殘差連接方式,解決了下采樣時信息損失嚴重的問題,進一步提高模型精度。設計四重注意力模塊減小背景以及操作者等無關信息對模型分類的干擾,提升網絡的表征能力。實驗結果表明,所提方法相比于其他手語識別方法具有更高的準確率,能夠有效地進行手語識別。后續將對手語識別網絡結構做進一步優化,使用含有復雜背景的手語數據集進行實驗,并搭建真實環境下的手語識別系統。