deepsort多目標跟蹤

2021-09-12 03:34:31 字數 2420 閱讀 7277

**題目:****** online and realtime tracking with a deep association metric

deepsort是在sort目標追蹤基礎上的改進。引入了在行人重識別資料集上離線訓練的深度學習模型,在實時目標追蹤過程中,提取目標的表觀特徵進行最近鄰匹配,可以改善有遮擋情況下的目標追蹤效果。同時,也減少了目標id跳變的問題。

演算法的核心思想還是用乙個傳統的單假設追蹤方法,方法使用了遞迴的卡爾曼濾波和逐幀的資料關聯。

該部分的思路和sort很接近。

傳統的解決檢測結果與追蹤**結果的關聯的方法是使用匈牙利方法。本文作者同時考慮了運動資訊的關聯和目標外觀資訊的關聯。

當乙個目標長時間被遮擋之後,kalman濾波**的不確定性就會大大增加,狀態空間內的可觀察性就會大大降低。假如此時兩個追蹤器競爭同乙個檢測結果的匹配權,往往遮擋時間較長的那條軌跡的馬氏距離更小,使得檢測結果更可能和遮擋時間較長的那條軌跡相關聯,這種不理想的效果往往會破壞追蹤的持續性。這麼理解吧,假設本來協方差矩陣是乙個正態分佈,那麼連續的**不更新就會導致這個正態分佈的方差越來越大,那麼離均值歐氏距離遠的點可能和之前分布中離得較近的點獲得同樣的馬氏距離值。 

所以,作者使用了級聯匹配來對更加頻繁出現的目標賦予優先權,具體的演算法如下圖: 

級聯匹配的核心思想就是由小到大對消失時間相同的軌跡進行匹配,這樣首先保證了對最近出現的目標賦予最大的優先權,也解決了上面所述的問題。 

在匹配的最後階段還對unconfirmed和age=1的未匹配軌跡進行基於iou的匹配。這可以緩解因為表觀突變或者部分遮擋導致的較大變化。當然有好處就有壞處,這樣做也有可能導致一些新產生的軌跡被連線到了一些舊的軌跡上。但這種情況較少。

網路結構: 

在行人重識別資料集上離線訓練模型。輸入128維的歸一化的特徵。在gtx1050m顯示卡上,輸入30個bounding box提取特徵的時間約為30ms。預訓練的模型和**位於

參考: 

流程圖:

#distance函式

cost_matrix = np.zeros((len(targets), len(features)))

for i, target in enumerate(targets):

cost_matrix[i, :] = self._metric(self.samples[target], features)

#_metric函式

distances = _cosine_distance(x, y)

return distances.min(axis=0)

return cost_matrix

未級聯匹配上追蹤器和未確認狀態的追蹤與未級聯匹配上的檢測之間基於iou進行匹配,具體實現是計算cost_matrix矩陣,矩陣的每一行表示乙個追蹤器和每乙個檢測結果之間的(1 - iou)。對cost_matrix中大於max_distance的元素置為max_distance,然後使用匈牙利演算法以cost_matrix矩陣作為輸入進行指派,指派完成後依然統計matchs,unmatched_detections,unmatched_tracks;

匹配上的,去做引數更新

std = [

self._std_weight_position * mean[3],

self._std_weight_position * mean[3],

1e-1,

self._std_weight_position * mean[3]]

innovation_cov = np.diag(np.square(std))

self.tracks = [t for t in self.tracks if not t.is_deleted()]
#每個activate的追蹤器保留最近的self.budget條特徵

for feature, target in zip(features, targets):

if self.budget is not none:

self.samples[target] = self.samples[target][-self.budget:]

#以dict的形式插入總庫

self.samples =

多目標跟蹤deepSORT

文章對 中的翻譯做了一些筆記,方便在演算法使用過程中遇到問題時檢視 jpdaf 中,單個狀態假設是通過關聯概率對單個測量值進行加權而產生的。在 mht中,所有可能的假設都被跟蹤,但為了計算的可操作性,必須應用剪枝方案。這些方法的效能取決於計算量和實現複雜性。深度關聯度量 軌道處理和卡爾曼濾波框架與s...

多目標跟蹤

目前參與的乙個專案是 足球事件檢索 事件是乙個 high level 概念,需要基於一些 low level 資訊來做。後者主要就是一些影象處理的東西了。兩個 level 之間,會有一些中間層的資訊,比如足球的走向。根據師兄的建議,可以考慮對足球場上的運動員進行多目標跟蹤,在跟蹤軌跡的基礎上抽取一些...

人臉跟蹤 sort多目標跟蹤

多目標跟蹤中sort演算法的理解 在跟蹤之前,對所有目標已經完成檢測,實現了特徵建模過程。1.第一幀進來時,以檢測到的目標初始化並建立新的 標註id。2.後面幀進來時,先到卡爾曼濾波器中得到由前面幀box產生的狀態 和協方差 求 所有目標狀態 與本幀檢測的box的iou,通過匈牙利指派演算法得到io...