高明柯 趙 卓 逄 濤 王天保 鄒一波 黃 晨 李德旭
1(中國電子科技集團公司第三十二研究所 上海 201808)
2(上海海洋大學計算機工程與科學學院 上海 201306)
3(上海大學計算機工程與科學學院 上海 200444)
隨著人工智能、計算機視覺、虛擬現實和增強現實等技術的飛速發展,促進了對人機交互技術的需求。基于視覺的手勢識別作為一種自然直觀的交互方式,成為廣大學者的研究熱點,是繼語音識別之后,備受關注的人機交互技術之一?;谝曈X的手勢識別更符合人機交互未來的發展趨勢,具有廣泛的應用前景,已逐步應用于智能家居、輔助駕駛、虛擬現實、增強現實、輔助教育等方面,具有重要的理論研究價值和實際應用意義。
基于視覺的手勢識別方法容易受到光照、遮擋等環境因素的影響,且單一特征包含的信息有限,無法充分表征手勢,導致在實際的應用場景中,識別精度不高、魯棒性較弱。因此,為了提高手勢識別的準確率,研究者們將獲取的多種手勢特征,采用特征融合的方式進行識別,以獲得更好的預測結果[1-7]。文獻[1]結合圖像編碼和密度聚類從手勢視頻中提取關鍵幀,并融合手勢的表觀特征和運動特征提升特征表示,以兼顧手勢識別的性能和效率。文獻[2]在手勢圖像預處理過程中引入聚合通道特征,基于DTCWT對目標手勢圖像進行多尺度多方向分解,通過再融合各個方向上的高低頻特征并通過支持向量機(SVM)進行分類識別。文獻[3]提出了一種混合的深度動態網絡模型,該模型將傳統機器學習方法和深度學習方法相結合,采用3D卷積神經網絡提取手勢的RGB圖像特征,采用深度置信網絡提取手勢的骨骼特征進行特征融合后通過隱馬爾可夫模型進行分類預測。文獻[4]將手勢的時間和空間特征采用評分的方式進行融合,實現對手勢的識別。但上述的特征融合過程中,未考慮動態手勢單個特征的時序建模,可能使重要的時序信息丟失。
基于視覺的手勢識別方法通常采用隨機采樣或者密集時間采樣的方法對視頻流進行預處理,使其更符合模型的輸入。隨機采樣可能會造成關鍵幀信息的丟失,而密集時間采樣往往會造成數據的冗余。
人類的注意力機制能夠利用有限的視覺信息處理資源從大量信息中獲取有價值的信息,極大地提高了視覺處理的效率。而深度學習中的注意力機制受人類視覺注意力機制啟發,其核心內容也是如何從眾多信息中抽選出對當前任務目標更為關鍵的信息。注意力機制已經成為很多任務中序列建模的一部分,它能解除傳統循環神經網絡無法對較遠距離的序列成分建模的限制,即對輸入輸出序列中所有時序有依賴關系,可不受其位置距離長短的限制。文獻[8]針對骨骼數據特性,提出了一種用于動作識別的端到端的時空注意力模型。文獻[9]基于視覺刺激的原理提升注意力機制,有效解決了注意力機制在無監督情況下,無法選擇合適的感興趣區域的問題。文獻[10]提出了一種獨立的注意力網絡,相對于嵌入循環神經網絡的注意力機制,能夠更好地進行并行計算。
針對手勢識別中視頻流預處理、特征融合方面所存在的問題,鑒于深度學習中注意力機制的特點,本文提出基于注意力機制和特征融合的手勢識別方法。一方面,通過注意力機制關注視頻流數據中的重要信息,既可避免采樣方法的隨意性,也可避免數據的冗余;另一方面,通過注意力機制對單個特征的時序信息進行建模,然后融合抽取的RGB特征和深度圖像特征,既可增加手勢識別的準確性,又可提高模型的魯棒性。
注意力機制的研究最早源于19世紀的實驗心理學[11],20世紀中期,認知心理學和神經生理學的發展推動了注意力機制研究[12-13]。但是長期以來,注意力只是被視為個人在覺察、理解外部刺激的過程中生理和心理表現出的一種官能,重點表現在視覺、聽覺等感官上。2014年谷歌DeepMind團隊在文獻[11]中提出了注意力機制,將其用于圖像分類任務中,解決了序列到序列模型中災難性的遺忘問題。在Bahdanau等[12]首次在機器翻譯中引入注意力機制,并取得不錯的效果之后,其被廣泛應用在自然語言處理[13-15]、圖像處理[16-18]、語音識別[19]、目標識別[20]等各種不同類型的深度學習任務中,是深度學習技術中最值得關注與深入了解的核心技術之一。注意力機制是預測模型中的一部分,它可以讓預測模型有序地關注輸入中的不同部分。而這個部分的選擇主要在于系統的狀態,即該部分對最后預測的影響程度。采用注意力機制的模型通常有兩個目的,其一是注意力機制通過對輸入的選擇,可以有效地減少高維計算;其二是注意力機制能夠使預測模型關注到輸入中的重要數據,進而使系統可以提取并輸出最相關的信息,所以能有效提高模型的輸出質量。
注意力機制是編碼器與解碼器之間的接口。在使用注意力機制的序列模型中,編碼器的所有輸出均存放在一個記憶容器里。在編碼的每一個時間步里,基于該記憶容器計算對應的概率分布,并作為解碼器的輸入。解碼器也以該分布生成的權重為基礎,關注編碼器特征表示的不同部分。因此解碼器接收到不僅是一個統一的向量表征,還有來自編碼器每個時間步的向量表征。通過注意力機制,模型便能有選擇地關注輸入序列中重要的部分,從而在解碼器和編碼器之間對齊。
注意力機制可分為軟注意力、硬注意力、局部注意力、全局注意力、多維注意力和自注意力等。最常見的是軟注意力,其作為基于循環神經網絡(RNN)的編碼器-解碼器框架的一部分來編碼長的輸入語句。注意力機制可以采用任何長度的輸入表示,并將其減少到一個固定長度的內容向量,用于解碼步驟。因此,它允許將輸入表示與輸出分離。軟注意力機制沒有采用強制的方式選擇輸入信息的模塊,而是對輸入的每一部分加以權重。由于對輸入的每個部分都進行了計算,所以沒有節省計算資源。但這種方式能夠有效地采用梯度反向傳播進行訓練,且計算過程是可微分的,能夠方便地嵌入已知的框架中。本文利用這一特點將軟注意力機制引入RNN,以RNN作為編碼器,以長短期存儲器(LSTM)作為解碼器。
注意力機制是編碼網絡的一個輸出集合,包含了輸入數據具有結構信息的特征表示,集合由一組固定長度的向量組成,數學描述如下:
c={c1,c2,…,cM}
(1)
集合中每一個向量對應到輸入數據中某個時間步或空間位置上的信息。對于圖像而言,向量fi表示圖像中的一個局部空間;對于機器翻譯而言,它表示輸入語句中一個具體的詞和其周圍的詞所組成的短語。M是集合中向量的數量。

