1. 程式人生 > >論文筆記-Deep Affinity Network for Multiple Object Tracking

論文筆記-Deep Affinity Network for Multiple Object Tracking

空間 text nco 符號 實現 項目 第一個 box using


作者: ShijieSun, Naveed Akhtar, HuanShengSong, Ajmal Mian, Mubarak Shah

來源: arXiv:1810.11780v1

項目:https://github.com/shijieS/SST.git


摘要

MOT方法一般包含兩個步驟:目標檢測和數據關聯。 目標檢測這兩年隨著深度學習的發展而迅速發展,但是數據關聯絕大多數還是采用hand crafted的方式將表觀特征,運動信息,空間關系,group關系等進行結合。 這篇文章則是利用深度網絡實現端到端的表觀特征抽取和數據關聯。 Deep Affinity Network(DAN)還實現了軌跡的初始化和終止等操作。在MOT15和MOT17,以及UA-DETRAC數據集上驗證了有效性。

方法介紹

技術分享圖片

  • 符號定義:
    • $I_t$ 視頻的第$t$幀
    • $t-n:t$ 從$t-n$ 到$t$的時間間隔
    • 下標 $t-n, t$ 表示元素是對$I_{t-n}, I_t$計算得到
    • $\mathcal{C}_t$ 第$t$幀中目標的中心坐標的集合, $\mathcal{C}_t^i$表示集合的第$i$個元素
    • $F_t$第$t$中目標的特征, $F_t^i$表示$t$幀中第$i$個目標的特征
    • $\Psi_{t-n,t}$是一個$N\times N\times 2M$的tensor,其中N表示目標的個數, $M$表示每個目標特征向量的維度
    • $L_{t-n, t}$二值關聯矩陣, 1表示關聯, 0表示不關聯
    • $A_{t-n, t}$相似度矩陣, 由$\Psi$到$A$進而得到$L$
    • $\Tau_t$ 直至第$t$幀時的軌跡的集合。軌跡使用二元組的集合表示,$\Tau_t^i={(0,1),(1,2)}$表示軌跡中的關聯是第0幀的第一個目標和第1幀的第2個母校
    • $\mathcal{Z}(\cdot)$算子用來計算集合或者矩陣中的元素
    • $\Lambda_t\in R^{\mathcal{Z}(\Tau_{t-1})\times(\mathcal{Z}(\mathcal{C_t})+1)}$ 是一個accumulator matrix,其元素表示目標與軌跡的相似度
    • $N_m$表示每一幀中最大允許的目標個數, $B$是batchsize
  • Deep Affinity Network (DAN)

    如圖1所示, DAN包含了兩部分:特征抽取模塊(feature extractor)和相似度估計模塊(Affinity estimator), 整體的訓練是end-to-end方式的。

    DAN的輸入是兩幅圖像$I_t, I_{t-n}$以及每幅圖像中對應目標的中心點坐標$\mathcal{C}t, \mathcal{C}{t-n}$, 這裏不要求兩幅圖像連續, 時間間隔$N\in\mathbb{N}^{rand}\sim [1, N_V]$.

    DAN的輸出應該是兩幅圖像中目標的關聯矩陣$L_{t-n, t}$

  • Data Preparation

    • Photometric distortions: 像素值尺度變化$[0.7, 1.5]$, 轉換成HSV空間, 飽和度的尺度變化$[0.7, 1.5]$, 然後再轉回到RGB中,同樣尺度[0.7, 1.5]的變化
    • 使用圖像像素均值expand frame, 尺度變化範圍$[1, 1.2]$
    • 圖像裁剪, 尺度範圍$[0.8, 1]$, 同時需要包含所有檢測目標的中心點

    以0.3的概率按上述方法擴展樣本對。然後圖像固定大小$H\times W\times 3$, 圖像水平翻轉的概率$0.5$

  • MOT中每一幀存活的軌跡個數不是固定的,給網絡的訓練帶來難度。因此文章給出了一個軌跡個數的上限值$N_m=80$ , Fig.2 給出了關聯矩陣的構建示意圖。這裏為了清晰演示,取$N_m=5$. 第1幀和第30幀圖像各檢測到4個目標, 總共有$5$個人。 Fig.2c展示了包含dummy row和column的中間矩陣$L_{1, 30}‘$的構建, dummy row或者column用來表示dummy bounding box,從而讓關聯矩陣大小一致,不隨目標個數變化而變化。 Fig.2d中關聯矩陣進一步augmented引入新的row和column,表示新出現的目標和終止的軌跡。最終使用Fig.2d的矩陣作為訓練目標。最後一行或者列中包含多個1則表示多個目標終止或出現。

技術分享圖片

  • Feature extractor

    在VGG16上進行了修改, 將VGG16後面的全連接層和softmax層都換成了卷積層,這麽做主要是卷積層能夠更好地encoding目標的空間特征。另外這裏的輸入數據也更大$3\times 900 \times 900$, 從而修改後的VGG16最後一層的輸出還有$56\times 56$大小。

    VGG16最後輸出的$56\times 56$的feature map采用表2上半部分的結構進一步縮小到$3\times 3$

    技術分享圖片

然後根據Table 3,選擇9個feature maps,利用目標的中心坐標$\mathcal{C}_t$在channel上選擇特征,降維采用的$1\times 1$的卷積核, 特征進行concatenate。最終每一個目標形成$520$維的特征向量。對於那些dummy的目標,其特征表示為全零向量。

