江 勵,周鵬飛,湯健華
(五邑大學智能制造學部,廣東 江門 529020)
近年來,基于3D 卷積神經網絡(Convolutional Neural Network,CNN)的人體動作識別算法受到了廣泛關注。其中,雙流網絡(Two-Stream Network)[1]是一種廣泛使用的方法,它分別對RGB 圖像和光流圖像進行處理,并將二者的特征融合起來,獲得了較高地識別精度。C3D[2]和I3D[3]則是專門針對視頻數據進行處理的網絡模型,通過時間維度的卷積操作,有效地利用了視頻序列中的時序信息。盡管這些基于3D卷積神經網絡的人體動作識別算法在識別準確率方面取得了顯著的進展,但仍然存在一些問題。首先,這些算法需要大量的訓練數據和計算資源,訓練時間長、計算復雜度高,不適用于實時應用場景。其次,這些算法在面對復雜場景、復雜動作時,往往識別效果較差。
為了解決這些問題,本文提出了一種新的基于高精度Transformer[4]風格骨干網絡的人體動作識別算法,該算法采用時序移位模塊[5]和輕量級注意力機制來提取動作時序信息和增強動作特征,實現更好的識別效果。具體來說,本文采用骨干網絡CoTNeXt[6]對上下文信息進行挖掘并進行自注意力學習,從而有效地增強動作特征;時序移位模塊則可以充分提取動作時序信息,進一步提高識別準確率;融合注意力機制則可以通過增加正則化項來進一步抑制不顯著的特征,突出顯著動作特征。在Jester 和Kinetics-400 數據集上的實驗結果表明,本文提出的算法在識別準確率和識別速度方面均優于現有的大多數基于3D卷積神經網絡的人體動作識別算法。
當前,基于深度學習的人體動作識別算法在機器人交互中得到了廣泛應用。其中,基于3D卷積神經網絡的算法受到了廣泛的關注。然而,這些算法在實時性、訓練時間和計算復雜度等方面還存在一些問題。為了克服這些問題,本研究提出了一種新的人體動作識別算法,該算法采用高精度的CoTNeXt骨干網絡作為特征提取器。CoTNeXt 骨干網絡可以通過挖掘上下文信息來增強動作特征,并通過自注意力機制來學習自身特征,從而有效地提高識別準確率。
CoTNeXt-50 是通過將ResNeXt-50[7]的組卷積中所有3×3 卷積核替換為CoT 塊來構建的。與典型的卷積相比,當組數C增加時,組卷積核的深度明顯減小。因此,在ResNeXt-50 中,組卷積的計算量減少了C倍。 為了實現與ResNeXt-50 相似的參數數量和FLOPs,本文還將CoTNeXt-50的輸入特征映射的尺度從32×4d減少到2×48d。最后,CoTNeXt-50 只需要比ResNeXt-50 多1.2 倍的參數和1.01 倍的FLOPs。CoTNeXt-50 的網絡結構如圖1 所示。
圖1 CoTNeXt-50網絡結構
CoT 塊的結構由一個3×3 卷積層,一個自注意力層和一個線性融合層組成。3×3 卷積層用于挖掘靜態上下文,自注意力層用于獲取動態上下文,而線性融合層則用于動態地融合靜態和動態上下文。具體來說,3×3 卷積層會對輸入的鍵進行上下文編碼,從而得到靜態上下文表示,即捕獲輸入鍵之間的關系;自注意力層則會將查詢和上下文編碼的鍵進行拼接,從而學習動態多頭注意力矩陣,即捕獲查詢和上下文化鍵之間的關系;最后,線性融合層會將靜態和動態上下文表示進行融合,從而得到最終的輸出。CoT的網絡結構如圖2所示。
圖2 CoT的網絡結構
對于輸入2D 特征圖X,CoT 塊首先對k×k網格內的所有相鄰鍵進行k×k組卷積,以在空間上對每個相鄰鍵表示進行上下文化,而不是像典型的自注意力那樣通過1×1 卷積對每個鍵進行編碼。學習到的上下文鍵K1自然地反映了局部相鄰鍵之間的靜態上下文信息,本文將K1作為輸入X的靜態上下文表示。之后,在上下文鍵K1和查詢Q拼接的條件下,通過兩個連續的1×1 卷積實現注意力矩陣:
式中:T為注意力矩陣;K1為輸入特征圖X的靜態上下文信息;Q為查詢(query);Wθ為具有ReLU 激活函數的1×1卷積;Wδ為不具有激活函數的1×1卷積。
對于每個頭部,每個空間位置的局部注意矩陣是基于查詢特征和上下文鍵特征學習來的,可以通過挖掘的靜態上下文K1來增強自注意力學習能力。接下來,根據上下文注意力矩陣T,本文像典型的自注意力一樣通過聚合所有值V來計算出關注的特征圖K2。具體來說,對于輸入2D 特征圖X,將值(value)定義為V=XWν,Wν為值(value)的權重矩陣,然后將上下文注意力矩陣T與值V點相乘得到特征圖X的動態上下文信息K2,計算公式如下:
式中:K2為輸入特征圖X的動態上下文信息;T為注意力矩陣;V為值(value)。
最后,本文將靜態上下文信息K1和動態上下文信息K2通過SKNet 中的注意力機制融合,得到CoT 模塊的輸出Y。
總而言之,CoTNeXt 結合了Transformer 和CNN 兩種模型的優點,既能捕捉全局依賴關系,又能保留局部細節信息。這是由于CoTNeXt 骨干網絡由多個注意力模塊組成,每個注意力模塊由一個局部注意力模塊和一個全局注意力模塊組成。局部注意力模塊用于捕捉特征之間的局部關系,而全局注意力模塊用于捕捉特征之間的全局關系。通過對特征進行逐層加權,CoTNeXt 骨干網絡可以更好地捕捉輸入數據中的信息,利用相鄰鍵之間的上下文信息來增強自注意力機制,提高特征的表達能力。同時,CoTNeXt 又具有較低的計算復雜度和內存消耗,在保證高精度的同時也具有較高效率。因此,在人體動作識別任務中,CoTNeXt 骨干網絡可以用于提取動作特征,進而實現準確的動作識別。具體而言,CoTNeXt 骨干網絡通過對上下文信息的挖掘,可以更好地識別不同動作中的關鍵特征,從而提高識別準確率和魯棒性,并在人體動作識別中取得了優異的表現。
隨著人體動作識別的研究不斷深入,越來越多的工作開始關注動作的時序信息。傳統的人體動作識別方法往往只利用單幀圖像或視頻進行分析,難以充分利用動作中包含的時間序列信息。而時序移位模塊(Temporal Shift Module,TSM)作為一種有效的時序建模方式,可以有效地利用時序信息,進一步提高動作識別的性能。
為了進一步提高CoTNeXt 骨干網絡在人體動作識別任務上的性能,本文將時序移位模塊(TSM)融入到了網絡中。時序移位模塊是一種能夠有效提高視頻分類和動作識別性能的模塊,其可以學習到視頻中時間維度的關系,從而提高模型的魯棒性和泛化能力。本文將時序移位模塊融入CoTNeXt 骨干網絡中,以進一步提高人體動作識別的性能。
時序移位模塊的主要思想是通過對輸入的特征圖進行時間維度的移位操作,將相鄰的時序特征進行混合。具體來說,時序移位模塊將輸入的特征圖沿著時間軸進行劃分,并對每個時間段的特征圖進行移位操作,然后將移位后的特征圖按照時間軸重新組合,生成一個新的特征圖。時序移位模塊沿時間維度移位,如圖3所示。
圖3 時序移位模塊沿時間維度移位示意圖
在CoTNeXt 骨干網絡中,本文將時序移位模塊放置在每個residual模塊的第一層卷積之前。具體地說,先將residual模塊的輸入特征圖按照時間維度分割成不同的子序列,然后對每個子序列進行移位操作,從而達到時序變換的效果,最后再將輸出的特征圖輸入residual 模塊的第一層卷積。時序移位模塊可以用簡單的卷積操作實現,同時具有較少的額外參數,可以很方便地集成到現有的卷積神經網絡中。CoTNeXt-50融合時序移位模塊的具體網絡結構如圖4所示。
圖4 TSM-CoTNeXt網絡結構圖
通過將時序移位模塊融入到CoTNeXt 骨干網絡中,可以更好地利用時間維度的信息,從而提高模型在人體動作識別任務上的性能。在實驗中,使用時序移位模塊后,模型的性能得到了明顯的提高。同時,時序移位模塊的使用也使得模型在時間維度上更加魯棒,能夠更好地處理動作的時序信息,從而進一步提高模型的泛化能力。
總之,將時序移位模塊融入到CoTNeXt骨干網絡中,可以進一步提高模型在人體動作識別任務上的性能。通過實驗,證明了該模塊的有效性,并且得到了更好的實驗結果。
為了提高CoTNeXt 骨干網絡的性能,本文在模型中融入了Normalization-based Attention Module (NAM)[8]。NAM 的加入旨在增強網絡對動作序列中關鍵幀的關注度,從而提高動作識別的準確率。
NAM 是一種有效的輕量級注意力機制,旨在通過利用訓練模型權重的變化來突出顯著特征。它由通道注意力模塊和空間注意力模塊兩個子模塊組成。通道注意力模塊使用批量歸一化(BN)[9]的縮放因子來衡量通道的方差,從而表明它們的重要性。具體來說,它使用BN的縮放因子來計算每個通道的注意力,并將其乘以輸入特征圖,以便突出顯著特征。空間注意力模塊使用縮放因子來衡量像素的重要性。具體來說,空間注意力子模塊使用卷積層和MLP(多層感知器)來計算每個像素的注意力,并將其乘以輸入特征圖,以便突出顯著特征。NAM 將這兩個子模塊結合起來,以提高深度神經網絡的性能。此外,為了有效抑制較不顯著的權重,NAM 在損失函數中添加了正則化項,從而提高模型的準確性。NAM 的結構簡單,但具有高效的性能。它的結構可以被稱為“結構化的注意力”,因為它將通道注意力和空間注意力結合在一起,以提高深度神經網絡的性能。
在CoTNeXt 骨干網絡中,本文將NAM 嵌入在殘差結構的末尾。在通道注意力子模塊中,使用來自批量歸一化(BN)的縮放因子,如式(3)所示。縮放因子測量通道的方差,表明它們的重要性。
式中:μB為小批量(mini batch)B的平均值;σB為小批量(mini batch)B的標準差;γ和β均為可訓練的仿射變換參數。
通道注意力模塊如圖5所示。圖中,F1為輸入特征,γ為每個通道的比例因子,Mc為輸出特征,權值為ωγ=。
圖5 通道注意力模塊
通道注意力模塊公式如式(4)所示。
在空間注意力子模塊中,將BN 的縮放因子應用于空間維度來衡量像素的重要性,這操作稱為像素歸一化(pixel normalization)。
空間注意力模塊如圖6所示。圖中,F2為輸入特征,λ為每個通道的比例因子,Ms為輸出特征,權值為ωλ=。
圖6 空間注意力模塊
空間注意力模塊公式如式(5)所示。
最后,為了有效抑制較不顯著的權重,NAM 在損失函數中添加了正則化項,如式(6)所示。
式中:x為輸入;y為輸出;W為網絡權重;l( · )為損失函數;g( · )表為L1 范數懲罰函數;p為懲罰因子,平衡g(γ)和g(λ)的懲罰。
總之,NAM 模塊是一種有效的輕量級注意力機制,可以有效地減少參數數量,從而提高模型的效率,并且可以更好地捕捉特征圖的空間關系,從而更好地突出顯著特征。通過將NAM 模塊融入CoTNeXt 骨干網絡中,我們可以進一步增強網絡對不同層特征的利用能力,從而提高動作識別任務的性能。
為了驗證本文模型的性能和泛化能力,本文在公共數據集Jester和Kinetics-400上對本文模型進行評估。
Jester 數據集是由20bn 公司提供的一個大規模視頻數據集,它包含了148 092 個帶有密集標簽的視頻剪輯,這些視頻剪輯顯示了人類在筆記本電腦攝像頭或網絡攝像頭前執行預先定義的27 種手勢。這些手勢包括向下滑動兩根手指、向左或向右滑動以及敲擊手指等。該數據集分為訓練集、驗證集和測試集,其中訓練集有118 562個視頻剪輯,驗證集有14 787 個視頻剪輯,測試集有14 743個視頻剪輯。Jester數據集的部分動作視頻的采樣幀如圖7所示。
圖7 Jester的部分動作視頻采樣幀
Kinetics-400 數據集是由DeepMind 和Google Research 團隊于2017年發布的一個大規模的視頻動作識別數據集,旨在推動視頻理解領域的研究進展。該數據集包含400個人類動作類別,每個類別至少有400個視頻剪輯,共計約30 萬個視頻。每個視頻剪輯持續大約10 s,并且取自YouTube 視頻。這些動作以人類為中心,涵蓋廣泛的類別,包括演奏樂器、運動、日常活動等。Kinetics-400數據集的部分動作視頻的采樣幀如圖8所示。
圖8 Kinetics-400的部分動作視頻采樣幀
本文實驗是在Linux 系統搭建的Pytorch 深度學習框架下,使用4 張Tesla V100-PCIE-32GB 顯卡完成的。優化器采用隨機梯度下降(SGD)算法來學習網絡參數,使用Nesterov 動量,動量參數設置為0.9。對于公共數據集Jester 和Kinetics-400,SGD 優化器權重衰減分別設置為0.000 5 和0.000 1。其中,批量大小(batch-size)設置為8,Dropout 設置為0.5。通過ImageNet 上的預訓練模型初始化網絡權重,整個訓練次數epoch設置為50。在實驗中,初始化學習率lr設置為0.005,每經過20個epoch,學習率下降為到原來的1/10,經過50個epoch后完成全部訓練。
對本文提出的人體動作識別網絡進行評估,圖9 是本文的人體動作識別網絡在Jester 數據集上訓練過程中準確率和訓練損失Loss曲線圖。
圖9 準確率和訓練損失曲線
本次訓練總共有50 個epoch,對每一個epoch 得到的模型,在Jester 數據集的驗證集上進行評估,得到模型Top-1 和Top-5 準確率的曲線圖。Top-1 和Top-5 準確率的曲線圖如圖10所示。
圖10 Top-1和Top-5準確率的曲線
由圖10 可知,本文模型在經過第48 個epoch 時,準確率達到了最高值,Top-1 識別精度為0.974 2,Top-5 識別精度為0.998 5。本文模型fps 為7.6 video/s,具有良好的實時性。實驗結果表明,CoTNeXt 骨干網絡、NAM 模塊和TSM 模塊的組合形成了一個強大的動作識別網絡,在Jester數據集上取得了優異的性能。
本文的模型算法與其他主流動作識別模型算法在Jester 數據集進行比較,結果如表1。從表中可以清晰得知,本文提出的人體動作識別算法優于其他主流算法,識別準確率更高。
表1 不同模型識別準確率對比(Jester數據集)
在Kinetics-400 數據集上,對本文提出的人體動作識別網絡進行評估,本文的人體動作識別模型在Kinetics-400數據集上訓練過程中準確率和訓練損失曲線如圖11所示。
圖11 準確率和訓練損失曲線
在CoTNeXt-50 與時序移位模塊組合形成的新骨干網絡中,對于融合NAM注意力模塊對最終識別準確率的影響進行對比。融合NAM 注意力模塊的對比圖如圖12 所示。由圖可知,融合NAM 注意力模塊的網絡模型,相比只有CoTNeXt-50 與時序移位模塊組合成的新骨干網絡,識別準確率由75.58%提升至75.94%,這表明NAM 模塊能夠有效地加強人體動作識別模型對于重要特征的關注,提高模型的識別精度和魯棒性。
圖12 融合NAM注意力模塊的對比圖
本文的模型算法與其他先進的動作識別模型算法在Kinetics-400 數據集上進行比較,如表2 所示。從表2 中可知,本文提出的人體動作識別算法具有較高的識別準確率,優于其他先進算法。
表2 不同模型識別準確率對比(Kinetics 數據集)
本文提出了一種新的人體動作識別算法,首先通過骨干網絡CoTNeXt 對上下文信息進行挖掘并進行自注意力學習,從而有效地增強動作特征,更好地識別不同動作中的關鍵特征,提高人體動作識別算法的識別準確率和魯棒性;然后,利用時序移位模塊對動作時序信息建模,可以充分提取動作時序信息,進一步提高動作識別的性能;最后,融合輕量級的NAM 注意力機制,可以通過增加正則化項來進一步抑制不顯著的特征,從而突出顯著動作特征,進一步提升人體動作識別算法的性能。實驗結果表明,在ImageNet 預訓練模式下,本算法在Jester 數據集和Kinetics-400 數據集上分別取得了97.42%和75.94%的識別準確率,性能優于現有大多基于3D 卷積神經網絡的人體動作識別模型。本算法有很好的實時性,在未來的工作中,將結合機器人,實時識別人體動作,將相應的動作語義反饋到機器人,實現更加友好的實時人機交互。