讀 'B. Wang, L. Wang, et.al. Joint Learning of Siamese CNNs and Temporally Constrained Metrics for Tracklet Association[j], arXiv:1605.04502v2 [cs.CV] 25 Sep 2016'筆記html
這篇文章主要提出了一種藉助孿生卷積網絡的度量學習方法,用以提高tracklet association 的性能。另外文章還給出了一個具備40段標註序列的數據集。算法
該方法的主要框架以下:網絡
對於一段待跟蹤的視頻數據,首先使用pre-trained檢測子檢測出每一幀中的目標。而後使用dual-threshold strategy [1]生成一些比較可靠的小軌跡段。這段過程和基於層次關聯的魯棒多目標跟蹤方法相似。接下來使用一些輔助數據預訓練孿生cnn網絡。而後將預訓練獲得的孿生卷積網絡與短時約束度量結合訓練出分別適用於每一個軌跡段的度量矩陣,最後經過使用對應的度量矩陣計算軌跡片斷之間的類似關係,再利用softassign 算法關聯對應的軌跡片斷以期獲得更長的軌跡段。框架
siamese CNN共享參數。上圖給處了孿生CNN中任一個CNN的結構,首先對於一幅待輸入的圖像,縮放到大小傳遞給CNN,CNN包含5層(2個卷積層、2個池化層和1個全鏈接層)。卷積層和池化層的通道數都是96(即卷積模板有96種),最終的輸出層是512維向量。卷積層C1和C2濾波器的大小分別是
和
,在每一個池化層包含cross-channel normalization操做。卷積方式:zero padding, 激活函數 ReLu。svg
損失函數函數
使用馬氏距離刻畫樣本將的類似性,
是半正定矩陣。工具
這個時候不考慮時間上的差別性,也就是說全部的軌跡片斷都用同一個度量矩陣的條件下,獲得損失函數性能
其中是正則化係數,
是經驗損失函數的權重,
是決策邊界,
是示性函數
,第一項
是正則項,但願樣本各向同性,即馬氏距離接近於歐氏距離。學習
考慮到,目標的表觀特性隨着時間變化也發生顯著變化,如上使用同一個度量函數顯然並不合適,因此文章中將度量矩陣分爲兩類:一類是整個視頻序列時間段內公用的,反映通用的鑑別信息;另外一類是針對於小段時間內的度量矩陣,反映的是特異性。並且考慮到短時約束(時間上相近的sequences應該具備類似的信息),因此損失函數能夠定義以下:spa
寫到這裏突然想起一件事,咱們使用Siamese CNN不是用來得到tracklets的度量的嘛,爲何輸入的是圖像而不是軌跡呢?這是由於文章中使用的是具備表明性的圖像來表示對應的軌跡,後面會進一步介紹,這裏提一下是爲了更好理解損失函數。
上面公式中是正則化係數,第一項表示公共度量矩陣的正則化限制,第三項是對每個單獨度量矩陣的正則化約束,第二項是temporally constraints,第四項時經驗損失函數,定義以下:
爲何這裏,而
,我以爲是由於但願
。
Temporally Constraint以下圖所示
在執行時,使用初始化
.
使用BP算法調整網絡參數,先對求梯度,而後將該梯度傳遞給CNN,調整CNN的鏈接參數。(3)式對
求導
那麼對於兩個CNN總的梯度爲
是示性函數。
對的梯度調整:
其中
對應的更新策略:
是學習步長。
訓練樣本
在每一個tracklets中選擇個可信度較高的measurements,而後隨機選擇2個配對,組成正樣本和負樣本進行訓練,下面的算法1給出了度量矩陣更新的過程,至於CNN的訓練就直接按照通用訓練方法。
算法裏面有一個須要注意的地方就是對的正定投影,保證M的半正定性。這個能夠經過SVD分解,對奇異值濾波實現。
軌跡片斷的關聯能夠形式化爲以下形式:
表示關聯關係,這裏沒要求行列和爲0,是由於存在全不關聯的情形
分別是基於運動模型和基於表觀模型的類似性
這裏參見層次關聯的魯棒多目標跟蹤算法.
對於基於表觀的類似性,首先在每個tracklet中選取一個執行讀最高的measurement做爲表明,組成探針集,
是該段時間內的tracklets個數,那麼
其中表示tracklet
的第k個觀測值,
分別表示對應軌跡上觀測值的個數
這裏須要特別注意的是:1. 不是對稱計算的;2. normalization過程當中並非時間上的規範化,而是與全部tracklets類似性上的規範化。
獲得了類似矩陣P,爲了進一步實現關聯的快速精確收斂,對P進行部分約束
而後再進行列歸一化。
可使用匈牙利算法對上述分配問題求解,求解以後關聯tracklet之間可能存在gap,這個時候採用linear interpolation進行鏈接。
文章中給出了新的benchmark數據集,但我沒有找到網址,因此這裏就不說了,咱們就來看看在已有的一些benchmark上,該方法的性能如何
爲了對比所提算法中每個component(pre-trained Siamese CNN, Temporal Constraint metric等)的有效性,設置了幾個baseline
baseline1:Siamese CNN的參數是獨立學習的,即沒有通過Temporal Constraint Metric的微調階段,損失函數使用(2)式,且其中M=I,即歐氏距離。而後訓練M,不使用即(2)式做爲loss function。驗證Joint learning的有效性。
baseline2:使用(2)式做爲損失函數,同時訓練Siamese CNN和M,能夠驗證Temporally Constraint Metric的有效性。
baseline3: Siamese CNN is pretrained且不進行微調,驗證微調的有效性
baseline4: 不使用這一項,驗證common metric的有效性
在PETS 2009數據集上的結果以下
在MOTChallenge 2015數據集上與當前公佈代碼的教新的方法對比結果以下
能夠發現,文章提出的算法性能仍是能夠的。
Computational speed:
工具:MatConvNet toolbox, 2.6GHz CPU, Tesla K20c GPU
速度:0.38,0.55(sec/frame) for PETS 2009 and MOTChallenge 2015.