天天看點

[MLT(ICCV2019)]論文閱讀筆記

Deep Meta Learning for Real-Time Target-Aware Visual Tracking 論文

寫在前面

這篇文章是南韓的一個組做的, 17年就挂載arXiv上了, 一直沒中, 直到今年中了ICCV, 很不容易了. 用了最近很火的Meta-learning的概念, 然後Siamese的結構, 這篇和Meta-tracker不一樣的地方就是, Meta-tracker中Meta-learning隻是用來做模型的初始化, 這篇是在線上更新的時候也用了Meta-learning來做, 線上update的時候文中也說隻要一個epoch就可以更新完了, 文章是17年的了, performance不是很好, 主要是概念比較厲害吧. 但是文章寫的還算比較好懂, 感覺沒有太多Meta-learning中的東西, 就是把概念遷移過來用了? 用的比較簡單, 然後也像MEMTracker那樣維持了一個template的棧來做更新.

Motivation

  • 很多的tracker隻是把深度特征拿過來用, 沒有很好的把深度網絡和tracking任務相結合, 一般隻是用預訓練的網絡用來提特征, 然後finetune一下全連接配接層, 這樣使得網絡頻繁更新, 然而正樣本是很少的;
  • 線上更新的時候由于樣本數量的限制, 很容易overfitting, 并且更新的會使得跟蹤速度變慢.
    [MLT(ICCV2019)]論文閱讀筆記

Contribution

  • 提出了一個Siamese比對網絡來定位target, 提出了一個Meta-learner網絡來自适應得更新tracking model;
  • 使用了一個novel訓練政策在讓Meta-learner在保持網絡的generalization 能力的同時避免網絡overfitting;
  • (不知道自己在說啥, 翻譯了論文中的一些句子, 論文寫的也比較奇怪把)

Algorithm

文章的網絡結構如下:

[MLT(ICCV2019)]論文閱讀筆記

藍色的就是SiamFC的結構, 文章是提特征, 然後用conv5的特征算一個loss, 然後把梯度給Meta-learner這個網絡, 去算一個權重出來, 還算了一個attention, 再把權重concate到原始conv5的weight上面, 然後用這個新的weight來計算最終的features, 在這兩個feature上做互相關.

1. Overview

圖檔先過藍色的網絡來提特征, 然後做互相關:

[MLT(ICCV2019)]論文閱讀筆記

其中 ϕ w ( ⋅ ) \phi_w(\cdot) ϕw​(⋅) 表示整個網絡權重為 w 時的conv5的特征, 梯度計算如下:

[MLT(ICCV2019)]論文閱讀筆記

這裡 δ \delta δ 表示梯度, z i z_i zi​ 代表維護的template池中的第 i i i 個template, y i ~ \tilde{y_i} yi​~​ 表示高斯處理後的ground-truth的response map, w N w_N wN​ 其實就是conv5的權重, 就是求最後一個conv層的梯度, 然後輸入到Meta-learner中計算一個target-specific的權重 w t a r g e t w^{target} wtarget:

[MLT(ICCV2019)]論文閱讀筆記

其中 g θ ( ⋅ ) g_{\theta}(\cdot) gθ​(⋅) 指的是參數為 θ \theta θ 的Meta-learner網絡. 最終網絡conv5層的權重變為: [ w N , w t a r g e t ] [w_N, w^{target}] [wN​,wtarget], 是兩個的結合, 是以最後的response map為:

[MLT(ICCV2019)]論文閱讀筆記
[MLT(ICCV2019)]論文閱讀筆記
2. Tracking Algorithm

這裡值得說的是這個網絡如何去更新的, 當在每一幀找出target之後, 會判斷目前這個target的響應是否大于一個門檻值 τ \tau τ , 若是大于 τ \tau τ , 便把這個patch加入到template的池中, 每次從template池中選擇熵最小的, 為什麼這麼選是根據另一篇文章, 感興趣的可以去看看, 大概其實就是找響應比較大, 比較靠譜那 M 個template:

[MLT(ICCV2019)]論文閱讀筆記

然後用找出來的response map去算一個梯度 δ \delta δ , 用來更新網絡.總體的算法如下:

[MLT(ICCV2019)]論文閱讀筆記

其他的細節網絡細節都可以在文中找到了.

Experiment

精度不是很高了, 也沒放特别多的結果, 速度比較塊, 48FPS, 主要結果如下:

[MLT(ICCV2019)]論文閱讀筆記

總結

總的來說, 想法比較吸引人, 也比較簡單的用了Meta-learning的概念, 應該是比Meta-tracker比較好上手一些, 我自己看的Meta-learning的論文看的比較少, 但是這篇文章應該是我目前看的用的比較簡單的, 感覺是它的優點, performance若是放在17年可能還是比較能打把. 缺點的話我感覺還是精度不夠高, 或許是可以有更好的遷移方式, 畢竟用concate的方式有點奇怪了, 而且文中也提了它們弄了一個attention, 但是也沒講這個attention怎麼搞的, 代碼目前還沒開源.