多目標跟蹤方法 NOMT 學習與總結
讀 ‘W. Choi, Near-Online Multi-target Tracking with Aggregated Local Flow Descriptor, ICCV,2015’筆記
NOMT這個方法在MOTChallenge2015,MOTChallenge2016庫上的結果都算比較好的了,雖然方法比較老了。另外一個顯著的特點就是該方法的各種tricks實在是太多,雖沒有找到源碼,但對作者還真是佩服。
概述
這篇文章涉及到了多目標跟蹤中的兩個關鍵方面: 相似性的度量和目標塊之間的匹配。
相似性度量方面,提出了一種Aggregate Local Flow Descriptor (ALFD)的描述子用於描述patch塊之間的相對運動信息。
目標匹配的過程中利用了ALFD信息,表觀相似度,運動特征和軌跡的平滑性等
該方法屬於tracking by detection的一種,在KITTI和MOT庫上的結果都比較好
先避開細節不談,看看NOMT的總的流程

為什么稱為Near-Online方法?對於第t幀,之前t-1幀中的detections都已經串成不同的軌跡了,但是在t-1幀中只有
之前的軌跡串才保持不變,稱為'Clean Targets',
是時間窗,那么在t時刻需要處理的不僅僅是第t幀的detections還包括
幀間的所有detections,即時間窗內的匹配結果是可以改變的,所以稱為Near-Online方法,如上圖中(a),
之前的是固定不變的跟蹤結果,后面的則可能會隨着第t幀處理結果發生改變
整個跟蹤過程采用的是‘hypothesis generation and selection scheme’。意味着每一個時刻現在時間窗內生成許多hypothesis,然后為每一個軌跡選擇一個hypothesis。但是時間窗內完備的假設集往往是相當龐大的,比如時間窗為5,每幀有5個detections,那么長度為5的tracklet假設就有
種,再考慮軌跡起點、終點或者遮擋產生的假設,那就會爆炸。所以NOMT在Hypotheses Generation中通過距離約束首先產生了一些可能的tracklets,然后再將這些tracklets分配到不同的子集中,每個子集對應着可能匹配的一個已有軌跡。不同的子集中可能存在交集,這種交集包括 存在相同的tracklets(比如圖b中
)或者 tracklets之間存在交集(比如圖b中藍色子集中
與黃色子集中
)
正是由於2中不同子集之間存在這相互關系,所以假設與軌跡之間的匹配采用了Conditional Random Field完成
將匹配假設中的tracklet加到對應的軌跡中,處理下一幀
無論是tracklets的生成還是hypothses的分配都需要刻畫相似度,而NOMT使用了多種相似度的融合。先來看一看文中提出的ALFD描述子
Aggregated Local Flow Descriptor (ALFD)
這個方法的根本思想是利用關鍵點(interest points)的光流來刻畫boxes之間的相對運動信息,從而判斷兩個boxes的相似度。比如在box1中的一個關鍵點是鼻尖,然后該關鍵點依據該點的光流可以推測在下一幀的位置,如果預測位置剛好在下一幀某個box2中的鼻尖處,那么box1與box2之間的匹配置信度顯然要提高一點,那么統計所有的關鍵點就可以統計boxes之間的相似度。
但是呢,人體是非剛體,同一部位的關鍵點不同boxes中的位置很可能不同,而且光流本身就存在誤差,所以使用直方圖的統計特征比逐點匹配更加靠譜
那么是如何使用直方圖統計該特征的呢?我們借下圖分析下

