摘要
現(xiàn)存的動作分類數(shù)據(jù)集(UCF-101和HMPD-51)數(shù)據(jù)量小,囿于這種限制,不同的模型的性能都差不多。為此,我們提出了一個更大更好的數(shù)據(jù)集Kinetics,共有400個動作類別,每個類別有400個視頻片段,均采自YouTube上,保證了數(shù)據(jù)的真實性和困難性。我們測試了現(xiàn)存方法在Kinetics數(shù)據(jù)集上的性能,并且展示了在Kinetics上預(yù)訓(xùn)練后性能的提升。
此外,我們還基2D ConvNet inflation于提出了一個新的動作分類方法,Two-Stream Inflated 3D ConvNet (I3D)。在I3D中,卷積核池化層都由2D擴(kuò)展到了3D,以便于抓取視頻任務(wù)中的時空特征。在經(jīng)過Kinetics上的預(yù)訓(xùn)練后,I3D在UCF-101和HMPD-51取得了最優(yōu)的結(jié)果,分別為98.0%和80.9%
一、.介紹
ImageNet競賽揭示了一個秘密:在大數(shù)據(jù)集上訓(xùn)練過的深度模型可以用于其他任務(wù)和領(lǐng)域。但在視頻領(lǐng)域里,這個結(jié)論是否仍然生效還有待驗證?;谶@個出發(fā)點,作者提出了視頻動作分類領(lǐng)域的大數(shù)據(jù)集Kinetics Human Action Video Dataset,遠(yuǎn)遠(yuǎn)大于現(xiàn)在的視頻動作分類數(shù)據(jù)集UCF-101和HMPD-51。驗證思路是這樣的:用同樣的模型,先在Kinetics做預(yù)訓(xùn)練,再在UCF-101和HMPD-51上finetune。結(jié)果證明經(jīng)過Kinetics上的預(yù)訓(xùn)練,模型性能得到了很大的提升,結(jié)論仍然適用。
此外,我們還基于圖像分類模型構(gòu)建了I3D用于視頻動作分類,在I3D中,池化和卷積層都扁平化了,可以抓取時空間信息。在方法對比中,并沒有和傳統(tǒng)方法做對比。
接下來,第二節(jié)會介紹視頻動作分類的各種模型和I3D,第三節(jié)是Kinetics數(shù)據(jù)集簡介,第四節(jié)介紹不同模型的對比,第五節(jié)和第六節(jié)分別是實驗結(jié)果和討論。
二、模型介紹
2.1 卷積網(wǎng)+LSTM
2.1.1 CNN
CNN作為一種深度學(xué)習(xí)中最常使用的網(wǎng)絡(luò)之一,已經(jīng)不僅僅大量使用于視覺領(lǐng)域,且在計算生物學(xué)、醫(yī)學(xué)等領(lǐng)域得到使用。CNN的起源在于試圖減少全連接神經(jīng)網(wǎng)絡(luò)的參數(shù)數(shù)量,提出了兩種創(chuàng)新的思想:局部連接與權(quán)值共享。同時為了對圖像進(jìn)行維度以得到最終的低維輸出,CNN中引入了pooling的概念,以期望在保存主要特征的原則下,通過對圖像進(jìn)行下采樣進(jìn)而達(dá)到降維的目的。
因此,常見的CNN中除了傳統(tǒng)神經(jīng)網(wǎng)絡(luò)中的輸入層和(全連接的)輸出層外,還有卷積層和池化層。其中卷積層計算與輸入層局部連接區(qū)域的神經(jīng)元,計算與這些神經(jīng)元對應(yīng)的權(quán)重的內(nèi)積,其是由局部連接和權(quán)值共享提出的,在操作上非常像卷積,因此才有卷積神經(jīng)網(wǎng)絡(luò)的概念。池化層則是對于每一層的feature map在空間維度下采樣(長和寬的維度),常見的pooling有max pooling和average pooling。(值得一提的是,在最近的膠囊網(wǎng)絡(luò)中,Hinton又一次提出了自己對于池化無用的觀點,其也不止一次在公開場合發(fā)表看法‘池化的良好表現(xiàn)可能是深度學(xué)習(xí)的一場災(zāi)難’。但是由于動態(tài)路由僅在MNIST簡單小型數(shù)據(jù)集上取得良好的效果,Hinton對于池化的觀點仍未得到廣泛的認(rèn)同)。

其中,諸如感受野、feature map、步長、濾波器、padding等概念在此不再贅述。
2.1.2 ?LSTM
LSTM作為一種帶有門限的循環(huán)神經(jīng)網(wǎng)絡(luò),全稱是長短時記憶神經(jīng)網(wǎng)絡(luò)。其與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的不同在于在空間維度的基礎(chǔ)上加入了時間維度,前一刻的網(wǎng)絡(luò)狀態(tài)對當(dāng)前時刻仍能造成影響,進(jìn)而模擬人類的記憶和遺忘特性。其按照時間展開如圖(網(wǎng)絡(luò)每一時刻的參數(shù)是不相同的):

