龔蘇明,陳 瑩
江南大學(xué) 輕工過程先進(jìn)控制教育部重點(diǎn)實(shí)驗(yàn)室,江蘇 無錫 214122
在計(jì)算機(jī)視覺領(lǐng)域,對(duì)人類行為識(shí)別的研究既能發(fā)展相關(guān)理論基礎(chǔ),又能擴(kuò)大其工程應(yīng)用范圍。對(duì)于理論基礎(chǔ),行為識(shí)別領(lǐng)域融合了圖像處理、計(jì)算機(jī)視覺、人工智能、人體運(yùn)動(dòng)學(xué)和生物科學(xué)等多個(gè)學(xué)科的知識(shí),對(duì)人類行為識(shí)別的研究可以促進(jìn)這些學(xué)科的共同進(jìn)步。對(duì)于工程應(yīng)用,視頻中的人類行為識(shí)別系統(tǒng)有著豐富的應(yīng)用領(lǐng)域和巨大的市場價(jià)值。其應(yīng)用領(lǐng)域包括自動(dòng)駕駛、人機(jī)交互、智能安防監(jiān)控等。
早期的行為識(shí)別方法主要依賴較優(yōu)異的人工設(shè)計(jì)特征,如密集軌跡特征、視覺增強(qiáng)單詞包法等。得益于神經(jīng)網(wǎng)絡(luò)的發(fā)展,目前基于深度學(xué)習(xí)的行為識(shí)別方法已經(jīng)領(lǐng)先于傳統(tǒng)的手工設(shè)計(jì)特征的方法。Karpathy 等率先將神經(jīng)網(wǎng)絡(luò)運(yùn)用于行為識(shí)別,其將單張RGB圖作為網(wǎng)絡(luò)的輸入,這只考慮了視頻的空間表觀特征而忽略了時(shí)域上的運(yùn)動(dòng)信息。對(duì)此,Simonyan 等提出了雙流網(wǎng)絡(luò)。該方法使用基于RGB 圖片的空間流卷積神經(jīng)網(wǎng)絡(luò)(spatial stream ConvNet)和基于光流圖的時(shí)間神經(jīng)網(wǎng)絡(luò)(temporal stream ConvNet)分別提取人類行為的靜態(tài)特征和動(dòng)態(tài)特征,最后將雙流信息融合進(jìn)行識(shí)別。Wang 等提出了時(shí)間片段網(wǎng)絡(luò)(temporal segment network,TSN)結(jié)構(gòu)來處理持續(xù)時(shí)間較長的視頻,其將一個(gè)輸入視頻分成段(segment),然后每個(gè)段中隨機(jī)采樣得到一個(gè)片段(snippet)。不同片段的類別得分采用段共識(shí)函數(shù)進(jìn)行融合來產(chǎn)生段共識(shí),最后對(duì)所有模型的預(yù)測融合產(chǎn)生最終的預(yù)測結(jié)果。為了解決背景信息干擾,周波等結(jié)合目標(biāo)檢測使神經(jīng)網(wǎng)絡(luò)有側(cè)重地學(xué)習(xí)人體的動(dòng)作信息。劉天亮等提出融合卷積網(wǎng)絡(luò)(convolutional neural network,CNN)與長短期記憶網(wǎng)絡(luò)(long short-term memory,LSTM)的行為識(shí)別方法來指導(dǎo)網(wǎng)絡(luò)學(xué)習(xí)更有效的特征。借鑒2D 卷積神經(jīng)網(wǎng)絡(luò)在靜態(tài)圖像的成功,Ji等將2D 卷積拓展為3D 卷積,從而提出了3D-CNN 方法來提取視頻中的運(yùn)動(dòng)信息。Qiu 等將3D 卷積解耦為2D 空間卷積和1D 時(shí)間卷積,在一定程度上減少了網(wǎng)絡(luò)參數(shù),緩解了網(wǎng)絡(luò)難以優(yōu)化的問題。Zhou 等提出了結(jié)合3D 和2D 的想法,其核心思想是在空間2D 卷積網(wǎng)絡(luò)中,加入3D卷積核(×1×1)來獲取視頻序列中多幀之間的相關(guān)信息,以此來補(bǔ)充時(shí)間維度上的特征。
上述方法中,普通的2D 卷積網(wǎng)絡(luò)無法學(xué)習(xí)輸入幀間時(shí)空特征信息,從而導(dǎo)致整體結(jié)果不佳;3D 卷積方法雖然能同時(shí)提取表觀信息和時(shí)空特征信息,但網(wǎng)絡(luò)參數(shù)過多致使網(wǎng)絡(luò)難以優(yōu)化。基于此,本文提出全新的時(shí)空特征金字塔模塊,該模塊對(duì)輸入特征構(gòu)建特征金字塔模型并使用空洞卷積金字塔提取輸入幀間時(shí)空特征信息,同時(shí)只引入較少的額外參數(shù)和計(jì)算量。該模塊是一種即插即用模塊,能嵌入主流2D 卷積網(wǎng)絡(luò)中提升識(shí)別精度。
本章首先介紹殘差網(wǎng)絡(luò)ResNet50的構(gòu)成模塊Bottleneck;接著介紹將特征金字塔模塊引入Bottleneck 后的網(wǎng)絡(luò)構(gòu)成模塊;最后給出本文網(wǎng)絡(luò)的整體架構(gòu)。特征金字塔模塊將在2.1 節(jié)詳細(xì)介紹。
ResNet50 由4 個(gè)網(wǎng)絡(luò)層(Stage1~4)構(gòu)成,每層構(gòu)成模塊是Bottleneck,其結(jié)構(gòu)過程如圖1(a)所示。該模塊首先對(duì)輸入特征圖使用1×1 卷積(Conv1)進(jìn)行卷積操作,主要目的是為了減少參數(shù)的數(shù)量,從而減少計(jì)算量,且在降維之后可以更加有效、直觀地進(jìn)行數(shù)據(jù)的訓(xùn)練和特征提取。接著使用感受野較大的3×3 卷積(Conv2)來提取更細(xì)化特征。最后使用1×1卷積(Conv3)進(jìn)行升維操作,使輸出能與原始輸入維度相匹配,從而進(jìn)行特征相加。
圖1 ResNet50 構(gòu)成模塊及改進(jìn)模塊Fig.1 Composition module of ResNet50 and corresponding improvement module
從圖中可以看到,模塊輸入尺寸為[,,,],表示批大?。╞atch_size),表示輸入幀數(shù),表示通道數(shù),、則是特征圖尺寸大小。盡管網(wǎng)絡(luò)輸入幀數(shù)為,但維度一直與維度在一起,因此網(wǎng)絡(luò)依舊是對(duì)每幀輸入進(jìn)行單獨(dú)操作,并未提取幀間信息。
為了解決Bottleneck 存在的問題,本文提出了時(shí)空特征金字塔模塊并將其插入Bottleneck構(gòu)建STFPB(spatio-temporal feature pyramid block),該模塊流程如圖1(b)所示。
輸入特征[,,,]首先經(jīng)過1 次卷積操作變成[,,,],記為;然后將送入STFPM(spatio-temporal feature pyramid module)提取時(shí)空特征信息,在此部分特征尺寸將變?yōu)閇,1,,],得到時(shí)空特征后將特征尺寸轉(zhuǎn)化為原始尺寸;然后將、、等加權(quán)融合,其中權(quán)值固定為1,、等權(quán)值由網(wǎng)絡(luò)學(xué)習(xí)得到;最后將融合特征送入后續(xù)的兩個(gè)卷積層并與原始輸入特征相加。
以STFPB 為基礎(chǔ),本文構(gòu)建了全新的行為識(shí)別網(wǎng)絡(luò)STFP-Net。網(wǎng)絡(luò)整體結(jié)構(gòu)如圖2 所示。圖中,黑色虛線框表示網(wǎng)絡(luò)層(stage),紫紅色立方體表示輸入,黃色矩形表示卷積核為7×7 的卷積操作,藍(lán)色立方體表示ResNet50 原本的Bottleneck(①~?),紅色立方體表示STFPB(?~?),綠色框表示全連接層(Fc),橙色橢圓表示交叉熵?fù)p失函數(shù),紫色圓圈則是每類結(jié)果的預(yù)測得分。輸入首先經(jīng)過7×7 卷積操作進(jìn)行特征圖尺寸縮減,然后將輸出送入Bottleneck 與STFPB 進(jìn)行特征提取,最后的高層特征經(jīng)過全連接層拉平后得到每類結(jié)果的預(yù)測得分,完成行為識(shí)別任務(wù)。
圖2 網(wǎng)絡(luò)整體架構(gòu)Fig.2 Overall structure of network
本章首先介紹特征金字塔,其作用是說明需要對(duì)哪些輸入幀進(jìn)行操作;接著介紹空洞卷積和由它構(gòu)成的空洞卷積金字塔,其作用是提取時(shí)空特征信息;最后介紹時(shí)空特征的融合方式。
給定一個(gè)輸入∈R,首先通過網(wǎng)絡(luò)提取特征,然后如圖3 所示構(gòu)建特征金字塔。圖3 中,藍(lán)色立方體表示某一幀圖像的全部特征信息,紫色虛線立方體表示該幀被跳過,不參與特征金字塔的構(gòu)建。為了畫圖簡便,省略了維度,同時(shí)T表示第幀的全部特征信息。
圖3 特征金字塔示意圖Fig.3 Schematic diagram of feature pyramid
以T為例,在特征金字塔中,T作為金字塔的第一層;然后(T,T,T)三幀圖像特征信息作為金字塔第二層;接著將采樣步長設(shè)為2,則金字塔第三層便是(T,T,T),此時(shí)跳過了(T,T)。以此類推,便能構(gòu)建多層特征金字塔。值得注意的是,金字塔第一層只包含T,后續(xù)的每一層都包含3幀圖像特征信息。
此外,和其他特征金字塔方法不同的是,本文的特征金字塔并不減小特征圖的尺寸,這避免了原始信息的丟失。與此同時(shí),本文也不引入額外的損失函數(shù)來指導(dǎo)網(wǎng)絡(luò)學(xué)習(xí),這從網(wǎng)絡(luò)的訓(xùn)練和復(fù)雜性角度來說是有益的。
與普通卷積相比,空洞卷積多了一個(gè)超參數(shù)dilation factor。圖4 給出了空洞卷積的示意圖。當(dāng)dilation factor 等于1 時(shí),此時(shí)的卷積核便是普通的卷積核,隨著dilation factor 的增大,卷積核的尺寸也在變大。圖中紅點(diǎn)表示卷積核需要學(xué)習(xí)的參數(shù),其余的空白部分用0 進(jìn)行填充。
圖4 空洞卷積和卷積金字塔Fig.4 Dilated convolution and convolution pyramid
空洞卷積的主要優(yōu)勢(shì)是在特征圖不做池化操作損失信息的前提下,加大了感受野,讓每個(gè)卷積輸出都包含較大范圍的信息。此外,空洞卷積的另一個(gè)優(yōu)勢(shì)便是0 值填充帶來的“跳躍”特性。很多文章都沒有考慮過此特性,本文將不同dilation factor的空洞卷積組合在一起,構(gòu)建了空洞卷積金字塔,并將它應(yīng)用到特征金字塔中提取幀間時(shí)空特征信息。
圖5 時(shí)空特征金字塔詳細(xì)過程Fig.5 Detailed process of spatio-temporal feature pyramid
對(duì)得到的時(shí)空特征,本文考慮了兩種特征融合策略:特征級(jí)聯(lián)和加權(quán)相加。
假設(shè)有兩路通道數(shù)相同的輸入(,,…,Y) 和(,,…,Z),特征級(jí)聯(lián)和加權(quán)相加分別為:
式(1)、式(2)中,表示原始特征,表示提取后的特征,表示通道數(shù),表示卷積操作,和表示權(quán)重系數(shù)。
可以這么理解上述公式,特征級(jí)聯(lián)是通道數(shù)的合并,也就是說描述圖像本身的特征數(shù)(通道數(shù))增加了,而每一特征下的信息沒有增加。加權(quán)相加則是每一維下的特征信息量在增加,特征數(shù)(通道數(shù))沒有改變。特征級(jí)聯(lián)操作中每個(gè)通道對(duì)應(yīng)著相應(yīng)的卷積核,而加權(quán)相加操作則將對(duì)應(yīng)的特征圖相加,再進(jìn)行下一步卷積操作,相當(dāng)于加了一個(gè)先驗(yàn):對(duì)應(yīng)通道的特征圖語義類似,從而對(duì)應(yīng)的特征圖共享一個(gè)卷積核。本文的核心思想是對(duì)空域特征進(jìn)行時(shí)域信息的增加,這更符合特征加權(quán)相加的思想,因此,本文選用加權(quán)相加的方式進(jìn)行特征融合,后續(xù)對(duì)比實(shí)驗(yàn)也佐證了這一想法。
本文中,第一層金字塔特征的權(quán)重固定為1,其余各層金字塔特征的權(quán)重系數(shù)由網(wǎng)絡(luò)學(xué)習(xí)得到。
完整的時(shí)空特征金字塔流程如圖5 所示。給定一個(gè)輸入∈R,首先通過矩陣維度變換操作,將變?yōu)椤蔙(圖5①)。圖5①中,矩形的每一行表示某一幀的全部特征。然后對(duì)使用空洞卷積金字塔進(jìn)行時(shí)空特征提?。▓D5②),接著對(duì)得到的時(shí)空特征使用加權(quán)相加策略進(jìn)行特征融合操作(圖5③),此時(shí)融合后的特征的尺寸和原始輸入不相符,因此需要再次使用矩陣維度轉(zhuǎn)換操作將特征維度進(jìn)行轉(zhuǎn)換(圖5④)。相比原始輸入,經(jīng)過時(shí)空特征金字塔模塊后的特征具有時(shí)空特征信息,因此更有利于視頻行為識(shí)別任務(wù)。
本文在最常見的行為識(shí)別數(shù)據(jù)集UCF101和HMDB51上對(duì)本文網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行評(píng)估實(shí)驗(yàn),以便將其性能與目前主流的方法進(jìn)行比較。
UCF101 數(shù)據(jù)集是從YouTube 收集的具有101 個(gè)動(dòng)作類別的逼真動(dòng)作視頻的動(dòng)作識(shí)別數(shù)據(jù)集。101個(gè)動(dòng)作類別中的視頻分為25 組,每組可包含4~7 個(gè)動(dòng)作視頻。來自同一組的視頻可能共享一些共同的功能,例如類似的背景、類似的觀點(diǎn)等。
HMDB51 數(shù)據(jù)集內(nèi)容主要來自電影,一小部分來自公共數(shù)據(jù)庫,如YouTube 視頻。該數(shù)據(jù)集包含6 849 個(gè)剪輯,分為51 個(gè)動(dòng)作類別,每個(gè)動(dòng)作類別至少包含101 個(gè)剪輯。
本文Baseline 采用ResNet50 作為主干網(wǎng)絡(luò)。針對(duì)每個(gè)視頻輸入,首先將其分為8個(gè)片段,然后在每個(gè)片段隨機(jī)采樣1 幀,共計(jì)8 幀作為輸入。網(wǎng)絡(luò)對(duì)每幀作出預(yù)測,然后將8個(gè)預(yù)測值取平均作為最終預(yù)測值。
本文實(shí)驗(yàn)中,卷積神經(jīng)網(wǎng)絡(luò)基于PyTorch平臺(tái)設(shè)計(jì)實(shí)現(xiàn)。網(wǎng)絡(luò)采用ResNet50 作為主干網(wǎng)絡(luò),訓(xùn)練采用小批量隨機(jī)梯度下降法,動(dòng)量為0.9,權(quán)值在第15、35、55個(gè)epoch時(shí)衰減一次,衰減率為0.1,總訓(xùn)練數(shù)設(shè)置為70。初始學(xué)習(xí)率設(shè)為0.001。Dropout 設(shè)置為0.8。實(shí)驗(yàn)采用兩張TITAN 1080Ti GPU進(jìn)行,batch_size設(shè)置為24。
本文主要考慮兩種特征融合策略:特征級(jí)聯(lián)和加權(quán)融合。表1 給出了兩種融合策略在UCF101 上的結(jié)果。從結(jié)果來看,加權(quán)融合比特征級(jí)聯(lián)高了3.331個(gè)百分點(diǎn),故本文后續(xù)實(shí)驗(yàn)均采用加權(quán)融合方式。在2.3 節(jié)中已經(jīng)說明,金字塔第一層特征權(quán)值固定為1,后續(xù)層的特征權(quán)值由網(wǎng)絡(luò)自主學(xué)習(xí)得到。
表1 特征融合策略的影響Table 1 Influence of feature fusion strategy
從2.1 節(jié)和2.2 節(jié)描述可以知道,特征金字塔的層數(shù)和空洞卷積金字塔的層數(shù)是相同的。理論上,當(dāng)輸入幀是無限數(shù)量時(shí),可以構(gòu)建無限多層金字塔。因此采用ResNet50 作為主干網(wǎng)絡(luò),然后用實(shí)驗(yàn)來說明金字塔層數(shù)最合理的值。實(shí)驗(yàn)結(jié)果如表2 所示。從結(jié)果來看,金字塔層數(shù)為3 時(shí)結(jié)果最高。主要原因如下:2 層金字塔只包含兩個(gè)相鄰幀的信息,這限制了它提取時(shí)間信息的能力;當(dāng)層數(shù)大于等于4時(shí),空洞卷積本身的“網(wǎng)格”效應(yīng)造成嚴(yán)重的信息不連續(xù),影響最終的識(shí)別結(jié)果。因此,在后續(xù)實(shí)驗(yàn)中,金字塔等級(jí)的數(shù)量固定為3。
表2 金字塔層數(shù)的影響Table 2 Influence of pyramid layers
金字塔模塊可以直接嵌入到現(xiàn)有網(wǎng)絡(luò)中使用,選擇合適的嵌入位置對(duì)網(wǎng)絡(luò)來說至關(guān)重要。對(duì)于深度神經(jīng)網(wǎng)絡(luò),低層網(wǎng)絡(luò)會(huì)提取一些邊緣特征,然后高層網(wǎng)絡(luò)進(jìn)行形狀或目標(biāo)的認(rèn)知,更高的語義層會(huì)分析一些運(yùn)動(dòng)和行為。
基于此共識(shí),本文首先在ResNet50 的Stage4 中添加金字塔模塊,然后逐步往低層網(wǎng)絡(luò)添加金字塔模塊。表3 給出了不同位置嵌入金字塔后的結(jié)果。從結(jié)果來看,在語義層(Stage4)嵌入金字塔模塊后表現(xiàn)最好。當(dāng)Stage3 和Stage4 同時(shí)嵌入金字塔模塊后,識(shí)別結(jié)果下降了0.106 個(gè)百分點(diǎn),這是因?yàn)樾袨樽R(shí)別任務(wù)更依賴語義信息。因此,本文最終只在Stage4 中嵌入金字塔模塊。
表3 嵌入位置的影響Table 3 Influence of embedding position
通過前3 個(gè)小實(shí)驗(yàn),本文網(wǎng)絡(luò)最終配置為3 層金字塔,Stage4 添加和加權(quán)融合,并記為STFP-Net。一個(gè)優(yōu)秀的嵌入性模塊不僅能給網(wǎng)絡(luò)帶來結(jié)果正確率的提升,同時(shí)引入的額外計(jì)算量也應(yīng)該很少?;诖?,對(duì)本文最終網(wǎng)絡(luò)的模型大小與計(jì)算量進(jìn)行定量分析,如表4 所示。采用每秒浮點(diǎn)運(yùn)算次數(shù)(FLOPs)作為計(jì)算量的評(píng)價(jià)指標(biāo),該指標(biāo)值越大則意味著網(wǎng)絡(luò)需要更多的計(jì)算資源。
表4 模型參數(shù)和計(jì)算量Table 4 Model parameters and calculation amount
從表4 結(jié)果來看,相比于Baseline,3 層金字塔只增加了54 Byte 的模型參數(shù),計(jì)算量只增加了0.06%,約為2×10次浮點(diǎn)運(yùn)算數(shù)量。綜上所述,本文的金字塔模塊是高效的嵌入性模塊。
在本小節(jié)中,將通過具體實(shí)驗(yàn)進(jìn)一步展示所提出的STFP-Net 與最先進(jìn)的動(dòng)作識(shí)別方法的比較結(jié)果。關(guān)于UCF101 和HMDB51 的相關(guān)結(jié)果詳見表5。
表5 與主流方法正確率的比較Table 5 Comparison of accuracy with mainstream methods 單位:%
在當(dāng)下主流方法中,有的采用了先進(jìn)的時(shí)空融合方法來獲得高效的網(wǎng)絡(luò)特征,如TLE;有的則利用CNN 和LSTM 網(wǎng)絡(luò)的結(jié)合體來獲得輸入幀之間的序列信息以此來獲得比單純RGB 表觀信息更豐富的時(shí)空信息;I3D直接將最先進(jìn)的2D CNN 架構(gòu)膨脹成3D CNN 網(wǎng)絡(luò),以利用訓(xùn)練好的2D 模型;為了減少參數(shù)量,P3D通過將3D 卷積分解為沿空間維度的2D 卷積和沿時(shí)間維度的1D 卷積來建模時(shí)空信息,從而學(xué)習(xí)非常深的時(shí)空特征;MiCT則提出混合2D/3D卷積模塊,利用2D 卷積提取RGB 圖像的表觀信息,利用3D 卷積提取序列間的相關(guān)信息。ISTPA-Net通過對(duì)不同網(wǎng)絡(luò)層的特征進(jìn)行下采樣從而構(gòu)建注意力金字塔,旨在突出特征圖中某些重要的特征,同時(shí)引入兩個(gè)額外的損失函數(shù)來約束網(wǎng)絡(luò)學(xué)習(xí)。
從表5 結(jié)果來看,在UCF101 數(shù)據(jù)集上,本文的STFP-Net以96.4%的正確率排在所有方法中第一位;同樣的,在HMDB51 數(shù)據(jù)集上,本文的STFP-Net 以75.5%的正確率排在第一名。
綜上所述,由本文提出的特征金字塔模塊所構(gòu)建的STFP-Net確實(shí)具有明顯的效果提升。
本文提出了時(shí)空特征金字塔模塊下的人體行為識(shí)別方法。通過分析現(xiàn)有基礎(chǔ)網(wǎng)絡(luò)的局限性,提出了時(shí)空特征金字塔模塊。為了驗(yàn)證模塊的有效性,分別從特征融合方式、金字塔層數(shù)、嵌入位置、額外計(jì)算量等方面進(jìn)行實(shí)驗(yàn)驗(yàn)證。最后在通用數(shù)據(jù)集上與其他主流方法進(jìn)行比較,實(shí)驗(yàn)結(jié)果再次證明了時(shí)空特征金字塔模塊的高效性。