[CVPR2017]CFNet_End-to-end representation learning for Correlation Filter based tracking
引言
多層神經網路是計算機視覺中做影象表達很有用的工具,但是,訓練時沒有的類別或者某類訓練樣本很少時,仍是一個很有挑戰的問題。這一問題自然在視覺跟蹤任務中遇到,因為跟蹤的目標是在只在序列的初始幀給定目標包圍盒的單一監督,在整個視訊上重檢測目標位置,主要的挑戰就是目標先驗資訊的缺乏。
最簡單的方法就是採用一個預訓練的深層CNN網路來跟蹤目標,但是及其有限的訓練資料和大量引數讓這個學習問題很困難,並且,SGD作線上調整代價昂貴(速度慢,計算複雜度高)。
一個解決方法是網路不要去做線上調整,而是學習一個deep embedding作為一個全域性目標描述子,比如很多跟蹤演算法[ ]使用了Siamese CNN,先離線訓練判別兩個影象塊是否包含同一個目標,一個有效的embedding將能通過相似性來做檢測(跟蹤),繞開了線上學習問題。然而,僅使用固定的metric比較外觀模型讓學習演算法不能利用video-specific線索。
一個可選的策略就是使用線上學習演算法如CF(Correlation Filter),CF通過高效的解嶺迴歸問題,可以將一個patch從周圍塊中區分出來。並且由於採用了FFT和element-wise的操作,比SGD更高效,相比於embedding的方法,判別器能適應特定的視訊。
如何把CF高效的線上學習與離線訓練的高判別度特徵相結合就是一個挑戰性問題,[]等演算法說明CF和CNNs可以互相補償,兩者的結合提高了效能。
然而,前述工作只是將CF應用到了預訓練的CNN特徵上,沒有任何兩種方法的深入整合。這篇文章想端到端的訓練CNN-CF的結合。
實現這一整合的關鍵一步是將CF解釋為可微的CNN層,為了讓誤差能夠通過CF反傳至CNN特徵,挑戰性在於CF本身是一個學習問題的solution,這篇文章提供了一個和CF推導近似形式的表達,並且證明了在端到端CNN架構中訓練的實用性。
在與Siamese-FC的對比中,作者發現網路足夠深的時候,CF並不會提高跟蹤結果。但是,本文提出了幾個輕量級的網路,只需要幾千個引數,就能夠在benchmark上取得state-of-the-art的效能,並且執行幀率很高。
相關工作
這部分主要介紹了相關濾波CF跟蹤研究進展以及BP演算法。(略)
方法
這一塊主要介紹了三點:一是 Siamese-FC,這是一個學習embeddings的框架,也是本文的baseline。二是之前的工作是如何將embeddings應用到跟蹤演算法中去。三是介紹了CFNet架構,四是介紹了CF layer及它的evaluation和反向傳播BP。
1. 全卷積對稱網路 Siamese-FC
x’, z’分別目標和搜尋區域,
訓練方法:離線訓練,每次都是從一段視訊裡隨機選1對影象
labels: c(+1,-1)。+1表示 正確的目標位置,-1 表示其他位置。
訓練通過在測試集上最小化 logistic loss函式
2. 跟蹤演算法:
網路本身只是衡量兩個影象塊的相似性,線上跟蹤通過評估網路前向傳播的來進行。在新的一幀,以前一幀估計的目標位置為中心提取一個搜尋區域,將目標的特徵同搜尋區域的特徵比較,目標新的位置就是在得分最高的位置。
先前的Siamese-FC網路僅僅是將每幀同目標的初始外觀比較,本文中,每幀都會結合前一個模板算得一個新模板。
3. CF network
後文CF即Correlation Filter,由系統框架圖可以看到,本文在一個輸入支路上x和cross-correlation操作之間加入CF block,在公式(1)的基礎上引入兩個引數s,b為了讓響應圖值的範圍更適合邏輯迴歸。公式如下:
CFNet前向傳播的時候就是一個加入了CNN特徵的CF跟蹤器,但是,之前的演算法並不能端到端訓練CF,本文就是推導了CF中的模板的對輸入的導數使得CF也能夠被端到端訓練。
4. CF
這部分主要是推導CF層反向傳播的計算公式,並且是傅立葉域的計算形式。(還需要細看,待補充)
實驗
首先做了同baselinbe Siamese-FC的對比實驗,相同卷積層數,CFNet成功率,overlap更高,5層之後兩個效果一樣了。
然後做了特徵轉移的實驗,是為了驗證融合了CF訓練得到的特徵更適合用CF跟蹤,所以將CFNet同Baseline+CF和ImageNet+CF做了對比,結果如下圖,驗證了假設。
再然後做了自適應重要性的實驗,將離線訓練得到的拉格朗日乘子a(事實上就是網路引數)在測試(跟蹤時)固定,比較和有線上學習時跟蹤效果(online adaptation)的對比。圖表說明,後者一直表現更好
最後是和最先進跟蹤演算法的對比,真是又快又好資料量小。
小結:
1.端到端的訓練CF,徹底將CF和CNN結合了起來。
2.CF層的BP是在傅立葉域計算的,速度快,跟蹤演算法實時性好。
3.沒有用大型神經網路,效能好的同時,模型小很多。
疑問:
1.卷積網路5層之後跟蹤效果不提升的解釋是?
2.CF層只加在了x那個branch上,並且,最後還是要做cross-correlate,多計算了一次相關?