而RNN會遇到叫做 The?vanishing gradient problem for RNNs(梯度消失)的問題,也就是后面時間的節(jié)點對于前面時間的節(jié)點感知力下降。這導(dǎo)致了RNN無法做的很深,也是其在很長一段時間內(nèi)不得志的原因。LSTM引入Cell,并通過forget門限決定在該時刻是記住state還是遺忘,使得網(wǎng)絡(luò)可以達(dá)到較深的深度且BP依然有效。

其中,前傳和BP過程在此不再贅述,具體參見論文。
2.1.3 ?卷積網(wǎng)+LSTM

以上所示是本文用于視頻行為分類的第一個模型。首先使用某個已經(jīng)在ImageNet上訓(xùn)練好的卷積網(wǎng)絡(luò)(如Inception-v1)獨立的提取每一幀圖片的特征,接下來對整個視頻中每一幀的特征整合進(jìn)行預(yù)測。為了不忽略視頻的時間結(jié)構(gòu)(如時間的先后順序,把開門和關(guān)門視為兩種類別),我們把每一幀的特征輸出輸入到一個RNN中(本文是LSTM)捕捉整個視頻的時間特征。
具體細(xì)節(jié):每秒提取原視頻的五幀,對所有提取出的幀進(jìn)行Inception-v1的特征提取,在對最后一個max pooling層的512個隱層unit進(jìn)行批歸一化后作為LSTM一個時刻的輸入。訓(xùn)練時使用與所有時間時刻的交叉熵作為損失函數(shù),測試時僅適用最后時刻的輸出作為預(yù)測類別。
2.2 C3D
3D卷積網(wǎng)與CNN非常類似:也是由卷積層、池化層、輸入輸出層構(gòu)成,也有步長、感受野等概念。唯一的區(qū)別是CNN將2D濾波器作用于2D圖像(可能是多通道的,但通道不作為一個維度)進(jìn)行卷積,而C3D將3D濾波器作用于3D的視頻(同樣也不把通道作為維度),具體參見下圖:

比如一部(3*)l*w*t的視頻(共t幀RGB圖像,括弧內(nèi)是通道但不是維度),在經(jīng)過padding以及K分(3*)3*3*3的濾波器后,將得到K*l*w*t的視頻,但每一幀此時僅有一個通道。經(jīng)過試驗驗證,3*3*3的3D濾波器往往效果最好。
而基于3D卷積的C3D結(jié)構(gòu)與CNN非常相似:

以上便是本文所用的第二個進(jìn)行對比的網(wǎng)絡(luò)。雖然C3D可以直接通過時間空間濾波器對視頻數(shù)據(jù)進(jìn)行特征提取,但是由于額外添加的時間維度帶來的劇烈增長的參數(shù)數(shù)目使得網(wǎng)絡(luò)非常難以訓(xùn)練,且無法使用以及在ImageNet上訓(xùn)練好的網(wǎng)絡(luò)。
具體細(xì)節(jié):本文使用的C3D由8個卷積層和5個池化層和2個全連接層構(gòu)成。輸入是從視頻中提取的16幀112x112的圖像 。但由于使用的批歸一化,所以在第一層卷積層中設(shè)置濾波步長為2.
2.3 Two-Stream NN
2.3.1 光流
在三維空間中我們用運動場描述物體的運動狀態(tài)。但是計算機(jī)讀入的是二維圖片,便用光流場描述每個像素點的運動信息,正如人眼可以通過不同目標(biāo)的運動速度判斷目標(biāo)距離我們的距離。光流是空間運動物體在觀察成像平面上的像素運動的瞬時速度,是利用圖像序列中像素在時間域上的變化以及相鄰幀之間的相關(guān)性來找到上一幀跟當(dāng)前幀之間存在的對應(yīng)關(guān)系,從而計算出相鄰幀之間物體的運動信息的一種方法。一般而言,光流是由于場景中前景目標(biāo)本身的移動、相機(jī)的運動,或者兩者的共同運動所產(chǎn)生的。
當(dāng)人的眼睛觀察運動物體時,物體的景象在人眼的視網(wǎng)膜上形成一系列連續(xù)變化的圖像,這一系列連續(xù)變化的信息不斷“流過”視網(wǎng)膜(即圖像平面),好像一種光的“流”,故稱之為光流。光流表達(dá)了圖像的變化,由于它包含了目標(biāo)運動的信息,因此可被觀察者用來確定目標(biāo)的運動情況。研究光流場的目的就是為了從圖片序列中近似得到不能直接得到的運動場。運動場,其實就是物體在三維真實世界中的運動;光流場,是運動場在二維圖像平面上(人的眼睛或者攝像頭)的投影。那通俗的講就是通過一個圖片序列,把每張圖像中每個像素的運動速度和運動方向找出來就是光流場。
2.3.2 Two-Stream
本質(zhì)上是由兩個(時間和空間維度的)CNN構(gòu)成的。一個CNN的輸入是某幅單張圖片,僅對該幅圖片的空間信息進(jìn)行建模;另一個CNN則使用多幀的稠密光流作為輸入,建模視頻中的運動信息,最后的輸出可以通過對兩個softmax層的輸出進(jìn)行平均或者用SVM進(jìn)行分類得到。本文中使用的兩個CNN是用在ImageNet上訓(xùn)練好的網(wǎng)絡(luò)照搬來的,最后的輸出是兩個softmax層輸出的平均,輸入分別是單幅圖片和10個預(yù)先計算好的稠密光流框架。光流的卷積網(wǎng)(因為分為水平方向和垂直方向)其輸入是光流圖的光流疊加。在測試時對于一個輸入視頻,隨機(jī)抽樣固定數(shù)的幀,它們的時間維度間隔是一樣的。對于每幀,又計算它的光流場疊加。而每一幀又會在不同的位置采樣,對于一個視頻的誤差,就是總的誤差的平均。

