張學(xué)軍,周 云,杜 丹,鄭 威,王文帥,張丙克
(1.中國電子科技集團(tuán)公司第五十四研究所,河北 石家莊 050081;2.陸軍裝備部駐石家莊地區(qū)第一軍代室,河北 石家莊 050081;3.中國人民解放軍73602部隊(duì),江蘇 南京 211100)
不同于手工特征提取方法,使用深度卷積神經(jīng)網(wǎng)絡(luò)能夠自動提取圖像的表觀特征[1]。然而不同的算法提取到的特征表征能力不同,最終的特征表征能力越強(qiáng),越能反映視頻中所發(fā)生的動作,模型算法識別準(zhǔn)確率越高,因而構(gòu)建一個(gè)表征能力強(qiáng)的特征成為計(jì)算機(jī)視覺領(lǐng)域中算法關(guān)鍵研究點(diǎn)。
在計(jì)算機(jī)視覺的目標(biāo)檢測任務(wù)中,模型需要對圖像中不同大小的物體進(jìn)行檢測定位,通過觀察可知單發(fā)多框檢測(SSD)方法能夠很好地解決這一問題[2]。SSD算法屬于目標(biāo)檢測方法中的“一步式”方法,不同于“兩步式”方法,“一步式”方法不需要提取計(jì)算候選區(qū)域,其特征提取與目標(biāo)位置回歸整合到卷積神經(jīng)網(wǎng)絡(luò)中,因而在速度上有很大的優(yōu)勢。SSD使用多尺度特征直接進(jìn)行目標(biāo)的位置回歸和分類。在卷積過程中得到的特征圖尺寸不一,大尺寸的特征圖還包含豐富的底層表觀信息,可用于檢測一些細(xì)小的物體[3]。小尺寸的特征圖經(jīng)過多層的卷積操作,包含更為抽象的語義信息特征,可用于檢測更為宏觀的物體。SSD的模型框架如圖1所示。
圖1 SSD模型框架Fig.1 SSD model framework
SSD模型使用VGG16-SSD模型訓(xùn)練自己的數(shù)據(jù)集做識別,在VGG16基礎(chǔ)上取消其最后兩層全連接層,增加了額外的卷積層以獲取更多不同尺寸的特征圖。圖中,Conv8、Conv9、Conv10、Conv11均為額外增加的卷積層[4]。
SSD算法的優(yōu)勢在于檢測速度快,但也存在一定缺陷,模型網(wǎng)絡(luò)對于小目標(biāo)的檢測效果不如對大目標(biāo)的檢測效果好,考慮添加更為精細(xì)的特征提取,引入注意力機(jī)制對網(wǎng)絡(luò)中的特征進(jìn)行增強(qiáng)[5]。
人類的視覺機(jī)制在觀察事物時(shí)總是會優(yōu)先把注意力聚焦于其感興趣的部分,視頻行為識別任務(wù)中,輸入的視頻數(shù)據(jù)除了包含人類對象,還包含了其他許多無關(guān)信息。引入注意力機(jī)制的目的是讓神經(jīng)網(wǎng)絡(luò)模型也像人類一樣更加關(guān)注圖像中的顯著部分[6]。注意力機(jī)制按形式分可分為兩類:硬注意力機(jī)制和軟注意力機(jī)制[7],如圖2和圖3所示。注意力機(jī)制本質(zhì)是為圖像中的像素點(diǎn)賦予一個(gè)權(quán)重掩膜,值得注意的像素點(diǎn)位置注意力權(quán)重高,無關(guān)的像素點(diǎn)位置注意力權(quán)重低。硬注意力機(jī)制只為像素點(diǎn)賦予0或1兩個(gè)注意力權(quán)重值,被賦予0的像素點(diǎn)可以被視為舍棄,只留下被賦予1權(quán)重的像素點(diǎn)。軟注意力機(jī)制的注意力權(quán)重范圍在0~1之間,這位于[0,1]區(qū)間的連續(xù)分布注意力掩膜反應(yīng)了不同區(qū)域受到模型關(guān)注的高低程度。在計(jì)算機(jī)視覺領(lǐng)域中一般都使用軟注意力機(jī)制為圖像賦予注意力權(quán)重,軟注意力在學(xué)習(xí)過程中是可微的,在學(xué)習(xí)過程中可通過網(wǎng)絡(luò)計(jì)算梯度反向傳播進(jìn)行權(quán)重的更新[8]。
此外不同注意力機(jī)制關(guān)注的域不同,可分為:關(guān)注圖像空間中不同位置的方法、關(guān)注同一空間位置不同通道的方法、同時(shí)關(guān)注空間域和通道域的方法和關(guān)注時(shí)域的方法。不同的方法對應(yīng)不同的應(yīng)用場景[9]。
圖2 硬注意力機(jī)制Fig.2 Hard attention mechanism
圖3 軟注意力機(jī)制Fig.3 Soft attention mechanism
考慮到SSD算法在檢測小目標(biāo)時(shí)容易出現(xiàn)誤檢測,需要構(gòu)建多尺度注意力特征網(wǎng)絡(luò)來驗(yàn)證注意力特征對特征表征能力的增強(qiáng)效果,如圖4所示。對于上文提到的SSD算法,本文對其結(jié)構(gòu)做了一些改變,在SSD算法的后5個(gè)檢測分支上添加注意力模塊,從而構(gòu)建了5個(gè)全新的檢測分支。最后用于檢測的分支為5個(gè)新分支和SSD原有的最后一個(gè)分支,最終的模型網(wǎng)絡(luò)命名為多尺度注意力特征檢測(MA-SSD)。使用Fi(i= 1,2,…,6)代表原始SSD的第i個(gè)檢測分支所構(gòu)建的特征,多尺度注意力特征網(wǎng)絡(luò)中對后5個(gè)檢測分支特征{F2,F3,…,F6}進(jìn)行上采樣操作,使其每個(gè)特征的大小與各自前一個(gè)檢測分支特征的尺寸保持一致,可以使用反卷積操作來實(shí)現(xiàn)特征的上采樣。經(jīng)過上采樣步驟后再將特征輸入注意力模塊,使得網(wǎng)絡(luò)更加容易關(guān)注到圖像中存在目標(biāo)的區(qū)域,最后得到的注意力特征再與上一檢測分支的特征相融合,作為新的檢測分支特征進(jìn)行檢測[10]。第i個(gè)新檢測分支得到的特征MA_Fi表示如下:
MA_Fi=Fi?F′i+1,i=1,2,…,5。
(1)
圖4 多尺度注意力特征SSDFig.4 Multi-scale Attention Characteristics SSD
在此結(jié)構(gòu)中,高層特征通過對特征上采樣以及注意力模塊為低層特征提供了一個(gè)注意力掩膜,增強(qiáng)了低層特征的表征能力。同時(shí)先進(jìn)行下采樣再進(jìn)行上采樣的操作也可以視為一個(gè)編碼解碼結(jié)構(gòu),在這種結(jié)構(gòu)中使用注意力模塊能夠有效地使網(wǎng)絡(luò)學(xué)習(xí)到圖像數(shù)據(jù)中更為顯著的區(qū)域,提高檢測/分類精度[11]。
(2)
式中,λij代表該點(diǎn)的先驗(yàn)特征值。同理對于關(guān)注位置的軟注意力機(jī)制,本文更關(guān)注特征中某個(gè)確定通道中一個(gè)位置上的像素點(diǎn)與該通道中其他像素點(diǎn)之間的softmax概率值,可以用式(3)表示其計(jì)算方式:
(3)
這兩種不同關(guān)注域的軟注意力機(jī)制的表現(xiàn)形式如圖5所示,藍(lán)色部分為該方式中更側(cè)重關(guān)注的域。
(a) C-Softmax
對于注意力機(jī)制的效果,通過驗(yàn)證發(fā)現(xiàn)F-softmax的效果更好,可見圖像中物體的空間位置影響要比通道間權(quán)重影響大,后續(xù)會有實(shí)驗(yàn)結(jié)果證明這一點(diǎn)。
對于MA-SSD在目標(biāo)檢測領(lǐng)域中的應(yīng)用,進(jìn)行了驗(yàn)證分析。驗(yàn)證實(shí)驗(yàn)的數(shù)據(jù)集使用的是目標(biāo)檢測領(lǐng)域常用的數(shù)據(jù)集PascalVOC,實(shí)驗(yàn)的硬件環(huán)境為:單塊Nvidia Titan X GPU(12 GByte內(nèi)存),運(yùn)行環(huán)境為pytorch 0.3版本深度學(xué)習(xí)框架。具體訓(xùn)練方式如下:
凍結(jié)第一階段訓(xùn)練的模型參數(shù)不參與反向傳播更新,將第一階段訓(xùn)練的模型看作一個(gè)預(yù)訓(xùn)練模型用于本階段,然后訓(xùn)練網(wǎng)絡(luò)學(xué)習(xí)多尺度注意力分支的參數(shù)。在第一階段中,使用隨機(jī)梯度下降算法學(xué)習(xí)網(wǎng)絡(luò)參數(shù),批次大小設(shè)置為32,動量設(shè)置為0.9,重量衰減設(shè)置為0.000 5。將學(xué)習(xí)率初始化為0.001,并在經(jīng)過80K和100K迭代后降低到原1/10,迭代總數(shù)為120K。在第二階段,將基礎(chǔ)網(wǎng)絡(luò)和在第一階段訓(xùn)練的額外層視為注意力檢測分支的預(yù)訓(xùn)練模型,通過凍結(jié)SSD模型的基礎(chǔ)網(wǎng)絡(luò)額外層來訓(xùn)練注意力分支和預(yù)測層,設(shè)置學(xué)習(xí)率初始化為0.001,并在30K和80K迭代后降低到原1/10,整個(gè)訓(xùn)練在120K迭代次數(shù)時(shí)停止。
將MA-SSD與目標(biāo)檢測領(lǐng)域中一些有競爭力的方法進(jìn)行了比較,實(shí)驗(yàn)結(jié)果如表1所示,實(shí)驗(yàn)結(jié)果的評價(jià)指標(biāo)是mAP。MA-SSD在VOC2007數(shù)據(jù)集上取得了不錯(cuò)的檢測效果:mAP 78.4%。相比于“兩步式”的方法如Fast R-CNN/ Faster R-CNN,MA-SSD有著明顯的優(yōu)勢。相比于沒有使用到多尺度注意力特征的原始SSD算法,MA-SSD把檢測精度提高了1%,特別對于檢測細(xì)小的物體(如鳥類,瓶子),MA-SSD有著明顯的優(yōu)勢,可見使用注意力機(jī)制加強(qiáng)低層特征能夠增強(qiáng)SSD網(wǎng)絡(luò)對于小目標(biāo)的檢測性能[12]。
表1 目標(biāo)檢測算法實(shí)驗(yàn)結(jié)果對比
使用不同的注意力機(jī)制最終的檢測效果也不相同。在VOC2007上進(jìn)行了對比實(shí)驗(yàn),表2給出了對比上文提到的兩種不同注意力形式的檢測效果,不使用注意力模塊時(shí),檢測分支相當(dāng)于一個(gè)編解碼結(jié)構(gòu),這仍然增強(qiáng)了特征分支中的特征表示,因而相對于SSD方法效果也有一定提升。使用F-Softmax的效果要比使用C-Softmax的效果更好,本文認(rèn)為關(guān)注空間位置中的顯著區(qū)域更能夠加強(qiáng)整體網(wǎng)絡(luò)的識別能力。
表2 使用不同注意力形式對比
考慮在視頻行為識別領(lǐng)域使用注意力機(jī)制增強(qiáng)不同尺度的特征以提升識別的精度。在視頻動作識別任務(wù)中,與專門處理長期序列數(shù)據(jù)的方法(例如遞歸神經(jīng)網(wǎng)絡(luò)和長期短期記憶網(wǎng)絡(luò))相比,注意力機(jī)制更有效,更方便提取稀疏樣本的相對重要特征,捕獲特征之間的關(guān)系。對于待進(jìn)行分類的視頻數(shù)據(jù),一般是將其處理成圖像幀序列再送入神經(jīng)網(wǎng)絡(luò)模型。對于包含一定持續(xù)時(shí)間行為視頻,如果僅從中選擇一個(gè)小的連續(xù)幀并將其輸入到卷積神經(jīng)網(wǎng)絡(luò)以進(jìn)行特征提取,所獲得的信息僅是某個(gè)特定區(qū)域的領(lǐng)域信息[13]。例如雙流卷積神經(jīng)網(wǎng)絡(luò)算法就是如此,選取的光流片段只是一個(gè)短時(shí)序范圍的片段,不一定能代表整個(gè)視頻片段。但如果選擇大范圍的連續(xù)幀序列進(jìn)行特征提取,由于隨著幀數(shù)量增加動作不會發(fā)生明顯變化,特征提取的結(jié)果將包含大量的冗余信息,將導(dǎo)致額外的計(jì)算成本。
本研究希望獲得一個(gè)包含從動作發(fā)生到結(jié)束的特征表示,同時(shí),希望此特征表示不會混雜太多的冗余信息。因此對于一個(gè)輸入視頻,將其平均劃分為N個(gè)片段V=[V0,V1,…,VN-1],使用N個(gè)視頻短片獲取N個(gè)圖像以構(gòu)建有序幀序列F=[F0,F1,…,FN-1],F(xiàn)n是從相應(yīng)的視頻段Vn中提取的視頻幀。然后將幀序列輸入到基礎(chǔ)的卷積神經(jīng)網(wǎng)絡(luò)提取特征,通過一系列卷積操作即可獲得代表整個(gè)視頻的特征序列T=[T0,T1,…,TN-1]??紤]更穩(wěn)定的特征提取過程,選擇使用類似于SSD的基礎(chǔ)網(wǎng)絡(luò)作為特征提取網(wǎng)絡(luò),但與SSD中使用的VGG16不同,選擇ResNet50作為基礎(chǔ)卷積神經(jīng)網(wǎng)絡(luò)。此外,添加額外層來替換原始網(wǎng)絡(luò)平均池化層和全連接層。多尺度注意力特征網(wǎng)絡(luò)結(jié)構(gòu)如圖6所示。
在視頻行為識別任務(wù)中所添加的注意力模塊與添加在圖像上的注意力模塊有所不同。在不涉及時(shí)序信息的任務(wù)中,網(wǎng)絡(luò)的注意力只需放在圖像的空間域上。但在視頻任務(wù)中,網(wǎng)絡(luò)需要關(guān)注時(shí)間維度上像素點(diǎn)的顯著變化。在模型中使用一種自注意力機(jī)機(jī)制,使得輸入視頻幀序列的每一個(gè)像素點(diǎn)能夠保持與這個(gè)幀序列中其他所有位置(包括空間位置和時(shí)間位置)像素點(diǎn)之間的關(guān)系。
圖像經(jīng)過卷積后,某一層的特征圖的某一個(gè)點(diǎn)可能包含原始圖像中很大范圍的信息,因?yàn)檫@一點(diǎn)的特征值相當(dāng)于對原圖部分信息的聚合,但其范圍也是有限的。如果考慮不僅僅是局部特征點(diǎn)之間關(guān)聯(lián),而將這一點(diǎn)的特征值與特征圖中所有范圍內(nèi)點(diǎn)的特征值之間的關(guān)系進(jìn)行計(jì)算,即可計(jì)算出該點(diǎn)相對于所有點(diǎn)的一個(gè)權(quán)重。在構(gòu)建的自注意模塊中,T是由某個(gè)卷積層獲得的特征圖序列,自注意力模塊接收T作為輸入來執(zhí)行非局部的自注意力操作:SA(Xi,Xj),其中Xi為輸入特征的某個(gè)點(diǎn)的像素值,Xj為其余所有可能位置點(diǎn)的像素值?;镜淖宰⒁饬Σ僮骺梢越忉尀?
圖6 多尺度注意力特征網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.6 Structure diagram of multi-scale attention feature network
(4)
式中,Yi表示通過計(jì)算后的Xi所對應(yīng)的自主注意力特征值,可從式(4)中看出,某一個(gè)位置的點(diǎn)與其他所有點(diǎn)都進(jìn)行了計(jì)算,這樣更能反應(yīng)該點(diǎn)相對于空間域以及時(shí)域上與其他特征點(diǎn)的關(guān)系??梢詫⑵涮卣餍虮硎緸槭?5),其中Tatt為時(shí)間特征序列。
(5)
在時(shí)間特征模塊中,僅使用2D卷積核來捕獲幀之間的時(shí)間表示。對于大小為N×C×H×W的特征序列T,首先將通道數(shù)減少為原始通道的1/16,然后對其中后N-1幀的特征Tn+1進(jìn)行2D卷積運(yùn)算,然后從前一幀的特征Tn中減去。該模塊通過計(jì)算兩個(gè)幀之間的像素偏移量來捕獲兩個(gè)幀之間的運(yùn)動提示:
T′n=Conv(Tn+1)-Tn。
(6)
通過計(jì)算N個(gè)幀之間的運(yùn)動信息,網(wǎng)絡(luò)可以獲得N-1個(gè)時(shí)間特征序列。為了與原始輸入大小一致,在特征序列的末尾添加了一個(gè)全零的特征,以表示最后一個(gè)時(shí)間點(diǎn)的運(yùn)動信息。 最后再恢復(fù)通道數(shù)以確保與輸入的一致性。 將自注意力模塊獲得的特征與時(shí)間特征模塊獲得的特征融合在一起后,形成原始輸入特征進(jìn)行跳過層連接以獲得關(guān)注的時(shí)空特征表示并輸入至后續(xù)網(wǎng)絡(luò):
T=T+T′+Tatt。
(7)
在兩塊Nvidia Titan X GPU(12 GByte內(nèi)存)上訓(xùn)練MAST,采用pytorch 1.0實(shí)現(xiàn)。 GPU能執(zhí)行大規(guī)模的并行操作,可以加速網(wǎng)絡(luò)計(jì)算,所有輸入圖像的尺寸為224×224。使用隨機(jī)梯度下降算法來學(xué)習(xí)網(wǎng)絡(luò)參數(shù),批量大小設(shè)置為64,動量設(shè)置為0.9。將學(xué)習(xí)率初始化為0.001,并在40和80個(gè)epoch后降低到原1/10,epoch總數(shù)為100。在實(shí)驗(yàn)中,統(tǒng)一采樣的幀數(shù)N設(shè)置為8。基礎(chǔ)網(wǎng)絡(luò)Resnet50模型已在ImageNet數(shù)據(jù)集上進(jìn)行了預(yù)訓(xùn)練,在Conv_4x之后替換了池化層和全連接層,有關(guān)具體的網(wǎng)絡(luò)參數(shù)如表3所示。
表3 多尺度注意力特征網(wǎng)絡(luò)結(jié)構(gòu)
將MAST與視頻行為識別領(lǐng)域一些具有代表性的算法進(jìn)行了實(shí)驗(yàn)對比,在UCF101和HMDB51兩個(gè)數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果如表4所示,可以看出傳統(tǒng)的手工提取特征方法與基于深度學(xué)習(xí)的識別方法相比已沒有優(yōu)勢。相比于C3D使用三維卷積核進(jìn)行特征提取,本文的方法使用自注意力模塊加強(qiáng)了特征表示,在UCF101上識別精度提升了8.4%,也進(jìn)一步說明了不需要三位卷積核也能夠?qū)崿F(xiàn)時(shí)序特征的構(gòu)建。雙流卷積神經(jīng)網(wǎng)絡(luò)(Two-stream)使用了光流作為其時(shí)間特征,識別精度已經(jīng)取得了不錯(cuò)的效果,但MAST的識別精度在其基礎(chǔ)上提升了2.7%,證明了多尺度注意力方法在光流面前也具有一定優(yōu)勢。而雙流算法的衍生算法TSN也采用均勻間隔采樣的方式進(jìn)行特征提取,MAST相較于此構(gòu)建了注意力特征,能夠識別行為在時(shí)間維度上的顯著發(fā)生點(diǎn),因而MAST的識別效果要領(lǐng)先于TSN。相較于同樣只使用了原始圖像視頻幀作為輸入的方法STC,MAST的效果沒有明顯優(yōu)勢。STC考慮了不同通道間的特征,并且使用了深層次的網(wǎng)絡(luò)模型(ResNet101),這些機(jī)制都能夠使特征的表征能力更為強(qiáng)大,這是未來工作中可以考慮的研究點(diǎn)。
表4 實(shí)驗(yàn)結(jié)果對比
主要介紹了多尺度特征思想以及注意力機(jī)制加強(qiáng)卷積特征的方法。在目標(biāo)檢測領(lǐng)域上,通過實(shí)驗(yàn)驗(yàn)證了注意力機(jī)制的有效性,加入多尺度注意力特征的網(wǎng)絡(luò)模型對目標(biāo)檢測的結(jié)果有了進(jìn)一步提升。在視頻行為識別領(lǐng)域,本文提出的方法主要由基礎(chǔ)網(wǎng)絡(luò)、注意力模塊和時(shí)間特征構(gòu)建模塊組成。輸入網(wǎng)絡(luò)的視頻數(shù)據(jù)經(jīng)過等間隔采樣,采樣后得到的幀數(shù)量為8,實(shí)驗(yàn)結(jié)果證明了本文所提方法的有效性。