(2)

(3)
當注意力權重計算完成后,將計算新的向量ct:
(4)
式中:函數φ依據注意力將所有集合中的向量合為一個向量。
通常函數φ就是向量求和函數:
(5)
或者可以強制注意力模型從集合中依據伯努利分布采樣出一個向量作為下一時間步的輸入。
(6)
依據計算產生的新的向量ct,更新解碼器的隱含狀態:
zt=φθ(zt-1,xt,ct)
(7)
這種在解碼器每個時間步t計算向量的方法使得編碼器不用將不同長度的輸入數據編碼成固定長度的向量。通過對輸入數據空間上或者時序上的劃分,編碼器可以將輸入數據表示成為一個向量的集合,集合中每一個向量只需要對輸入數據中特定的部分進行編碼。也就是說,在編碼解碼網絡里引入注意力機制可以有效解決固定向量長度無法充分表征輸入數據結構信息的問題。
特征融合是指將多種包含不同信息的特征融合在一起,多用于多模型的混合結構。根據融合信息進入模型的順序一般分為提前融合和延后融合兩種方式。提前融合是將原始數據在輸入模型之前進行特征融合,但有些數據難以在輸入前直接進行融合,具有一定的局限性。延后融合是指將模型學習到的高層抽象高層特征進行融合,融合后的特征信息更豐富,模型的識別效果會更好,或將不同模型的預測結果融合起來,作為最終結果,一般使用線性的方式均衡兩個模型的結果。
假設Sr和Sd為兩個不同模型的預測值,最終的預測值Sfinal為兩個分數的線性融合,可以形式化如下:
Sfinal∝α·Sr+(1-α)·Sd
(8)
式中:α為融合權重因子。
軟注意力機制的計算過程是可微的,因此它能夠方便地嵌入在已知的框架中,可以在注意力模型里進行梯度傳播。而硬注意力機制是一個隨機過程,即與式(6)中通過對集合中向量經過伯努利分布采樣得到新向量的過程一樣,它不同于將所有的隱含狀態作為下一步的輸入,而是以一定的概率對隱含狀態進行采樣,為了在這一過程中傳遞梯度,通常使用蒙特卡洛采樣來估計梯度。這使得硬注意力機制無法很好地作為模塊嵌入已知的模型中。因此,為了方便進行模型訓練,本文引入軟注意力機制。
注意力模型對每一時間步中的輸入向量xt進行加權生成新的向量at,生成方式如下:
at=φ(Wxaxt+Whaht-1+ba)
(9)
式中:φ表示Sigmoid激活函數;W表示權重矩陣;ba表示偏移向量。以當前輸入xt和隱藏狀態ht-1來決定輸入向量xt中每個元素的重要性。
(10)
含注意力模塊的循環神經網絡計算單元形式化如下:
(11)
(12)
(13)
(14)
ht=ot⊙Φ(ct)
(15)
式中:i、f、o、c分別為輸入門、遺忘門、輸出門和記憶單元。本文循環神經網絡采用正切函數作為激活函數,即Φ(x)=tanh(x)。大多數注意力機制使用Softmax來計算每個元素的權重,這樣保證權重之和為1,但是在這種情況下元素之間的注意力權重互相影響,即使兩者重要性相同也會因此變化。因此本文采用Sigmoid激活函數來計算,可以將權重歸一化到0至1之間。
為了防止過擬合,在訓練過程中引入Dropout算法[21]。在訓練過程中,以一定的概率p隨機采樣權重層的參數,則式(15)改為如下形式:
ht=ot⊙Φ(ct°fd)
(16)
式中:fd是概率為p的伯努利分布產生的向量。
融合方式可分為提前融合和延后融合。兩種融合方式各有其不足之處,提前融合對于需要時序建模的任務來講無法學習到每個特征自己的時序動態性,而延后融合可能會丟失存在于多模型特征表示中的時序信息。為解決上述問題,本文設計三層雙向長短期記憶網絡對特征進行融合。
第一層使用獨立的雙向長短期記憶網絡層對每個特征進行時序建模。第二層將來自RGB圖像模型的隱藏特征和來自深度圖像模型的隱藏特征使用線性函數進行融合,使用Sigmoid函數加入非線性因素,按每個時間步生成新的特征表示。第三層使用雙向長短期記憶網絡對第二層的輸出進行時序建模。

