智慧交通day04-特定目标车辆追踪03:siamese在目标跟踪中的应用-SiamRPN(2017)
3.2 SiamRPN(2017)
3.2.1 網絡結構
Siam-RPN提出了一種基于RPN的孿生網絡結構,由孿生子網絡和RPN網絡組成,前者用來提取特征,后者用來產生候選區域。其中,RPN子網絡由兩個分支組成,一個是用來區分目標和背景的分類分支,另外一個是微調候選區域的回歸分支,使整個網絡實現了端到端的訓練。
SiamRPN中的Siamese network模塊與siamFC相同,使用預訓練的AlexNet網絡,可將其作為一種變換𝜑,將這種變換分別應用到模板支和檢測支上,產生模板和搜索區域的特征𝜑(𝑧),𝜑(𝑥)。
RPN網絡由兩部分組成,一部分是分類分支,用于區分目標和背景,另一部分是回歸分支,它將候選區域進行微調。
在介紹這兩個分支之前,我們先回顧下相關的內容:
grid:指的對一張圖像或者是featuremap進行平均地分割,但是并不一定是一個像素對應一個grid,也可能是多個像素對應一個grid。所有grid組成一個Proposal。
?
anchor:錨點,指的是在boundingbox生成之前會先在每個grid上生成一些候選框,然后將這些anchors候選框進行操作,生成boundingbox
一般候選框會有一些固定的參數,首先是長寬比,例如上圖左邊的三個anchors對應一個grid生成的三種不同長寬比的anchors,一般長寬比的數目都是固定的而且長寬比互為倒數,比如{0.5,1,2};其次,是尺度大小,也就是anchors的面積,一般同一個featuremap下的grid都是看作生成相同尺度的anchors,經過不同層的featuremap對應不同的尺度,也就生成不同尺度的anchors,例如左邊和右邊尺度不同的anchors。
NMS: 非極大值抑制。NMS可以理解為不是極大值就抑制它。如下圖所示,有兩個anchors都分類為狗,這時會計算兩個框之間的IoU,如果大于某個閾值,則認為兩個框檢測的是同一個物體,將得分高的框保留,得分低的框去除。圖中紅色框得分0.9,綠色得分0.7,兩個框的IoU大于某個閾值,則只保留紅色來檢測狗的位置。
在RPN網絡中,對于分類分支,它將給出每個樣本被預測為目標和背景的打分。網絡將用Siam網絡提取到的模板和檢測幀的特征用一個新的卷積核進行卷積,在縮小了特征圖的同時,產生了如圖大小為4×4×(2𝑘×256)的模板幀特征[\psi(z)]_{cls}[ψ(z)]?cls??和大小為20×20×256的檢測幀特征$[\psi(x)]_{cls}$,他們分別表示的含義是:模板幀特征大小是4×4,而且它在k種不同的anchors,對每一個anchor都產生一個特征;檢測幀特征大小是20×20×256。然后,以模板幀的特征作為卷積核(2k個4×4×256)去卷積檢測幀的特征從而產生響應圖?A^{cls}_{w\times h}A?w×h?cls??,即模板幀和檢測幀的256個通道相互卷積,加權求和生成一個通道,所以生成17×17×2k的featuremap,這里相當于將搜索圖像劃分為17×17 個grid,每個grid生成k個anchors,每兩個通道是一組,一共k組對應k個anchors。第一個通道中,目標的anchors是1,背景是0;第二個通道中,背景是1,目標是0。
在回歸分支中,與分類分支類似,兩個featuremap經過卷積層分別生成4×4×(4k×256)的模板幀特征[\psi(z)]_{reg}[ψ(z)]?reg??和20×20×256的檢測幀特征$[\psi(x)]_{reg}$,這里k對應著k個anchors,‘?’是卷積的操作,與分類分支的操作相同,生成17×17×4k的featuremap,每四個是一組,一共k組對應k個anchors。四組分別對應boundingbox的四個值dx、dy、dw、dh,是anchor與真值的距離。
siamRPN的輸入與siamFC中的相同,在訓練過程中,用cross-entropy loss作為分類分支的損失函數,用smooth L1loss作為回歸分支的損失函數。
3.2.2 one-shot跟蹤
SiamRPN是第一次將one-shot策略用在跟蹤任務中:
檢測幀在對每一幀目標進行檢測時就是對proposals進行分類,即相當于一個分類器。該分類器進行分類時需要一個響應得分圖,該響應圖是由檢測幀特征圖用模板幀特征圖作為卷積核進行卷積得到的。標識有weight for regression和weight for classification即為模板幀特征圖,它用第一幀圖像信息進行訓練(也就是的one-shot策略,只用第一幀圖像信息訓練出一層網絡的參數),然后將訓練好的參數作為卷積核用到檢測支中,對檢測幀特征進行卷積得到響應圖featuremap。(分類的是:17×17×2k,回歸的是:17×17×4k)
?
?
3.2.3 模型創新
- 區域選擇策略是丟棄部分anchors產生的邊界框,選擇在目標周圍𝑔×𝑔×𝑘的anchors而不是在整個特征圖上的𝑚×𝑛×𝑘的anchors,如圖g=7。
?
- 用cosine窗口和尺度變化penalty對剩下的proposals得分進行重新排序。在上一個策略中執行并刪除了離目標較遠的proposals后,cosine窗口用于抑制最大位移,然后增加penalty以抑制尺寸和比例的大幅變化。最后選出得分最高的前K個proposals,并用NMS選出最終的跟蹤目標位置。另外,在跟蹤目標得到后,通過線性插值更新目標尺寸,保持形狀平穩變化。
?
其中r和r′是長寬比,s和s′代表尺度,k是超參數。
3.2.4 損失函數
損失函數與faster-RCNN 中的損失函數類似,分類損失為交叉熵損失,回歸損失采用歸一化坐標的smooth L1 損失進行回歸。Ax,Ay ,Aw,Ah表示anchors的中心點和寬高,Tx ,Ty,Tw,Th表示groundtruth的中心點和形狀,標準化距離為:
?
然后經過smooth L1損失:
3.2.5 模型訓練
SIamRPN是端到端的訓練模型,用SGD方法對網絡進行訓練,同時也運用了一些數據增強處理。在細節方面,因為相同目標在相鄰幀變化不會很大,采用同一尺度5種不同比例的anchors[0.33,0.5,1,2,3],同時將IoU>0.6的定為正樣本,IoU<0.3的定為負樣本。
?
總結
以上是生活随笔為你收集整理的智慧交通day04-特定目标车辆追踪03:siamese在目标跟踪中的应用-SiamRPN(2017)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 性能测试oracle瓶颈定位,性能测试中
- 下一篇: python 协程_Python多任务协