SiamDW論文作者張志鵬視頻筆記

論文地址:傳送門1
論文代碼:傳送門2
視頻地址:傳送門3

Background:
Siamese network architecture:共享權重 向量距離表示相似性
applications:面部識別 re-ID

Background on Siamese Trackers:

起源:SINT
在一張圖像中獲取大量的候選目標,經過同一個網絡與template作比較,選擇距離最小的 存在問題:大量pair對經過網絡時速率特別的慢
在這裏插入圖片描述

經典SiameseFC:
將255的原圖特徵提取後計算出2222通道數 的搜索區域, template計算出66通道數 的嵌入特徵,然後滑窗做卷積,找到距離最近的向量
存在問題:沒有尺度估計 簡單輸入三個scale的圖(長寬放縮如0.95, 1, 1.05),找到響應最大的
在這裏插入圖片描述

SiamRPN:
爲解決尺度變換,借鑑目標檢測的RPN網絡,提取候選框,並在最大響應區域做一個框的regression。
在這裏插入圖片描述

Motivation:

(缺陷)siamfc與siamRPN特徵提取網絡backbone過於淺(五層Alexnet,實際爲ZFnet),所以想到了加深網絡。
於是更改backbone進行了一系列實驗:
在這裏插入圖片描述
可以看到除了VGG有短暫提升之外,隨着深度越深,準確度還在下降
找backbone原因

  1. 模塊問題 res inception vgg塊
  2. stride(分類一般爲32 更精確的定位任務一般爲8/16)
  3. Siamfc在alexnet基礎上去除了padding,可能也是影響因素
  4. Siamfc的輸出是6*6,而resnet和inception爲32,16

設計相關實驗:
在這裏插入圖片描述
RF:感受野
STR: 步長
OFS: output feature size 輸出特徵尺寸
PAD: padding 填充(有無)
RF與OFS要一起guideline

分析感受野:
感受野過大,相鄰feature重合率太大,最後組成的完整的feature的判別程度就會減小
感受野過小,會降低單個feature判別效果

分析有padding導致性能退化的原因:
在這裏插入圖片描述
在這裏插入圖片描述
上圖中爲template image,上圖左爲search image, 網格代表A,E經過同一個backbone再cross-correlation後的feature map(score map), 當目標在中間時,中間網格對應的響應R1爲最大值。
上圖右爲目標向左上方向shift一小部分,由於目標已經運動到了B的位置,所以對應響應值最大區域到了R2。
結論:R1 = R2
在沒有padding的情況下,隨着目標的移動,對應feature map上最大響應值點也會對應移動,並與stride有關。

在這裏插入圖片描述
上圖中爲template image在有padding的情況下實際的感受野區域(不止127*127)。上圖左爲search image,且目標在最中心時情況,可以看到,此時做cross-correlation的區域大小實際上已經變成了E’與A’,得到最大的響應值R1。
上圖右爲shift左上一定區域後,送入相同backbone區域並取得最大響應值R2對應原圖現在爲B’和E’,當B’超出邊界時,雖然都是取得了最大值,但是R1與R2已經值不同了,不單單只是stride的線性關係了。

分析RF和OFS:
在這裏插入圖片描述
可以看到從實驗左1-5,7-8,右1-4,6-7。都是一個單峯。故過大過小都不好。

分析STR:

Stride代表如果feature map上一個像素值的位移,對應回原圖會有stride個像素值的位移,過大並不好。所以通常選用4/8。但是stride過小會影響速率,故通常選擇8。

結論:
在這裏插入圖片描述

分析RF,stride,output feature size:
(對於template)
在這裏插入圖片描述
Template image = 127*127
每一個小的element Width size = 93(圖上紅色部分) alex對應爲87, resnet對應爲91
故一個element實際上爲一個patch,中間有很多交集。
當每個element代表的區域過大,每個patch之間overlap過大,導致feature上每個點相似性過大,特徵冗餘性過大。
當每個element代表的區域過小,網絡過淺,單個feature的判別率會過低。

結論:
在這裏插入圖片描述

Method: (CIR模塊消除padding影響)
在這裏插入圖片描述
CIR模塊的設計:
在每個block模塊之後crop掉最外面一圈
CIR-D模塊的設計:
resblock模塊的crop,但是downsampling跟傳統block不同,傳統選擇stride爲2,而CIR-D的stride爲1,採取maxpool降採樣。

CIR-D爲何沒有在convolution中選擇stride=2,而是選擇maxpool的理由:
在這裏插入圖片描述
Crop:
在這裏插入圖片描述
Feature map返回原圖:(紫色框)
在這裏插入圖片描述
原圖小了一圈邊緣信息,丟失的就是stride大小的邊緣。

利用CIR和CIR-D進行網絡架構:

直接替換:
在這裏插入圖片描述
結果:
在這裏插入圖片描述
CIResNet22W-FC res模塊1,3,1 加寬中間那個3的通道數。

最後提問的一些彙總:
1.感受野問題
例如alexnet 6*6輸出(score map),每一個element的感受野都是127
2.本文處理遮擋和相似問題的效果
遮擋並沒有探討,但是對於相似問題,由於網絡加深了,增強了網絡的判別性
3.Tracking新的研究方向
作者建議看ATOM
4.單目標會不會走向多目標
慢慢會走向的,現在有一些借鑑
5.訓練模型的trick
跟蹤裏面的學習率影響不大,只要保證收斂就行,一般0.01或者0.001都可以
儘量用pretrained

個人看法:
這篇文章基礎工作把深層backbone的各個影響因素進行對比試驗,感受野,stride,輸出feature大小等參數對基於siamese的網絡backbone有很強的指導意義,而針對padding這種純降點的操作,作者用CIR結構crop掉padding的影響,效果也特別好。所以以後相關任務可以用這個作爲打底,尤其是22-w那一種結構,據作者自己說,fps跟alex相差不大,但是這篇文章最大的優點就是思路流暢,作者思考的方式很值得借鑑,爲了解決實際問題而不是生搬硬套其他方向好點的結構往裏面塞。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章