劉慶強,張福祿,張瑤瑤,張晨雨
(1. 東北石油大學 電氣信息工程學院,黑龍江 大慶 163318; 2. 東北石油大學 計算機與信息技術學院,黑龍江 大慶 163318; 3. 安徽農(nóng)業(yè)大學 經(jīng)濟管理學院,合肥 230061)
目標跟蹤的主要任務是在有序的視頻數(shù)據(jù)中,對運動目標進行檢測、識別和跟蹤,是計算機視覺領域一個重要的發(fā)展方向. 在目標跟蹤過程中,急需解決的難點為:1) 精確定位有遮擋、形變及光線變化的目標物體較困難[1]; 2) 自動駕駛、視頻監(jiān)控等應用要求目標跟蹤算法具有實時性[2]. 因此,確保跟蹤算法在具有良好準確性的同時具有實時性已成為視頻目標跟蹤領域的關鍵問題.
傳統(tǒng)目標跟蹤算法的設計是基于相關濾波器的方法[3],如利用改進粒子濾波的機動目標跟蹤方法[4],基于色彩相關直方圖和粒子濾波的目標跟蹤方法[5],與Kalman濾波相結合的自適應窗口的抗遮擋運動目標跟蹤算法[6],以及利用背景感知相關濾波[7-8]和三維Gabor濾波[9]等方法進行跟蹤器設計. 這類方法通過訓練學習的濾波器將被跟蹤目標從背景中分離出來實現(xiàn)視頻跟蹤,但這些方法只對背景較簡單、物體形變較小的情形有良好的跟蹤效果,且需要優(yōu)質的在線更新策略. 深度學習的廣泛應用使目標跟蹤的發(fā)展找到了新方向,主要體現(xiàn)在以下兩方面:一方面,在相關濾波器中使用深度特征能提升算法的準確性,文獻[10]通過提取深度特征,利用集成思想獲取了更強的跟蹤模型; 文獻[11]引入連續(xù)卷積算子,解決了連續(xù)空間的學習問題;另一方面,直接使用深度學習算法進行目標跟蹤,如將多領域的卷積神經(jīng)網(wǎng)絡(convolutional neural network,CNN)結構體系網(wǎng)絡應用于目標跟蹤[12],文獻[13]提出了一種基于樹狀結構管理多個目標外觀模型的在線視覺跟蹤算法,效果較好.
研究表明,直接使用深度學習算法進行端到端的目標跟蹤更適合發(fā)展需求. SO-DLT[14]沿用將深度模型用在單目標跟蹤任務上的跟蹤算法DLT[15],在跟蹤數(shù)據(jù)預訓練中添加在線微調的策略,同時設計有針對性的網(wǎng)絡結構,并解決更新的敏感問題,對特定參數(shù)取多值做平滑,但難滿足實時性要求; GOTURN(generic object tracking using regression networks)算法[16]將目標跟蹤視為回歸問題,利用CNN直接回歸出跟蹤對象的位置;孿生候選區(qū)域生成網(wǎng)絡(siamese region proposal network,Siamese-RPN)[17]是將目標跟蹤問題視為目標檢測問題,利用快速區(qū)域卷積神經(jīng)網(wǎng)絡(faster region-convolutional neural network,FR-CNN)[18]中區(qū)域回歸的思想定位被追蹤物體的位置;全卷積孿生神經(jīng)網(wǎng)絡(fully convolutional siamese network,Siamese-FC)[19]將追蹤視為相似性學習,通過深度卷積神經(jīng)網(wǎng)絡學習一個判別模型定位物體中心點的位置. Siamese-RPN和GOTURN算法雖然有很高的追蹤能力,但前者需要設置更多的參數(shù),因此會增加大量訓練數(shù)據(jù),后者無法滿足實時性的要求. Siamese-FC算法雖然具有較好的實時性和跟蹤能力,但由于未使用更新機制,在存在較多相似目標的場景中,特征匹配可能很難準確地辨別出真正的目標.
為解決上述問題,本文提出一種基于孿生網(wǎng)絡的實時性視頻跟蹤算法——孿生壓縮激勵全卷積網(wǎng)絡(siamese squeeze and excitation full convolutional network,Siam-SEFC). Siam-SEFC算法與Siamese-FC算法相似,通過CNN進行特征提取,用相似函數(shù)判斷物體的相關性,并定位被追蹤物體的中心點位置,在每次特征提取后進行壓縮、激勵、重定權重操作融合空間通道信息,估計運動模型. Siam-SEFC算法的壓縮、激勵以及重定權重的操作,通過融合SENet模塊實現(xiàn). 保留了Siamese-FC算法良好的判別能力,可有效定位被追蹤對象的中心點,并融合通道間的空間信息,學習目標的大小變化信息,引入少量參數(shù)使用有限的數(shù)據(jù),仍具有良好的準確性.
壓縮激勵網(wǎng)絡(squeeze and excitation networks,SENet)[20]首先進行Squeeze操作,操作對象是傳統(tǒng)卷積操作后得到的中間結果,其目的是進行空間維度壓縮,將每個維度的通道信息變?yōu)橐粋€具有全局感受野的實數(shù),得到的輸出維度與輸入特征通道數(shù)相同; 其次,進行與循環(huán)網(wǎng)絡[21]中門機制類似的Excitation操作,根據(jù)通道參數(shù)w顯式地對特征通道間的相關性進行建模;最后,將Excitation輸出的權重作為在特征選擇后每個通道重要性的代表,Reweight在原來的特征上進行逐項乘法加權,完成在通道維度上對原始特征的重標定. SENet結構簡單,可作為獨立模塊嵌入不同的網(wǎng)絡結構中,其結構如圖1所示.
圖1 SENet的結構Fig.1 Structure of SENet
文獻[22]提出了將孿生神經(jīng)網(wǎng)絡用于相似度量以解決人臉識別問題. 孿生網(wǎng)絡的兩個子網(wǎng)絡通過權值共享獲得兩個相同的子體網(wǎng)絡,進而判別兩個輸入的相似性. 孿生網(wǎng)絡具有可自然增加訓練數(shù)據(jù)的特性,為訓練數(shù)據(jù)較少的跟蹤領域提供了解決問題的方法. 文獻[15]首次提出了基于孿生網(wǎng)絡的目標跟蹤算法,該算法通過神經(jīng)網(wǎng)絡將目標跟蹤視為匹配問題,但每次都需要處理大量的候選框,因此花費時間較長. 文獻[19]提出了具有實時性的Siamese-FC算法,也是基于孿生網(wǎng)絡的目標跟蹤算法,可在更大搜索圖中選擇、定位候選圖,網(wǎng)絡訓練采用全卷積方式進行,最后計算兩個輸入的關系:返回值表示得分情況; 高分表示兩個輸入對象相同; 低分表示兩個輸入對象不同.
Siamese-FC的網(wǎng)絡結構如圖2所示,其中輸入x常表示含給定第一幀邊框的目標,該子網(wǎng)絡定義為模板分支;另一個子網(wǎng)絡定義為檢測分支,接收當前幀的輸入,用z表示. Siamese-FC兩個分支均使用深度卷積進行特征提取的變換,用φ表示,然后由f(x,z)=g(φ(x),φ(z))計算得到兩個輸入的相關性,其中g表示卷積操作,φ(x),φ(z)表示卷積核.
圖2 Siamese-FC的結構Fig.2 Structure of Siamese-FC
由于Siamese-FC缺少對跟蹤對象大小變化信息進行學習的策略,因此,本文在Siamese-FC網(wǎng)絡基礎上添加SENet模塊,學習物體的空間信息,構建新的跟蹤網(wǎng)絡----孿生壓縮激勵全卷積網(wǎng)絡(siamese squeeze and excitation fully convolutional networks,Siam-SEFC). 與Siamese-FC類似,Siam-SEFC也是一種相似學習. 但Siam-SEFC在模板分支和檢測分支的每一步特征提取φ操作后都先添加空間信息融合操作,即添加SENet模塊,然后將提取的特征進行相似度計算. 相似度函數(shù)可表示為f(x,z)=g(φ(x),φ(z)),Siam-SEFC的相似度函數(shù)表示為
f(x,z)=φ(x)*φ(z)+l,
(1)
其中l(wèi)表示取自于b∈的值,*表示卷積運算,即將φ(x)作為卷積核,再對φ(z)進行卷積. 響應值最大處作為目標z在x中的位置. 該網(wǎng)絡輸出的不是單個分數(shù)值,而是如同D?2的分數(shù)圖.
為得到最佳的Siam-SEFC模型,在其分支網(wǎng)絡設置表1中的6個網(wǎng)絡結構,由于Siam-SEFC的兩個分支網(wǎng)絡共享權重,為簡潔,在網(wǎng)絡A~F每一列均列出一個分支的網(wǎng)絡結構. 完整的Siam-SEFC結構需要將每個分支所得特征圖用式(1)進行相似性計算. 卷積層的參數(shù)用“conv〈卷積核大小〉-〈通道數(shù)〉”表示. 池化層的通道數(shù)用“pooling〈通道數(shù)〉”表示. 為簡潔,沒有顯示激活層. 從網(wǎng)絡A到網(wǎng)絡E,依次在Siamese-FC結構的每一層增加SENet模塊. 對于網(wǎng)絡F,借鑒VGG[23]的設計思想,將第一層11×11的卷積用1個7×7和1個5×5的卷積進行替換,兩個小卷積核與11×11的卷積核有相同的感受野,但網(wǎng)絡訓練所需參數(shù)比11×11的卷積核少,從而減輕了網(wǎng)絡的計算負擔,證明過程可參見文獻[23]. 在替換后的每個卷積層添加SENet模塊,每個網(wǎng)絡結構的參數(shù)個數(shù)總和列于表2.
表1 分支網(wǎng)絡設置
表2 參數(shù)數(shù)量
SENet模塊以瓶頸形式對通道間的相關性進行建模,得到與輸入特征相同數(shù)目的權重輸出,在增添通道信息的同時只增添了少量計算,沒有增加網(wǎng)絡負載.
用Siam-SEFC損失函數(shù)對網(wǎng)絡訓練中的正負樣本進行判別,損失函數(shù)表示為
L(y,v)=log(1+exp{y,v}),
(2)
其中v表示單個樣本圖像候選的真實值,y∈{1,-1}表示標簽. 本文用示例圖片和搜索圖片(比示例圖片大)進行網(wǎng)絡訓練,先產(chǎn)生一個得分圖v:D→R,然后再將得分圖的損失定義為單個損失的平均值:
(3)
對于得分圖的每個位置u∈D,y(u)都是真實值,其計算方法如下:
(4)
其中R是算法定義的半徑,c是目標中心,k是網(wǎng)絡最終總步長.
Siam-SEFC跟蹤框架的完整流程如圖3所示,先通過模板分支和檢測分支對示例圖像和搜索圖像進行特征提取和壓縮激勵,然后輸入到相似度函數(shù)中計算相似度.
ILSVRC2015是ImageNet視覺識別挑戰(zhàn)(ILSVRC)引入ImageNet的視頻數(shù)據(jù)集,作為視頻挑戰(zhàn)中新對象檢測的一部分,提供了約4 500個(分為訓練集和驗證集)包含30種不同動物和車輛的圖片及視頻信息,100多萬帶注釋的幀. ILSVRC2015數(shù)據(jù)集在視頻跟蹤上的優(yōu)勢表現(xiàn)在:不僅含有更多的數(shù)據(jù),而且其描繪的場景和對象區(qū)別于經(jīng)典跟蹤基準中的場景和對象. 因此,本文選用ILSVRC2015數(shù)據(jù)集用于訓練深度跟蹤模型更具泛化能力.
在訓練過程中,用于訓練的數(shù)據(jù)幀從ImageNet的4 417幀視頻中提取,共超過200萬幀標記的邊界框. 數(shù)據(jù)集被隨機分為三部分:訓練集70%,驗證集10%,測試集20%. 用兩種性能指標對跟蹤效果進行評估:準確性(accuracy)和幀率(FPS). 前者以平均IoU的形式計算,后者即每秒內可處理的圖片數(shù)量.
實驗用Pytorch框架搭建網(wǎng)絡,進行跟蹤器設計. 實驗的輸入圖片為3通道的彩色圖片,在Linux操作系統(tǒng)下應用Nvidia RTX 2070 GPU進行訓練及測試,單個網(wǎng)絡的訓練時間為3~5周.
Siam-SEFC網(wǎng)絡的訓練過程用反向傳播批量梯度下降對模型進行訓練. 批次大小為256,動量為0.9,通過權值衰減實現(xiàn)正則化. 初始學習率為0.01,當驗證集準確率不再提升時,為加快收斂速度,學習率以10倍速率衰減. 選擇表1所列的網(wǎng)絡A~E進行訓練.
網(wǎng)絡A的訓練采用隨機初始化權重的方式. 當訓練網(wǎng)絡B時,利用網(wǎng)絡A的權重初始化網(wǎng)絡B,新增的SENet層參數(shù)隨機初始化. 其他網(wǎng)絡的初始權重同網(wǎng)絡B,除新添加SENet層采用隨機初始化,其他層結構使用前一個網(wǎng)絡預訓練的權重. 對于網(wǎng)絡F,第一層、第二層的權重則隨機初始化,其余網(wǎng)絡層的權重則使用網(wǎng)絡E預訓練的權重. 對于隨機初始化,服從均值為0、方差為0.01的正態(tài)分布. 偏差初始化為0.
在訓練過程中,離線提取每幀的示例圖像和搜索圖像,以避免在訓練過程中調整圖像大小. 本文考慮使用兩種方法設置示例圖像和檢測圖像的訓練尺寸S1,S2. 第一種方法是固定尺寸S1,S2,針對單尺寸進行訓練. 在實驗中,評估兩種固定尺寸的訓練模型:S1=127,S2=255;S1=255,S2=383. 給定一個網(wǎng)絡,首先用S1=127,S2=255訓練. 為加速S1=255,S2=383的訓練,用在S1=127,S2=255上的預訓練權重初始化權重,并且用較小的初始學習率0.001. 第二種方法是使用多尺寸圖像訓練設置S1,S2,即每個訓練圖片的尺寸為{(S1min,S1max),(S2min,S2max)}每個元素之間的隨機數(shù)(這里S1min=127,S1max=255,S2min=255,S2max=383). 這是數(shù)據(jù)增強的一種方式,針對尺寸不定的訓練集數(shù)據(jù),提高模型對尺寸的泛化. 使用與微調后的S1max=255,S2max=383的單一尺寸預訓練模型相同設置的模型,訓練多尺寸模型.
離線提取每幀的模板圖像和檢測圖像大小設置如下:對于固定的S1∈[S1min,S1max],S2∈[S2min,S2max],Q1∈[0.5S1min,0.5S1max],Q2∈[0.5S2min,0.5S2max],對表1中所得到的獨立網(wǎng)絡模型跟蹤性能進行評估,結果列于表3.
由表3可見,網(wǎng)絡A~E隨著SENet模塊的添加,跟蹤的準確性從0.529逐漸增加至0.540,其圖片處理速度FPS在56~58幀/s內波動,能滿足實時性要求. 其次,網(wǎng)絡F與E相比,準確性提升至0.546,圖片處理速度FPS為57幀/s. 訓練數(shù)據(jù)尺寸變化的對比實驗結果表明,尺寸變化的跟蹤性能優(yōu)于固定最小邊的性能. 因此,添加SENet模塊進行多尺度訓練,使用小卷積核的Siam-SEFC在單一尺寸訓練集上具有優(yōu)越性.
表3雖然對模型進行了多尺度訓練,但在測試時仍使用單一尺度,受VGG[23]實驗設計的啟發(fā):在測試階段用尺寸抖動會取得更好的效果. 采用多個尺寸的測試數(shù)據(jù)運行模型,計算模型的準確性和FPS. 用表3所得的模型,通過3個接近訓練集的測試集尺寸
Q={(S1-16,S2-16),(S1,S2),(S1+16,S2+16)}
進行評估.
網(wǎng)絡A與網(wǎng)絡B并未進行多尺度訓練,故在多尺度測試時只對網(wǎng)絡B進行實驗. 實驗結果列于表4. 由表4可見,多尺度訓練的網(wǎng)絡在進行尺寸波動測試時性能更好(對比表3中單一尺寸的結果). 網(wǎng)絡E性能最好,并且訓練時尺度波動比固定最小邊性能更好. 本文在驗證集上最好的單一網(wǎng)絡模型準確率為0.546,在測試集上,網(wǎng)絡F的準確率達0.549.
表5為不同跟蹤算法測試結果對比. 由表5可見,MDNet算法跟蹤的準確性雖然在對比算法中達到最高0.563,但其處理圖片速度FPS為1幀/s,達不到實時性的要求;SENet和DAT算法無論是在準確性,還是處理圖片的速度上都不如Siam-SEFC算法;在與Siamese-FC算法對比中,Siam-SEFC算法具有更高的準確性,其準確性可達0.549,且未損失實時性,圖片處理速度FPS仍可達57幀/s. 因此Siam-SEFC跟蹤模型具有良好的跟蹤性能.
表4 多尺度的網(wǎng)絡性能
表5 不同跟蹤算法測試結果對比
綜上所述,本文針對Siamese-FC算法沒有對物體大小信息變化學習的策略,通過在Siamese-FC主干網(wǎng)絡中引入SENet模塊,提出了一種改進的Siamese-FC新方法----Siam-SEFC. Siam-SEFC算法利用SENet模塊的特性,在對物體中心信息特征學習的同時增添了空間信息特征的學習,并采用多尺度數(shù)據(jù)進行訓練及測試,在物體尺度上進一步增添了物體大小變化的信息. 通過單一尺寸、多尺寸測試實驗以及與其他跟蹤方法的對比實驗,評估Siam-SEFC在視頻跟蹤的效果,結果表明,Siam-SEFC 模型在ILSVRC15數(shù)據(jù)集上不但具有良好的準確性,且滿足實時性要求.