彭 濤 李俊岐 黃俊杰 張自力 何儒漢 胡新榮
(1.湖北省服裝信息化工程技術研究中心 武漢 430200)
(2.紡織服裝智能化湖北省工程研究中心 武漢 430200)
(3.武漢紡織大學計算機與人工智能學院 武漢 430200)
在地鐵行駛過程中需要司機根據列車的運行情況去做出不同的手勢,以示意其他工作人員。將動作識別(action recognition)算法應用在地鐵系統,可以讓司機學習標準的動作,也可用來檢測異常行為。現有的網絡模型有2D CNN、3D CNN、基于自注意力機制(self-attention mechanism)的網絡等。
以上述的幾種網絡為基礎,進而改進出了R(2+1)D、I3D、P3D、TSN、TSM[1~5]等方法和模型,本文過對上述的深度學習方法和模型繼續進行改進,以此用來識別地鐵司機的行為,其目的是在一定程度上對司機和其他工作人員起到教育和警示作用。
早期的傳統方法有iDT[6~7]等,該類方法的不足在于處理大規模數據集時的效率低,難以應用到實時性要求高的任務中。Karpathy[8]等提出的2D CNN沒有將動作的時域信息充分考慮,為了彌補這個缺陷,Feichtenhofer 等[9]提出的雙流結構是一個流行擴展和改進,但它的改進依然有限。一個簡單的優化方法是將二維卷積運算擴展到三維。這種方法雖然在精度方面很有優勢,但需要大規模數據集的預訓練參數。Carreira[2]等將2D 權重擴充維度,從而解決了這個問題。Conv3D&Attention[10]引入了注意力機制來更好地考慮時序信息,但卻不易并行計算。此外近年還有一些[11~12]基于ViT[13]模型和 Transformer(multi-head self-attention mechanism,MSA)的方法被提出。
本文受DeepViT[14]和時空注意力—Timesformer模型[15]啟發,提出一種重時空注意力的動作識別方法,本方法把DeepViT 模型的維度進行擴充,然后利用時空注意力模塊來進行提取特征,最后成功應用到地鐵司機動作識別任務。實驗表明相較于CNN和基礎的時空注意力,重時空注意力模型在訓練速度和準確率上皆有提升。
為了解決由網絡加深帶來的注意力崩潰問題,改進了由自注意力計算組成的時空注意力模塊,提出了一種基于重時空注意力的地鐵司機動作識別模型。整個算法流程如圖1所示,其步驟如下。

圖1 司機動作識別流程圖

時空注意力模型加入了時間注意力模塊,使得基礎ViT 模型既能處理空間信息,也能有效地處理時序信息,其本質是由ViT 改進而來。它的基本模塊是Transformer編碼器,其內部由多個交互的多頭自注意力MLP(Multilayer Perceptron)和LayerNorm(LN,層歸一化)層組成。
目前越來越多的學者開始將自注意力機制應用在動作識別領域,其中的代表有Arnab[16]、Zhang[17]、Neimark[18]等。然而zhou[14]的實驗發現,自注意力層在堆疊一定數量后,會產生注意力崩潰等問題,此現象在普通的基于時空注意力的地鐵司機動作識別模型中也存在。他們提出的Re-attention 機制在圖像分類等下游任務中,解決了注意力崩潰帶來的問題。基于Re-attention 的特性和沿著上述的設計思路,本文提出了一種新的地鐵司機動作識別方法,該方法的核心是Re-attention 機制,具體的實現由式(1)給出:
其中Θ 是一個可學習矩陣,其作用是重組輸入的patch序列來緩和和防止注意力崩潰,d表示維度,Q、K、V代表query、key、value矩陣。
新的時空注意力模塊和模型由線形投影層和Transformer編碼器經過堆疊和殘差連接組成,每個注意力層在相鄰的patch 中實現Re-attention 注意力計算,特征經由模塊進行計算后經過MLP,最后得到輸出,模型的結構如圖2 所示,其框架主要包含四部分。

圖2 時空注意力模型結構
第一部分是輸入,如圖預處理完成的幀序列在進行編碼后,先后輸入到空、時間注意力模塊。它們的計算公式由式(2)和式(3)給出:
其中l=1,2…,L是注意力模塊的層數,a=1,2…,A表示注意力的頭數也稱個數,Dh表示注意力頭的維度。p表示N幀圖像中的第幾個patch,t表示當前的patch 來自哪F幀圖像,SM 表示SoftMax函數。
第二部分和第三部分是重空、時間注意力模塊,其主要作用是提取幀序列的空間和時間特征,它的內部是由歸一化、Re-attention 層經過堆疊和殘差連接而成。
第四部分MLP,它將第二、三部分的輸出進行加權合并,其計算公式如下:
其中z′表示與value經過加權運算后的所有注意力頭的輸出,LN 表示層歸一化運算。上述模型的優點是可以在最小改變模型的范圍內,最大程度上提升準確率,使得模型不易在準確率還未達到理想效果時就已經飽和。
實驗數據取自地鐵駕室內的監控視頻,并進行預處理:將所要識別的5 類動作截取成1s~5s 不等的小片段,然后利用腳本代碼將每個小片段按照8幀/s 的速度截取成幀序列。另外為了防止過擬合,進行了圖像增強操作,數據集由訓練集、驗證集和測試集組成。每個集合里有若干個文件夾,里面有若干視頻幀組成的序列,數據集具體信息由表1給出。

表1 數據集詳情

表2 模型指標
其中這些動作類別分別代表:未做任何動作(Null)、指向開車信號屏(Car)、指向窗外(Out)、指向儀表屏(Signal)、既指向開車信號屏也指向儀表屏(Double,這是一個連貫動作)。圖3(a)~(e)展示了這五種動作的樣例,它們從左到右由上到下依次表示Null、Car、Double、Out、Signal。

圖3 地鐵司機行為樣例
實驗在一張Tesla v-100 GPU 上進行訓練,為了保證最好的訓練效果,實驗在配置環境不變的情況下進行。實驗將batch_size 設置為2,learning_rate 設置為0.00001。將改進的模塊和整體模型在幾種流行網絡上進行對比實驗,表1~表3展示了對比的各項指標。表3 說明了在同樣的網絡深度下,Self-attention 和Re-attention 模塊的性能對比,可以看到隨著網絡的加深,基于Self-attention模塊的時空注意力網絡的表達能力提升緩慢且逐漸飽和,而基于Re-attention 模塊的網絡在微調時空注意力模型的基礎上將準確率提升了約6%,證明了其可行性。圖4 將重時空注意力模型在兩個常用且公開的數據集上進行測試,在UCF101 和HDMB51數據集上,重時空注意力模型相較于其他幾種模型在準確率上皆有所提升。

表3 Self-attention與Re-attention對比

圖4 公開數據集效果對比
實驗說明了重時空注意力模型能很好地提取時序信息,在準確率等指標上也有一定的優勢也解決了注意力崩潰的問題。表2 也表明了時間注意力模塊的重要,同時改進的模型也能最大程度提高模型的表達上限。綜上所述,相較于CNN 等方法,重時空注意力模型在推理速度、參數量、準確率上都具有相當的可競爭性。
本文在標準ViT 和前人的基礎上進行研究,將Re-attention 機制進行改進,并成功應用,解決了傳統模型在地鐵司機動作識別任務中出現的注意力崩潰問題,但是在模型復雜度方面仍有不足:相較于標準ViT 并沒有降低和優化模型的參數量。同時本方法只是在一定程度上提升了準確率,如果應用在需要準確率更高的任務中,本方法仍需改進。