3.3D-Fused Two-Stream
網(wǎng)絡(luò)的輸入是5張連續(xù)的圖片和對應(yīng)的光流,其通過2中的Two-Stream網(wǎng)絡(luò)但在最后的average pooling層前進(jìn)入一個有512個輸出單元的C3D,最后通過一個max pooling層和全連接層得到類別輸出。C3D和全連接層的初始權(quán)值通過高斯噪聲決定。
2和3中的網(wǎng)絡(luò)通過end to end的方式訓(xùn)練。

2.4 Two-Stream?Inflated 3D ConvNets
借鑒之前的2D ConvNet的設(shè)計,并且使用Two-Stream的方式,本文使用了一種Two-Stream Inflated 3D?ConvNets的結(jié)構(gòu)。
2.4.1 Inflating 2D ConvNets into 3D.
方法是將填充2D ConvNets的濾波器和pooling核,使原本N ×N的濾波器變?yōu)镹 ×N ×N.
2.4.2 Bootstrapping 3Dfilters from 2D Filters
通過將圖像重復(fù)復(fù)制到視頻序列中,可以將圖像轉(zhuǎn)換為無聊的視頻。 然后,通過滿足我們所說的無聊視頻固定點,3D模型可以在ImageNet上隱式預(yù)訓(xùn)練:所謂固定點,就是無聊視頻上的合并激活應(yīng)該與原始單個圖像輸入上的相同。由于線性,沿時間維度重復(fù)2D濾波器的權(quán)重N次,并通過除以N重新縮放它們,可以實現(xiàn)這一點。
2.4.3 Pacing receptive field growth in space, timeand net- work depth.
所有圖像模型均對待兩個空間維度(水平和垂直。 這是非常自然的,并且意味著網(wǎng)絡(luò)中更深的特征同樣受到兩個維度中越來越遠(yuǎn)的圖像位置的影響。然而,當(dāng)考慮時間時,對稱接受場不一定是最佳的 - 這應(yīng)該取決于幀速率和圖像尺寸。 如果它相對于空間的增長過快,它可能會混淆不同對象的邊緣,從而影響早期特征檢測,而如果增長太慢,它可能無法很好地捕捉場景動態(tài)。
具體的模型如下圖所示

2.4.4 Two 3D Streams.
盡管3D ConvNet應(yīng)該能夠直接從RGB輸入中學(xué)習(xí)運動特征,但它仍然執(zhí)行純前饋計算,而光流算法在某種意義上缺乏反復(fù)性。也許由于這種復(fù)發(fā)的缺乏,在實驗上我們?nèi)匀话l(fā)現(xiàn)它具有雙流配置的價值 - 如圖所示- 一個I3D網(wǎng)絡(luò)接受RGB輸入的訓(xùn)練,另一個接收流量輸入,這些輸入帶有優(yōu)化的平滑流量信息。 我們分別訓(xùn)練了兩個網(wǎng)絡(luò),并在測試時間對他們的預(yù)測進(jìn)行了平均。

