趙緒言
(西南交通大學(xué)計(jì)算機(jī)與人工智能學(xué)院,成都 611756)
現(xiàn)今,智能安防領(lǐng)域在城市智能化過程中成為越來越不可或缺的一部分,其改變了傳統(tǒng)監(jiān)控功能單一,沒有基于視頻主動(dòng)分析功能的缺陷。國(guó)內(nèi)外越來越多的技術(shù)性企業(yè)正在全力發(fā)展基于智能安防的行為分析等核心技術(shù)。為了使計(jì)算機(jī)能夠更好地監(jiān)控和分析視頻數(shù)據(jù),對(duì)于視頻中目標(biāo)行為的檢測(cè)與識(shí)別是一項(xiàng)基本能力。如今在深度學(xué)習(xí)快速發(fā)展的背景下,利用視頻數(shù)據(jù)進(jìn)行人物行為識(shí)別變得越來越容易,但是在很多特定場(chǎng)景下,基于深度學(xué)習(xí)的行為識(shí)別依舊有非常多可以深究的部分。
生活中某些特定的場(chǎng)景常常會(huì)對(duì)人物的行為做出特定的限制,如加油站禁止抽煙和打電話,駕駛過程中禁止打電話等。近年來在加油站、駕駛過程中抽煙、打電話引發(fā)的安全事故屢見不鮮,對(duì)社會(huì)造成很大的危害。因此,設(shè)計(jì)一種基于深度學(xué)習(xí)的抽煙、打電話動(dòng)作識(shí)別算法是十分有必要的。
早期的行為識(shí)別算法的輸入是圖片,輸出是行為的類別,然而行為的發(fā)生往往伴隨著時(shí)序的關(guān)系,如果網(wǎng)絡(luò)的輸入僅僅是圖片那么時(shí)序關(guān)系將會(huì)被忽略。本文選擇工程環(huán)境下的復(fù)雜場(chǎng)景,研究基于時(shí)序信息的抽煙、打電話識(shí)別算法。
動(dòng)作的發(fā)生常常伴隨著先后順序,例如人抽煙這個(gè)動(dòng)作會(huì)先抬手,然后再吸煙。為了在行為識(shí)別網(wǎng)絡(luò)中加入時(shí)序信息,輸入單張圖片是不夠的,而是需要將覆蓋整個(gè)動(dòng)作的視頻片段輸入網(wǎng)絡(luò)進(jìn)行訓(xùn)練。因此需要在網(wǎng)絡(luò)中設(shè)計(jì)加入時(shí)序特征。
Donahue 等提出的LRCN 使用CNN 提取空間特征,使用LSTM 提取時(shí)序特征,進(jìn)行行為識(shí)別。但是LSTM 的固有順序阻礙了訓(xùn)練樣本的并行化,導(dǎo)致訓(xùn)練效率很低,并且它可感知的時(shí)序性范圍也是有限的。而RGB-Based 的方法可以一定程度上解決這些問題。
RGB-Based 行為識(shí)別可以分為Two-Stream、3D-based、2D-based、Video Transformer 這幾個(gè)類別。
其中Two-Stream 將動(dòng)作識(shí)別中的特征提取分為兩個(gè)分支:一個(gè)是RGB分支提取空間特征、另一個(gè)是光流分支提取時(shí)間上的光流特征,最后結(jié)合兩種特征進(jìn)行動(dòng)作識(shí)別,代表性方法如TwoStream及其擴(kuò)展。
3D-Based 的方法將2D 卷積添加了時(shí)間維度,擴(kuò)展到3D,直接提取包含時(shí)間和空間兩方面的特征,這一類方法也是目前做的比較多的話題。代表方法如開山之作C3D及其之后的擴(kuò)展SlowFast等。目前3D-Based 的方法在大規(guī)模的Scene-Based 數(shù)據(jù)集(如Kinetics400)上相對(duì)于2D 的方法取得了更好的效果,但是3Dbased 也存在一些明顯的問題:其網(wǎng)絡(luò)參數(shù)量大,計(jì)算開銷大,推理速度明顯慢于2D-Based的方法。
2D-Based 的出現(xiàn)是為了解決以上3D-based的缺點(diǎn),近年來也有比較高效的2D-based 的時(shí)序建模方法,包括TSN,TPN等輕量級(jí)的時(shí)序建模方法。
基于卷積的主干網(wǎng)絡(luò)長(zhǎng)期以來一直主導(dǎo)著計(jì)算機(jī)視覺中的視覺建模任務(wù),然而目前圖像分類的主干網(wǎng)絡(luò),最近正在進(jìn)行從CNN 到Transformer的 轉(zhuǎn) 變。這 一 趨 勢(shì) 始 于Vision Transformer(ViT)和Swin Transformer的引入,在視覺分類任務(wù)上取得了SOTA 的效果。Swin Transformer 不同于ViT 一來就下采樣16 倍的策略,提出了具有層次性的特征圖,利用SWMSA(shifted-window multi head self attention)進(jìn)行窗口之間的通訊。Transformer 系列在圖像分類上的巨大成功促成了一些基于Transformer 結(jié)構(gòu)的視頻識(shí)別任務(wù)研究的出現(xiàn)。例如本文用到的方法Video Swin Transformer。
另外還有Skeleton-Based 的方法,例如STGCN。這種方法基于骨架的行為識(shí)別以關(guān)鍵點(diǎn)檢測(cè)算法的結(jié)果作為網(wǎng)絡(luò)輸入進(jìn)行行為識(shí)別。骨架的信息使得行為識(shí)別的準(zhǔn)確性得到提升,但對(duì)輸入的要求比較嚴(yán)格,需要先對(duì)視頻數(shù)據(jù)進(jìn)行預(yù)處理得到骨架數(shù)據(jù),這使得該類算法的中間步驟較多,不利用工程化應(yīng)用。
基于Transformer 系列強(qiáng)大的特征提取能力,本文在Video Swin Transformer的基礎(chǔ)上,對(duì)視頻片段進(jìn)行抽煙、打電話動(dòng)作識(shí)別。Video Swin Transformer 嚴(yán)格遵循原始Swin Transformer 的層次結(jié)構(gòu),但將局部注意力計(jì)算的范圍從空間域擴(kuò)展到時(shí)空域。由于局部注意力是在非重疊窗口上計(jì)算的,因此原始Swin Transformer 的滑動(dòng)窗口機(jī)制也被重新定義了,以適應(yīng)時(shí)間和空間兩個(gè)域的信息。
整體結(jié)構(gòu)中的主要組件是Efficient Video Swin Transformer Block,如圖1(b)所示。這個(gè)模塊是基于Swin Transformer Block,其中Swin Transformer Block 是 將Transformer 中Multi Head Self Attention(MSA)替換成了基于3D 滑動(dòng)窗口的MSA 模塊。具體地說,一個(gè)Video Transformer Block 由一個(gè)基于3D 滑動(dòng)窗口的MSA 模塊和一個(gè)前饋網(wǎng)絡(luò)(FFN)組成,其中FFN 由兩層的MLP 和激活函數(shù)GELU 組成。Layer Normalization(LN)被用在每個(gè)MSA 和FFN 模塊之前,殘差連接被用在了每個(gè)模塊之后。
圖1 Efficient Video Swin Transformer
本文在Swin Transformer Block 的基礎(chǔ)上,參考DynamicViT提 出 了Efficient Swin Transformer Block。即在FFN 之后添加了一層Sparsification Module(SPM)對(duì)整個(gè)網(wǎng)絡(luò)進(jìn)行分層稀疏化,通過消除信息較弱patch 而節(jié)省計(jì)算開銷,加速模型推理速度。patch 的稀疏化是分層執(zhí)行的,網(wǎng)絡(luò)在計(jì)算的過程中會(huì)逐步刪除無用信息的patch。兩個(gè)Efficient Swin Transformer Block 之間的計(jì)算如下所示:
考慮到目前數(shù)據(jù)集(3.1 介紹)大部分是以人為中心,視頻中人的目標(biāo)是比較大且清晰的。若實(shí)際遷移到工程攝像頭角度下,場(chǎng)景信息會(huì)更加多樣化和復(fù)雜,其中“人”的目標(biāo)可能會(huì)較小,如果直接將整個(gè)畫面?zhèn)魅雱?dòng)作識(shí)別網(wǎng)絡(luò),網(wǎng)絡(luò)可能會(huì)因?yàn)槌闊?、打電話的視覺特征不明顯,周圍無用的視覺信息較多,造成分類效果不理想。因此本文考慮在動(dòng)作識(shí)別模型(Efficient Video Swin Transformer)前,加入一系列前處理操作,盡可能在動(dòng)作分類前過濾掉周圍無用的視覺信息,且保證動(dòng)作識(shí)別模型的在線處理實(shí)時(shí)性。詳細(xì)的處理流程如圖2所示。
圖2 在線動(dòng)作識(shí)別框架
①接入實(shí)時(shí)流解碼得到連續(xù)的單幀圖片。②通過YOLO V5目標(biāo)檢測(cè)算法,檢測(cè)到“人”這個(gè)類。③利用多目標(biāo)跟蹤算法SORT,對(duì)多幀之間的目標(biāo)檢測(cè)結(jié)果進(jìn)行跟蹤,得到帶ID 的跟蹤序列。④將跟蹤后的序列送入Online Video Understanding 算法。維護(hù)保證實(shí)時(shí)性的待檢測(cè)序列。⑤對(duì)上一步中的序列接入Efficient Video Swin Transformer 動(dòng)作識(shí)別模型進(jìn)行動(dòng)作分類,得到最終結(jié)果。
其中第④步的Online Video Understanding 算法參考ECO。因?yàn)閯?dòng)作識(shí)別模型在訓(xùn)練時(shí)的輸入通常都是一段裁剪好的視頻。在實(shí)際工程中的輸入通常是通過解碼視頻流,形成一幀一幀連續(xù)的圖片呈現(xiàn)的。那么如何將視頻流解碼后的多幀圖片轉(zhuǎn)換成動(dòng)作識(shí)別模型的輸入,且保證識(shí)別結(jié)果的實(shí)時(shí)性是一個(gè)問題。目前一般的做法是固定一個(gè)大小為的滑動(dòng)窗口,輸入連續(xù)幀畫面,進(jìn)入動(dòng)作識(shí)別網(wǎng)絡(luò)判斷結(jié)果。但是這樣做會(huì)有兩個(gè)缺陷:①會(huì)造成長(zhǎng)期語義信息的缺失;②無法保證動(dòng)作識(shí)別的實(shí)時(shí)性,可能會(huì)造成較長(zhǎng)的延遲。因此需要一個(gè)在線的處理框架保證網(wǎng)絡(luò)的實(shí)時(shí)性。
如圖2中右側(cè)中間部分所示,這個(gè)框架中主要維護(hù)了兩個(gè)圖像的隊(duì)列,其中Q表示存放較舊圖像的工作記憶隊(duì)列,Q表示存放新解碼得到的未處理圖像隊(duì)列。當(dāng)新的一組序列到來時(shí),需要從上述兩個(gè)隊(duì)列中各采樣一半得到即將推理隊(duì)列Q,同時(shí)更新工作記憶隊(duì)列。然后將Q作為動(dòng)作識(shí)別網(wǎng)絡(luò)的輸入得到當(dāng)前的預(yù)測(cè)結(jié)果。同時(shí)將當(dāng)前的預(yù)測(cè)結(jié)果和平均預(yù)測(cè)結(jié)果進(jìn)行平均后得到最終的輸出。這個(gè)框架在以當(dāng)前畫面為主的基礎(chǔ)上,通過工作記憶隊(duì)列和平均輸出兩個(gè)方面維護(hù)了較長(zhǎng)的時(shí)序信息。
本文在兩大公開數(shù)據(jù)集的基礎(chǔ)上,構(gòu)建抽煙、打電話的視頻數(shù)據(jù)集。其中Kinetics400 包含抽煙視頻,Moments in time包含抽煙和打電話視頻。選擇Kinetics400 中所有的抽煙視頻+網(wǎng)上額外爬取的抽煙視頻,Moments in time 中所有的打電話視頻,形成視頻數(shù)據(jù)集。每個(gè)視頻時(shí)長(zhǎng)大概為10 秒。最后形成的數(shù)據(jù)集包含三個(gè)類別:抽煙、打電話和其他。數(shù)據(jù)集詳細(xì)情況如表1所示。
表1 抽煙、打電話數(shù)據(jù)集
其中抽煙視頻870 個(gè),打電話視頻1959 個(gè),其他視頻800個(gè)(“其他”為Kinectics400中除開抽煙的其他類別,隨機(jī)抽取得到)。按照二八的比例劃分為驗(yàn)證集和訓(xùn)練集。
實(shí)現(xiàn)上,實(shí)驗(yàn)采用Swin Base 的基礎(chǔ)結(jié)構(gòu),使用ImageNet 21K的預(yù)訓(xùn)練模型。訓(xùn)練參數(shù)patch 設(shè)置為224 × 224,學(xué)習(xí)率采用CosineAnnealing 的策略,初始學(xué)習(xí)率為3e-4,采用線性warm up 策略,優(yōu)化器采用AdamW,權(quán)重衰減設(shè)置為0.05,batch size 設(shè)置為16,總迭代次數(shù)為30個(gè)epoch。
本文將實(shí)驗(yàn)結(jié)果與動(dòng)作識(shí)別的其他方法在驗(yàn)證集上進(jìn)行了對(duì)比,形成的實(shí)驗(yàn)結(jié)果如表2所示。其中第四行(已加粗)是本文采用方法的實(shí)驗(yàn)結(jié)果。可以看出本文提出的Efficient Video Swin Transformer,與傳統(tǒng)基于RGB 的方法TSN、TPN 相比,精度有非常大的提升,與Video Swin Transformer 相比,在加入SPM(Keeping Ratio 設(shè)置為0.8)后精度只下降0.3%,但是推理速度提升26%,約10 秒的視頻片段推理時(shí)間可達(dá)到3.4秒。
表2 實(shí)驗(yàn)結(jié)果對(duì)比
同時(shí),本文提出的方法通過集成在線動(dòng)作識(shí)別框架,可以將抽煙、打電話的動(dòng)作識(shí)別在真實(shí)工程系統(tǒng)環(huán)境下做到很高的實(shí)時(shí)性和準(zhǔn)確性。其中YOLO V5 和SORT 能保證檢測(cè)和跟蹤的效率,通過Online Video Understanding 可以實(shí)時(shí)地平滑出當(dāng)前的結(jié)果,區(qū)分出畫面中人抽煙、打電話或者其他的行為。
本文基于Video Swin Transformer 和Dynamic-ViT,提出了Efficient Video Swin Transformer,在Swin Transformer Block 中加入SPM 模塊,在保證一定精度的同時(shí),大幅提升了動(dòng)作識(shí)別網(wǎng)絡(luò)的推理速度。在Kinetics400 和Moments in time 混合的抽煙、打電話數(shù)據(jù)集中,與現(xiàn)有方法相比取得了速度與精度最為平衡的結(jié)果。同時(shí),本文提出了一套在線動(dòng)作識(shí)別框架,將Efficient Video Swin Transformer 集成在其中??蚣軓囊曨l流中解碼得到單幀圖片,到目標(biāo)檢測(cè)、跟蹤、實(shí)時(shí)在線平滑隊(duì)列,最后傳入動(dòng)作識(shí)別網(wǎng)絡(luò)得到分類結(jié)果,整個(gè)過程可保持結(jié)果的實(shí)時(shí)性和準(zhǔn)確性。