吳 敏,王 敏
(河海大學(xué) 計算機(jī)與信息學(xué)院,南京 211100)
由于互聯(lián)網(wǎng)的快速發(fā)展,傳播媒介的日漸豐富,網(wǎng)絡(luò)視頻的數(shù)量以指數(shù)級的速度大量增長.如何理解視頻內(nèi)容成為一個亟需解決的問題.動作識別作為計算機(jī)視覺中的一個熱門領(lǐng)域受到了廣泛的關(guān)注,在監(jiān)控分析、人機(jī)交互、體育視頻解讀等領(lǐng)域內(nèi)有著廣闊的應(yīng)用前景.
在動作識別中,有兩個關(guān)鍵的有效信息:空間信息和運(yùn)動信息.一個識別系統(tǒng)的性能在很大程度上取決于它能否從中提取和利用相關(guān)信息.然而,由于許多復(fù)雜的因素,例如比例變化、視角變化和相機(jī)運(yùn)動等,提取這些信息是非常困難的.因此,設(shè)計有效的特征表示和模型方法來處理這些挑戰(zhàn),同時保留動作的有效分類信息就變的至關(guān)重要.隨著深度學(xué)習(xí)在圖像、文本等領(lǐng)域內(nèi)取得了成功后,該方法在動作識別領(lǐng)域內(nèi)也得到了廣泛的應(yīng)用,由早期的手工特征的方法,轉(zhuǎn)變?yōu)榛谏疃葘W(xué)習(xí)的方法.卷積神經(jīng)網(wǎng)絡(luò)有著強(qiáng)大的建模能力,近年來,機(jī)器設(shè)備計算能力的提升和大型數(shù)據(jù)集的出現(xiàn),使得基于深度學(xué)習(xí)的方法成為視頻分析動作識別的參考標(biāo)準(zhǔn).
動作識別作為動作預(yù)測領(lǐng)域和人體姿態(tài)分析的基礎(chǔ),其主要目標(biāo)就是對視頻中的人物所做的行為動作進(jìn)行理解分類,那么如何有效利用視頻中的各部分有效信息進(jìn)行識別是首要問題.視頻識別和圖像識別中最大的區(qū)分點(diǎn)就是時序信息的使用和建模.早期采用時空描述符用于特征的提取和分類,Wang 等[1]提出采用Fisher 向量對密集運(yùn)動軌跡DT 進(jìn)行編碼表示.基于此,Wang 等[2]提出改進(jìn)后的IDT 算法,改進(jìn)特征正則化方式和特征編碼方式,在動作識別上取得了顯著的成果.深度學(xué)習(xí)的出現(xiàn)使得能夠更好地進(jìn)行特征的提取和學(xué)習(xí).2D 卷積建模用于視頻理解主要是對單幀視頻進(jìn)行特征的提取,不能夠很好地對時序信息進(jìn)行建模.Simonyan 等[3]提出了將基于外觀的信息與運(yùn)動相關(guān)的信息分離出來,使用兩個并行的卷積網(wǎng)絡(luò)處理RGB和光流輸入,基于空間流和光流圖的雙流卷積網(wǎng)絡(luò)方法用于動作識別,識別率高.Wang 等[4]基于雙流網(wǎng)絡(luò)提出時間片段網(wǎng)絡(luò),將整段視頻分割成連續(xù)的視頻片段,將每段視頻分別輸入到網(wǎng)絡(luò)中,它將稀疏時間采樣策略和基于視頻的監(jiān)督相結(jié)合,使用整個視頻有效的學(xué)習(xí).3D 卷積[5]能夠?qū)r空信息進(jìn)行更好的捕捉,但是所需的計算成本太大.Ji 等[6]首先提出了擴(kuò)展時間信息后的3D 卷積網(wǎng)絡(luò)用于動作識別,使用三維核從空間和時間維度中提取特征.Tran 等[7]使用三維卷積和三維池化進(jìn)一步改進(jìn)3D 卷積網(wǎng)絡(luò)并命名為C3D.近年來對于識別的實(shí)時性要求不斷提高,網(wǎng)絡(luò)架構(gòu)轉(zhuǎn)向采用輕量級的模塊來替代傳統(tǒng)的光流方法來減少計算量.Lee 等[8]提出了包含運(yùn)動模塊的運(yùn)動特征網(wǎng)絡(luò)MFNet,該運(yùn)動塊可以在端到端訓(xùn)練的統(tǒng)一網(wǎng)絡(luò)中的相鄰幀之間編碼時空信息.Jiang 等[9]將2D 網(wǎng)絡(luò)作為主干架構(gòu),提出一個簡單高效的STM 模塊用于編碼空間和運(yùn)動信息.Feichtenhofer 等[10]提出了快慢結(jié)合的模型,使用了一個慢速高分辨率CNN(Slow 通道)來分析視頻中的靜態(tài)內(nèi)容,同時使用一個快速低分辨率CNN(Fast 通道)來分析視頻中的動態(tài)內(nèi)容,對同一個視頻片段應(yīng)用兩個平行的卷積神經(jīng)網(wǎng)絡(luò),取得了顯著的效果.Zhao 等[11]將RGB和光流嵌入到一個具有新層的二合一流網(wǎng)絡(luò)中,在運(yùn)動條件層從流圖像中提取運(yùn)動信息,在運(yùn)動調(diào)制層利用這些信息生成用于調(diào)制低層RGB 特征的變換參數(shù),進(jìn)行端到端的訓(xùn)練,利用運(yùn)動條件對RGB 特征進(jìn)行調(diào)制可以提高檢測精度.
本文采用時空模塊提取圖像以及時序信息,使用平移部分通道的方法來實(shí)現(xiàn)時空信息的融合,減少計算量,同時加入RGB 差值信息增強(qiáng)數(shù)據(jù),最后采用NetVLAD 聚合所有的特征信息實(shí)現(xiàn)行為動作的分類.
該模塊的主要功能是對不同時間點(diǎn)提取的視頻幀特征圖進(jìn)行信息交換,從而實(shí)現(xiàn)時序特征的提取.地址的移位用于圖像識別取得了較好的效果.根據(jù)文獻(xiàn)[12]中的模型,不同于卷積操作,移位操作本身不需要參數(shù)或浮點(diǎn)運(yùn)算,相反移位操作包含一系列的記憶性操作,可以通過移位操作融合1×1 卷積來提取聚合特征信息,從而減少計算量.以普通一維卷積舉例來說,預(yù)測值表示為對不同輸入進(jìn)行加權(quán)求和的結(jié)果值,如式(1)所示.換一個角度如果將輸入值看成是當(dāng)前時間點(diǎn)和相鄰時間點(diǎn)的輸入,也就是輸入值看成移位后的?1,0,1 三個時間點(diǎn)的輸入值后,如式(2)所示,再進(jìn)行乘性相加,如式(3)所示.由此移位卷積可以概括為移位和乘性相加兩個過程的結(jié)果.
將T幀圖片C通道的輸入進(jìn)行排列后的張量,如圖1所示.
圖1 移位模塊的特征示意圖
每行的各圖片通道都表示的是不同時間點(diǎn)獲取的圖片幀特征值.對于不同時間點(diǎn)下的同一通道的特征值沿著時間維度進(jìn)行平移,部分通道值向下平移一格,部分通道值向上平移一格,移位后空缺的部分補(bǔ)0,多出的特征圖通道值移出,從而實(shí)現(xiàn)雙向平移,相鄰幀的特征信息在移動后與當(dāng)前幀混合.但并不是平移越多,交換的信息也越多.如果移位的比例太小,時間建模的能力可能不足以處理復(fù)雜的時間關(guān)系;如果移位的比例太大,空間特征學(xué)習(xí)能力可能會降低過多.為了進(jìn)行有效的時空信息融合,避免移動過多的通道而導(dǎo)致空間建模能力下降,只移動部分通道,從而達(dá)到平衡空間特征學(xué)習(xí)和時間特征學(xué)習(xí)的模型能力.
本文將該移位模塊加入到殘差網(wǎng)絡(luò)的每個分支殘差塊中,在卷積操作前進(jìn)行移位操作,不增加3D 計算量的情況下實(shí)現(xiàn)時空信息的融合,對于每個插入的移位時空模塊,時間感受野被放大2 倍,由此進(jìn)行復(fù)雜的時間建模.
除了充分利用時空信息之外,本文還加入疊加的RGB 差值進(jìn)行多模態(tài)的輸入,實(shí)現(xiàn)信息增強(qiáng)的效果.常用的提取光流圖來表征運(yùn)動信息的方法計算量大,在光流圖計算過程中的關(guān)鍵步驟是將像素值沿時間方向求偏導(dǎo),所以本文將其簡化成RGB 差值來作為輸入,來表示外觀變化和顯著運(yùn)動的區(qū)域,從中訓(xùn)練學(xué)習(xí)運(yùn)動信息,從而大大節(jié)省了光流提取的時間.得出的預(yù)估分?jǐn)?shù)與時空特征得出的分?jǐn)?shù)進(jìn)行相加平均用于識別結(jié)果.
VLAD 方法[13]在圖像檢索領(lǐng)域中作為局部聚合描述符向量,對提取的圖像特征進(jìn)行后處理編碼用于圖像的表示,近年來開始應(yīng)用到端到端的卷積神經(jīng)網(wǎng)絡(luò)中用來表示圖像特征.本文采用NetVLAD 方法[14]來作為池化層加入到卷積層的最后,作為池化層來聚合特征信息.
對于一張?zhí)卣鲌Dx,需要從空間位置i∈{1···N}獲取D維的特征向量xi∈RD來表示該特征圖.首先給定K個聚類中心ck將特征空間RD劃分成K個單元.每一個特征向量xi都對應(yīng)著一個單元,并用殘差向量xi?ck表示特征向量和聚類中心的差值,由此得到的差分向量表示為:
其中,xi(j)和ck(j)表示特征向量xi和聚類中心ck的第j個分量,α是可訓(xùn)練的超參數(shù).輸出矩陣V中的第K列表示的是第K個單元中聚合的特征向量,接著將矩陣按列進(jìn)行歸一化,以及L2-歸一化后化為一維向量v∈RKD表征特征圖.最后將輸出值送入到全連接層用于分類.
實(shí)驗(yàn)硬件配置為GTX 1080 Ti,編程語言為Python,基于PyTorch 框架.數(shù)據(jù)集是UCF101[15]和HMDB51[16].UCF101 數(shù)據(jù)集包含101 個動作類別,共13 320 個視頻片段.HMDB51 數(shù)據(jù)集是一個包含電影、網(wǎng)絡(luò)視頻等多個來源的真實(shí)動作視頻的集合,共51 個類別,6766 個視頻片段.數(shù)據(jù)集都提供了相應(yīng)的訓(xùn)練集和測試集的劃分.調(diào)整視頻幀為224×224 作為網(wǎng)絡(luò)的輸入.
訓(xùn)練參數(shù)為:50 個epoch,初始學(xué)習(xí)率為0.01,權(quán)值衰減率為1e-4,批處理大小為16,dropout 值為0.5.本文使用從Kinetics 數(shù)據(jù)集[17]預(yù)先訓(xùn)練的權(quán)重進(jìn)行微調(diào),并凍結(jié)批處理規(guī)范化層.對于殘差移位模塊,根據(jù)文獻(xiàn)[18]中的研究結(jié)果,當(dāng)部分移位信道1/4 (雙向移位每個方向1/8)時,性能達(dá)到峰值.
時空模塊的部分采用的是ResNet50 框架,將時空模塊加入到殘差網(wǎng)絡(luò)的分支殘差塊中,獲得更好的空間特征學(xué)習(xí)能力.
從表1可以看出,本文中加入時空模塊以及多模態(tài)的方法確實(shí)能夠?qū)ψR別精度有一定程度的提升,對比C3D、ArtNet 方法,在預(yù)訓(xùn)練數(shù)據(jù)集相同,浮點(diǎn)運(yùn)算的數(shù)量級相同的條件下,對兩個數(shù)據(jù)集的識別精度分別達(dá)到了不同程度的提升.對比TSN 方法,識別精度得到了很大的提升,在兩個數(shù)據(jù)集上分別提升了8.8和19.4 個百分點(diǎn),也能夠看出使用大型動作數(shù)據(jù)集進(jìn)行預(yù)訓(xùn)練得出的參數(shù)優(yōu)化能夠使實(shí)驗(yàn)結(jié)果精度得到更大的提升.在計算資源充足的條件下,預(yù)訓(xùn)練能夠?qū)ψR別的精度起到較大的提升影響.同時對比I3D 方法,本文方法在基于2D 模型下的浮點(diǎn)計算量,能夠達(dá)到與之相匹敵的識別精度,實(shí)現(xiàn)了計算量和識別精度兩方面的平衡.
表1 實(shí)驗(yàn)結(jié)果
本文提出了一種帶時空模塊的多模態(tài)方法.該方法將時空模塊引入到2D 卷積網(wǎng)絡(luò)中,實(shí)現(xiàn)時空信息的提取融合,不增加浮點(diǎn)運(yùn)算,同時加入RGB 差值進(jìn)行信息增強(qiáng),并采用NetVLAD 方法聚合所有的特征信息,最后實(shí)現(xiàn)行為動作的分類,在數(shù)據(jù)集UCF101和HMDB51上達(dá)到了比較理想的識別精度,且與3D 方法的計算量相比較,較好地實(shí)現(xiàn)了計算量和識別精度的平衡.