日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DEFT解读

發(fā)布時間:2024/4/11 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DEFT解读 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

簡介

最近不少2D多目標跟蹤(Multiple Object Tracking,MOT)的成果表明,使用SOTA檢測器加上簡單的基于空間運動的幀間關(guān)聯(lián)就可以獲得相當不錯的跟蹤表現(xiàn),它們的效果優(yōu)于一些使用外觀特征進行重識別丟失軌跡的方法。Uber等最近提出的DEFT(Detection Embeddings for Tracking)是一種聯(lián)合檢測和跟蹤的模型,它是一個以檢測器為底層在上層構(gòu)建基于外觀的匹配網(wǎng)絡(luò)的框架設(shè)計。在二維跟蹤上,它能達到SOTA效果并具有更強的魯棒性,在三維跟蹤上它達到了目前SOTA方法的兩倍性能。

  • 論文標題

    DEFT: Detection Embeddings for Tracking

  • 論文地址

    http://arxiv.org/abs/2102.02267

  • 論文源碼

    https://github.com/MedChaabane/DEFT

介紹

卷積神經(jīng)網(wǎng)絡(luò)的發(fā)展推動了目標檢測領(lǐng)域的進步,TBD范式(Tracking by Detection)的MOT也取得巨大的突破,最近的研究表明,在SOTA跟蹤器上添加簡單的跟蹤機制就可以比依賴舊檢測架構(gòu)的復雜跟蹤器效果更好。TBD范式的跟蹤框架通常有兩步:檢測:在當前幀檢測出所有目標;關(guān)聯(lián):將當前幀上的目標和之前幀上的目標進行鏈接。跨幀關(guān)聯(lián)的方法有很多,但是那些特征可學習關(guān)聯(lián)方法通常更有趣一些,因為它們有望解決建模和啟發(fā)式方法失敗的情況。

即使有了可學習關(guān)聯(lián),二階段方法也可能產(chǎn)生準確性和效率方面的次優(yōu)結(jié)果。因此最近的一個趨勢就是在一個網(wǎng)絡(luò)中聯(lián)合學習檢測和跟蹤任務(wù),這會帶來性能上的提升。可以假設(shè),一個可學習的目標匹配模塊可以添加到主流的CNN檢測器中,從而產(chǎn)生高性能的多目標跟蹤器,進而通過聯(lián)合訓練檢測和跟蹤(關(guān)聯(lián))模塊,兩個模塊彼此適應(yīng)實現(xiàn)更好的性能。相比于那種將檢測作為黑盒模型輸入到關(guān)聯(lián)模塊中,這種讓目標檢測和幀間關(guān)聯(lián)共享backbone的思路會有更好的速度和精度。

所以這篇論文的作者提出了DEFT這個新的方法,在該方法中每個目標的embedding(我這里翻譯為嵌入)通過多尺度檢測backbone獲得,并且這個embedding作為后續(xù)的object-to-track關(guān)聯(lián)子網(wǎng)絡(luò)的外觀特征。DEFT可以靈活用于多個常見的目標檢測backbone上,并且由于檢測和跟蹤共享特征的特性,這種使用外觀和運動信息的方法在速度上相比于那些使用更簡單的關(guān)聯(lián)策略的方法在速度上頁不遑多讓。

DEFT

下面來看整個DEFT的網(wǎng)絡(luò)設(shè)計,總體來說,它是非常類似JDE和FairMOT的一個工作。基于TBD范式,DEFT提出應(yīng)該使用目標檢測器(本文將目標檢測器作為backbone)的中間特征圖來提取目標的embedding從而用于目標匹配子網(wǎng)絡(luò)。如下圖所示,單看上半部分其實就是整個網(wǎng)絡(luò)的結(jié)構(gòu),圖像進入上面的Detector分支,同時檢測器的不同stage的特征圖用于下面的Embedding Extractor模塊的外觀特征學習,不同幀間的檢測目標的外觀特征送入Matching Head中獲得關(guān)聯(lián)相似度得分矩陣。

