1. 程式人生 > 實用技巧 >CREST——Convolutional Residual Learning for Visual Tracking

CREST——Convolutional Residual Learning for Visual Tracking

CREST
在目標目標跟蹤領域,目前最常用大多以相關濾波為主。CREST作者認為現有的相關濾波方法將特徵提取與濾波器更新分離開,無法進行端到端訓練。而作者則提出了使用一層CNN網路來模擬相關濾波操作,並將特徵提取、模型訓練等整合在一起,可以進行端到端訓練。同時為了避免模型退化,作者採用了殘差思想對網路進行了部分優化。

作者認為相關濾波主要有兩個缺點:

1)相關濾波的將特徵提取與跟蹤器訓練等隔離開,無法進行端到端的訓練;
2)大多數相關濾波進行更新的時候都採用線性插值,這種帶有經驗性的插值方法不好,可能會使得模型更新後的跟蹤器將帶有噪聲,導致模型漂移。

為了解決上述缺點,作者採用的方法:

1)使用一層卷積網路來代替相關濾波操作,在此處使用卷積網路計算空域相關性去替代頻域上面的相關濾波操作;
2)使用殘差思想去優化更新過程,使之能更好捕捉目標外觀變化等情況。

作者創新點主要有三個:

1)將相關濾波操作用一層CNN進行替代,這樣做使得特徵提取、生成相應圖等整合在一起,可以進行端到端訓練;
2)將殘差思想應用到tracking中,目的是捕捉時空上的目標外觀變化;
3)CREST取得了 state-of-the-art 的效果。

CREST網路結構
CREST流程如下圖所示,首先其特徵提取網路採用VGGNET,而用於跟蹤網路可以粗略分為兩部分,分別為base layer(基礎網路)和residual layer(殘差網路)。其中base layer是用一層卷積代替相關濾波,而殘差網路又細分為空域殘差和時域殘差兩個部分。base layer和residual layer分別得到三個相應圖後進行一個合併,將合併後得到的相應圖作為最終相應圖。


此外,CREST還利用了時間殘差,用於應對空間殘差無效的情況。時間殘差層的網路結構與空間殘差層相似。從包含初始目標外觀的第一幀提取時間輸入。用Xt表示第t幀的輸入X,因此CREST可以表示為:(這時的FR應該是FB)

給定輸入影象,首先以前一幀的估計位置為中心提取搜尋影象塊。這個塊被送到特徵提取網路,然後通過基層和殘差層迴歸,生成響應圖。

當目標物件外觀變化小時,基層輸出與標記值的差異很小,殘差層對最終響應圖沒有什麼影響。然而,當目標物件外觀變化大時(比如背景混亂),基層的響應是有限的,可能無法區分目標和背景。這時,通過對基層輸出與標記值之間的差異進行建模,殘差層可以減輕這種限制。通過增加殘差層,可以減輕最終輸出的噪聲響應值。因此,目標響應對目標外觀變化較大的情況更魯棒。

CREST具體流程
模型更新
第一幀以目標為中心裁剪一個patch塊,然後將patch塊輸入VGGNET進行特徵提取得到feature map。而跟蹤網路部分採用隨機初始化,跟蹤網路在第一幀的輸入feature map而label是第一幀已知目標形成的一個高斯label。利用反向傳播進行訓練,得到用於跟蹤的網路。

線上檢測
從第二幀開始進入跟蹤階段,以上一幀得到的目標位置為中心裁剪patch塊,然後進入VGG進行特徵提取,再將特徵放入跟蹤網路中進行一次前向傳播,得到最後的響應圖,而響應圖中最大點的響應被認為是目標。

尺度估計
在多個尺度求最大響應,然後考慮到尺度變化問題,作者採用以下更新公式

模型更新
作者在論文中每隔2幀對跟蹤器進行更新。

實驗
搜尋區域大小:5倍搜尋域;
特徵選取:使用只保留前兩個池化層的VGG-16網路中conv4-3層經PCA降維到64通道後作為特徵;
真值標記:二維高斯分佈,峰值為1;
尺度平滑引數beta:0.6;
其他配置:使用MatConvNet框架實現;模型初始化時,訓練學習率為5e-8,當loss小於0.02停止;模型更新時,每兩幀更新一次,更新時迭代2次,學習率為2e-9;
實驗資料集:OTB-2013,OTB-2015,VOT-2016;

https://blog.csdn.net/youmenshan3316/article/details/83625924
https://blog.csdn.net/qq_22763299/article/details/79852758