ori:https://blog.csdn.net/sinat_37532065/article/details/105418661
主流目標跟蹤方法:大多遵循tracking-by-detection思路。
本文提出新的跟蹤模型結構:CenterTrack,通過在一對圖像上執行檢測,並結合先前幀的detection結果估計當前幀的運動情況。簡單、在線(不需要引入未來信息)、實時(MOT17 22fps)。
簡介:
input:一對圖像+根據首幀圖像的檢測結果渲染出的heatmap。
output:一個從當前對象中心到前一幀對象中心的偏移向量,且這個偏移向量將作為中心點的一個附加屬性來學習。
有了中心點和偏移量之后,僅靠貪婪匹配策略即可將當前幀的對象與先前幀的相應對象建立起聯系。
簡化了傳統跟蹤方法的兩個關鍵步驟:跟蹤條件檢測和時間上的對象關聯。
CenterTrack的輸入端將首幀的檢測結果對應的heatmap也作為了輸入,因為相鄰幀間相關性往往較高,這樣的做法會促使模型簡單地復制先前的預測結果而拒絕做更多對跟蹤有利的預測,因此作者在訓練過程中加入了很多看起來極為激進的增強策略,試驗結果表明,這些數據增強方法效果極佳。
在模型訓練上,CenterTrack有一個很大的優點是,其既可以在有標注的視頻序列上訓練,也可以通過對靜態圖像做數據增強來進行訓練。
相關工作:
傳統跟蹤方法(tracking-by-detection)兩個缺點:
(1)在建立跟蹤聯系過程中僅聯合高層數(比如框位置等),會丟失圖像外觀信息,或者還需要有一個計算量比較大的特征提取器。
(2)檢測和跟蹤分開進行
CenterTrack優點:
(1)目標和聯合與檢測一起學習,同時還將前一幀的結果作為輸入,從而幫助模型恢復被遮擋和中斷的目標;
(2)將跟蹤的預測作為點的附加特征,這樣網絡可以推理並匹配處在畫面里的所有目標,即使它們沒有存在重疊部分。
預備知識:CenterNet
CenterTrack:
CenterNet將跟蹤看做一個從局部角度觀察的問題,比如當一個目標離開畫面或被遮擋又重新出現時,跟蹤模型不會記住它,而是會重新給它分配一個新的ID. 因此,CenterTrack將跟蹤建模成了一個在連續幀之間傳遞檢測結果ID的問題,而沒有考慮如何給時間上有較大間隔的對象重新建立聯系的問題。
問題描述:
在時間,給定當前幀
及上一幀
,以及上一幀跟蹤到的所有目標
,其中每個目標包含的信息有其位置、大小、置信度得分、編號ID。我們的目的是檢測和跟蹤當前幀中的目標,得到
,並為每個對象分配ID(如果該對象從上一幀就開始出現,那分配的ID要求是一致的)。
面臨兩個挑戰:
(1)如何在每一幀中找出所有對象,甚至包含被遮擋的對象;
(2)如何在時間上為這些對象建立聯系。
解決辦法是:
Tracking-conditioned detection:利用先前幀的檢測結果改善當前幀的預測。
Association through offsets:在時間軸上建立檢測結果之間的聯系
4.1 Tracking-conditioned detection
作為一個檢測器,CenterNet已經能夠給出跟蹤所需的很多信息,如位置、大小和得分。但是它不具備預測未直接出現在當前幀的目標的功能,所以在CenterTrack中,將當前幀及其上一幀圖像共同輸入模型當中,旨在幫助網絡估計場景中對象的變化並根據上一幀圖像提供的線索恢復當前幀中可能未觀察到的對象。
此外,CenterTrack還將上一幀圖像的檢測結果添加到輸入中,具體做法是根據上一幀的檢測結果繪制一張單通道heatmap,其中peak位置對應目標中心點,並使用與訓練CenterNet過程中相同的高斯核渲染辦法(根據目標大小調整高斯參數)進行模糊處理,為了降低誤報概率,作者只對檢測結果中得分高於一定閾值的目標進行渲染(即得分低的目標不會體現在新生成的heatmap上)。
綜上,CenterTrack與CenterNet模型結構幾乎相同,但是輸入通道多了4個:上一幀圖像(3 channels)、渲染出的heatmap(1 channel)。
4.2 Association through offsets
為了能夠在時間上建立檢測結果的直接聯系,CenterTrack添加了2個額外的輸出通道,用於預測一個2維的偏移向量,即描述的是各對象在當前幀中的位置相對於其在前一幀圖像當中的位置的X/Y方向的偏移量。此處的訓練監督方式與CenterNet中對目標對象長寬或中心偏移情況的部分訓練方式相同。
在有了各個對象的位置以及對應的偏移情況之后,使用簡單的貪婪匹配策略即可建立起對應目標在幀之間的聯系。
4.3 在視頻數據上訓練
概況來說,CenterTrack = CenterNet + 4 * Input-channels + 2 * output-channels.
CenterTrack本質上也是一個檢測器,所以其訓練方法也和訓練CenterNet類似,也就意味着我們可以從一個預訓練好的CenterNet上finetune出一個CenterTrack。具體做法是,首先根據常規做法,在當前視頻數據上訓練一個CenterNet模型,然后從它當中拷貝所有權重,並為新添加的部分結構進行隨機初始化參數,而后遵循CenterNet的訓練方法進行訓練,並且額外加上對偏移量分支的監督。
在訓練CenterTrack過程中一個最主要的挑戰是如何生成一張接近真實情況的tracklets heatmap的問題:在模型推理期間,tracklets heatmap是根據模型預測結果渲染而來的,可能會存在數量不定的missing tracklets、錯誤定位的目標以及還可能有誤檢的目標存在。而這些情況在Ground Truth中是不存在的,也就是說如果我們直接利用基於Ground Truth渲染出的heatmap,是無法模擬這種實際情況的,也就會導致模型效果不佳。
上述問題解決辦法是在訓練過程中通過一些trick來模仿這些test-time error,具體而言:
1. 在前一幀的預測結果上,對各個檢測目標點進行高斯擾動(模擬“目標錯誤定位”的情況,超參數);
2. 在Ground Truth目標中心附近以一定概率隨機渲染出一些虛假的峰值(模擬“誤檢”的情況,超參數);
3. 以一定概率,隨機去除掉一些檢測結果(模擬“漏檢”的情況,超參數)。
此外,在實際訓練過程中,先前幀I^{t-1}不是必須是前一幀,它可以是相同視頻序列中的其他幀。通過這種增強的方式,可以規避掉模型對視頻幀率的敏感性。在CenterTrack中,從與當前幀間隔小於一定范圍(比如前后3幀)的幀中來隨機選擇I^{t-1}.
4.4 在靜態圖片上訓練
如果沒有帶標注的視頻數據,我們還可以使用靜態圖像來訓練CenterTrack:通過隨機縮放和變換當前圖像,來生成先前幀,從而達到模擬目標運動的目的。實驗證明這一trick很有效,幾乎不會影響跟蹤模型的效果。
5 分解研究
5.1 兩個主要的技術改進點的提升效果研究
CenterTrack為了解決跟蹤問題,設計了兩個關鍵的思路:跟蹤條件的檢測(Sec. 4.1)和目標偏移量的預測(Sec. 4.2).
為了分析效果,作者做了3個baseline模型:
Detection only:顧名思義,只使用原版CenterNet進行檢測,跟蹤通過目標2D距離來匹配對象;
Without offset:使用CenterTrack中對輸入端的改進,但不使用預測出的offset,目標的匹配還是通過距離來計算;
Without heatmap:在CenterTrack的基礎上,去掉tracklets heatmap的輸入,但是輸出還是會預測offset,目標的匹配基於預測得到的偏移量結合貪婪匹配的策略進行。
最終實驗效果如上圖,可以看出,如果不添加tracklets heatmap作為附加輸入,效果會大打折扣。雖然看起來不使用offset效果下降不明顯,但是這是因為做實驗用的這些數據集幀率相對較高,換句話說就是目標的運動不會過於劇烈,這會弱化offset的表現,可能換一個幀率低些的數據集,或者目標運動速度快的,可能offset的作用會更加明顯。
5.2 使用noisy heatmap進行訓練及使用靜態圖像進行訓練
主要是想分析一下對tracklets heatmap做增強的必要性,個人認為這是CenterTrack能取得不錯效果的最關鍵的一環。
同時還對僅使用靜態圖像訓練的情況作了對比,可以看出與用視頻序列進行訓練相比,幾乎沒有差別。