在DEFT中檢測器和目標匹配網(wǎng)絡(luò)是聯(lián)合訓練的,訓練時,目標匹配網(wǎng)絡(luò)的損失會反傳給檢測backbone從而優(yōu)化外觀特征的提取和檢測任務(wù)的表現(xiàn)。此外,DEFT還在使用了一個低維的LSTM模塊來為目標匹配網(wǎng)絡(luò)提供幾何約束,以避免基于外觀的但在空間變化上不可能發(fā)生的幀間關(guān)聯(lián)。雖說可以基于多個檢測器,DEFT在CenterNet上做了主要的工作,獲得了SOTA并且比其他類似方法要快,這種速度上的快時來自于在DEFT中,目標關(guān)聯(lián)只是額外的一個小模塊,相比于整個檢測任務(wù)只會有很小的延時。

在介紹各個模塊之前,我先講述一下整個DEFT推理時的pipeline,這和上面的訓練其實有所不同。如下圖所示,Embedding Extractor使用檢測backbone多個階段的特征圖和檢測框作為輸入來獲得獲得每個目標的外觀嵌入。Matching Head使用這些嵌入來計算當前幀目標和歷史幀目標(也就是當前軌跡)來計算相似度。之后,一個使用LSTM的運動預測模塊會對相似度矩陣進行限制,從而保證那些物理上不可能產(chǎn)生的軌跡的鏈接。最后,匈牙利算法會基于相似度矩陣計算最終的在線匹配結(jié)果,將檢測結(jié)果鏈接到軌跡上。

下面我們按照論文第三章的敘述思路來詳細理解這個網(wǎng)絡(luò),下面的敘述還是基于下圖。

Object Embeddings

在圖中對應(yīng)的為Embedding Extractor,該模塊從檢測backbone的中間特征圖提取具有表示意義的embedding,在跟蹤的過程中幫助關(guān)聯(lián)(或者叫re-identify)。從圖中可以看到,這個模塊的輸入是檢測器的多個stage的特征圖(每個特征圖有不同的尺度,即有不同的感受野),這種策略會提高單感受野策略的魯棒性。DEFT網(wǎng)絡(luò)的輸入是視頻中的一幀圖像,檢測head會輸出包含多個目標的檢測結(jié)果的bbox集Bt={b1t,b2t,…,bNtt}\mathrm{B}_{t}=\left\{b_{1}^{t}, b_{2}^{t}, \ldots, b_{N_{t}}^{t}\right\}Bt?={b1t?,b2t?,,bNt?t?},不妨用Nt=∣Bt∣N_{t}=\left|\mathrm{B}_{t}\right|Nt?=Bt?來表示這一幀檢測框的數(shù)目。

對每個檢測到的目標,依據(jù)其2D檢測框中心點來提取object embedding,對于3D檢測框,則將其中心點投影到二維空間。那么如何將這個中心點在各stage的特征圖上找到特征呢,其實這里就是做了一個簡單的比例映射。對于在size為W×HW\times HW×H的圖像上第iii個目標的中心點坐標為(x,y)(x, y)(x,y),對當前圖像又存在MMM個選擇的stage的特征圖,該目標在第mmm個size為Wm×Hm×CmW_{m} \times H_{m} \times C_{m}Wm?×Hm?×Cm?的特征圖上映射的中心點坐標為(yHHm,xWWm)\left(\frac{y}{H} H_{m}, \frac{x}{W} W_{m}\right)(Hy?Hm?,Wx?Wm?),在這個第mmm個特征圖上包含一個CmC_mCm?維度的特征向量,這就是這個stage特征圖上目標的object embedding,記為fimf_i^mfim?,然后將MMM個stage通過這種方式得到的特征圖級聯(lián)(concatenate)到一起,得到該目標的object embedding,記為fi=fi1?fi2…fiMf_{i}=f_{i}^{1} \cdot f_{i}^{2} \ldots f_{i}^{M}fi?=fi1??fi2?fiM?,它是一個eee維向量。不過,由于不同stage特征圖上通道數(shù)是不同的,一般是淺層channel少,高層channel多,所以對第mmm個特征圖處理之前,作者使用1x1卷積對淺層特征圖進行升維對高層特征圖進行降維,使得不同stage含有的特征量在最終的object embedding中分布合理。

