論文連接配接:[1812.05050] Fast Online Object Tracking and Segmentation: A Unifying Approach
論文連接配接:[1812.05050] Fast Online Object Tracking and Segmentation: A Unifying Approach (arxiv.org)
代碼連接配接 : foolwood/SiamMask: [CVPR2019] Fast Online Object Tracking and Segmentation: A Unifying Approach (github.com)
1. 前言
最開始我是看到近期用Transformer刷榜的一篇視覺目标跟蹤文章 STARK : Learning Spatio-Temporal Transformer for Visual Tracking ,裡面的模型在輸出分支用了一個叫AR的子產品,AR子產品用來輸出預測掩碼。然後又去看 Alpha-Refifine : Boosting Tracking Performance by Precise Bounding Box Estimation 這篇論文,這篇論文是講細化包圍框的方法,先把粗略定位的包圍框擴大兩倍,然後用多個預測分支(比如 Box 分支或者 CoenerNet 的分支來預測包圍框,用 Mark 分支來預測掩碼),最後比較多個分支,采用最好的輸出結果。其中的 Mark 分支又源于 SiamMask 這篇文章。當然SiamMask 從取名就可以看出繼承自 Sharp Mask 和 DeepMask 論文,再往前就遠離深度學習了。SiamMask 的命名組成是 Siam (目标跟蹤領域比較流行的Siam孿生網絡,本論文借鑒了 SiamFC 和 SiamRPN )和Mask(Sharp Mask 和 DeepMask 論文,Sharp Mas k起源于早期用前饋神經網路(全連接配接層)的簡單模型 DeepMask ,結合了 ResNet 殘差網絡的跳層連接配接和FPN特征金字塔的多尺度特征融合的思想)。學術界就是這樣薪火相傳,從前人的成果裡改造出自己的成果。(技巧A+B+C=ours,用了别人的方法說得委婉模糊,順便改一下名稱與描述,最好再小改一下别人的方法。顯示卡多就瘋狂跑實驗對比,論文就出來了。)
論文發表在 CVPR2019 。引言和相關工作部分吐槽了現有的半監督視訊目标分割(VOS)方法運作速度很慢,往往要數秒甚至數十秒來處理一幀圖像。現代目标跟蹤方法則基本是生成簡單的軸對稱矩形框來表示目标對象,但是矩形框的表示方式不夠精準。想象一下,矩形框更多考慮整體而忽略邊緣細節,可能會過大或者過小,而用分割掩碼的方式再外接一個最小的矩形框那就能夠避免這樣的誤差,當然這也建立在分割掩碼的準确性基礎上。
2. 方法
本文網絡的整體結構
2.1 結構左半部分
前半部分參照Siam孿生網絡結構,
為共享權值的ResNet,也就是上面小圖的目标模闆和下面大圖的整個搜尋區域都放進同一個特征提取網絡。原文中
用的是RseNet的前四階段,并且在第四階段的第一層卷積中使用了膨脹率為2的空洞卷積核,既從3*3卷積核變成7*7,并将stride步距設成1,導緻了第四階段并不會對特征圖進行降分辨率。*d操作是深度互相關(depth-wise cross-correlated),出自于SiamRPN,等于将15*15當做卷積核去和31*31計算卷積,但是并不将所有通道結果相加。最後得出文章稱為候選視窗相應圖的RoW。
2.2 結構右半部分
再看右半部分,文章設定了三分支和二分支的模型,模型各自的總損失函數為各自分支損失的總和。三分支模型包含mask分支以及取自 SiamRPN 的 box 和 score 分支。box 分支由 RoW 經過卷積層得到 4K 通道的響應圖,即k個錨框各自的 x,y,w,h 偏置量,score 分支輸出 2k 通道響應圖則是k個錨框的前景和背景的置信度,兩個分支分别使用 smooth L1 損失和交叉熵損失。該模型的box分支用來充當傳統錨框算法的代表,去和本文提出的先進算法進行比較。另一個是二分支模型,score 得出的是 17*17 範圍的藍色柱子(RoW)包含目标的置信程度,單個像素點的損失函數同 SiamFC 的 logistic 損失
,并對圖的所有點的損失計算平均。
2.3 Mask分支
二分支和三分支模型的mask分支取借鑒了 DeepMask,從互相關的結果中抽出一根根藍色的 256 通道 RoW 經過兩層全連接配接層,得出一根根(63*63)通道的 RoW,每一根柱子展開成為63*63的響應圖,代表着目标模闆和搜尋區域的某個位置的重合程度或者相似程度的分值,然後通過上采樣擴大分辨率得到一張 mask 圖。
二分支模型整體結構
文章附錄還提到了一種堆疊細化的 mask 分支模型,方法與 Sharpmask 相同,本文也沒有較長的描述。主要是将每根 RoW 反卷積成 15*15 的特征圖,與隔壁的目标模闆的中間層輸出結果進行堆疊,再上采樣,再堆疊。這個思想是借鑒了特征金字塔結構,整合高底層多種分辨率的資訊。細節如下圖所示:
mask 分支的損失函數如下,n 是 RoW 的序号,
是判斷該RoW是否為背景,是背景為 -1 則不需要考慮損失,c 是真實标注, m 是第 n 個 RoW 預測的 mask ,ij 是圖上像素的坐标(即考慮圖檔上所有 mask 的像素)。
mask分支在不同RoW上的Score maps
Target 是小的目标模闆,Search 是搜尋區域,上圖 7*7 個 RoW 本質上是用 Target 特征在 Search 特征圖上 7*7 個位置去比對。仔細看右邊熱力圖,不同位置的塑膠袋在小框中的位置是否有些不同。Score 分支将取最高得分的mask然後投影回原圖的位置中去。
2.4 mask生成包圍框
本文的核心在于使用mask來生成可旋轉的包圍框。文章提出了三種生成包圍框方式,第一種是 Min-max 即不旋轉的最小外接矩形框的方式,第二種是旋轉的最小外接矩形框 MBR ,第三種是 VOT-2016 [26] 中提出的自動邊界框生成的優化政策 Opt 。SiamMask 即為三分支模型加MBR政策。
3. 實驗結果
SiamMask 模型在目标跟蹤上各種提升,但是使用 Opt 政策生成包圍框速度嚴重下降。在視訊分割任務上具有降維打擊的速度優勢。
4. 總結
本文的創新點在于将 Siam 孿生網絡互相關後的特征圖添加 mask 分支,互相關後的特征圖天然包含了目标模闆與搜尋區域的比對資訊,也就意味着能夠從中提取重合區域的資訊。隻經過簡單的全連接配接調整,就提取出來。大大地縮小了以往視訊分割所需地每幀時間。
從個人感覺來說,但是在互相關特征圖後添加 mask 分支做法比較簡單,有優化空間。目标模闆取自第一幀并且是不變的,而視訊随着時長目标會發生各種變形,用在視訊跟蹤來粗略地比對目标尚且可用,但是對于精細的目标分割任務會出現較大的誤差,且随着時間增加而越發失效。
結尾:本文看得零零碎碎的,如發現有誤敬請指出。第一次寫論文筆記,文筆雜亂,望多見諒。