莫 晨,邵 潔
(上海電力大學(xué) 電子與信息工程學(xué)院,上海 200090)
基于視覺的動(dòng)作識(shí)別一直是計(jì)算機(jī)視覺領(lǐng)域研究的難點(diǎn)與熱點(diǎn)之一。在實(shí)際應(yīng)用中,人們希望監(jiān)控系統(tǒng)在風(fēng)險(xiǎn)行為發(fā)生之前就能發(fā)出預(yù)警信號(hào),而非對(duì)于已經(jīng)完成的動(dòng)作進(jìn)行識(shí)別,這就要求系統(tǒng)具備動(dòng)作預(yù)測的能力。動(dòng)作預(yù)測是指對(duì)輸入視頻流的特征進(jìn)行分析和處理,旨在盡可能早地識(shí)別視頻中包含的動(dòng)作。動(dòng)作預(yù)測與傳統(tǒng)動(dòng)作識(shí)別的主要區(qū)別就是識(shí)別目標(biāo)的完整性。后者的識(shí)別對(duì)象是剪切好的視頻中一段完整動(dòng)作,動(dòng)作結(jié)構(gòu)完整。而前者是在僅觀測到輸入視頻的一部分,就要及時(shí)地預(yù)測出視頻中動(dòng)作的類別,無法獲取動(dòng)作完整的時(shí)序結(jié)構(gòu)。
Gao等[1]提出一個(gè)編碼器-解碼器的框架,該框架借助LSTM單元可以很好處理歷史信息,并且回歸未來幀的特征,利用特征完成分類。Antonino Furnari等[2]提出了rol-ling-unrolling LSTM模型用于運(yùn)動(dòng)序列的分析。然而,當(dāng)觀察時(shí)間縮短時(shí),上述算法在性能不夠穩(wěn)定、不同預(yù)測時(shí)間的結(jié)果相差很大。
動(dòng)作預(yù)測的效果極大程度上依賴特征對(duì)于非完整的動(dòng)作片段的描述能力。特征越強(qiáng),算法的效果就越好。然而目前大多數(shù)的工作[1,2]直接提取卷積層之后的特征用于后續(xù)的處理,而非考慮進(jìn)一步地編碼所得到的視頻特征。所以本算法應(yīng)用自注意力機(jī)制以及位置編碼來進(jìn)一步挖掘動(dòng)作特征序列的語義。本文提出一個(gè)基于自注意力機(jī)制的多模態(tài)LSTM模型用于解決預(yù)測視頻中人的動(dòng)作問題。
整體模型包含了3個(gè)分支網(wǎng)絡(luò),3個(gè)子網(wǎng)絡(luò)分別用于處理3種不同的視頻特征:RGB視頻圖像、光流、基于目標(biāo)的標(biāo)注信息(如圖1所示)。每個(gè)子網(wǎng)絡(luò)包括了3個(gè)組成部分,分別是,特征提取部分(RGB和Flow分支的特征提取網(wǎng)絡(luò)為bn-inception,而Obj分支的特征提取網(wǎng)絡(luò)為Faster R-CNN),包含自注意力機(jī)制模塊和位置編碼模塊的編碼器,以及LSTM結(jié)構(gòu)。在提取好特征后,特征序列會(huì)輸入到編碼器進(jìn)一步編碼。編碼器的輸出序列即為LSTM結(jié)構(gòu)的輸入。LSTM結(jié)構(gòu)會(huì)根據(jù)不同預(yù)測的時(shí)間,加載特征序列的歷史信息產(chǎn)生動(dòng)作類別預(yù)測的分布。最后,本算法采取了多模型融合策略(modality attention network[2]),綜合考慮3個(gè)子網(wǎng)絡(luò)的輸出,分配相應(yīng)的權(quán)重,權(quán)重與對(duì)應(yīng)模態(tài)的動(dòng)作種類分布張量對(duì)應(yīng)相乘得到整個(gè)模型最后輸出。
圖1 總體架構(gòu)設(shè)計(jì)
構(gòu)建一個(gè)動(dòng)作預(yù)測算法,首先就應(yīng)該考慮什么樣的特征適合于建模動(dòng)作。本算法考慮了3種具有豐富語義的高層特征。其中,RGB視頻圖片用于建??臻g信息,光流圖片用于建模時(shí)序信息,與目標(biāo)相關(guān)的特征(Obj特征)用于檢測視頻中的人與何物互動(dòng),即查清視頻中目標(biāo)的類別。
RGB圖片和光流圖片輸入到bn-inception網(wǎng)絡(luò)里分別提取RGB特征和光流特征。去除bn-inception原網(wǎng)絡(luò)結(jié)構(gòu)最后的分類層,并且從中間層Global pooling layer的輸出提取為相應(yīng)的RGB特征和光流特征。特征向量的維數(shù)為1024維,這樣的特征向量與機(jī)器翻譯任務(wù)中采用詞嵌入算法得到的詞向量很相似。視頻里不同幀取出來的圖片特征相當(dāng)于文本里的詞,且都是時(shí)序信息,這為在計(jì)算機(jī)視覺領(lǐng)域應(yīng)用基于自注意力機(jī)制的Transformer[3]提供了基礎(chǔ)。
Faster R-CNN[4,5]用于與目標(biāo)相關(guān)的特征的提取。提取該特征,目的是弄清楚視頻中目標(biāo)的種類,而非目標(biāo)的位置。所以,該特征向量略去了目標(biāo)邊界框的坐標(biāo)信息。特征向量是一個(gè)H維的向量,向量中的每一個(gè)元素是視頻里的每幀中包含的目標(biāo)類別的置信度分?jǐn)?shù)的累加,其中H表示數(shù)據(jù)集里目標(biāo)的類別總數(shù)。
機(jī)器無法從打亂順序的視頻中判斷出動(dòng)作的類別,所以片段中動(dòng)作的先后順序?qū)τ趧?dòng)作預(yù)測十分重要。這也就要求,對(duì)于提取好的特征序列,必須要加入表明它們在原視頻先后位置的記號(hào)。本模型添加了一個(gè)獨(dú)立的基于三角函數(shù)位置編碼模塊,目的是使自注意力模塊能夠充分地學(xué)習(xí)到序列的位置信息。
(1)
(2)
其中,在位置編碼向量的偶數(shù)元素位置,使用正弦函數(shù)編碼,而在奇數(shù)元素位置,則使用余弦函數(shù)進(jìn)行編碼。2i和2i+1分別代表了位置編碼向量里元素的位置索引。
如圖2所示,每個(gè)模態(tài)的特征都會(huì)經(jīng)過位置編碼模塊和自注意力機(jī)制模塊的處理,位置編碼模塊和自注意力機(jī)制模塊嵌入到3種模態(tài)特征的分支網(wǎng)絡(luò)中。特征序列X(RGB)、X(Flow)、X(Obj)分別與相應(yīng)的位置編碼矩陣Pe相加后,輸入到自注意力機(jī)制模塊進(jìn)一步處理,輸出得到具有豐富語義的高維特征Y(RGB)、Y(Flow)、Y(Obj)。
圖2 位置編碼模塊和自注意力機(jī)制模塊
(3)
Y=FeedForward(LayerNorm(Om))+Om
(4)
(5)
Multi-head(Q,K,V)=Concat(head1,…,headh)Wo
(6)
FeedForward(x)=max(0,xWs+b1)Wt+b2
(7)
在完成特征序列的編碼后,由單個(gè)LSTM層具體實(shí)施動(dòng)作預(yù)測,加載過去觀察到的視頻幀的特征序列Y,并且產(chǎn)生不同的預(yù)測時(shí)間的動(dòng)作種類分布Oa,t。LSTM的輸入輸出關(guān)系如圖3所示(虛線框內(nèi)的模型省略位置編碼模塊以及自注意力機(jī)制模塊),對(duì)于一個(gè)視頻片段,在動(dòng)作開始前,往前取樣14幀圖片,時(shí)間間隔為0.25 s。這14幀圖片構(gòu)成一個(gè)基本的訓(xùn)練樣本,其中Ft代表了樣本中的第t幀。訓(xùn)練樣本構(gòu)成了視頻的觀察片段,觀察片段包含兩個(gè)時(shí)間,一個(gè)是觀察時(shí)間,一個(gè)是預(yù)測時(shí)間。如圖3所示,觀察時(shí)間為[F1,F7]之間的時(shí)間間隔,即LSTM層的輸入序列為[F1,F7]的特征序列Yt,那么預(yù)測時(shí)間即為從F7到動(dòng)作開始時(shí)刻的時(shí)間間隔。
圖3 采樣策略及LSTM輸入輸出關(guān)系
LSTM有兩個(gè)中間狀態(tài)hidden stateht和cell statect,且這兩個(gè)中間狀態(tài)的初始化值設(shè)定為0,即圖3的最左側(cè)的虛線箭頭輸入置為0。而ht和ct(t≥1)的值均是由LSTM的上一個(gè)時(shí)間步的輸入(即代表視頻幀的特征向量),和上一個(gè)時(shí)間步的ht-1和ct-1所計(jì)算出來,并繼續(xù)往后傳遞,具體如式(8)所示
(Oa,t,ht,ct)=LSTM(Yt,ht-1,ct-1),t∈[1,N]
(8)
這兩個(gè)中間狀態(tài)即為模型加載過去觀察的歷史信息來預(yù)測未來動(dòng)作,并以LSTM的輸入序列的最后一幀特征向量Yt的輸出Oa,t作為該次預(yù)測時(shí)間下的預(yù)測輸出。以圖3為例,此時(shí)LSTM的輸入序列為[F1,F7],模型在總結(jié)F1到F6的信息后,輸入F7到對(duì)將要發(fā)生的動(dòng)作的預(yù)測(本次時(shí)間步LSTM層的輸出),此時(shí)預(yù)測時(shí)間為2 s。因此,當(dāng)t越小時(shí),LSTM網(wǎng)絡(luò)觀測到幀數(shù)也越少,相應(yīng)的預(yù)測時(shí)間也越長。在實(shí)驗(yàn)中,為了便于與其它的算法比較,α=0.25 s,t=14 s。本文所提出的算法一共可以產(chǎn)生8個(gè)預(yù)測時(shí)間的結(jié)果,Ta∈{0.25 s,0.5 s,0.75 s,1.0 s,1.25 s,1.5 s,1.75 s,2.0 s}。
得到3種模態(tài)的特征的動(dòng)作預(yù)測結(jié)果Oa后,需要采取多模型融合策略得到最終的預(yù)測輸出。受文獻(xiàn)[7,8]工作的啟發(fā),本文算法選擇Modality attention network。該融合網(wǎng)絡(luò)比經(jīng)典的融合方法(如late fusion)效果要好。late fusion原理可見式(9),即找到一組合適的參數(shù)Ki,與對(duì)應(yīng)模態(tài)的預(yù)測結(jié)果Oa,i線性組合后得到最終的輸出。late fusion往往采取交叉驗(yàn)證的方法確立適合的參數(shù)Ki。交叉驗(yàn)證在數(shù)據(jù)集規(guī)模較大時(shí),會(huì)因?yàn)橛?xùn)練時(shí)間很長而變得繁瑣。不同模態(tài)的特征對(duì)動(dòng)作預(yù)測結(jié)果的影響力是不同的,Modality attention network針對(duì)每種模態(tài)特征找到合適的融合權(quán)重,能有效避免late fusion由于交叉驗(yàn)證帶來的缺點(diǎn),且對(duì)最終的融合效果也能更好地改善
(9)
Modality attention network的主要原理就是為不同模態(tài)的特征計(jì)算出一組注意力分?jǐn)?shù)σ,注意力分?jǐn)?shù)σ表明了每種模態(tài)特征對(duì)最終預(yù)測結(jié)果的重要程度。Modality attention network(NMATT)由3個(gè)可以學(xué)習(xí)參數(shù)的線性層和ReLu激活函數(shù)組成。該模態(tài)特征的注意力分?jǐn)?shù)σm由該模態(tài)子網(wǎng)絡(luò)的LSTM結(jié)構(gòu)的兩個(gè)中間狀態(tài)ht和ct合并(concatenation)張量輸入到NMATT里計(jì)算得到。具體如式(10)所示,其中m代表相應(yīng)模態(tài),即RGB特征、Flow特征和Obj特征。⊕是張量間的concatenation運(yùn)算。注意力分?jǐn)?shù)σ的個(gè)數(shù)與模型所考慮的特征總數(shù)L保持一致
σm=NMATT(ht,m⊕ct,m)
(10)
融合權(quán)重θm由注意力分?jǐn)?shù)σm經(jīng)Softmax函數(shù)歸一化后得到,具體如式(11)所示
(11)
整體模型最終的預(yù)測結(jié)果由相應(yīng)模態(tài)的融合權(quán)重θi與該模態(tài)分支網(wǎng)絡(luò)的預(yù)測輸出乘積的線性組合。具體如式(12)所示
(12)
在EPIC-Kitchens[8]和EGTEA Gaze+[9]兩個(gè)數(shù)據(jù)集評(píng)估本算法。為了便于與其它算法對(duì)比性能,按照文獻(xiàn)[2]的設(shè)定分割EPIC-Kitchens數(shù)據(jù)集。EPIC-Kitchens的訓(xùn)練集包含了23 493個(gè)樣本,測試集包含了4979個(gè)樣本。EGTEA Gaze+的官方訓(xùn)練集包含了8299個(gè)樣本,測試集包含了2022個(gè)樣本。算法的表現(xiàn)由Top-5準(zhǔn)確率指標(biāo)衡量。
兩個(gè)數(shù)據(jù)集的視頻是由可穿戴攝像機(jī)所拍攝的,視頻的幀率有所不同。把原始視頻的幀率統(tǒng)一轉(zhuǎn)換到30 fps,并且保持原始視頻的時(shí)間長度不變。提取EGTEA Gaze+視頻的光流圖片使用了TVL1算法。在EPIC-Kitchens數(shù)據(jù)集中,作者已經(jīng)提供了提取好的每幀的光流數(shù)據(jù)。為了避免過擬合,特征提取與預(yù)測網(wǎng)絡(luò)的訓(xùn)練將分別進(jìn)行。對(duì)于RGB特征和光流特征,使用bn-inception網(wǎng)絡(luò)進(jìn)行提取。具體地,先在兩個(gè)數(shù)據(jù)集上的行為識(shí)別任務(wù)上訓(xùn)練TSN[10]網(wǎng)絡(luò),TSN網(wǎng)絡(luò)的主要結(jié)構(gòu)是bn-inception,一共有兩支,分為空間流和時(shí)間流。訓(xùn)練完畢后,會(huì)得到空間分支和時(shí)間分支的模型權(quán)重,即預(yù)訓(xùn)練模型。把預(yù)訓(xùn)練好的模型分別導(dǎo)入到bn-inception網(wǎng)絡(luò)里,從Global pooling layer的輸出提取對(duì)應(yīng)的RGB特征和光流特征。這兩個(gè)特征向量的維度都是1024維。Obj特征的向量維度為352維,因?yàn)镋PIC-Kitchens數(shù)據(jù)集里目標(biāo)的類別數(shù)是352。由于EGTEA Gaze+數(shù)據(jù)集缺少與目標(biāo)檢測相關(guān)的標(biāo)注信息,所以在該數(shù)據(jù)集的實(shí)驗(yàn)中未加入Obj特征訓(xùn)練。在Multi-head attention模塊,head的數(shù)量設(shè)定為8,RGB分支網(wǎng)絡(luò)的維度設(shè)定為1024,Obj分支網(wǎng)絡(luò)的維度設(shè)為352,模型的維度需要和其特征向量的維度保持一致。
表1和表2列舉了State-of-the-art的動(dòng)作預(yù)測算法在兩個(gè)數(shù)據(jù)集上不同預(yù)測時(shí)間取得的Top-5準(zhǔn)確率結(jié)果。如表1所示,在EPIC-Kitchens數(shù)據(jù)集上,當(dāng)預(yù)測時(shí)間Ta為0.25 s時(shí)本算法表現(xiàn)略低于RU[2],其余預(yù)測時(shí)間均取得最佳效果。如表2所示,在EGTEA Gaze+數(shù)據(jù)集上,本算法在所有的預(yù)測時(shí)間上都超過了其它算法。RU[2]算法是對(duì)比算法中取得了次優(yōu)效果的方法,在表1和表2的最后一欄列舉了本算法實(shí)驗(yàn)結(jié)果對(duì)于取得次優(yōu)結(jié)果的RU算法的改善情況。由實(shí)驗(yàn)結(jié)果可知,對(duì)比算法在預(yù)測時(shí)間Ta變短時(shí),模型效果都會(huì)越好。這表明這些算法在較長的預(yù)測時(shí)間的預(yù)測上的表現(xiàn)不如較短的預(yù)測時(shí)間。本算法隨著預(yù)測時(shí)間Ta的改變,在EPIC-Kitchens數(shù)據(jù)集的最終結(jié)果平均穩(wěn)定在38%附近,在EGTEA Gaze+數(shù)據(jù)集的最終結(jié)果平均穩(wěn)定在77%附近。這主要是由于自注意力機(jī)制地有效應(yīng)用,模型能夠更好地學(xué)習(xí)到所提取的視頻特征的全局信息,并且使得模型在所有的預(yù)測時(shí)間上取得的結(jié)果保持穩(wěn)定,沒有較大的波動(dòng)。
表1 EPIC-Kitchens數(shù)據(jù)集的動(dòng)作預(yù)測結(jié)果
表2 EGTEA Gaze+數(shù)據(jù)集的動(dòng)作預(yù)測結(jié)果
在EPIC-Kitchens數(shù)據(jù)集上的預(yù)測精度結(jié)果不足40%。通常來說,動(dòng)作復(fù)雜度越高,相似動(dòng)作之間就越容易混淆,所取得分類精度就越低[15]。動(dòng)作復(fù)雜度是指相同動(dòng)詞與不同的名詞之間組合的數(shù)量。兩個(gè)數(shù)據(jù)集的動(dòng)作標(biāo)注的標(biāo)簽由動(dòng)詞加名詞的組合構(gòu)成。EPIC-Kitchens數(shù)據(jù)集包含了125個(gè)動(dòng)詞,352個(gè)名詞,有2513個(gè)獨(dú)特的動(dòng)作類別。然而EGTEA Gaze+數(shù)據(jù)集僅有19個(gè)動(dòng)詞,51個(gè)名詞,106個(gè)獨(dú)特的動(dòng)作。EPIC-Kitchens的動(dòng)作片段的標(biāo)注約為EGTEA Gaze+數(shù)據(jù)集的3倍。所以,EPIC-Kitchens數(shù)據(jù)集的規(guī)模比EGTEA Gaze+數(shù)據(jù)集要大,它的動(dòng)作復(fù)雜度也要更加復(fù)雜。這意味著EPIC-Kitchens有更多相似的動(dòng)作且更容易混淆。動(dòng)作中包含的樣本越多,動(dòng)作種類的姿態(tài)多樣性就越豐富,可能會(huì)使得模型更難學(xué)習(xí)。
為了探究模型中LSTM結(jié)構(gòu)的選擇,本文算法設(shè)立了一個(gè)雙層結(jié)構(gòu)的LSTM,3個(gè)模態(tài)特征(RGB, Flow, Obj),并采用Modality attention network融合的基線算法作為對(duì)照,模型記為Ours(two)。RU算法的雙LSTM結(jié)構(gòu)是基于編碼器-解碼器結(jié)構(gòu),編碼器與解碼器都由LSTM實(shí)現(xiàn)。主要原理是解碼器使用編碼器內(nèi)部特征進(jìn)行初始化,并在訓(xùn)練樣本最后一幀特征上迭代來預(yù)測將來的動(dòng)作。由表1的結(jié)果對(duì)比可知,本算法的單LSTM結(jié)構(gòu)比起這種雙層LSTM結(jié)構(gòu),更適合于預(yù)測任務(wù)。表1還給出了late fusion和Modality attention network多模型融合網(wǎng)絡(luò)的對(duì)比結(jié)果,其中RU(late)為采用late fusion的RU算法,而RU算法則使用Modality attention network。由結(jié)果可知,在動(dòng)作預(yù)測任務(wù)上,該融合網(wǎng)絡(luò)要比傳統(tǒng)的late fusion方法效果更好。
為了驗(yàn)證編碼器模塊的有效性,在模型中去除編碼器(模型A)以及保留編碼器(模型B),驗(yàn)證模型A和模型B在EPIC-Kitchens數(shù)據(jù)集上的表現(xiàn)。如表3所示,表3的前3行是去除了編碼器后在3個(gè)模態(tài)特征的分支網(wǎng)絡(luò)的Top-5準(zhǔn)確率,而后3行是保留編碼器的原模型在3個(gè)模態(tài)特征的分支網(wǎng)絡(luò)的Top-5準(zhǔn)確率。顯然編碼器顯著地改善了模型的預(yù)測表現(xiàn),特別是對(duì)于長預(yù)測時(shí)間下的預(yù)測(比如Ta=2.0s,Ta=1.75s)。較長時(shí)間的預(yù)測與較短時(shí)間的預(yù)測之間的區(qū)別在于輸入到模型的視頻序列的時(shí)間長度,當(dāng)輸入到模型的幀數(shù)越少時(shí),預(yù)測時(shí)間就越長。所以基于自注意力機(jī)制的編碼器有效地編碼序列上下文的信息,重建高層特征序列來提高預(yù)測動(dòng)作的能力。
表4比較了不同特征組合的融合結(jié)果,目的是探究3種模態(tài)的特征的相關(guān)性。結(jié)合表3的B模型在RGB, Flow, Obj這3個(gè)單特征上的表現(xiàn)可知,所提出的算法兩兩特征融合均能改善單個(gè)分支特征上的表現(xiàn),這表明該算法能有效利用3種從視頻提取出來的特征。如表4所示,3種模態(tài)的特征里,RGB特征比起光流特征以及Obj特征在動(dòng)作預(yù)測任務(wù)中更加有用,而Obj特征取得了次優(yōu)的結(jié)果。RGB特征和光流特征在疊加Obj特征后均可帶來明顯提升,這表明Obj特征對(duì)于視頻動(dòng)作推理的重要性,設(shè)計(jì)該類算法需要加以考慮視頻中目標(biāo)的影響。RGB,F(xiàn)low,Obj特征三者融合可以帶來最佳的結(jié)果。
表3 缺少編碼器的模型(A)與完整模型(B)結(jié)果對(duì)比
表4 不同特征組合的融合結(jié)果
本文為改進(jìn)現(xiàn)有的動(dòng)作預(yù)測算法中在不同預(yù)測時(shí)間上不穩(wěn)定的問題,提出了基于自注意機(jī)制的多模態(tài)LSTM網(wǎng)絡(luò)。受到機(jī)器翻譯任務(wù)的Transformer模型的啟發(fā),借鑒詞向量的表示方法來表示視頻圖片的特征,在計(jì)算機(jī)視覺領(lǐng)域應(yīng)用了自注意力機(jī)制編碼視頻特征序列,并且驗(yàn)證了自注意力機(jī)制可有效幫助模型學(xué)習(xí)視頻動(dòng)作的特征。使用位置編碼技術(shù)可以充分利用序列的位置信息,使預(yù)測具有可靠性。RGB特征比起光流特征以及Obj特征在動(dòng)作預(yù)測任務(wù)中更加有用,而Obj特征取得了次優(yōu)的結(jié)果。在兩個(gè)基準(zhǔn)數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,本文所提出的模型是魯棒的,并且取得了最好的結(jié)果。