Matching Head

關(guān)于最后這個Matching Head,作者思路采用的是DAN(Deep Affinity Network,是端到端數(shù)據(jù)關(guān)聯(lián)的一個著名成果)的思路,使用object embedding作為輸入來估計兩幀之間兩兩相似度得分。首先,對每一幀設(shè)定最大目標個數(shù)的限制NmaxN_{max}Nmax?,那么就可以構(gòu)建張量Et,t?n∈RNmax?×Nmax?×2eE_{t, t-n} \in \mathbb{R}^{N_{\max } \times N_{\max } \times 2 e}Et,t?n?RNmax?×Nmax?×2e,它通過將ttt幀中的每個object embedding和t?nt-nt?n幀的每個object embedding沿著深度維度級聯(lián)。為了保證Et,t?nE_{t, t-n}Et,t?n?維度固定,會進行補零操作。這個匯總得到的Et,t?nE_{t, t-n}Et,t?n?會被輸入Matching Head,這個匹配模塊由幾層1x1卷積構(gòu)成,該Head的輸出就是相似度矩陣At,t?n∈RNmax?×Nmax?A_{t, t-n} \in \mathbb{R}^{N_{\max } \times N_{\max }}At,t?n?RNmax?×Nmax?

盡管我們學習到了嵌入之間的相似性,然而不能保證沿著幀前向和后向的相似度得分是對稱的,即tttt?nt-nt?n之間的相似度與t?nt-nt?nttt之間的相似度是不同的。因此對兩個方向分別計算相似度矩陣,用下標’fwd’和’bwd’表示前向和后向。同時為了考慮有些目標不參與關(guān)聯(lián)(新目標或者離開場景的目標),在相似度矩陣At,t?nA_{t,t-n}At,t?n?添加一列填充常數(shù)值ccc,對At,t?nA_{t,t-n}At,t?n?每一行應(yīng)用softmax可以得到矩陣A^bwd\hat{A}^{b w d}A^bwd,它表示包括非匹配分數(shù)在內(nèi)的最終相似度。ccc的選擇并不是特別敏感的,網(wǎng)絡(luò)會學會為大于ccc的進行真實匹配。

每個A^bwd[i,j]\hat{A}^{b w d}[i, j]A^bwd[i,j]表示兩個目標框bitb_i^tbit?bjt?nb_j^{t-n}bjt?n?的估計關(guān)聯(lián)概率,A^bwd[i,Nmax?+1]\hat{A}^{b w d}\left[i, N_{\max }+1\right]A^bwd[i,Nmax?+1]則表示bitb_i^tbit?是一個不在t?nt-nt?n幀中出現(xiàn)的目標的概率。類似的,前向相似度矩陣A^fwd\hat{A}^{f w d}A^fwd通過對原始相似度矩陣的轉(zhuǎn)置At,t?nTA_{t, t-n}^{T}At,t?nT?添加列并逐行softmax得到。在推理過程中,目標框bitb_i^tbit?bjt?nb_j^{t-n}bjt?n?之間的相似度為A^bwd[i,j]\hat{A}^{b w d}[i, j]A^bwd[i,j]A^fwd[j,i]\hat{A}^{f w d}[j, i]A^fwd[j,i]的平均值。

Online Data Association

在DEFT中,保留了最近δ\deltaδ幀中存在的軌跡的每個目標的object embedding,這些組成了memory。一個新bbox和已有軌跡的關(guān)聯(lián)需要計算這個bbox對象和memory中所有軌跡目標的相似度。為了應(yīng)對遮擋和漏檢,track memory會維持幾秒,以便新檢測和之前的目標高度相關(guān)時,進行軌跡恢復。如果一個軌跡NageN_{age}Nage?幀都沒有匹配上,那么它會被刪除。