三、?Kinetics人類動作數(shù)據(jù)集
Kinetics是人類動作的數(shù)據(jù)集,包括單人動作如繪畫、笑、拳擊等等,人人交互動作如擁抱、親吻、握手等等,還包括人物交互動作如割草、打開禮物、刷碗等等。其中,一些動作類別是細(xì)粒度的,依賴于短時的推理,例如不同類別游泳姿勢的分類。還有一些動作類別強(qiáng)調(diào)物體的識別,例如不同類型的管樂器演奏。
Kinetics共有400個動作類別,每個類別有至少400個視頻片段,每個視頻片段都采自于獨一的視頻,約持續(xù)10秒,共有24萬個視頻訓(xùn)練數(shù)據(jù)。測試集中,每個類別有100個視頻片段。
四、實驗
4.1 與其他模型的性能對比
下表是在UCF-101, HMDB-51和Kinetics上的實驗結(jié)果??梢钥吹絀3D在各個數(shù)據(jù)集上都達(dá)到了最優(yōu),不管是RGB圖像,光流或者RGB流+光流。
此外,在UCF-101上,I3D的性能要比在HMDB-51和Kinetics上的好,這是由不同數(shù)據(jù)集的難度所決定的。HMDB-51數(shù)據(jù)量很少,且刻意增加了分類難度,例如在相同的場景中“拔劍”被標(biāo)記為“擊劍”和“練劍”兩種不同的動作。

之后我們又測試了在ImageNet上預(yù)訓(xùn)練的作用,左邊是沒有進(jìn)行預(yù)訓(xùn)練,右邊是在ImageNet上進(jìn)行了預(yù)訓(xùn)練,可以看到在ImageNet上訓(xùn)練是有助于性能提升的。

4.2 ?Kinetics泛化能力的測試
我們考慮了兩種實驗設(shè)置:1.固定網(wǎng)絡(luò)參數(shù)來產(chǎn)生用于UCF-101/HMDB-51數(shù)據(jù)集的特征,然后訓(xùn)練分類器,在測試集上做測試;2.進(jìn)行了finetune再進(jìn)行測試。實驗也證明了在ImageNet和Kinetics上預(yù)訓(xùn)練的作用。
先看個可視化的例子,第一行是I3D在Kinetics上訓(xùn)練后,第一層卷積層的可視化結(jié)果,第二層是RGB I3D 的,第三層是原始的inception的卷積核,可以看到I3D的卷積核處理了豐富的時空間結(jié)構(gòu),flow I3D的結(jié)果與RGB I3D很相似。

下圖顯示了這兩種實驗設(shè)置下的結(jié)果,可以看到所有模型都能從預(yù)訓(xùn)練中收益,但I(xiàn)3D和3D模型從中收益最大。甚至只訓(xùn)練最后的分類網(wǎng)絡(luò)也能為I3D模型帶來顯著提升。作者還進(jìn)行了原因分析:對于I3D模型更好的特征遷移性,一個原因在于它的高時間分辨率,訓(xùn)練時每秒使用25幀,而測試時使用全部的幀,這就使得它可能捕捉到動作在時間上的精細(xì)結(jié)構(gòu)。對于類似C3D的模型相比I3D有著巨大差異,原因在于I3D模型更深、參數(shù)更少、利用ImageNet熱啟動、在4倍長的視頻數(shù)據(jù)上進(jìn)行訓(xùn)練、在2倍的高空間分辨率的視頻上運行。
雙流的模型不依賴ImageNet和Kinetics數(shù)據(jù)集進(jìn)行訓(xùn)練也能表現(xiàn)很好,主要是由于流的精確性,似乎很少導(dǎo)致過擬合。Kinetics預(yù)訓(xùn)練比ImageNet效果更好。

下圖是與其他方法的對比,I3D的性能依然是最好的,但和其他模型差距不是特別大,這也印證了開頭所說的受到了數(shù)據(jù)集的限制。無論是RGB-I3D還是RGB流模型,在Kinetics上訓(xùn)練以后,表現(xiàn)都很突出,要優(yōu)于其它模型和任意組合模型。而雙流結(jié)合的結(jié)構(gòu)更是優(yōu)勢巨大。在Kinetics上預(yù)訓(xùn)練的I3D模型要比C3D模型好得多,即便C3D使用更多的視頻進(jìn)行訓(xùn)練以及組合上IDT。原因可能是Kinetics質(zhì)量更好以及I3D是一個更好的結(jié)構(gòu)。

五、討論
回到文章開始所提出的問題,數(shù)據(jù)庫上的遷移(從Kinetics預(yù)訓(xùn)練再從UCF-101和HMPD-51上finetune)會帶來性能的提升嗎?實驗證明是有作用的。但這還僅限于動作的分類,在其他任務(wù)上如視頻分割,視頻物體檢測或者光流計算是否有效仍然需要驗證。
總結(jié)的講,這篇paper提出了比原來大得多的一個數(shù)據(jù)庫,有約30萬視頻片段。然后在這個數(shù)據(jù)庫做了個benchmark叫做I3D,把二維卷積扁平化,多了一個維度用于抓取是空間的信息。