陳 意,黃 山
(四川大學(xué) 電氣工程學(xué)院,四川 成都 610065)
視頻分類不同于靜態(tài)圖像的分類,視頻會(huì)隨著時(shí)間的變化引起行為動(dòng)作變化、場景變化和光線變化。目前基于深度學(xué)習(xí)的視頻分類的代表性方法大致分為4種:基于雙流的卷積神經(jīng)網(wǎng)絡(luò)模型[1-3]、三維卷積神經(jīng)網(wǎng)絡(luò)模型[4,5]、二維卷積與三維卷積結(jié)合的神經(jīng)網(wǎng)絡(luò)模型[6,7]和基于局部特征融合的神經(jīng)網(wǎng)絡(luò)模型[8-10]。文獻(xiàn)[1]基于雙流的思想提出TSN(temporal segment networks)模型,對視頻稀疏采樣的RGB圖像和光流圖像分別提取空間域和時(shí)間域的特征。為了對視頻的時(shí)序信息建模,文獻(xiàn)[5]提出P3D(pseudo-3D)模型。P3D利用三維卷積來實(shí)現(xiàn)對視頻時(shí)間序列的建模,但是三維卷積需要消耗大量的顯存和計(jì)算量。文獻(xiàn)[6]將二維卷積和三維卷積相結(jié)合提出高效的ECO(efficient convolutional network for online video understan-ding)模型,即保證了模型的精度又降低了計(jì)算成本。以上方法都致力于時(shí)間序列的建模,文獻(xiàn)[11]將傳統(tǒng)的局部聚合描述子向量(vector of locally aggregated descriptors,VLAD)結(jié)構(gòu)嵌入到卷積神經(jīng)網(wǎng)絡(luò)中得到可訓(xùn)練的特征融合模型NetVLAD(CNN architecture for weakly supervised place recognition),NetVLAD模型將視頻的采樣幀進(jìn)行特征融合從而實(shí)現(xiàn)視頻分類。NetVLAD編碼后得到的特征維度太高導(dǎo)致網(wǎng)絡(luò)參數(shù)量太大,于是文獻(xiàn)[10]利用ResNext[12]的思想結(jié)合NetVLAD模型提出了參數(shù)量更少的NeXtVLAD模型。相比于前3種方法,基于特征融合的神經(jīng)網(wǎng)絡(luò)模型更加適合于時(shí)長較長的視頻數(shù)據(jù)。本文主要針對時(shí)間長度不定的幾分鐘到幾十分鐘的視頻進(jìn)行分類研究,對NeXtVLAD算法進(jìn)行改進(jìn),設(shè)計(jì)出一個(gè)精度更高的視頻分類網(wǎng)絡(luò)。
NeXtVLAD算法是由NetVLAD算法改進(jìn)而來,NetVLAD算法利用局部聚合子向量將視頻幀的深度特征進(jìn)行特征融合后得到視頻級(jí)特征,然后利用視頻級(jí)特征進(jìn)行分類輸出。NeXtVLAD針對NetVLAD編碼后特征維度太高導(dǎo)致分類輸出層參數(shù)量龐大的缺點(diǎn),將輸入數(shù)據(jù)x進(jìn)行升維后再進(jìn)行分組,最終減少編碼后的維度從而大大減少參數(shù)量。
局部聚合描述子向量最初用于圖像檢索領(lǐng)域,通過統(tǒng)計(jì)特征描述子與聚類中心的累計(jì)殘差,將若干局部特征壓縮為一個(gè)特定大小的全局特征。在視頻分類任務(wù)中,可以將視頻的一個(gè)采樣幀所提取的深度特征看作一個(gè)局部特征,那么利用局部聚合描述子向量即可獲得視頻的全局特征。假設(shè)每個(gè)視頻隨機(jī)采樣N幀作為視頻表達(dá),利用特征提取模塊提取每一幀圖像的深度特征得到F維度的局部特征,那么傳統(tǒng)局部聚合描述子向量做法是將N*F的局部特征進(jìn)行K-Means聚類得到K個(gè)聚類中心,記為Ck,則全局特征V如式(1)所示
(1)
式中:k∈{1,…K},j∈{1,…F},xi代表第i個(gè)局部特征,Ck為第k個(gè)聚類中心,αk(xi) 為一個(gè)符號(hào)函數(shù),當(dāng)且僅當(dāng)αk(xi) 屬于聚類中心Ck時(shí),等于1,否則為0??梢娛?1)累加了每個(gè)聚類中心的特征的殘差,得到一個(gè)K*F維度的全局特征。
顯然式(1)中αk(xi) 不可微從而不能進(jìn)行反向傳播訓(xùn)練且最終全局特征維度過大會(huì)導(dǎo)致參數(shù)量大,NeXtVLAD將αk(xi) 函數(shù)可微化且將特征分為G組從而減少參數(shù)量,于是將全局特征表達(dá)為式(2)
(2)
(3)
(4)
NeXtVLAD算法簡要流程如圖1所示。輸入x的維度為Nsample*F,代表Nsample張采樣幀的F維特征向量,經(jīng)過NeXtVLAD特征融合后得到的全局特征向量維度為2F*K/G。
圖1 NeXtVLAD流程
本文基于NeXtVLAD算法進(jìn)行改進(jìn)提出GNeXtVLAD算法,實(shí)現(xiàn)對局部特征進(jìn)行特征融合,設(shè)計(jì)出一個(gè)端到端訓(xùn)練視頻分類網(wǎng)絡(luò)如圖2所示。本文模型主要由3個(gè)模塊組成:特征提取模塊、特征融合模塊和分類輸出模塊。
圖2 網(wǎng)絡(luò)整體設(shè)計(jì)
特征提取模塊使用經(jīng)典的圖像分類模型ResNet-50[13],該算法通過學(xué)習(xí)殘差,解決了傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)或全連接層在進(jìn)行信息傳遞時(shí)存在的信息丟失問題,使得模型能更好學(xué)習(xí)圖像的深度特征。本文為提取視頻采樣幀的深度特征,使用了ImageNet數(shù)據(jù)集在ResNet-50模型上進(jìn)行預(yù)訓(xùn)練,預(yù)訓(xùn)練后去掉ResNet-50最后的全連接層使得特征提取模型輸出為一個(gè)2048維度的深度特征,若視頻采樣幀數(shù)為Nsample,則特征提取模塊輸出為Nsample×2048維度的局部特征向量。
特征融合模塊首先使用一個(gè)全連接層對特征進(jìn)行降維,本文降維后維度為1024,然后使用對NeXtVLAD進(jìn)行改進(jìn)的GNeXtVLAD算法對Nsample×1024維的深度特征進(jìn)行特征融合,從而得到視頻級(jí)的深度特征。
分類輸出模塊將特征融合模塊的視頻級(jí)特征輸出作為輸入,通過對視頻級(jí)特征的學(xué)習(xí)得到最終的分類輸出。分類輸出模塊由兩個(gè)全連接層和一個(gè)注意力機(jī)制模塊組成,其中的注意力機(jī)制模塊由兩個(gè)全連接層和一個(gè)Sigmoid函數(shù)組成。
模型在訓(xùn)練過程中對特征提取模塊的參數(shù)進(jìn)行凍結(jié),從而減少大量參數(shù)的反向傳播,使得網(wǎng)絡(luò)訓(xùn)練占用顯存小、計(jì)算量小,從而保證在有限的資源條件下能訓(xùn)練大量視頻采樣幀。
當(dāng)處理未經(jīng)裁剪的小視頻數(shù)據(jù)時(shí),這些視頻鏡頭多變且場景信息復(fù)雜,對視頻稀疏采樣固定幀來描述視頻信息效率不高,對時(shí)長較短的視頻采樣大量幀效率低下且影響性能,對時(shí)長較長的視頻采樣少量幀則會(huì)使得采樣幀過少造成對視頻信息的描述不足。本文提出多尺度的采樣策略,假設(shè)視頻總幀數(shù)為Ntotal,設(shè)置最小采樣數(shù)和最大采樣數(shù)分別記作Nmin,Nmax。 則采樣幀數(shù)如式(5)所示
(5)
式中:λ1、λ2分別為最小幀數(shù)和最大幀數(shù)閾值。式(5)確定了對每個(gè)視頻的采樣幀數(shù),在采樣過程中,本文首先將所有視頻幀等分為Nsample段,然后在每一段中隨機(jī)采樣一幀,從而對視頻隨機(jī)采樣Nsample幀。
NeXtVLAD算法雖然對NetVLAD算法進(jìn)行改進(jìn)后參數(shù)量減少且精度有一定提升,但NeXtVLAD對所有的聚類中心一視同仁,不能很好地避免采樣幀中無關(guān)特征的干擾。對于長視頻的分類,采樣幀中會(huì)存在一些與分類標(biāo)簽無關(guān)的特征,而NeXtVLAD算法依然會(huì)將每一個(gè)特征聚類到一個(gè)聚類中心。
文獻(xiàn)[14]在人臉識(shí)別領(lǐng)域提出GhostVLAD算法,該算法在NetVLAD的基礎(chǔ)上加入ghost聚類中心來降低低質(zhì)量人臉圖像的權(quán)重,同時(shí)提高高質(zhì)量人臉圖像的聚合權(quán)重。GNeXtVLAD在NeXtVLAD的K個(gè)聚類中心上增加了H個(gè)ghost聚類中心,那么網(wǎng)絡(luò)的聚類中心數(shù)為K+H,但是此時(shí)的H個(gè)ghost聚類中心是假設(shè)存在但實(shí)際并不使用的聚類中心點(diǎn),在計(jì)算輸入的局部特征與聚類中心殘差時(shí)只取K個(gè)聚類中心,即忽略ghost聚類中心的計(jì)算,主要目的就是讓低質(zhì)量的無關(guān)的局部特征歸類到這個(gè)類中心點(diǎn)上。經(jīng)過端到端的訓(xùn)練,GNeXtVLAD特征聚合模塊可把一些無關(guān)特征聚類到ghost聚類中心,從而使得網(wǎng)絡(luò)更加關(guān)注于與任務(wù)相關(guān)的局部特征。
GNeXtVLAD的計(jì)算公式如式(6)所示
(6)
(7)
在式(6)的基礎(chǔ)上并結(jié)合神經(jīng)網(wǎng)絡(luò)的特點(diǎn),設(shè)計(jì)出GNeXtVLAD特征聚合模塊結(jié)構(gòu)如圖3所示。首先對比圖1的NeXtVLAD結(jié)構(gòu)可得,GNeXtVLAD在計(jì)算VLAD時(shí)多加入了H個(gè)聚類中心,然而在向后進(jìn)行計(jì)算時(shí)又將這H個(gè)聚類中心去掉從而去除不重要的采樣圖片幀。
圖3 GNeXtVLAD結(jié)構(gòu)
為驗(yàn)證本文改進(jìn)算法在視頻分類任務(wù)上的有效性,本研究使用VideoNet-100數(shù)據(jù)集作為實(shí)驗(yàn)數(shù)據(jù)集,在搭載NVIDIA 2080Ti顯卡的64位Ubuntu 16.04系統(tǒng)上搭建pytorch環(huán)境進(jìn)行實(shí)驗(yàn),通過一系列對比實(shí)驗(yàn)驗(yàn)證了本文改進(jìn)算法在特定數(shù)據(jù)集上的有效性。
為驗(yàn)證本文算法對長視頻的分類效果,實(shí)驗(yàn)采用VideoNet數(shù)據(jù)集[15]的前100個(gè)分類進(jìn)行研究,簡稱數(shù)據(jù)集為VideoNet-100。VideoNet-100有3DPainting、3DPrinter、ACappella、accordionPerformance、acrobatics等100個(gè)類別。數(shù)據(jù)集中視頻是未經(jīng)裁剪的視頻,其中每段視頻時(shí)長不定,時(shí)長分布在幾秒鐘與幾十分鐘之間,大多數(shù)視頻時(shí)長為幾分鐘。
VideoNet-100數(shù)據(jù)集中視頻鏡頭數(shù)不固定,部分視頻為單鏡頭拍攝,部分視頻由多個(gè)鏡頭剪輯而成,圖4為數(shù)據(jù)集中acrobatics類別的部分視頻幀展示,可見隨機(jī)采樣幀中前后兩幀場景可能完全發(fā)生變化,可能人物發(fā)生變化,也可能采樣的某一幀的內(nèi)容與主題無關(guān)。本文使用VideoNet原始切分的訓(xùn)練集和驗(yàn)證集,其中訓(xùn)練集視頻個(gè)數(shù)17 798、驗(yàn)證集視頻個(gè)數(shù)4580,訓(xùn)練集用于模型訓(xùn)練,驗(yàn)證集用于測試模型性能。
圖4 VideoNet-100數(shù)據(jù)集中acrobatics類的部分視頻幀展示
由于VideoNet-100數(shù)據(jù)集視頻時(shí)長差異大,實(shí)驗(yàn)采用多尺度的采樣策略與固定采樣幀兩種方法對視頻幀采樣,實(shí)驗(yàn)中設(shè)置多組不同的λ1、λ2、Nmin、Nmax參數(shù)和固定采樣幀數(shù)進(jìn)行對比實(shí)驗(yàn)以說明多尺度采樣策略的有效性。由于網(wǎng)絡(luò)輸入的大小需要固定,其中采樣幀數(shù)不足Nmax的用零進(jìn)行填充。采樣幀輸入大小固定在224×224,每一采樣幀經(jīng)過特征提取模塊即可得到一個(gè)2048維度的特征向量。在特征向量送入GNeXtVLAD進(jìn)行特征融合之前先加入一個(gè)全連接層和Relu激活函數(shù)對特征向量進(jìn)行降維,降維后的特征向量維度設(shè)置為1024。實(shí)驗(yàn)中GNeXtVLAD網(wǎng)絡(luò)設(shè)置多組K聚類中心數(shù)、ghost聚類中心數(shù)進(jìn)行對比實(shí)驗(yàn),其中分組數(shù)G分別設(shè)置為8和16。實(shí)驗(yàn)采用Adam優(yōu)化算法,初始學(xué)習(xí)率設(shè)置為0.001,每5個(gè)epoch將學(xué)習(xí)率降為原來的0.1倍,總共訓(xùn)練16個(gè)epoch。
表1對比了采用多尺度采樣策略和不采用多尺度采樣策略對視頻分類準(zhǔn)確率的影響。其中模型使用NeXtVLAD,設(shè)置默認(rèn)參數(shù)G=8,K=128。 由表1數(shù)據(jù)可得,當(dāng)設(shè)置最小采樣幀數(shù)Nmin=32,最大采樣幀數(shù)Nmax=128時(shí)正確率達(dá)到最高的0.908。當(dāng)采用固定采樣幀數(shù)時(shí),最終測試正確率隨著采幀數(shù)的增加而增加。通過對比固定采樣幀數(shù)為128的識(shí)別正確率與采用多尺度采樣且最大采樣幀數(shù)為128的識(shí)別準(zhǔn)確率可得:采用多尺度的采樣策略能在減少采樣幀數(shù)的情況下獲得更高的正確率。
為驗(yàn)證視頻長短對正確率的影響,本文按照視頻時(shí)長對測試集分別切分短視頻和長視頻各500個(gè),其中的500個(gè)短視頻的時(shí)長不超過1 min,500個(gè)長視頻時(shí)長均超過5 min,在不同采樣策略上對比長視頻和短視頻的正確率,對比結(jié)果見表2。根據(jù)表2可以看出,當(dāng)固定采樣幀數(shù)較小時(shí)會(huì)影響時(shí)長較長的視頻分類正確率,當(dāng)固定采樣幀數(shù)較大時(shí)對短視頻分類正確率有一定的影響,而采用多尺度的采樣策略效果最佳。
表1 不同采樣策略識(shí)別正確率
表2 不同采樣策略對長視頻和短視頻精度影響
表3對比了多個(gè)不同的ghost聚類中心數(shù)值對GNeXtVLAD算法的影響,實(shí)驗(yàn)使用本文提出的多尺度采樣策略對視頻采樣,設(shè)置默認(rèn)參數(shù)λ1、λ2、Nmin、Nmax、K、G分別為750、7500、32、128、128、8。當(dāng)ghost聚類中心數(shù)為0時(shí),此時(shí)的特征聚合模塊即為NeXtVLAD。由表3可以看出,加入ghost聚類中心的GNeXtVLAD相對于NeXtVLAD有著明顯的提升。
表3 不同ghost聚類中心的分類準(zhǔn)確率
VideoNet-100數(shù)據(jù)集不同于UCF101和HMDB51等行為動(dòng)作識(shí)別數(shù)據(jù)集,VideoNet時(shí)長遠(yuǎn)高于此類數(shù)據(jù)集。由于UCF101等行為識(shí)別數(shù)據(jù)集中視頻鏡頭單一、時(shí)長較短,在一些經(jīng)典的基于深度學(xué)習(xí)的行為識(shí)別算法中,一般對視頻稀疏采樣8幀或16幀即可達(dá)到不錯(cuò)的精度。對于VideoNet-100數(shù)據(jù)集中時(shí)長較長的視頻來說,隨機(jī)抽取8幀或者16幀可能對視頻信息表達(dá)不完整,導(dǎo)致精度下降。本文對文獻(xiàn)[1]提出的TSN模型進(jìn)行復(fù)現(xiàn),僅使用RGB圖像在VideoNet-100數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)對比。由于TSN模型對GPU顯存的要求遠(yuǎn)高于GNeXtVLAD模型,故實(shí)驗(yàn)在TSN模型中對視頻采樣8幀和16幀,其余參數(shù)使用該文獻(xiàn)的默認(rèn)參數(shù)。表4為稀疏采樣8幀和采樣16幀的TSN模型和本文提出的網(wǎng)絡(luò)在VideoNet-100上的實(shí)驗(yàn)結(jié)果。由表4可以看出,在稀疏采樣8幀和16幀的情況下本文算法與TSN模型在VideoNet-100數(shù)據(jù)集上準(zhǔn)確率相當(dāng),但是與表3中實(shí)驗(yàn)結(jié)果相比準(zhǔn)確率較低,可見對于VideoNet-100數(shù)據(jù)集而言采樣幀數(shù)會(huì)直接影響最終準(zhǔn)確率。
表4 TSN模型與本文模型對比
表5對比了不同采樣策略的GNeXtVLAD模型在訓(xùn)練時(shí)的占用顯存大小以及TSN模型訓(xùn)練的占用顯存大小。由于TSN模型在訓(xùn)練時(shí)需要對所有網(wǎng)絡(luò)參數(shù)進(jìn)行反向傳播,故在batch_size大小為4,采樣幀數(shù)為8時(shí)占用顯存10 G。由表5可得,在占用顯存相當(dāng)?shù)那闆r下,GNeXtVLAD模型相對于TSN在訓(xùn)練時(shí)單批次能處理更多的采樣幀,當(dāng)GNeXtVLAD模型采用多尺度采樣策略并設(shè)置λ1=32、λ2=128時(shí)能在相同batch_size下減少一定的顯存占用。GNeXtVLAD模型由于特征提取網(wǎng)絡(luò)只需要前向傳播而不需要計(jì)算梯度,在訓(xùn)練時(shí)大大減少GPU計(jì)算量和顯存。
表5 TSN模型與本文模型訓(xùn)練占用顯存大小對比
本文主要針對不同于行為動(dòng)作識(shí)別數(shù)據(jù)集的VideoNet-100數(shù)據(jù)集進(jìn)行研究,對NeXtVLAD算法進(jìn)行改進(jìn)并提出一個(gè)多尺度的采樣策略,設(shè)計(jì)出一個(gè)端到端訓(xùn)練的視頻分類模型。VideoNet-100數(shù)據(jù)集中視頻時(shí)長較長,需要采樣大量幀才能更好表達(dá)視頻信息,而當(dāng)前主流的基于深度學(xué)習(xí)的視頻分類模型在采樣幀數(shù)過大時(shí)需要龐大的計(jì)算資源才能進(jìn)行訓(xùn)練。本文模型在訓(xùn)練時(shí)不需要對特征提取網(wǎng)絡(luò)進(jìn)行訓(xùn)練從而節(jié)約大量計(jì)算資源,解決了在計(jì)算資源有限的情況下采樣幀數(shù)與計(jì)算資源之間的矛盾。本文在VideoNet-100數(shù)據(jù)集上進(jìn)行對比實(shí)驗(yàn),驗(yàn)證了本文所設(shè)計(jì)模型的有效性,在VideoNet-100數(shù)據(jù)集上達(dá)到了92.5%的準(zhǔn)確率。本文方法在VideoNet-100數(shù)據(jù)集上采樣幀最多達(dá)到了128幀,從而導(dǎo)致在訓(xùn)練和推理階段需要花費(fèi)大量時(shí)間在視頻預(yù)處理上,下一步的研究工作就是探索新的特征融合網(wǎng)絡(luò),在少量采樣幀的情況下得到良好的視頻級(jí)特征進(jìn)行分類輸出,提高長視頻分類準(zhǔn)確率。