论文阅读:Siam-RPN
摘要
Siam-RPN提出了一種基于RPN的孿生網絡結構。由孿生子網絡和RPN網絡組成,它拋棄了傳統的多尺度測試和在線跟蹤,從而使得跟蹤速度非常快。在VOT實時跟蹤挑戰上達到了最好的效果,速度最高160fps。
一、研究動機
作者將流行的跟蹤算法分為兩類,一類是基于相關濾波類并進行在線更新的跟蹤算法,另一類是使用深度特征拋棄在線更新的跟蹤算法,前者嚴重限制了跟蹤速度,后者沒有使用域特定信息(即某個特定的跟蹤視頻的信息)。
作者提出的網絡分為模板支和檢測支。訓練過程中,在相關特征圖上執行proposal extraction、沒有預定義好的類別信息;在跟蹤過程中使用one-shot檢測框架和meta-learning。其中,兩個原因使得跟蹤算法效果很好:大量數據訓練;RPN結構使得跟蹤尺度和比例都非常好。
二、相關工作
相關濾波類的跟蹤算法:GOTURN、Re3、Siamese-FC、CFNet。后兩個沒有做回歸去調整候選框位置,并且需要多尺度測試,破壞了模型的優雅性。
RPN網絡:RPN網絡廣泛應用在目標檢測任務中,從RCNN到Faster-RCNN,RPN網絡產生proposals代替了原始的selective search方法,提高了檢測速度,后來FPN改進了RPN網絡,提高了對微小物體的檢測能力,以及后來的PRN的改進版本的使用,像SSD、YOLO等都是非常高效的檢測器。
One-shot learning:貝葉斯方法和meta-learning方法。后者用新的神經網絡估計目標網絡前向傳播的梯度。(However, the performance of Learnet is not competitive the modern DCF based methods, e.g.CCOT in multiple benchmarks )
三、算法原理
1. Siam-RPN網絡結構
此網絡由Siamese Network和Region Proposal Network兩部分組成。前者用來提取特征,后者用來產生候選區域。其中,RPN子網絡由兩個分支組成,一個是用來區分目標和背景的分類分支,另外一個是微調候選區域的回歸分支。整個網絡實現了端到端的訓練。
Siamese Network提取特征:
該部分和Siam-FC相同,詳見另外一篇博客給定(L_{ au})是一種轉換操作(left(L_{ au} xight)[u]=x[u- au]),函數(h)作為全卷積網絡變換函數,(k)是全卷積網絡變換的比例因子,則(hleft(L_{k au} xight)=L_{ au} h(x)),表示的含義是:先對(x)進行有比例因子的轉換操作再進行全卷積操作等同于先對(x)進行全卷積操作再進行轉換操作。將網絡作為一種變換(varphi),將這種變換分別應用到模板支和檢測支上,產生模板和搜索區域的特征(varphi(z), varphi(x))。
RPN網絡:
RPN網絡由兩部分組成,一部分是分類分支,用于區分目標和背景,另一部分是回歸分支,它將候選區域進行微調。對于分類分支,它將給出每個樣本被預測為目標和背景的打分。網絡將用Siam網絡提取到的模板和檢測幀的特征用一個新的卷積核進行卷積,在縮小了特征圖的同時,產生了如圖大小為(4 imes4 imes(2k imes256))的模板幀特征([varphi(z)]_{c l s})和大小為(20 imes20 imes256)的檢測幀特征([varphi(x)]_{c l s}),他們分別表示的含義是:模板幀特征大小是(4 imes4),而且它在k種不同的anchors有k中變化,對每種變化的模板都產生一個特征;檢測幀特征大小是(20 imes20 imes256)。然后,以模板幀的特征作為卷積核(2k個(4 imes4 imes256))去卷積檢測幀的特征從而產生響應圖(A_{w imes h}^{c l s})。 回歸分支和分類分支類似,不過它給出的是每個樣本的位置回歸值,這個位置回歸值包含dx, dy, dw, dh四個值。
[egin{aligned} A_{w imes h imes 2 k}^{c l s} &=[varphi(x)]_{c l s} star[varphi(z)]_{c l s} \ A_{w imes h imes 4 k}^{r e g} &=[varphi(x)]_{r e g} star[varphi(z)]_{r e g} end{aligned}
]
在訓練過程中,用cross-entropy loss作為分類分支的損失函數,用smooth (L_{1})loss作為回歸分支的損失函數。
關于損失函數的細節,待完全理解后補充。
端到端訓練Siam-RPN:
從ILSVRC和Youtube-BB中的視頻提取的樣本對作為訓練數據,用SGD方法對網絡進行訓練,同時也運用了一些數據增強處理。在細節方面,因為相同目標在相鄰幀變化不會很大,作者采用一種尺度5種不同比例的anchors([0.33,0.5,1,2,3])(注意proposals如何從特征圖映射到原圖),同時將IoU>0.6的定為正樣本,IoU<0.3的定為負樣本;在一個訓練對里最多有16個正樣本且共有64個樣本。
2. One-shot跟蹤
one-shot檢測:
該篇文章是第一次將one-shot策略用在跟蹤任務中,這篇文章是講如何實現one-shot learning的。最核心的思想方法就是通過離線訓練的方法得到一個了learner net(文章里簡稱為learnet),然后通過在線的方式動態生成一個pupil net的參數,而且learnet只需要一張樣本就可以生成pupil net的網絡參數。Pupil net可以為分類器或者其他任務。為了簡單起見,參數為動態生成的只有其中一層或者兩層,如圖所示,*代表有參數的層,紅色的代表參數由learnet動態生成的。
one-shot檢測的任務是學習一個參數W使得預測函數(psi(x ; W))的平均損失(mathcal{L})最小,給定n個樣本(mathcal{x}_{i})以及樣本標簽(ell_{i})。
[min _{W} frac{1}{n} sum_{i=1}^{n} mathcal{L}left(psileft(x_{i} ; Wight), ell_{i}ight)
]
針對跟蹤問題,假設前向傳播函數(omega)將(left(z ; W^{prime}ight))映射到W,其中(z_{i})是模板幀,上述公式可以變成如下公式,表示用模板幀圖像學習用于跟蹤的參數。
[min _{W^{prime}} frac{1}{n} sum_{i=1}^{n} mathcal{L}left(psileft(x_{i} ; omegaleft(z_{i} ; W^{prime}ight)ight), ell_{i}ight)
]
更進一步,(varphi)為Siam網絡提取特征,(zeta)為RPN網絡,則one-shot檢測任務可以表示為:
[min _{W} frac{1}{n} sum_{i=1}^{n} mathcal{L}left(zetaleft(varphileft(x_{i} ; Wight) ; varphileft(z_{i} ; Wight)ight), ell_{i}ight)
]
將one-shot檢測用到跟蹤中:
如圖所示,將上式可以做如下解釋:
檢測幀在對每一幀目標進行檢測時就是對proposals進行分類,即相當于一個分類器。該分類器進行分類時需要一個響應得分圖,該響應圖是由檢測幀特征圖用模板幀特征圖作為卷積核進行卷積得到的。如圖灰色的方塊,標識有weight for regression和weight for classification即為模板幀特征圖,它用第一幀圖像信息進行訓練(即就是前文提到的one-shot檢測,只用第一幀圖像信息訓練出一層網絡的參數),然后將訓練好的參數作為卷積核用到檢測支中,對檢測幀特征進行卷積得到響應圖(大小為(17 iems17 iems2k))
作者將模板支的輸出作為本地檢測的卷積核,在整個跟蹤過程中,卷積核參數都是用第一幀信息提前計算好的,當前幀跟蹤可以看做如上圖所示的one-shot檢測,提取出檢測支中得分前M的樣本的分類輸出信息(A_{w imes h imes 2 k}^{c l s}=left{left(x_{i}^{c l s}, y_{j}^{c l s}, c_{l}^{c l s}ight)ight})和回歸輸出信息(A_{w imes h imes 4 k}^{r e g}=left{left(x_{i}^{r e g}, y_{j}^{r e g}, d x_{p}^{r e g}, d y_{p}^{r e g}, d w_{p}^{r e g}, d h_{p}^{r e g}ight)ight})。根據輸出信息,可以得到前M個proposals的位置信息(P R O^{*}=left{left(x_{i}^{ ext { pro }}, y_{j}^{ ext { pro }}, w_{l}^{ ext { pro }}, h_{l}^{ ext { pro }}ight)ight})
[egin{aligned} x_{i}^{p r o} &=x_{i}^{a n}+d x_{l}^{r e g} * w_{l}^{a n} \ y_{j}^{p r o} &=y_{j}^{a n}+d y_{l}^{r e g} * h_{l}^{a n} \ w_{l}^{p r o} &=w_{l}^{a n} * e^{d w_{l}} \ h_{l}^{p r o} &=h_{l}^{a n} * e^{d h_{l}} end{aligned}
]
proposals的選擇策略:
策略1:選擇在目標周圍(g imes g imes k)的anchors而不是在整個特征圖上的(m imes n imes k)的anchors,如圖g=7
策略2:用cosine窗口和尺度變化penalty對剩下的proposals得分進行重新排序。在策略1執行并刪除了離目標較遠的proposals后,cosine窗口用于抑制最大位移,然后增加penalty以抑制尺寸和比例的大幅變化。最后選出得分最高的前K個proposals,并用NMS選出最終的跟蹤目標位置。另外,在跟蹤目標得到后,通過線性插值更新目標尺寸,保持形狀平穩變化。
[p e n a l t y=e^{k * max left(frac{r}{r^{prime}}, frac{r^{prime}}{r}ight) * max left(frac{s}{s^{prime}}, frac{s^{prime}}{s}ight)}
]
此部分待看完代碼后詳細補充。
四、實驗結果
作者對比了VOT2015、VOT2016和VOT2017實時、以及OTB2015。實驗環境是Intel i7、12G RAM、Nvidia GTX1060。
1. VOT結果
VOT2015結果:
VOT2016結果:
VOT2017結果:
2. OTB2015結果
可以看到Siam-RPN在VOT和OTB上效果都挺好的。
3. 討論
作者針對訓練數據對模型效果的影響和anchors的選擇兩個方面進行了討論,結果表明:
訓練模型的數據量越大,訓練的模型效果越好。
不同尺度的anchors對模型效果有一定影響,在目標周圍不同大小區域提取proposals對模型效果也有一定影響。
五、相關鏈接
原文鏈接:原文鏈接
代碼鏈接:代碼鏈接
相關算法鏈接:Learning feed-forward one-shot learners
版權聲明:本文為博主原創文章,未經博主允許不得轉載。
出處:https://www.cnblogs.com/shyern/
總結
以上是生活随笔為你收集整理的论文阅读:Siam-RPN的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Cypress 的条件测试
- 下一篇: 在生产环境中调试 Angular 应用程