(17)
(2) 第二層:該層使用線性函數將隱含層特征融合起來,使用Sigmoid函數加非線性因素。
(18)

(3) 第三層:該層使用一層雙向長短期記憶網絡對融合特征ft進行時序建模。
(19)
將最后的輸出作為全連接層的輸入,進行最終預測。
網絡結構圖如圖1所示。

圖1 網絡結構圖
實驗采用數據集ChaLearn LAP和SKIG,設置4種實驗方案:(1) 單特征,即僅采用RGB圖像或深度圖像;(2) 多特征提前融合,在輸入模型之前,將RGB圖像和深度圖像融合成四通道圖像作為混合網絡模型的輸入;(3) 采用本文的融合方法;(4) 采用本文特征融合結合注意力機制的方法。實驗結果如表1所示。

表1 多種方案的實驗結果
方案1的實驗結果顯示,在同一數據集上,不同特征的準確率不同;在不同數據集上,不同特征的準確率也存在差異。在ChaLearn數據集上方案1(RGB)的準確率優于方案1(Depth),而在SKIG數據集卻相反,這種情況與數據集本身特性有關。一般來講,RGB圖像特征利于識別,深度圖像特征利于分割。ChaLearn數據集數據量大且在光照明亮的情況下采集的視頻,而SKIG數據集給出三種不同光照,在弱光照的情況下,手部與背景區分難度較大,RGB特征受到影響,而深度圖像特征恰好可以將手部進行分割。
方案2和方案3的實驗結果顯示,在兩個數據集上融合策略均能提升識別準確率。與方案1和方案2相比,采用本文融合方法后,在數據集CheLearn上準確率提高了4.32%和0.31%,在數據集SKIG上提升了1.35%和0.42%。實驗結果充分表明:融合兩種包含不同信息的特征能夠有效提升識別準確率;盡管兩種方案的準確率相差不大,但對每個特征進行時序建模是有必要的。
方案4的實驗結果顯示,添加注意力機制后,與方案3相比,在數據集CheLearn上準確率提升了0.35%,在數據集SKIG上提升了0.36%。盡管提升幅度甚微,但仍可驗證注意力機制對識別準確率的影響。
本文提出了基于注意力機制和特征融合的手勢識別方法。通過含注意力模塊的雙向長短期記憶網絡對單特征的時序信息進行選擇性地關注,抽取重要數據,有效避免了數據冗余和關鍵幀的丟失;通過融合手勢的RGB特征和深度圖像特征,提升了識別的準確率,增加了算法的魯棒性。后續工作將會針對更具挑戰性的數據集進行融合策略測試。