對于軌跡TTT的定義是一個相關(guān)聯(lián)的檢測框集合,來自于t?nt-nt?n幀到t?1t-1t?1幀,注意,不是每一幀該軌跡都有檢測框,可能某一幀沒有對應(yīng)的檢測結(jié)果。軌跡的長度顯然為TTT,它表示檢測框數(shù)目或者object embedding數(shù)目。那么,可以定義當前的第ttt幀上的第iii個檢測框bitb_i^tbit?與第jjj個軌跡TjT_jTj?之間的距離為下面的式子。

d(bit,Tj)=1∣Tj∣∑bkt?n∈TjA^t,t?nfwd[k,i]+A^t,t?nbwd[i,k]2d\left(b_{i}^{t}, \mathrm{~T}_{j}\right)=\frac{1}{\left|\mathrm{~T}_{j}\right|} \sum_{b_{k}^{t-n} \in \mathrm{T}_{j}} \frac{\hat{A}_{t, t-n}^{f w d}[k, i]+\hat{A}_{t, t-n}^{b w d}[i, k]}{2} d(bit?,?Tj?)=?Tj?1?bkt?n?Tj??2A^t,t?nfwd?[k,i]+A^t,t?nbwd?[i,k]?

檢測框和軌跡T_j的匹配滿足互斥對應(yīng)原則,是一個二分圖匹配問題,記K=TjK = {T_j}K=Tj?為當前軌跡集,構(gòu)建檢測集到軌跡集的相似度矩陣D∈R∣K∣×(Nt+∣K∣)D \in \mathbb{R}^{|K| \times\left(N_{t}+|K|\right)}DRK×(Nt?+K),它來自于所有檢測和軌跡的size為∣K∣×Nt|K| \times N_tK×Nt?逐對距離矩陣追加一個size為K×KK \times KK×K的矩陣XXX,這個XXX表示當一個軌跡不和任何當前幀的檢測關(guān)聯(lián)的情況。XXX對角線上的元素為軌跡中所有檢測的平均不匹配得分,非對角線元素設(shè)置為?∞-\infty?,具體而言,DDD按照下式構(gòu)建。

