摘要
現(xiàn)存的動(dòng)作分類數(shù)據(jù)集(UCF-101和HMPD-51)數(shù)據(jù)量小,囿于這種限制,不同的模型的性能都差不多。為此,我們提出了一個(gè)更大更好的數(shù)據(jù)集Kinetics,共有400個(gè)動(dòng)作類別,每個(gè)類別有400個(gè)視頻片段,均采自YouTube上,保證了數(shù)據(jù)的真實(shí)性和困難性。我們測(cè)試了現(xiàn)存方法在Kinetics數(shù)據(jù)集上的性能,并且展示了在Kinetics上預(yù)訓(xùn)練后性能的提升。
此外,我們還基2D ConvNet inflation于提出了一個(gè)新的動(dòng)作分類方法,Two-Stream Inflated 3D ConvNet (I3D)。在I3D中,卷積核池化層都由2D擴(kuò)展到了3D,以便于抓取視頻任務(wù)中的時(shí)空特征。在經(jīng)過Kinetics上的預(yù)訓(xùn)練后,I3D在UCF-101和HMPD-51取得了最優(yōu)的結(jié)果,分別為98.0%和80.9%
一、.介紹
ImageNet競(jìng)賽揭示了一個(gè)秘密:在大數(shù)據(jù)集上訓(xùn)練過的深度模型可以用于其他任務(wù)和領(lǐng)域。但在視頻領(lǐng)域里,這個(gè)結(jié)論是否仍然生效還有待驗(yàn)證。基于這個(gè)出發(fā)點(diǎn),作者提出了視頻動(dòng)作分類領(lǐng)域的大數(shù)據(jù)集Kinetics Human Action Video Dataset,遠(yuǎn)遠(yuǎn)大于現(xiàn)在的視頻動(dòng)作分類數(shù)據(jù)集UCF-101和HMPD-51。驗(yàn)證思路是這樣的:用同樣的模型,先在Kinetics做預(yù)訓(xùn)練,再在UCF-101和HMPD-51上finetune。結(jié)果證明經(jīng)過Kinetics上的預(yù)訓(xùn)練,模型性能得到了很大的提升,結(jié)論仍然適用。
此外,我們還基于圖像分類模型構(gòu)建了I3D用于視頻動(dòng)作分類,在I3D中,池化和卷積層都扁平化了,可以抓取時(shí)空間信息。在方法對(duì)比中,并沒有和傳統(tǒng)方法做對(duì)比。
接下來(lái),第二節(jié)會(huì)介紹視頻動(dòng)作分類的各種模型和I3D,第三節(jié)是Kinetics數(shù)據(jù)集簡(jiǎn)介,第四節(jié)介紹不同模型的對(duì)比,第五節(jié)和第六節(jié)分別是實(shí)驗(yàn)結(jié)果和討論。
二、模型介紹
2.1 卷積網(wǎng)+LSTM
2.1.1 CNN
CNN作為一種深度學(xué)習(xí)中最常使用的網(wǎng)絡(luò)之一,已經(jīng)不僅僅大量使用于視覺領(lǐng)域,且在計(jì)算生物學(xué)、醫(yī)學(xué)等領(lǐng)域得到使用。CNN的起源在于試圖減少全連接神經(jīng)網(wǎng)絡(luò)的參數(shù)數(shù)量,提出了兩種創(chuàng)新的思想:局部連接與權(quán)值共享。同時(shí)為了對(duì)圖像進(jìn)行維度以得到最終的低維輸出,CNN中引入了pooling的概念,以期望在保存主要特征的原則下,通過對(duì)圖像進(jìn)行下采樣進(jìn)而達(dá)到降維的目的。
因此,常見的CNN中除了傳統(tǒng)神經(jīng)網(wǎng)絡(luò)中的輸入層和(全連接的)輸出層外,還有卷積層和池化層。其中卷積層計(jì)算與輸入層局部連接區(qū)域的神經(jīng)元,計(jì)算與這些神經(jīng)元對(duì)應(yīng)的權(quán)重的內(nèi)積,其是由局部連接和權(quán)值共享提出的,在操作上非常像卷積,因此才有卷積神經(jīng)網(wǎng)絡(luò)的概念。池化層則是對(duì)于每一層的feature map在空間維度下采樣(長(zhǎng)和寬的維度),常見的pooling有max pooling和average pooling。(值得一提的是,在最近的膠囊網(wǎng)絡(luò)中,Hinton又一次提出了自己對(duì)于池化無(wú)用的觀點(diǎn),其也不止一次在公開場(chǎng)合發(fā)表看法‘池化的良好表現(xiàn)可能是深度學(xué)習(xí)的一場(chǎng)災(zāi)難’。但是由于動(dòng)態(tài)路由僅在MNIST簡(jiǎn)單小型數(shù)據(jù)集上取得良好的效果,Hinton對(duì)于池化的觀點(diǎn)仍未得到廣泛的認(rèn)同)。
其中,諸如感受野、feature map、步長(zhǎng)、濾波器、padding等概念在此不再贅述。
2.1.2 ?LSTM
LSTM作為一種帶有門限的循環(huán)神經(jīng)網(wǎng)絡(luò),全稱是長(zhǎng)短時(shí)記憶神經(jīng)網(wǎng)絡(luò)。其與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的不同在于在空間維度的基礎(chǔ)上加入了時(shí)間維度,前一刻的網(wǎng)絡(luò)狀態(tài)對(duì)當(dāng)前時(shí)刻仍能造成影響,進(jìn)而模擬人類的記憶和遺忘特性。其按照時(shí)間展開如圖(網(wǎng)絡(luò)每一時(shí)刻的參數(shù)是不相同的):
而RNN會(huì)遇到叫做 The?vanishing gradient problem for RNNs(梯度消失)的問題,也就是后面時(shí)間的節(jié)點(diǎn)對(duì)于前面時(shí)間的節(jié)點(diǎn)感知力下降。這導(dǎo)致了RNN無(wú)法做的很深,也是其在很長(zhǎng)一段時(shí)間內(nèi)不得志的原因。LSTM引入Cell,并通過forget門限決定在該時(shí)刻是記住state還是遺忘,使得網(wǎng)絡(luò)可以達(dá)到較深的深度且BP依然有效。
其中,前傳和BP過程在此不再贅述,具體參見論文。
2.1.3 ?卷積網(wǎng)+LSTM
以上所示是本文用于視頻行為分類的第一個(gè)模型。首先使用某個(gè)已經(jīng)在ImageNet上訓(xùn)練好的卷積網(wǎng)絡(luò)(如Inception-v1)獨(dú)立的提取每一幀圖片的特征,接下來(lái)對(duì)整個(gè)視頻中每一幀的特征整合進(jìn)行預(yù)測(cè)。為了不忽略視頻的時(shí)間結(jié)構(gòu)(如時(shí)間的先后順序,把開門和關(guān)門視為兩種類別),我們把每一幀的特征輸出輸入到一個(gè)RNN中(本文是LSTM)捕捉整個(gè)視頻的時(shí)間特征。
具體細(xì)節(jié):每秒提取原視頻的五幀,對(duì)所有提取出的幀進(jìn)行Inception-v1的特征提取,在對(duì)最后一個(gè)max pooling層的512個(gè)隱層unit進(jìn)行批歸一化后作為L(zhǎng)STM一個(gè)時(shí)刻的輸入。訓(xùn)練時(shí)使用與所有時(shí)間時(shí)刻的交叉熵作為損失函數(shù),測(cè)試時(shí)僅適用最后時(shí)刻的輸出作為預(yù)測(cè)類別。
2.2 C3D
3D卷積網(wǎng)與CNN非常類似:也是由卷積層、池化層、輸入輸出層構(gòu)成,也有步長(zhǎng)、感受野等概念。唯一的區(qū)別是CNN將2D濾波器作用于2D圖像(可能是多通道的,但通道不作為一個(gè)維度)進(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的視頻,但每一幀此時(shí)僅有一個(gè)通道。經(jīng)過試驗(yàn)驗(yàn)證,3*3*3的3D濾波器往往效果最好。
而基于3D卷積的C3D結(jié)構(gòu)與CNN非常相似:
以上便是本文所用的第二個(gè)進(jìn)行對(duì)比的網(wǎng)絡(luò)。雖然C3D可以直接通過時(shí)間空間濾波器對(duì)視頻數(shù)據(jù)進(jìn)行特征提取,但是由于額外添加的時(shí)間維度帶來(lái)的劇烈增長(zhǎng)的參數(shù)數(shù)目使得網(wǎng)絡(luò)非常難以訓(xùn)練,且無(wú)法使用以及在ImageNet上訓(xùn)練好的網(wǎng)絡(luò)。
具體細(xì)節(jié):本文使用的C3D由8個(gè)卷積層和5個(gè)池化層和2個(gè)全連接層構(gòu)成。輸入是從視頻中提取的16幀112x112的圖像 。但由于使用的批歸一化,所以在第一層卷積層中設(shè)置濾波步長(zhǎng)為2.
2.3 Two-Stream NN
2.3.1 光流
在三維空間中我們用運(yùn)動(dòng)場(chǎng)描述物體的運(yùn)動(dòng)狀態(tài)。但是計(jì)算機(jī)讀入的是二維圖片,便用光流場(chǎng)描述每個(gè)像素點(diǎn)的運(yùn)動(dòng)信息,正如人眼可以通過不同目標(biāo)的運(yùn)動(dòng)速度判斷目標(biāo)距離我們的距離。光流是空間運(yùn)動(dòng)物體在觀察成像平面上的像素運(yùn)動(dòng)的瞬時(shí)速度,是利用圖像序列中像素在時(shí)間域上的變化以及相鄰幀之間的相關(guān)性來(lái)找到上一幀跟當(dāng)前幀之間存在的對(duì)應(yīng)關(guān)系,從而計(jì)算出相鄰幀之間物體的運(yùn)動(dòng)信息的一種方法。一般而言,光流是由于場(chǎng)景中前景目標(biāo)本身的移動(dòng)、相機(jī)的運(yùn)動(dòng),或者兩者的共同運(yùn)動(dòng)所產(chǎn)生的。
當(dāng)人的眼睛觀察運(yùn)動(dòng)物體時(shí),物體的景象在人眼的視網(wǎng)膜上形成一系列連續(xù)變化的圖像,這一系列連續(xù)變化的信息不斷“流過”視網(wǎng)膜(即圖像平面),好像一種光的“流”,故稱之為光流。光流表達(dá)了圖像的變化,由于它包含了目標(biāo)運(yùn)動(dòng)的信息,因此可被觀察者用來(lái)確定目標(biāo)的運(yùn)動(dòng)情況。研究光流場(chǎng)的目的就是為了從圖片序列中近似得到不能直接得到的運(yùn)動(dòng)場(chǎng)。運(yùn)動(dòng)場(chǎng),其實(shí)就是物體在三維真實(shí)世界中的運(yùn)動(dòng);光流場(chǎng),是運(yùn)動(dòng)場(chǎng)在二維圖像平面上(人的眼睛或者攝像頭)的投影。那通俗的講就是通過一個(gè)圖片序列,把每張圖像中每個(gè)像素的運(yùn)動(dòng)速度和運(yùn)動(dòng)方向找出來(lái)就是光流場(chǎng)。
2.3.2 Two-Stream
本質(zhì)上是由兩個(gè)(時(shí)間和空間維度的)CNN構(gòu)成的。一個(gè)CNN的輸入是某幅單張圖片,僅對(duì)該幅圖片的空間信息進(jìn)行建模;另一個(gè)CNN則使用多幀的稠密光流作為輸入,建模視頻中的運(yùn)動(dòng)信息,最后的輸出可以通過對(duì)兩個(gè)softmax層的輸出進(jìn)行平均或者用SVM進(jìn)行分類得到。本文中使用的兩個(gè)CNN是用在ImageNet上訓(xùn)練好的網(wǎng)絡(luò)照搬來(lái)的,最后的輸出是兩個(gè)softmax層輸出的平均,輸入分別是單幅圖片和10個(gè)預(yù)先計(jì)算好的稠密光流框架。光流的卷積網(wǎng)(因?yàn)榉譃樗椒较蚝痛怪狈较颍┢漭斎胧枪饬鲌D的光流疊加。在測(cè)試時(shí)對(duì)于一個(gè)輸入視頻,隨機(jī)抽樣固定數(shù)的幀,它們的時(shí)間維度間隔是一樣的。對(duì)于每幀,又計(jì)算它的光流場(chǎng)疊加。而每一幀又會(huì)在不同的位置采樣,對(duì)于一個(gè)視頻的誤差,就是總的誤差的平均。
3.3D-Fused Two-Stream
網(wǎng)絡(luò)的輸入是5張連續(xù)的圖片和對(duì)應(yīng)的光流,其通過2中的Two-Stream網(wǎng)絡(luò)但在最后的average pooling層前進(jìn)入一個(gè)有512個(gè)輸出單元的C3D,最后通過一個(gè)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è)計(jì),并且使用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)換為無(wú)聊的視頻。 然后,通過滿足我們所說(shuō)的無(wú)聊視頻固定點(diǎn),3D模型可以在ImageNet上隱式預(yù)訓(xùn)練:所謂固定點(diǎn),就是無(wú)聊視頻上的合并激活應(yīng)該與原始單個(gè)圖像輸入上的相同。由于線性,沿時(shí)間維度重復(fù)2D濾波器的權(quán)重N次,并通過除以N重新縮放它們,可以實(shí)現(xiàn)這一點(diǎn)。
2.4.3 Pacing receptive field growth in space, timeand net- work depth.
所有圖像模型均對(duì)待兩個(gè)空間維度(水平和垂直。 這是非常自然的,并且意味著網(wǎng)絡(luò)中更深的特征同樣受到兩個(gè)維度中越來(lái)越遠(yuǎn)的圖像位置的影響。然而,當(dāng)考慮時(shí)間時(shí),對(duì)稱接受場(chǎng)不一定是最佳的 - 這應(yīng)該取決于幀速率和圖像尺寸。 如果它相對(duì)于空間的增長(zhǎng)過快,它可能會(huì)混淆不同對(duì)象的邊緣,從而影響早期特征檢測(cè),而如果增長(zhǎng)太慢,它可能無(wú)法很好地捕捉場(chǎng)景動(dòng)態(tài)。
具體的模型如下圖所示
2.4.4 Two 3D Streams.
盡管3D ConvNet應(yīng)該能夠直接從RGB輸入中學(xué)習(xí)運(yùn)動(dòng)特征,但它仍然執(zhí)行純前饋計(jì)算,而光流算法在某種意義上缺乏反復(fù)性。也許由于這種復(fù)發(fā)的缺乏,在實(shí)驗(yàn)上我們?nèi)匀话l(fā)現(xiàn)它具有雙流配置的價(jià)值 - 如圖所示- 一個(gè)I3D網(wǎng)絡(luò)接受RGB輸入的訓(xùn)練,另一個(gè)接收流量輸入,這些輸入帶有優(yōu)化的平滑流量信息。 我們分別訓(xùn)練了兩個(gè)網(wǎng)絡(luò),并在測(cè)試時(shí)間對(duì)他們的預(yù)測(cè)進(jìn)行了平均。
三、?Kinetics人類動(dòng)作數(shù)據(jù)集
Kinetics是人類動(dòng)作的數(shù)據(jù)集,包括單人動(dòng)作如繪畫、笑、拳擊等等,人人交互動(dòng)作如擁抱、親吻、握手等等,還包括人物交互動(dòng)作如割草、打開禮物、刷碗等等。其中,一些動(dòng)作類別是細(xì)粒度的,依賴于短時(shí)的推理,例如不同類別游泳姿勢(shì)的分類。還有一些動(dòng)作類別強(qiáng)調(diào)物體的識(shí)別,例如不同類型的管樂器演奏。
Kinetics共有400個(gè)動(dòng)作類別,每個(gè)類別有至少400個(gè)視頻片段,每個(gè)視頻片段都采自于獨(dú)一的視頻,約持續(xù)10秒,共有24萬(wàn)個(gè)視頻訓(xùn)練數(shù)據(jù)。測(cè)試集中,每個(gè)類別有100個(gè)視頻片段。
四、實(shí)驗(yàn)
4.1 與其他模型的性能對(duì)比
下表是在UCF-101, HMDB-51和Kinetics上的實(shí)驗(yàn)結(jié)果。可以看到I3D在各個(gè)數(shù)據(jù)集上都達(dá)到了最優(yōu),不管是RGB圖像,光流或者RGB流+光流。
此外,在UCF-101上,I3D的性能要比在HMDB-51和Kinetics上的好,這是由不同數(shù)據(jù)集的難度所決定的。HMDB-51數(shù)據(jù)量很少,且刻意增加了分類難度,例如在相同的場(chǎng)景中“拔劍”被標(biāo)記為“擊劍”和“練劍”兩種不同的動(dòng)作。
之后我們又測(cè)試了在ImageNet上預(yù)訓(xùn)練的作用,左邊是沒有進(jìn)行預(yù)訓(xùn)練,右邊是在ImageNet上進(jìn)行了預(yù)訓(xùn)練,可以看到在ImageNet上訓(xùn)練是有助于性能提升的。
4.2 ?Kinetics泛化能力的測(cè)試
我們考慮了兩種實(shí)驗(yàn)設(shè)置:1.固定網(wǎng)絡(luò)參數(shù)來(lái)產(chǎn)生用于UCF-101/HMDB-51數(shù)據(jù)集的特征,然后訓(xùn)練分類器,在測(cè)試集上做測(cè)試;2.進(jìn)行了finetune再進(jìn)行測(cè)試。實(shí)驗(yàn)也證明了在ImageNet和Kinetics上預(yù)訓(xùn)練的作用。
先看個(gè)可視化的例子,第一行是I3D在Kinetics上訓(xùn)練后,第一層卷積層的可視化結(jié)果,第二層是RGB I3D 的,第三層是原始的inception的卷積核,可以看到I3D的卷積核處理了豐富的時(shí)空間結(jié)構(gòu),flow I3D的結(jié)果與RGB I3D很相似。
下圖顯示了這兩種實(shí)驗(yàn)設(shè)置下的結(jié)果,可以看到所有模型都能從預(yù)訓(xùn)練中收益,但I(xiàn)3D和3D模型從中收益最大。甚至只訓(xùn)練最后的分類網(wǎng)絡(luò)也能為I3D模型帶來(lái)顯著提升。作者還進(jìn)行了原因分析:對(duì)于I3D模型更好的特征遷移性,一個(gè)原因在于它的高時(shí)間分辨率,訓(xùn)練時(shí)每秒使用25幀,而測(cè)試時(shí)使用全部的幀,這就使得它可能捕捉到動(dòng)作在時(shí)間上的精細(xì)結(jié)構(gòu)。對(duì)于類似C3D的模型相比I3D有著巨大差異,原因在于I3D模型更深、參數(shù)更少、利用ImageNet熱啟動(dòng)、在4倍長(zhǎng)的視頻數(shù)據(jù)上進(jìn)行訓(xùn)練、在2倍的高空間分辨率的視頻上運(yùn)行。
雙流的模型不依賴ImageNet和Kinetics數(shù)據(jù)集進(jìn)行訓(xùn)練也能表現(xiàn)很好,主要是由于流的精確性,似乎很少導(dǎo)致過擬合。Kinetics預(yù)訓(xùn)練比ImageNet效果更好。
下圖是與其他方法的對(duì)比,I3D的性能依然是最好的,但和其他模型差距不是特別大,這也印證了開頭所說(shuō)的受到了數(shù)據(jù)集的限制。無(wú)論是RGB-I3D還是RGB流模型,在Kinetics上訓(xùn)練以后,表現(xiàn)都很突出,要優(yōu)于其它模型和任意組合模型。而雙流結(jié)合的結(jié)構(gòu)更是優(yōu)勢(shì)巨大。在Kinetics上預(yù)訓(xùn)練的I3D模型要比C3D模型好得多,即便C3D使用更多的視頻進(jìn)行訓(xùn)練以及組合上IDT。原因可能是Kinetics質(zhì)量更好以及I3D是一個(gè)更好的結(jié)構(gòu)。
五、討論
回到文章開始所提出的問題,數(shù)據(jù)庫(kù)上的遷移(從Kinetics預(yù)訓(xùn)練再?gòu)腢CF-101和HMPD-51上finetune)會(huì)帶來(lái)性能的提升嗎?實(shí)驗(yàn)證明是有作用的。但這還僅限于動(dòng)作的分類,在其他任務(wù)上如視頻分割,視頻物體檢測(cè)或者光流計(jì)算是否有效仍然需要驗(yàn)證。
總結(jié)的講,這篇paper提出了比原來(lái)大得多的一個(gè)數(shù)據(jù)庫(kù),有約30萬(wàn)視頻片段。然后在這個(gè)數(shù)據(jù)庫(kù)做了個(gè)benchmark叫做I3D,把二維卷積扁平化,多了一個(gè)維度用于抓取是空間的信息。