技術分享圖片

  • Affinity estimator

    feature extractor之後每幅圖像抽取的特征$F_t\in R^{N_m\times 520}$,然後將兩幅圖像目標的特征任意的組合就形成了tensor $\Psi\in R^{N_m\times N_m\times(520\times 2)}$, 然後在利用5層卷積核為$1\times 1$的卷積層壓縮維度形成相似度矩陣$M\in R^{N_m\times N_m}$,壓縮網絡的模型如Table 2的下半部分所示。

    這裏的M對應於真實的Label,即兩個目標是否關聯。但是沒有解釋新出現的軌跡和離開的軌跡。因此文章對相似度矩陣$M$進行了擴充。為了讓模型更好訓練以及loss更好定義,這裏$M$分開進行行列擴充,擴充的向量$\textbf{v}=\gamma \textbf{1}$ , $\gamma$是超參。

  • Network Loss

    $M_1\in R^{N_m\times(N_m+1)}$列擴展矩陣每一行表示第$m$個目標關聯情況或者是否結束。 $M_2\in R^{(N_m+1)\times N_m}$行擴展矩陣對應了反向匹配時第二幅圖像中目標的關聯情況或者是否是新出現的軌跡。對行,列擴展矩陣$M_1, M_2$分別進行行,列softmax得到$A_1, A_2$表示的是概率。

    因此DAN網絡損失包含4部分:前向損失,後向損失,一致性損失和組合損失
    $$
    \begin{aligned}
    \mathcal{L}_f(L_1, A_1) &= \frac{\sum(L_1\odot(-\log A_1))}{\sum L_1}\
    \mathcal{L}b(L_2, A_2) &= \frac{\sum(L_2\odot(-\log A_2))}{\sum L_2}\
    \mathcal{L_c}(\widehat{A_1}, \widehat{A_2}) &= \Vert\widehat{A_1}-\widehat{A_2} \Vert_1\
    \mathcal{L_a}(L_3, \widehat{A_1}, \widehat{A_2}) &= \frac{\sum (L_3\odot (-\log(max(\widehat{A_1}, \widehat{A_2}))))}{\sum (L_3)}\
    \mathcal{L} &= \frac{\mathcal{L_f}+\mathcal{L_b}+\mathcal{L_a}+\mathcal{L_c}}{4}
    \end{aligned}
    $$
    其中$L_1, L_2$都是與$M_1, M_2$對應的$L
    {t-n, t}$的trimmed 版本, $\widehat{A_1}, \widehat{A_2}$是trimmed成$N_m\times N_m$的版本, $L_3$則是同時去掉了最後一行和最後一列。

    關於四種loss的關系闡述

    We compute the final loss $L$ as the mean value of the four sub-losses. The overall cost function of our network is defined as the Expected value of the training data loss. The afore-mentioned four sub-losses are carefully designed for our problem. In the Forward and Backward losses, instead of forcing $A_q$, where $q \in{ 1, 2}$1; to approximate corresponding Lq by using a distance metric, we maximize the probabilities encoded by the relevant coefficients of $A_q$. We argue that this trategy is more sensible than minimizing a distance between a binary matrix ($L_q$) and a probability matrix ($A_q$). Similarly, given the difference between $\widehat{A_1}$ and $\widehat{A_2}$ is expected to be small, we employ $l_1$-distance instead of more commonly used $l_2$-distance for the Consistency loss. Once the DAN is trained, we use it to compute the affinity matrix for an input frame pair as $A \in R^{N_m\times (N_m+1)} = \mathcal{A}(max(\widehat{A_1},\widehat{ A_2}))$ , where $\mathcal{A}(.)$ appends the ($N_m + 1$)th column of $A_1$ to the matrix in its argument. The max operation used in our definition of the affinity matrix $A$ also justifies the maximization performed to compute the Assemble loss. Thus, the four sub-losses
    defined above are complementary that result in a systematic approximation of the ground truth data association.

  • DAN deployment

    因為feature extractor部分是參數共享的,而在計算相似度矩陣的時候只是後面的affinity estimator牽涉到兩兩相互操作,因此,每張圖片其實只進行一次feature extractor的操作,後面的affinity estimator是進行匹配。

  • Deep track association

    這部分很關鍵。為了匹配當前幀中的目標, 將每一幀的特征矩陣$F$和對應的時間戳保存起來,然後可以計算歷史frames與當前frame之間的相似度矩陣。

    關聯過程: 首先根據第1幀圖像中的目標個數初始化軌跡集合$\Tau_0$,軌跡中每一個元素是一個二元組(時間戳, 軌跡編號),使用hungrain algorithm對accumulator matrix $\Lambda$分解去grow對應的軌跡, $\Lambda$是當前幀目標與多個歷史幀目標的相似度矩陣的累積求和,註意這裏累積求和是相同軌跡編號進行求和。

    註意這裏有個問題,匈牙利算法是一對一約束,但相似度矩陣中添加的最後一行一列不滿足這個要求,於是匈牙利算法只是對去除最後一行和列的矩陣進行分解,然後再把最後的行列加進來。

技術分享圖片

Experiments

實驗部分還是很充分的,在MOT15和MOT17上進行了行人跟蹤的實驗, 在UA-DETRAC上進行了車輛的跟蹤。

技術分享圖片

技術分享圖片

技術分享圖片

結語

實驗沒有給出在MOT16上DPM檢測器下的跟蹤性能,我跑了下代碼發現性能很差。在MOT17庫上性能好是因為MOT17庫上的檢測相對準確。也就是說該方法其實對於檢測的精度還是非常依賴的。因為網絡的輸入是目標的中心點坐標,並且在抽取特征階段是利用中心點位置channel 作為特征,檢測誤差必定導致特征的不準確,從而影響性能。

論文筆記-Deep Affinity Network for Multiple Object Tracking