In Defense of MOT:讀CVPR17《Deep Network Flow for Multi-Object Tracking》有感

多目標跟蹤的幀間數據關聯可以分爲online(frame-by-frame)和offline(batch-by-batch)兩類。前者講究追求real-time tracking,跟蹤結果的給出無時延,理論上講可以拼Real-time(可惜往往沒戲嘻嘻。。);後者講究利用前後幀更多的信息,即在一個time window中一次性實現多幀的關聯,用精度換速度換時效性。不可避免地帶了了輸出的遲滯,而且關聯的問題也由online的二部圖匹配提升到多部圖匹配,且匹配的解空間隨batch的增大而指數增長。

用Network flow(NF)解多目標跟蹤中的幀間數據關聯基本屬於標準操作,隸屬於上述的第二類batch-mode。此類用NF方法解detections或者tracklets之間關聯的業界標杆是USC Nevatia大師的CVPR08佳作《Global Data Association for Multi-Object Tracking Using Network FLows》以及ECCV08《Robust Object Tracking by Hierarchical Association of Detection Responses》。當然,我的帶教導師UCF Dr.Shah也在此方面多有建樹。但是Shah大師更傾向於用multi-clique的方法來formulate多目標關聯的問題,詳情請搜GMCP tracker~~~

下接正文:

核心上說,Bipartite Matching是逐幀關聯,是一種online method;Network Flow是一種batch-mode,offline多幀關聯。不論是BM還是NF,都可以化作一個Linear Programming的優化問題求解。而且,Bipartite matching(乃至多步圖匹配問題)也可以化作network flow的問題。而在這個優化問題中,最關鍵的是cost function。

Cost function和affinity metric是分不開的。作爲衡量pair-wise cost而言,鏈各個entities之間的affinity往往是影響cost的重要依據。而這種pair-wise affinity的來源,一般有detector confidence,motion & appearance similarities,i.e. temporal & spatial distances。

本文是分步走的DA,先DR2DR生成TLs(沒有用DetectorDR是直接用數據庫給出的DR),再由TLs生成Traj。DR2DR DA用的是overlapping temporal window做的batch-wise network flow minimization bi-level optimization;而TL2TL用的是HA做二部圖匹配,affinity用的是兩個TL之間重合的DR數目。

在DR2DR用network flow解多步圖匹配階段establish E2E learning。學什麼?cost,準確說是學cost function中的參數。把多步圖匹配求解的問題轉化爲一個bi-level minimization,其中的cost term是參數化的,學就學cost裏面的參數。當然,因爲是E2E,所以gradient BP回前段計算appearance affinity時的CNN feature extractor too。所謂參數化cost,就是省去原來hand-crafted cost function1.function的選擇,2. Grid search優化調參。可學習的cost function就是一些MLP把輸入feature轉化爲一個scalar value output

  1. 如何把一個多幀DA的多步圖匹配轉化爲一個Network Flow問題(即構建一個NF graph,在這個graph裏面找出minimum flow):

  • 如圖所示是一個三幀的三步圖匹配;分別有3,3,2個目標;
  • 每個DR在NF graph裏轉化爲一對兒nodes;
  • NF graph中有一個源節點和一個終點(S and T);
  • NF graph中一共有兩類4種edge,每個edge有一個indicator x和一個cost c:

Unary edge:

  1. Xidet,Cidet :一個DR的一對兒Node之間的edge,(cost通常來自detector confidence);紅色
  2. Xiin,Ciin :一個DR中的前一個node與源節點的edge;黑色
  3. Xiout,Ciout :一個DR中的後一個node與終節點的edge;黑

Pairwise edge:

      Xi,jlink,Ci,jlink:前面幀DR的後一個節點與後面幀DR的前一個節點的edge(cost通常是連個DR的affinity)。注意,這裏面前後DR可以跨幀連接,這樣可以客服occlusionmissed DR帶來的fragmentation藍色

在這個NF graph中,求最優association就是求最優的一組edge x*能夠有最優的minimum over all全graph源點到終點的flow(圖中粗線就是最優解,可見有些藍色的pairwise edge沒有在解中):要滿足flow conservation constraint所以就不會出現最優解是0 flow,因爲in-edge是正無窮的weight,而所有edge上的cost都是負值,相當於在還債。Affinity越大,confidence越大,越負,就能換越多的債,就越會出現在解中

本文要E2E學的,就是上式子中的cost term c。傳統方法中c是hand-made,固定的公式。這裏,我們讓c變成一個parameterized cost function,這樣整個E2E trainloss minimization優化問題就變成了一個Bi-level的雙優化問題,同時優化整個訓練的loss,以及minimum flow as a constraint

其中c = cf,θ),θ就是要train要學的參數

  1. 訓練:
  • 製作gt數據:

GT數據就是一組xgt indicators 01),指定那些edgeactivated,就說明這條edge上相關的node的相關的DRtraj

在多目標跟蹤庫上有兩組bbox:一組是由ID的人工畫出來的bboxGT,一組是沒有ID的但是有detector confidence scoredetector檢測結果bboxDRs。因爲網絡的輸入時raw DR所以做GT就是把同樣這些DR給上標籤的過程。GT就是把和某個GT box IoU超過0.5confidence最大的DR box assign給這個GT traj,即這個DRNF graph中的xdet1,且跨幀連接路徑中有這個DR,它與上下幀中同樣assign給這個GT trajDR們之間的Xlink1,若沒有上下幀同樣IDDR,則這個DRxin或者xout1

  • Loss function:weighted L2 loss w.r.t. unary and pairwise edgeweightreason不同的FP-TP-FN-TN連接的情況。

  1. 跟蹤邏輯:
  1. 用密集overlapptemporal滑窗得到一段一段幀的DRs,然後解決每個小窗裏的基於NF的多步圖匹配問題,得到TLs
  2. TlTL之間的關聯用基於overlapping DR numeraffinityHA來做二部圖匹配。
  1. cost function
  • hand-crafted

上述式子中的hyper-parameters包括α,β,C,通過grid search來不斷嘗試最大化MOTA同時maintain Recall來確定。這個調參的過程是exponential的隨着超參數的數量增長,然而這也正是使用hand-crafted cost的最大弊端

  • Learned with NF

Unary cost與上述hand-crafted一樣,pairwise cost選用1 layer MLP with 64 neuronsor two layers MLP with 32 neurons each就是用全連接層來,輸入feature,轉換產生scalar value cost,這樣就省去了對β調參的過程

  1. Features used to compute cost(affinity)with:

在Bipartite matching的場景下是最大化overall affinity,而在mini-network flow場景下就是最小化cost,而cost往往是affinity取倒數。

Motion-wise,用的是bbox IoU,ALFD;

Appearance-wise,用的是raw image with ResNet feature extractor,or Siamese CNN直接compute pairwise score。

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