SiamRPN++: Evolution of Siamese Visual Tracking with Very Deep Networkshtml
2019-04-02 12:44:36git
Paper:https://arxiv.org/pdf/1812.11703.pdf github
Project:https://lb1100.github.io/SiamRPN++ 網絡
Official Code: https://github.com/STVIR/pysot ide
Unofficial Pytorch Implementation: https://github.com/PengBoXiangShang/SiamRPN_plus_plus_PyTorch (Support Multi-GPU and LMDB data preprocessing) 性能
1. Background and Motivation: 學習
與 CVPR 2019 的另外一篇文章 Deeper and Wider Siamese Networks for Real-Time Visual Tracking 相似,這篇文章也是爲了解決 Siamese Tracker 沒法利用 Deep Backbone Network 的問題。做者的實驗發現,較深的網絡,如 ResNet, 沒法帶來跟蹤精度提高的緣由在於:the distroy of the strict translation invariance。由於目標可能出如今搜索區域的任何位置,因此學習的target template 的特徵表達應該保持 spatial invariant,而做者發現,在衆多網絡中,僅僅 AlexNet 知足這種約束。本文中,做者提出一種 layer-wise feature aggravation structure 來進行 cross-correlation operation,幫助跟蹤器從多個層次來預測類似形圖。編碼
此外,做者經過分析 Siamese Network 發現:the two network branches are highly imbalanced in terms of parameter number; 做者進一步提出 depth-wise separable correlation structure,這種結構不但能夠大幅度的下降 target template branch 的參數個數,還能夠穩定整個模型的訓練。此外,另外一個有趣的現象是:objects in the same categories have high response on the same channels while responses of the rest channels are supressed. 這種正交的屬性可能有助於改善跟蹤的效果。spa
2. Analysis on Siamese Networks for Tracking: rest
各類實驗說明了 stride,padding 對深度網絡的影響。
3. ResNet-driven Siamese Tracking :
爲了下降上述影響因子對跟蹤結果的影響,做者對原始的 ResNet 進行了修改。由於原始的殘差網絡 stride 爲 32,這個參數對跟蹤的影響很是之大。因此做者對最後兩個 block 的有效 stride,從 32 和 16 改成 8,而且經過 dilated convolution 來增長 receptive field。利用 1*1 的卷積,將維度降爲 256。可是這篇文章,並無將 padding 的參數進行更改,因此 template feature map 的空間分辨率增長到 15,這就在進行 correlation 操做的時候,計算量較大,影響跟蹤速度。因此,做者從中 crop 一塊 7*7 regions 做爲 template feature,每個 feature cell 仍然能夠捕獲整個目標區域。做者發現仔細的調整 ResNet,是能夠進一步提高效果的。經過將 ResNet extractor 的學習率設置爲 RPN 網絡的 1/10,獲得的 feature 能夠更加適合 tracking 任務。
4. Layer-wise Aggregation :
本文是想利用多層特徵的聚合來提高特徵表達,提高跟蹤結果。做者從最後三個殘差模塊,獲得對應的輸出:F3(z), F4(z) 以及 F5(z)。因爲多個 RPN 模塊的輸出,有相同的分辨率。因此,直接對這幾個結果進行加權求和,能夠表達爲:
5. Depthwise Cross Correlation :
Cross correlation module 是映射兩個分支信息的核心操做。SiamFC 利用 Cross-Correlation layer 來獲得單個通道響應圖進行位置定位。在 SiamRPN 中,Cross-Correlation 被拓展到更加高層的信息,例如 anchors,經過增長一個 huge convolutional layer 來 scale the channels (UP-Xcorr)。這個 heavy up-channel module 使得參數很是不平衡(RPN 模塊包含 20M 參數,而特徵提取部分僅包含 4M 參數),這就使得 SiamRPN 變的很是困難。因而做者提出一個輕量級的 cross correlation layer,稱爲:Depthwise Cross Correlation (DW-XCorr),以獲得更加有效的信息貫通。DW-XCorr layer 包含少於 10 倍的參數(相比於 UP-XCorr used in RPN),而性能卻能夠保持不降。
爲了達到這個目標,做者採用一個 conv-bn block 來調整特徵,來適應跟蹤任務。Bounding box prediction 和 基於 anchor 的分類都是非對稱的 (asymmetrical)。爲了編碼這種不一樣,the template branch 和 search branch 傳輸兩個 non-shared convolutional layers。而後,這兩個 feature maps 是有相同個數的 channels,而後一個 channel 一個 channel 的進行 correlation operation。另外一個 conv-bn-relu block,用於融合不一樣 channel 的輸出。最終,最後一個卷積層,用於輸出 classification 和 regression 的結果。
經過用 Depthwise correlation 替換掉 cross-correlation,咱們能夠很大程度上下降計算代價和內存使用。經過這種方式,template 和 search branch 的參數數量就會趨於平衡,致使訓練過程更加穩定。
另外一個有意思的現象是:the objects in the same category have high response on same channels, while response of the rest channels are supressed。也就是說,同一類的物體在同一個 channel 上,都有較高的響應,而其餘的 channels 上則被抑制。以下圖所示:
6. Experimental Results:
==