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