對於box1和box2,分別計算box1中關鍵點在box2中的投影點分布,和box2中關鍵點在box1中投影點分布,然后將兩個分布結合起來就組成了整體的alfd特征。以box1投影到box2為例
首先將box1划分成n*n的網格,示例中n=2,實驗中n=4,然后將box2以box2為基礎划分個bins,具體而言就是將box2分成
個網格,然后box2周圍
之內的區域歸為一個bin,之外的 區域歸為一個bin。那么對於box1中的某一個關鍵點的相對運動信息就應該這么刻畫:該點屬於box1的哪個網格中,投影點落到box2的哪個bin中,於是直方圖的長度為
,示例中為288維
將box1投影到box2的相對運動信息表示為,那么兩個boxes之間總的alfd特征為
,其中
是兩個boxes中總的關鍵點的個數,
是一個正則項,用來約束關鍵點個數的影響:如果兩個boxes中的關鍵點很少,那么他倆的匹配對整個跟蹤過程中匹配的影響就很小。文中
論文方法使用FAST 方法提取interest points,且任意兩個points之間距離要 , 光流法使用的時Farneback光流法,當光流的大小
時該軌跡終止
如何將描述子向量轉化為相似性度量?
顯然alfd直方圖的每個bin對相似性的貢獻是不一樣的,比如上面的Fig3中,包含紅色矩形框的bins值越大,兩個patch的匹配程度就越高,而如果最外面兩個bins的值越大那么相似度就越小,所以文中將描述子向量的每個元素進行加權求和作為相似性的度量
而對於權重向量是在訓練集中統計出來的,這里我更偏向於使用統計而不是訓練。
首先對訓練集中的detections進行篩選(存在gt與之IoU>0.5的認為是positive detections)
在positive detections中計算任意兩個時間間隔在
內的pair的margin
如果兩個detection是同一個目標,否則
然后權重向量就可以如下獲得:

其中 是表示所有detections中與真實gt的最大IoU大於0.5的detections,
是指與detection i時間差在
之內的detection。 詳細的符號意義參見論文
其實這個權重計算式相當於強化了那些對分類(相似與不相似)起重要作用的特征,最終可以通過判斷的符號判斷相不相似,想起來線性分類器
然后我們來看看論文中另一個主要貢獻點NOMT
NOMT
首先聲明一些變量
表示clean targets at frame t,啥意思呢?就是t時刻已經跟蹤到的軌跡
的
之前的軌跡部分,這部分被認為是准確無誤的,不在更改,所以稱為clean targets。
Hypotheses 表示的是可能分配給軌跡
的假設集,
表示tracklet,空集表示軌跡結束,另外注意空集也可能對應一個假設集,表示新產生的軌跡。
Model Representation
模型可以形式化表示為,x是一個對應着
的指示向量,整型數據,表示對應的軌跡匹配的Hypothesis標號,
表示x選中的Hypotheses,
表示時間窗內的detections,
表示幀圖像。
能量函數
顯然第一項表示將假設分配給軌跡的代價,第二項表示分配的假設之間的相互關系
Single Targt Consistency
也就是上面的第一項,它由三部分組成,Hypothesis中的detections與軌跡的相似度、Hypothesis本身的一致性(可以理解為hypothesis本身的可靠程度)、將假設分配給該軌跡后的整體運動平滑性以及表觀一致性,注意目標函數是最小化,有些式子里面包含的負號

其中第一項稱為Unary potential,融合了alfd相似度和使用運動估計得到的相似度。這里為什么使用到運動估計,是因為alfd對於遮擋或者光流估計誤差較大的情況匹配精度不好,這時候可以將運動估計作為補充

其中表示時間窗,
表示預定義的近鄰幀,文中取{1,2,5,10,20},
表示軌跡在
幀對應的關聯detection,但是對於有可能不存在關聯detection的幀怎么處理文中沒說,我覺得就是直接跳過,求和項不加那一項

其中表示對軌跡使用最小二乘估計擬合曲線在時刻
的位置和大小,擬合的曲線階數在不同數據集上不同,MOT數據集上采用的是一階,即直線,KITTI上采用的是二階。
表示兩個detections的IoU,
是衰退因子(0.98),表示相同IoU條件下,隨着幀間間隔增大相似度降低。

表示detection的置信度,顯然上式表示alfd和運動估計特征,誰可靠取誰,如果
,表示可能是一個新軌跡起點,那么就看detection的置信度
了
針對於第二項刻畫Hypothesis本身的一致性,就使用了alfd相似度

第三項刻畫了加入hypothesis之后整條軌跡的平滑性,使用了運動估計特征和表觀特征。

