Towards Real-Time Multi-Object Tracking(JDE)論文閱讀及代碼實驗

Towards Real-Time Multi-Object Tracking(JDE)

Paper:https://arxiv.org/pdf/1909.12605v1.pdf
Github:https://github.com/Zhongdao/Towards-Realtime-MOT
前文:https://blog.csdn.net/qq_34919792/article/details/106033055

        之前在Fairmot中做了很多敘述,由於Fairmot是在JDE的基礎上改進過來的,後來我發現JDE中很多方法是和Fairmot中十分相似的。本文可以和前一篇文章Fairmot一起閱讀了解思路變化。

一、爲什麼要提出JDE

在這裏插入圖片描述
圖1簡要說明了SDE方法,兩階段方法和的JDE之間的區別。我的理解是
1)、SDE(Separate Detection and Embedding)就是兩階段法。檢測器和Reid模塊是獨立開來的,先檢測後識別,這些方法需要分爲兩部分操作,兩部分不相互干擾,精度高,但是耗時長。
2)、作者這裏的two-stage實際上應該也是一種端到端的方法,只是不是利用檢測的最後的結果,而是利用兩階段檢測法中FPN生成的框來做Embedding,這樣做可以貢獻部分特徵,減少計算量。但是二階段法不來就不是很快,所以整體速度依然達不到實時。這種方法可以參考這篇工作(End-to-End Deep Learning for Person Search),放個圖有助於理解:
在這裏插入圖片描述
3)、JDE(Joint Detection and Embedding)直接一個網絡把檢測結果和特徵識別的向量學習出來,可以真正達到實時。

二、JDE的網絡結構

在這裏插入圖片描述
圖2:說明(A)網絡體系結構和(B)預測頭。 預測頭被添加到多個FPN尺度上。 在每個預測頭中,JDE的學習被建模爲多任務學習問題。通過學習一組輔助參數,即與任務相關的不確定性,我們自動加權異構損失。

1、檢測與嵌入問題設置的聯合學習
        JDE的目標是在一個前向通道中同時輸出目標的位置和外觀嵌入。第一個目標要求模型準確地檢測目標。 第二個目標要求外觀嵌入具有以下屬性。連續幀中同一標識的觀測之間的距離應小於不同標識之間的距離。距離度量d(·)可以是歐氏距離或餘弦距離。從技術上講,如果這兩個目標都得到滿足,即使是一個簡單的關聯策略,例如匈牙利算法,也會產生良好的跟蹤結果。

2、結構概述
        我們使用FPN的結構。FPN從多尺度預測,因此,在目標規模變化很大的情況下,行人檢測帶來了改進。 圖2簡要顯示了JDE中使用的神經結構。輸入視頻幀首先通過主幹網絡進行前向傳遞,以獲得三個尺度的特徵映射,即分別具有1/32、1/16和1/8下採樣率的尺度。然後,通過跳過連接從第二個最小尺度上對具有最小尺寸(也是語義上最強特徵)的特徵映射進行上採樣並與特徵映射進行融合,其他尺度也是如此。最後,在所有三個尺度的融合特徵映射上添加預測頭。一個預測頭由幾個堆疊的卷積層組成,輸出一個密集的大小預測圖(6A+D)×H×W,其中A是分配給此比例的錨模板的數量,而D是嵌入的維數。密集預測地圖分爲三個部分(任務):
        1)尺寸爲2A×H×W的框分類結果;
        2)尺寸爲4A×H×W的盒迴歸係數;
        3)尺寸D×H×W的密集嵌入映射。

3、檢測
        一般來說,檢測分支類似於標準的RPN,但有兩個修改。首先,我們重新設計錨的數量,尺度和縱橫比,以便能夠適應目標,即行人在我們的情況下。基於公共先驗,將所有錨設置爲1:3的縱橫比… 錨模板的數量被設置爲12個,使得每個尺度的A=4,錨的尺度(寬度)從大約11到512。其次,我們注意到,爲用於前景/背景分配的雙重閾值選擇適當的值是很重要的。通過可視化,我們確定IOU>0.5,GT近似地保證了前景,這與通用對象檢測中的公共設置是一致的。另一方面,那些框IOU<0.4。 在我們的情況下,GT應該被視爲背景,而不是在一般情況下使用0.3。我們的初步實驗表明,這些閾值有效地抑制了假警報,這通常發生在嚴重遮擋下。
        檢測的學習目標具有兩個損失函數,即前景/背景分類損失Lα和包圍盒迴歸損失Lβ。 Lα被表述爲交叉熵損失。

4、外觀嵌入
        第二個目標是度量學習問題,即學習一個嵌入空間,其中相同身份的實例彼此接近,而不同身份的實例相距甚遠。爲了實現這一目標,一個有效的解決方案是使用三元組損失,並優化。

5、自動損失平衡
        可以將JDE中每個預測頭的學習目標建模爲多任務學習問題。聯合目標可以寫成每個尺度和每個分量的加權線性損失和,
在這裏插入圖片描述
        其中M是預測頭數和Wij,i=1,…,M,j=α,β,γ是損失權重。

下面介紹一種確定損失權重的簡單方法。
1)讓wiα=wiβ,正如現有的目標檢測工作所建議的那樣。
2)讓w1α = … = wMα , w1β = … = wMβ , w1γ = … = wMγ。
3)搜索其餘兩個獨立的損失權重,以獲得最佳性能。

        用這種策略搜索損失權重可以在幾次嘗試中產生良好的結果。然而,搜索空間的減少也給損失權重帶來了很大的限制,使得由此產生的損失權重可能遠遠不是最優的。相反,我們通過使用任務無關不確定性的概念,採用了一種自動學習的方法來迭代權重損失。從形式上說,具有自動損失平衡的學習目標寫爲,
在這裏插入圖片描述
        其中Sij是每個個體損失的與任務相關的不確定性,並被建模爲可學習的參數。

分析和討論
        人們可能會注意到,JDE比現有方法具有更低的IDF1分數和更多的ID開關。起初,我們懷疑原因是聯合學習的嵌入可能比單獨學習的嵌入弱。然而,當我們用單獨學習的嵌入替換聯合學習的嵌入時,IDF1評分和ID開關的數量幾乎保持不變。最後,我們發現主要原因在於當多個行人之間有較大的重疊時,檢測不準確。這種不準確的框引入了很多ID開關,不幸的是,這種ID開關經常發生在軌跡的中間,因此IDF1的分數是低一點。

三、關於代碼測試

在實際測試中發現JDE的效果比Fairmot略差一些,在檢測上和reid上,但是相差並不是特別大,不放圖了,有興趣可以去Fairmot那篇文章看看實驗效果圖。

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