基于相似学习的目标跟踪方法
目錄
- SiamFC:ECCV2016
- SINT:CVPR2016
- CFNet:CVPR2017
- DSiam:ICCV2017
- EAST: ICCV2017
- SA-Siam:CVPR2018
- SiamRPN:CVPR2018
- SINT++:CVPR2018
- RASNet:CVPR2018
- DaSiamRPN:ECCV2018
- StructSiam:ECCV2018
- Siam-tri:ECCV2018
- GCT:CVPR2019
- SiamRPN++:CVPR2019
- SiamDW:CVPR2019
- UpdateNet:ICCV2019
- SiamFC++:AAAI2020
- SiamBAN:CVPR2020
- SiamAttn:CVPR2020
- SiamR-CNN:CVPR2020
- 各模型實驗結果對比
? ? ? ?目前目標跟蹤方法主要分為兩大類:1.相關濾波,2.深度學習。在對兩種方法進行了一定的了解后,雖然說現在深度學習、AI有很大的“泡沫”,且相關濾波與深度學習結合可以得到很好的跟蹤效果,但是我還是以深度學習為主去研究目標跟蹤(- -||)。而基于孿生網絡的目標跟蹤方法現在幾乎可以自成一派,在此進行一下總結,整理知識,啟迪自己。
SiamFC:ECCV2016
? ? ? ?文章鏈接
? ? ? ?鼻祖一樣的文章,模型的結構如圖所示。
? ? ? ?特征提取部分使用AlexNet的結構:
? ? ? ?損失函數使用logistics,訓練集使用ILSVRC2015。
? ? ? ?實驗結果如下圖所示:
? ? ? ?1.OTB-2013
? ? ? ?2.VOT-2014
? ? ? ?3.VOT-2015
SINT:CVPR2016
? ? ? ?文章鏈接
? ? ? ?作為和SiamFC同一年發表的基于相似學習的論文,當然要對比一下啦(這篇論文的發表時間比Siamese-fc早)。模型結構如圖所示(吐槽一下配色):
? ? ? ?那么本文和SiamFC的區別在于哪呢?
? ? ? ?1.網絡結構不同。在SiamFC中使用的是AlexNet作為特征提取網絡,而本文是作者自己設計的特征提取網絡,同時加入了ROI pooling層。本文中提到,跟蹤問題作為一個定位問題,不應使用過多的max pooling,過多的max pooling會導致定位不準確。但是max pooling的優勢在于對于輸入的局部形變具有不變性,也不能棄之不用,故設計為兩個max pooling層。
? ? ? ?2.損失函數不同。SiamFC中使用logistics作為損失函數,本文中使用如下的損失函數:
L(xj,xk,yjk)=12yjkD2+12(1?yjk)max(0,ε?D2)L(x_j,x_k,y_{jk})=\frac{1}{2}y_{jk}D^2+\frac{1}{2}(1-y_{jk})\ max(0,\varepsilon-D^2)L(xj?,xk?,yjk?)=21?yjk?D2+21?(1?yjk?)?max(0,ε?D2)
D=∣∣f(xj)?f(xk)∣∣2D=||f(x_j)-f(x_k)||_2D=∣∣f(xj?)?f(xk?)∣∣2?
? ? ? ?3.訓練數據集不同。SiamFC中使用ILSVRC2015,SINT中使用ALOV。
? ? ? ?實驗結果
? ? ? ?1.OTB-2013
? ? ? ?
CFNet:CVPR2017
? ? ? ?文章鏈接
? ? ? ?模型結構如圖所示:
? ? ? ?本模型與SiamFC的區別在于:
? ? ? ?在SiamFC中分數使用下式計算:
scores=f(x)?f(z)score_{s}=f(x)*f(z)scores?=f(x)?f(z)
? ? ? ?在CFNet中分數使用下式計算:
scorec=s?w(f(x))?f(z)+bscore_{c}=s·w(f(x))*f(z)+bscorec?=s?w(f(x))?f(z)+b
? ? ? ?這里sss代表尺度參數,www代表CF操作,bbb則是偏置項。
? ? ? ?實驗結果:
DSiam:ICCV2017
? ? ? ?文章鏈接
? ? ? ?模型的整體結構如圖:
? ? ? ?本文針對SiamFC模型進行改進,從上圖中我們可以看出,首先,作者添加了兩個模塊:①.VVV,②.WWW,其中VVV被稱作“target appearance variation transformation”,用于使模板楨相對于當前幀的前些幀變得平滑。WWW被稱作“background suppression transformation”,目的是在當前幀的特征圖中“高亮”目標,抑制背景信息。則本模型中的分數通過下式計算:
scoretl=(Vt?1l?fl(x))?(Wt?1l?fl(z))score_{t}^{l}=(V_{t-1}^{l}\star f^{l}(x))*(W_{t-1}^{l}\star f^{l}(z))scoretl?=(Vt?1l??fl(x))?(Wt?1l??fl(z))
? ? ? ?公式中的?\star?代表循環卷積操作,lll代表層,ttt代表幀。VVV和WWW都使用正則線性回歸進行訓練,并且在跟蹤過程中在線更新,參考下圖可以更容易理解。更具體的可以參考我的另一篇博客。
? ? ? ?作者的另一個創新點在于提出了一個自適應聚合各個層的特征的方法(elementwise multi-layer fusion),實質上是訓練一個矩陣γ\gammaγ,矩陣中的數值代表不同特征圖的不同位置的權重,則模型最終得到的分數如下:
scoret=∑l∈Lγl⊙scoretlscore_t=\sum_{l\in L}\gamma^l \odot score_t^lscoret?=l∈L∑?γl⊙scoretl?
∑l∈Lγl=1ms×ns\sum_{l\in L}\gamma^l=1_{m_s\times n_s}l∈L∑?γl=1ms?×ns??
? ? ? ?訓練數據集使用ILSVRC2015,模型的實驗結果如下:
? ? ? ?1.OTB-2013
? ? ? ?2.VOT-2015
? ? ? ?
EAST: ICCV2017
? ? ? ?文章鏈接
? ? ? ?模型結構如下圖所示。
? ? ? ?本文與SiamFC的區別在于設計了一個Q-Net,用于“早停”。在SiamFC中,所有幀都用conv5的特征去檢測,EAST的出發點是(外觀相似或不運動的)簡單幀用簡單特征如像素邊緣就可以定位,(經歷較大外觀變化的)復雜幀才需要不變性更強的深度特征進行定位。
? ? ? ?如何判讀使用當前層特征得到的檢測結果是否足夠好(是否要使用下一層特征),作者提出了使用強化學習的策略。
? ? ? ?訓練數據集使用ILSVRC2015,實驗結果如下:
? ? ? ?1.OTB-50
? ? ? ?? ? ? ?2.OTB-100
? ? ? ?
? ? ? ?3.VOT-2015
? ? ? ?
SA-Siam:CVPR2018
? ? ? ?文章鏈接
? ? ? ?模型的整體結構如圖所示:
? ? ? ?本文的創新點在于提出了一個結合Semantic features(語義特征)和Appearance features(表征特征)的模型,其實類似于一個雙路模型,為了保持這兩種特征的異質性,這兩路特征要分別訓練,訓練語義特征的網絡叫做S-Net,訓練表征特征的網絡叫做A-Net。作者還在S-Net中加入了一個chanel attention機制,如下圖所示。
? ? ? ?
? ? ? ?本文的訓練數據集使用ILSVRC2015,實驗結果如下:
? ? ? ?1.OTB
? ? ? ?2.VOT-2015
? ? ? ?
? ? ? ?3.VOT-2016
? ? ? ?
? ? ? ?4.VOT-2017
? ? ? ?
SiamRPN:CVPR2018
? ? ? ?文章鏈接
? ? ? ?模型的整體結構如圖所示:
? ? ? ?本文的創新點在于,將Siamese Network與RPN結合。模型的上支用于分類(二分類:前景or背景),下支用于回歸出目標的位置。
? ? ? ?
? ? ? ?在跟蹤的過程中,我覺得有一個亮點。模型通過第一幀信息預測出一個權重,用于后續幀中的跟蹤。這樣可以使模型針對不同的視頻序列得到不同的側重,相當于一個簡化了的在線學習。
? ? ? ?本文的訓練集采用ILSVRC2015和Youtube-BB,實驗結果如下:
? ? ? ?1.OTB-2015
? ? ? ?2.VOT-2015
? ? ? ?
? ? ?
? ? ? ?3.VOT-2016
? ? ? ?
? ? ? ?
? ? ? ?
? ? ? ?4.VOT-2017
? ? ? ?
SINT++:CVPR2018
? ? ? ?文章鏈接
? ? ? ?模型的整體結構如圖所示:
? ? ? ?本文在SINT的基礎上進行改進,加入了VAE和強化學習。
? ? ? ?首先,使用VAE來生成positive sample,如上圖中右下角。 然后,使用HPTN網絡將得到的positive sample變得更加hard,即:添加遮擋。那么問題就來了,(1).我們要遮擋目標物體中的哪部分?(2).用哪部分去遮擋(1)中的部分?
? ? ? ?這兩個問題有一個共性,就是要locate one image region。locate的過程可以視為一個MDP(馬爾科夫決策過程),MDP問題可以使用強化學習知識來解決。state就是當前得到的特征圖,可選擇的action如下圖:
? ?
? ? ? ?模型的訓練數據是一直變化的。作者在對OTB數據集進行評估時,使用VOT數據集進行訓練,在對VOT數據集進行評估時,使用VOT中不進行評測的數據和ILSVRC2015數據集進行訓練。
? ? ? ?模型的實驗結果如下:
? ? ? ?1.OTB-50(OTB-2013)
? ? ? ?2.OTB-100(OTB-2015)
? ? ? ?3.VOT-2014(到底是OPE還是TRE?)
RASNet:CVPR2018
? ? ? ?文章鏈接
? ? ? ?模型的整體結構如圖所示:
? ? ? ?本文的創新在于在SiamFC中加入了三種注意力機制,作者將這三種注意力統稱為“full attention”。
? ? ? ?
? ? ? ?其中,general attention負責編碼所有訓練樣本的共性;residual attention負責學習每種不同的跟蹤物體之間的差異性;channel attention負責使模型適應于不同的contexts。
? ? ? ?
? ? ? ?本文訓練集使用ILSVRC2015,實驗結果如下:
? ? ? ?1.OTB
? ? ? ?2.VOT-2015
? ? ? ?3.VOT-2017
DaSiamRPN:ECCV2018
? ? ? ?文章鏈接
? ? ? ? 本文首先分析了已有的相似學習模型的缺點:
? ? ? ?如上圖所示,是幾個模型對ROI提取出的特征圖。論文中提到,造成這種現象的原因是,在目標周圍的背景信息中,非語義背景(即真正的“背景”信息,如地板、天空等)占據了主要部分,語義背景(背景中的人、狗等實體,我是這么理解的)占據了極少一部分。這種不平衡的分布使得模型趨向于去學習到一個區分前景(目標+語義背景)和背景(非語義背景)的模型,而不是學習一個實例級別的表示方法。為了處理這個問題,作者在訓練集中添加了三類樣本對,提高模型的學習效果,具體如下。
? ? ? ?文中還提到了一種新的選擇最優bbox的標準,就是當前位置pkp_{k}pk?和模板zzz計算相似度之后,減去當前位置與search region中其他位置的相似度的加權和。
? ? ? ?本文的最后一個創新點是,當模型跟蹤失敗的時候,模型采取一種“局部-全局”增大search region的策略去重新跟蹤目標。至于如何使用score判斷是否失敗,文中沒有詳細的描述。
? ? ? ?本文的訓練數據使用ILSVRC2015、Youtube-BB、ImageNet Detection和COCO,實驗結果如下:
? ? ? ?1.OTB-2015
? ? ? ? ? ?2.VOT-2016
? ? ? ?3.VOT-2017
? ? ? ?4.UVA20L
? ? ? ?5.UVA123
StructSiam:ECCV2018
? ? ? ?文章鏈接
? ? ? ?本文的模型結構如下圖所示:
? ? ? ?本文的改進我覺得十分新穎:“每張特征圖學習跟蹤目標的一個局部結構”,模板經過卷積后得到1×1×40961\times 1\times 40961×1×4096大小的特征圖,每張特征圖代表該物體的一個屬性(特征),基于此特征圖做相似計算。
? ? ? ?從上圖來看,我們可以知道,文中主要有三個新增加的部分,分別是“Local Pattern Detection”、“Context Modeling”和“Integration Module”。
? ? ? ?“Local Pattern Detection"部分是通過兩個卷積層(11×1111\times 1111×11和5×55\times 55×5)實現的,輸出的每張特征圖代表一個局部特征。
? ? ? ?“Context Modeling”部分通過“消息傳遞”機制實現,使用的是CRF(條件隨機場)。作用是壓制背景噪聲、加強特征。
? ? ? ?“Integration Module”部分通過6×66\times 66×6卷積核實現,將模板幀的特征圖由6×6×40966\times 6\times 40966×6×4096變為1×1×40961\times 1\times 40961×1×4096(其實就是變成了一個向量,向量中的每個值代表該物體的一個屬性,和全局均值池化類似)。
? ? ? ?由于要學習部分特征,作者選擇使用ILSVRC2014和ALOV作為訓練數據集,模型的實驗結果如下所示:
? ? ? ?1.OTB-2013
? ? ? ?? ?87.4%??0.638??45FPS
? ? ? ?2.OTB-2015
? ? ? ?? ?85.1%??0.621??45FPS
? ? ? ?3.VOT-2016
Siam-tri:ECCV2018
? ? ? ?文章鏈接
? ? ? ?模型結構如下圖所示:
? ? ? ?本模型與SiamFC的區別在于:提出了一種不同于SiamFC的損失函數。
? ? ? ?在SiamFC中的損失函數如下:
Ll(Y,V)=∑xi∈Xwilog(1+e?yi?vi)L_l(Y,V)=\sum_{x_i \in X}w_ilog(1+e^{-y_i \centerdot v_i})Ll?(Y,V)=xi?∈X∑?wi?log(1+e?yi??vi?)
? ? ? ?作者說,這個損失函數不夠好,因為它只考慮了每個instance(啥是instance?比如模板經過特征提取后得到6×6的特征圖fef_efe?,搜索區域經過特征提取后得到22×22的特征圖fsf_sfs?,我們使用6×6的特征圖當做卷積核在22×22的特征圖上進行卷積得到17×17的分數矩陣,則在卷積的過程中fsf_sfs?中的每一個6×6區域在原圖上的對應區域就是一個instance,而對應“+1”標簽的稱為positive instance,“-1”標簽的稱為negative instance)是否足夠正確,而忽略了positive instance和negative instance之間的關系。
? ? ? ?文中提出使用下式的損失函數:
Lt(Vp,Vn)=?1/(MN)∑iM∑jNlogprob(vpi,vnj)L_t(V_p,V_n)=-1/(MN)\sum_{i}^{M}\sum_{j}^{N}log\ prob(vp_i,vn_j)Lt?(Vp?,Vn?)=?1/(MN)i∑M?j∑N?log?prob(vpi?,vnj?)
prob(vpi,vnj)=evpi/(evpi+evnj)prob(vp_i,vn_j)=e^{vp_i}/(e^{vp_i}+e^{vn_j})prob(vpi?,vnj?)=evpi?/(evpi?+evnj?)
? ? ? ?作者還通過梯度計算公式對比了兩種損失函數(以下為兩種損失函數的梯度中不同的部分,并不是全部的梯度公式):
?Tl?vp=?12(1+evp),?Tl?vn=12(1+e?vn)\frac{\partial T_l}{\partial vp}=-\frac{1}{2(1+e^{vp})},\ \ \ \ \frac{\partial T_l}{\partial vn}=\frac{1}{2(1+e^{-vn})}?vp?Tl??=?2(1+evp)1?,?????vn?Tl??=2(1+e?vn)1?
?Tt?vp=?11+evp?vn,?Tt?vn=11+evp?vn\frac{\partial T_t}{\partial vp}=-\frac{1}{1+e^{vp-vn}},\ \ \ \ \frac{\partial T_t}{\partial vn}=\frac{1}{1+e^{vp-vn}}?vp?Tt??=?1+evp?vn1?,?????vn?Tt??=1+evp?vn1?
? ? ? ?從中我們可以看出本文中的損失函數在計算positive instance和negative instance的梯度時,都能考慮到兩種不同的instance的聯系,這樣利于得到更好的跟蹤模型。
? ? ? ?文章的訓練數據集采用ILSVRC2015,實驗結果如下所示。
? ? ? ?1.OTB-2013
? ? ? ?2.OTB-其他
? ? ? ?3.VOT-2017
GCT:CVPR2019
參見鏈接
SiamRPN++:CVPR2019
SiamDW:CVPR2019
UpdateNet:ICCV2019
SiamFC++:AAAI2020
SiamBAN:CVPR2020
SiamAttn:CVPR2020
SiamR-CNN:CVPR2020
各模型實驗結果對比
| SiamFC3s | ECCV2016 | 0.608 | 0.582 | 0.516 | 86 | √ | ILSVRC2015 |
| SiamFC5s | ECCV2016 | 0.612 | - - - | - - - | 58 | √ | ILSVRC2015 |
| SINT | CVPR2016 | 0.635 | 0.592 | - - - | 4 | × | ALOV |
| CFNet | CVPR2017 | 0.610 | 0.589 | 0.538 | 75 | √ | ILSVRC2015 |
| DSiam | ICCV2017 | 0.656 | - - - | - - - | 25 | √ | ILSVRC2015 |
| EAST | ICCV2017 | 0.638 | - - - | - - - | 83 | √ | ILSVRC2015 |
| 2 SA-Siam | CVPR2018 | 0.677 | 0.657 | 0.610 | 50 | √ | ILSVRC2015 |
| SiamRPN | CVPR2018 | - - - | 0.637 | - - - | 200 | √ | ILSVRC2015 Youtube-BB |
| SINT++ | CVPR2018 | 0.624 | 0.574 | - - - | - - - | - - - | ILSVRC2015 VOT2013 VOT2014 VOT2016 |
| 3 RASNet | CVPR2018 | 0.670 | 0.642 | - - - | 83 | √ | ILSVRC2015 |
| 1 DaSiamRPN | ECCV2018 | >ECO | >ECO | >ECO | 160 | √ | ILSVRC2015 Youtube-BB ImageNet DET COCO |
| StructSiam | ECCV2018 | 0.638 | 0.621 | - - - | 45 | √ | ILSVRC2014 ALOV |
| SiamFC3s-tri | ECCV2018 | 0.615 | 0.590 | 0.531 | 86 | √ | ILSVRC2015 |
| GCT | CVPR2019 | 0.670 | 0.648 | - - - | 50 | √ | ILSVRC2015 |
| SiamRPN++ | CVPR2019 | - - - | 0.696 | - - - | 35 | √ | ILSVRC2015 Youtube-BB ImageNet DET COCO |
| SiamDW | CVPR2019 | 0.670 | 0.670 | - - - | 35 | √ | ILSVRC2015 Youtube-BB |
| UpdateNet | ICCV2019 | - - - | - - - | - - - | |||
| SiamFC++ | AAAI2020 | - - - | 0.683 | - - - | 90 | √ | ILSVRC2015 Youtube-BB ImageNet DET COCO LaSOT GOT-10k |
| SiamBAN | CVPR2020 | - - - | - - - | - - - | |||
| SiamAttn | CVPR2020 | - - - | - - - | - - - | |||
| SiamR-CNN | CVPR2020 | - - - | - - - | - - - | |||
| ↓目前超強的模型↓ | |||||||
| ECO | CVPR2017 | 0.709 | 0.691 | 0.643 | 6 | × | - - - |
| MDNet | CVPR2016 | 0.708 | 0.678 | 0.645 | 1 | × | - - - |
? ? ? ?
總結
以上是生活随笔為你收集整理的基于相似学习的目标跟踪方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 视频中的目标检测与跟踪综述
- 下一篇: [codevs 1033] 蚯蚓的游戏问