其中均為標量參數,實驗中取(20,0.4,0.8),
表示兩個detections之間的(x,y,height)的距離的平方,那么式子的前一項就是預測的detection與檢測到的detection之間的差異(有點類似於Kalman濾波思想),注意這里的height是經過歸一化,
刻畫了兩個detection的表觀相似度,使用顏色直方圖表示patch塊,具體而言就是每個patch塊在LAB空間內將AB通道分別划分4個bins,然后每個采用金字塔形式統計直方圖分布,金字塔的第一層1個,第2層分解成
的網格,總體的bins就是
,然后計算兩個直方圖的intersection得到K
上面僅考慮單獨的軌跡怎么分配hypothsis,其實不同的軌跡分配不同的hypotheses,相互之間往往是相互影響的,也就是總能量表達式的第二項
Mutual Exclusion

其中表示假設
在時刻f的detections,前一項表示兩個假設存在重疊的程度,
,
表示
是同一個目標,
分別表示懲罰系數,論文中
,顯然對分配假設中存在相同detection的情形零容忍。
上面講NOMT的模型總是提到Hypotheses集,那么假設是怎么生成的呢?
Hypothesis Generation
在生成假設的過程中,NOMT就是在時間窗內生成一些tracklets作為假設,而tracklets包括兩種形式,一種就是由在時間窗內的部分生成,另一部分則是使用alfd度量相似度生成的,有點類似於聚類。
Starting from a detection 然后在剩下不在該tracklet中的detections中選取最相似的放進去,直到tracklet中個數等於窗口長度或者tracklet內部detections與外部detections之間最好的相似度都小於0.4時終止。
這樣生成的tracklets依然有許多是沒有用的,所以采用了門限策略進一步篩選這些hypotheses。具體而言利用最小均方誤差估計軌跡模型,通過判斷預測box與tracklet中box的IoU值來篩選tracklets,實驗中門限閾值設為0.1,這么小的原因是為了產生較多的tracklets。另外對於一段時間內沒有匹配到detections的軌跡認為已經終止,論文中這個時間閾值為1s
關於新軌跡的產生,對於沒有匹配的tracklets,采用non-maximum suppression的方式規避重復的目標。
目標函數現在已經給出來了,那么如何求解呢?
Inference with Dynamic Graphical Model
如圖2所示,首先將每個軌跡可能分配的假設集
分出來,表示一個節點,而里面具體的假設表示狀態,就構成了一個undirected graphical model。對於這個圖模型划分不同的獨立的子圖,不同結構的子圖采用不同的方式進行求解
如果子圖中包含多個node,那么采用CRF模型進行處理,如果僅含有1個節點,就選擇集合中最好的假設分配給節點,這個時候就不用考慮Mutual Exclusion哪項勢函數了。
關於CRF模型,待補充
實驗
論文中驗證了ALFD的表征能力,並分別在KITTI的部分子集和MOT2015數據集上做了實驗驗證了NOMT相對於當時已有方法的優勢,這個優勢還是相當明顯的。具體數值結果見論文和相關網站
總結
該文章提出了一種基於光流的特征描述子ALFD,描述了patch塊之間的相對運動關系,其實仔細想想這個描述子不僅包含了運動信息,還包含了紋理信息,比如關鍵點的選取,因為是相對關系,所以和patch之間的距離,即空間關系也有關,所以該描述子有效還是很好解釋的
NOMT方法采用的是一種滑動時間窗的更新方式,這種方式允許前若干時刻的分配結果隨着新detections的到來而發生更改,這樣跟蹤效果顯然會好一些,畢竟利用了前后幀的關系
方法中用到了好多tricks,比如使用最小平方誤差算法構建軌跡預測器,使用運動特征去處理遮擋問題,使用運動特征和表觀特征正則化假設集的分配,等等,且方法中給定了許多參數
等
在使用ALFD計算相似度時,使用的時統計得來的權重向量,起始可以由訓練得到。
這個假設分配的過程或許並非一定要通過CRF這么計算`