D=[S∣X]S[j,i]=d(bit,Tj)X[j,k]={1∣Tj∣∑bkt?n∈TjA^t,t?nfwd[k,Nmax?+1]j=k?∞,j≠k\begin{aligned} D &=[S \mid X] \\ S[j, i] &=d\left(b_{i}^{t}, \mathrm{~T}_{j}\right) \\ X[j, k] &=\left\{\begin{array}{ll} \frac{1}{\left|\mathrm{~T}_{j}\right|} \sum_{b_{k}^{t-n} \in \mathrm{T}_{j}} \hat{A}_{t, t-n}^{f w d}\left[k, N_{\max }+1\right] & j=k \\ -\infty, & j \neq k \end{array}\right. \end{aligned} DS[j,i]X[j,k]?=[SX]=d(bit?,?Tj?)={?Tj?1?bkt?n?Tj??A^t,t?nfwd?[k,Nmax?+1]?,?j=kj?=k??

接著,只要將DDD送入匈牙利算法中進行求解即可。只有親和度大于閾值γ1\gamma_1γ1?會被關(guān)聯(lián),為被匹配的檢測會作為新的軌跡,連續(xù)NageN_ageNa?ge幀沒被匹配到的軌跡會被認為離開場景,從而刪除。

Motion Forecasting

如果僅僅使用學習到的外觀嵌入進行幀間匹配,那么很可能出現(xiàn)兩個目標其實真的外觀空間上很相似,從而造成匹配上的問題。常見的手段是添加一個幾何或者時間約束來限制匹配,常用的是卡爾曼濾波或者LSTM。論文采用的是LSTM設(shè)計運動預測模塊,該模塊會依據(jù)過去ΔTpast\Delta T_{\text {past}}ΔTpast?幀預測未來ΔTpred?\Delta T_{\text {pred }}ΔTpred??幀軌跡所在的位置。這個運動預測模塊用來約束那些物理上不可能存在的關(guān)聯(lián),它將距離軌跡預測位置太遠的檢測框的相似度距離置為?∞-\infty?。這個模塊的具體設(shè)計細節(jié)可以查看原論文的補充材料。

Training

如上圖所示,為了訓練網(wǎng)絡(luò)的匹配模塊,訓練時將間隔nnn幀的一個兩幀組成的幀對(pair)輸入網(wǎng)絡(luò)。圖像對被1≤n≤ngap1≤n≤n_{gap}1nngap?的隨機數(shù)幀分開,以鼓勵網(wǎng)絡(luò)學習對臨時遮擋或漏檢具有魯棒性。對每個輸入幀對,會有兩個ground truth的匹配矩陣MfwdM^{fwd}MfwdMbwdM^{bwd}Mbwd分別表示前向和后向關(guān)聯(lián),這個矩陣每個元素[i,j]∈{0,1}[i, j] \in\{0,1\}[i,j]{0,1}并且維度為Nmax?×(Nmax?+1)N_{\max } \times\left(N_{\max }+1\right)Nmax?×(Nmax?+1)來允許未被關(guān)聯(lián)的目標。矩陣中為111的位置表示一個關(guān)聯(lián)或者未被關(guān)聯(lián)的目標,其他情況為000

匹配損失由前向匹配損失Lmatcl?bwd\mathcal{L}_{\text {matcl }}^{b w d}Lmatcl?bwd?和后向匹配損失Lmatcl?bwd\mathcal{L}_{\text {matcl }}^{b w d}Lmatcl?bwd?平均組成,前者表示ttt幀和t?nt-nt?n幀的匹配誤差,后者相反。具體定義如下。

Lmatch??=∑i=1Nmax?∑j=1Nmax?+1M?[i,j]log?(A^?[i,j]),Lmatch?=Lmatch?fwd+Lmatch?bwd2(Nt+Nt?n)\begin{aligned} \mathcal{L}_{\text {match }}^{*} &=\sum_{i=1}^{N_{\max }} \sum_{j=1}^{N_{\max }+1} M^{*}[i, j] \log \left(\hat{A}^{*}[i, j]\right), \\ \mathcal{L}_{\text {match }} &=\frac{\mathcal{L}_{\text {match }}^{f w d}+\mathcal{L}_{\text {match }}^{b w d}}{2\left(N_{t}+N_{t-n}\right)} \end{aligned}Lmatch???Lmatch???=i=1Nmax??j=1Nmax?+1?M?[i,j]log(A^?[i,j]),=2(Nt?+Nt?n?)Lmatch?fwd?+Lmatch?bwd???

整個網(wǎng)絡(luò)的訓練損失由匹配損失和檢測器損失構(gòu)成,它倆的相對權(quán)重網(wǎng)絡(luò)自動學習得到。

Ljoint?=1eλ1(Ldetect?t+Ldetect?t?n2)+1eλ2Lmatch?+λ1+λ2\mathcal{L}_{\text {joint }}=\frac{1}{e^{\lambda_{1}}}\left(\frac{\mathcal{L}_{\text {detect }}^{t}+\mathcal{L}_{\text {detect }}^{t-n}}{2}\right)+\frac{1}{e^{\lambda_{2}}} \mathcal{L}_{\text {match }}+\lambda_{1}+\lambda_{2}Ljoint??=eλ1?1?(2Ldetect?t?+Ldetect?t?n??)+eλ2?1?Lmatch??+λ1?+λ2?

實驗

數(shù)據(jù)集使用的是MOT16、MOT17和KITTI作為2D評估,nuScenes作為3D評估標準數(shù)據(jù)集。

首先是對比多個backbone檢測器,效果如下圖,發(fā)現(xiàn)CenterNet效果最好,所以后面都采用CenterNet作為backbone。

在MOT17、KITTI和nuScenes上的與其他方法對比如下,均達到了SOTA表現(xiàn),作者還進行了效果分析和消融實驗,感興趣的可以查看原論文(包括補充材料)。

總結(jié)

論文提出了一種新的聯(lián)合檢測和跟蹤的MOT方法,在多個基準上達到SOTA表現(xiàn),可以在主流的目標檢測器的基礎(chǔ)上構(gòu)建,非常靈活高效,是值得關(guān)注的MOT新方法。

總結(jié)

以上是生活随笔為你收集整理的DEFT解读的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。