GCNet解读
投稿于ICCV2021的一篇多目標(biāo)跟蹤的工作(暫未收錄),提出了一個(gè)比較簡(jiǎn)潔的范式,雖然由于側(cè)重點(diǎn)在自動(dòng)駕駛上因此沒(méi)有在MOT Challenge賽道上比拼,不過(guò)在其他基準(zhǔn)數(shù)據(jù)集上的效果還是很不錯(cuò)的。和另一篇新的SOTA方法TransCenter類(lèi)似,它們都是基于CenterNet的新SOTA,這也一定程度上驗(yàn)證了以點(diǎn)為目標(biāo)的檢測(cè)確實(shí)比以框?yàn)槟繕?biāo)的檢測(cè)更適合于遮擋場(chǎng)景下的多目標(biāo)跟蹤。
簡(jiǎn)介
此前的多目標(biāo)跟蹤(MOT)方法多遵循TBD(Tracking by Detection)范式,將檢測(cè)和跟蹤分為兩個(gè)組件。早期的TBD方法針對(duì)檢測(cè)任務(wù)和跟蹤任務(wù)需要分別進(jìn)行特征提取,典型的如DeepSORT方法。近段時(shí)間,不少方法將兩個(gè)任務(wù)的特征提取融入一個(gè)網(wǎng)絡(luò)中形成了JDT(Joint Detection and Tracking)范式,典型的是JDE方法。不過(guò),JDE方法的跟蹤部分依然依賴于數(shù)據(jù)關(guān)聯(lián)并且需要復(fù)雜的后處理來(lái)進(jìn)行軌跡的生命周期管理,因此它們并沒(méi)有將檢測(cè)和跟蹤組合得很好。因此,GCNet(Global Correlation Network,全局相關(guān)網(wǎng)絡(luò))被提了出來(lái),它以端到端得方式實(shí)現(xiàn)了聯(lián)合多目標(biāo)檢測(cè)和跟蹤。與大多數(shù)目標(biāo)檢測(cè)方法不同的是,GCNet引入了全局相關(guān)層來(lái)回歸目標(biāo)的絕對(duì)大小和邊框坐標(biāo),而不是偏移量預(yù)測(cè)。GCNet的pipeline概念上是非常簡(jiǎn)潔的,它不需要非極大值抑制、數(shù)據(jù)關(guān)聯(lián)以及其他復(fù)雜的跟蹤策略。在UA-DETRAC這個(gè)車(chē)輛跟蹤數(shù)據(jù)集上進(jìn)行評(píng)估,GCNet達(dá)到了SOTA的檢測(cè)和跟蹤表現(xiàn)。
-
論文標(biāo)題
Global Correlation Network: End-to-End Joint Multi-Object Detection and Tracking
-
論文地址
http://arxiv.org/abs/2103.12511
-
論文源碼
暫未開(kāi)源
介紹
多目標(biāo)跟蹤是計(jì)算機(jī)視覺(jué)中的一個(gè)基本問(wèn)題,它的目的是從連續(xù)的圖像幀中得出所有感興趣的目標(biāo)的軌跡。MOT具有廣泛的應(yīng)用場(chǎng)景,如自動(dòng)駕駛、運(yùn)動(dòng)姿態(tài)分析、交通監(jiān)控等,因此近年來(lái)受到越來(lái)越多的關(guān)注。
傳統(tǒng)的多目標(biāo)跟蹤方法遵循TBD范式,分為兩個(gè)子模塊,分別是檢測(cè)和跟蹤。隨著目標(biāo)檢測(cè)的快速發(fā)展,這些算法取得了良好的性能,幾乎統(tǒng)治了整個(gè)MOT領(lǐng)域。TBD范式的跟蹤模塊主要有三個(gè)部分:特征提取、數(shù)據(jù)關(guān)聯(lián)和軌跡生命周期管理。早期的跟蹤方法使用如位置、形狀和速度這類(lèi)的簡(jiǎn)單特征來(lái)進(jìn)行數(shù)據(jù)關(guān)聯(lián),不過(guò)這些特征存在明顯的缺陷。因此,后來(lái)的方法開(kāi)始采用外觀特征,特別是深度神經(jīng)網(wǎng)絡(luò)提取的高級(jí)語(yǔ)義特征。外觀特征大大提高了關(guān)聯(lián)的準(zhǔn)確性和魯棒性,但是也帶來(lái)的比較大的計(jì)算開(kāi)銷(xiāo)增長(zhǎng)。因此,當(dāng)前這個(gè)環(huán)境下,一些MOT方法將特征提取集成到了檢測(cè)模塊內(nèi),這就形成了JDT范式,其中比較主流的思路就是添加一個(gè)額外的ReID head來(lái)獲得實(shí)例級(jí)別的特征以進(jìn)行數(shù)據(jù)關(guān)聯(lián)。雖然這類(lèi)方法減少了計(jì)算的開(kāi)銷(xiāo),但是數(shù)據(jù)關(guān)聯(lián)仍舊需要進(jìn)行運(yùn)動(dòng)預(yù)測(cè)、設(shè)置復(fù)雜的跟蹤策略,這就會(huì)導(dǎo)致引入太多的超參數(shù)和繁瑣的推理流程。
在這篇論文中,作者提出了一種新的端到端聯(lián)合檢測(cè)和跟蹤的網(wǎng)絡(luò),該網(wǎng)絡(luò)通過(guò)同樣的方式完成邊界框回歸和跟蹤,這種方式稱為全局相關(guān)操作(global correlation)。我們都知道邊界框的回歸通常利用局部特征去估計(jì)anchor與ground truth之間的偏移量,或者估計(jì)框大小以及關(guān)鍵點(diǎn)與特征位置之間的偏移量。GCNet中,網(wǎng)絡(luò)直接回歸邊界框的絕對(duì)坐標(biāo)和尺寸而不是相對(duì)坐標(biāo)或偏移量,但是傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)中,由于感受野限制,局部特征無(wú)法包含全局信息,因此回歸全局的絕對(duì)坐標(biāo)是比較困難的。自注意力機(jī)制允許每個(gè)位置的特征包含全局的信息,但是它的計(jì)算復(fù)雜度太高以至于并不能用于高分辨率特征圖,因此作者提出了global correlation layer來(lái)編碼全局信息到每個(gè)位置的特征里。
關(guān)于global correlation layer的細(xì)節(jié)我會(huì)在下一節(jié)詳細(xì)講解,GCNet通過(guò)精細(xì)的設(shè)計(jì)聯(lián)合實(shí)現(xiàn)了檢測(cè)和跟蹤并且不需要復(fù)雜的后處理步驟,是一個(gè)非常簡(jiǎn)潔的pipeline。由于其關(guān)注的主要是自動(dòng)駕駛領(lǐng)域,因此作者只在自動(dòng)駕駛數(shù)據(jù)集UA-DETRAC上驗(yàn)證了方法的可行性,檢測(cè)方面獲得了74.04%的AP和36的FPS,在跟蹤上獲得了19.10%的PR-MOTA和34的FPS,上圖是一些跟蹤結(jié)果的示例。
GCNet
GCNet設(shè)計(jì)用于解決online MOT問(wèn)題,為了后面敘述方便,這里首先給定一些說(shuō)明。在ttt時(shí)刻,現(xiàn)有的目標(biāo)軌跡集為{T1,T2,…,Tn}\left\{T_{1}, T_{2}, \ldots, T_{n}\right\}{T1?,T2?,…,Tn?},其中每個(gè)Ti=[Bi,1,Bi,2,…,Bi,t?1]T_{i}=\left[B_{i, 1}, B_{i, 2}, \ldots, B_{i, t-1}\right]Ti?=[Bi,1?,Bi,2?,…,Bi,t?1?]表示第iii個(gè)目標(biāo)在各個(gè)時(shí)刻的邊框信息。這里的BijB_{i j}Bij?表示第iii個(gè)目標(biāo)在時(shí)間jjj時(shí)刻的邊界框。考慮當(dāng)前幀圖像It∈Rh×w×3I_{t} \in R^{h \times w \times 3}It?∈Rh×w×3,應(yīng)當(dāng)將當(dāng)前幀上的目標(biāo)框Bx,tB_{x, t}Bx,t?安排給歷史軌跡,或者成為新的新的軌跡。下文會(huì)詳細(xì)講述整個(gè)GCNet的整個(gè)pipeline。
Global Correlation Layer
首先,來(lái)看作者提出的global correlation layer是如何對(duì)全局信息進(jìn)行編碼的。對(duì)于特征圖F∈Rh×w×cF \in R^{h \times w \times c}F∈Rh×w×c,通過(guò)兩個(gè)線性變換計(jì)算特征圖Q\mathbf{Q}Q和特征圖K\mathbf{K}K,計(jì)算式如下。
Qij=WqFij,Kij=WkFijQ_{i j}=W_{q} F_{i j}, K_{i j}=W_{k} F_{i j} Qij?=Wq?Fij?,Kij?=Wk?Fij?
上式中的下標(biāo)表示行列的位置,如Xij∈RcX_{i j} \in R^{c}Xij?∈Rc表示XXX在第iii行第jjj列位置的特征向量。
接著,對(duì)每個(gè)特征向量QijQ_{ij}Qij?,計(jì)算其與所有的KijK_{ij}Kij?之間的余弦距離,然后再通過(guò)矩陣WWW進(jìn)行線性變換即可得到相關(guān)向量Cij∈Rc′C_{ij} \in R^{c'}Cij?∈Rc′,它的形式如下。
Cij=W?flatten?([QijK11∣Qij∣∣K11∣?QijK1w∣Qij∥K1w∣???QijKh1∣Qij∣∣Kh1∣?QijKhw∣Qij∥Khw∣])C_{i j}=W \cdot \text { flatten }\left(\left[\begin{array}{ccc} \frac{Q_{i j} K_{11}}{\left|Q_{i j}\right|\left|K_{11}\right|} & \cdots & \frac{Q_{i j} K_{1 w}}{\left|Q_{i j} \| K_{1 w}\right|} \\ \vdots & \ddots & \vdots \\ \frac{Q_{i j} K_{h 1}}{\left|Q_{i j}\right|\left|K_{h 1}\right|} & \cdots & \frac{Q_{i j} K_{h w}}{\left|Q_{i j} \| K_{h w}\right|} \end{array}\right]\right) Cij?=W??flatten???????????∣Qij?∣∣K11?∣Qij?K11???∣Qij?∣∣Kh1?∣Qij?Kh1???????∣Qij?∥K1w?∣Qij?K1w???∣Qij?∥Khw?∣Qij?Khw?????????????
因此,每個(gè)CijC_{ij}Cij?都編碼了局部特征向量QijQ_{ij}Qij?和全局特征圖KKK之間的相關(guān)性,所以它可以用于圖像中相應(yīng)位置的目標(biāo)的絕對(duì)邊界框。所有相關(guān)向量可以構(gòu)建一個(gè)相關(guān)特征圖C∈Rh×w×c′C \in R^{h \times w \times c^{\prime}}C∈Rh×w×c′,因此可以通過(guò)簡(jiǎn)單的1x1卷積來(lái)得到邊框預(yù)測(cè)B∈Rh×w×4B \in R^{h \times w \times 4}B∈Rh×w×4。這個(gè)Global Correlation Layer操作在GCNet的檢測(cè)和跟蹤結(jié)構(gòu)中被使用,不過(guò),在檢測(cè)時(shí),QQQ和KKK來(lái)自同一幀圖像,而在跟蹤時(shí),QQQ來(lái)自前一幀圖像KKK來(lái)自當(dāng)前幀圖像。
這個(gè)Global Correlation Layer操作,其實(shí)是作者定義的一套計(jì)算全局相關(guān)性特征圖的計(jì)算方式,下面的模塊中會(huì)用到。
Global Correlation Network
整個(gè)GCNet分為檢測(cè)模塊(Detection module)和跟蹤模塊(Tracking module) 兩部分,我們首先來(lái)看檢測(cè)模塊,它的結(jié)構(gòu)如下圖所示,包含三個(gè)部分分別是backbone、分類(lèi)分支、回歸分支。backbone用于高級(jí)語(yǔ)義特征的提取,由于分類(lèi)分支采用的是和CenterNet一樣的思路,特征圖的每個(gè)位置對(duì)應(yīng)一個(gè)目標(biāo)的中心點(diǎn),因此特征圖的分辨率其實(shí)對(duì)網(wǎng)絡(luò)的性能影響非常大。為了得到高分辨率大感受野的特征圖,作者采用和FPN一樣的跳躍連接結(jié)構(gòu),但是只輸出最精細(xì)級(jí)別的特征圖FFF,它的尺寸為h′×w′×ch^{\prime} \times w^{\prime} \times ch′×w′×c,等價(jià)于h8×w8×c\frac{h}{8} \times \frac{w}{8} \times c8h?×8w?×c,這里的hhh和www表示原始圖像的高和寬,這個(gè)分辨率是DETR的四倍。
到這里,通過(guò)backbone得到了原始圖像的特征圖FFF,利用FFF上圖最下面的分類(lèi)分支通過(guò)卷積層運(yùn)算得到分類(lèi)置信度圖Yd∈Rh′×w′×nY_ze8trgl8bvbq \in R^{h^{\prime} \times w^{\prime} \times n}Yd?∈Rh′×w′×n,它的數(shù)值均在0和1之間,因此它其實(shí)是一個(gè)熱力圖。YdY_ze8trgl8bvbqYd?的第iii個(gè)通道的峰值對(duì)應(yīng)于第iii類(lèi)的目標(biāo)的中心。
然后,上面的回歸分支輸入backbone的特征圖FFF和分類(lèi)置信度圖YdY_dYd?,然后計(jì)算三個(gè)特征圖,即QQQ、KKK和VVV。它們的計(jì)算式如下式,這里Conv(F,a,b,c)Conv(F,a,b,c)Conv(F,a,b,c)表示核尺寸為aaa、步長(zhǎng)為bbb、核數(shù)目為ccc的卷積層,BNBNBN表示batch
normalization層。
Q=BNQ(Conv?Q(F,1,1,c)+P)K=Gate?[BNK(Conv?K(F,1,1,c)+P),Yd]V=Conv?V(F,1,1,c)\begin{aligned} Q &=B N_{Q}\left(\operatorname{Conv}_{Q}(F, 1,1, c)+P\right) \\ K &=\operatorname{Gate}\left[B N_{K}\left(\operatorname{Conv}_{K}(F, 1,1, c)+P\right), Y_ze8trgl8bvbq\right] \\ V &=\operatorname{Conv}_{V}(F, 1,1, c) \end{aligned} QKV?=BNQ?(ConvQ?(F,1,1,c)+P)=Gate[BNK?(ConvK?(F,1,1,c)+P),Yd?]=ConvV?(F,1,1,c)?
上式其實(shí)也對(duì)應(yīng)上圖的三條之路,應(yīng)該是不難理解的,唯一的疑惑就是這里的Gate?(X,Y)\operatorname{Gate}(X, Y)Gate(X,Y)的含義,它其實(shí)是下圖所示的一種空間注意力結(jié)構(gòu),比較簡(jiǎn)單,我就不展開(kāi)敘述了。此外,在QQQ和KKK計(jì)算之前,特征圖FFF加上了一個(gè)shape一樣的位置編碼PPP,它的計(jì)算方式如下。
Pijk={cos?(4πkc+πih),0?k<c2cos?(4πkc+πjw),c2?k<c0?i<h′,0?j<w′P_{i j k}=\left\{\begin{array}{c} \cos \left(\frac{4 \pi k}{c}+\frac{\pi i}{h}\right), \quad 0 \leqslant k<\frac{c}{2} \\ \cos \left(\frac{4 \pi k}{c}+\frac{\pi j}{w}\right), \quad \frac{c}{2} \leqslant k<c \\ 0 \leqslant i<h^{\prime}, 0 \leqslant j<w^{\prime} \end{array}\right. Pijk?=????cos(c4πk?+hπi?),0?k<2c?cos(c4πk?+wπj?),2c??k<c0?i<h′,0?j<w′?
通過(guò)這個(gè)位置編碼,位置上距離較近的兩個(gè)嵌入向量余弦相似度較大,距離較遠(yuǎn)的兩個(gè)嵌入向量余弦相似度較小,因而可以減少跟蹤時(shí)類(lèi)似對(duì)象的負(fù)面影響。按照之前我們分析的Global Correlation Layer,有了QQQ和KKK就可以計(jì)算處相關(guān)性特征圖CCC了,然后,就可以利用下面的式子計(jì)算最終的邊界框Bd,ij=[xij,yij,hij,wij]B_{d, i j}= \left[x_{i j}, y_{i j}, h_{i j}, w_{i j}\right]Bd,ij?=[xij?,yij?,hij?,wij?]。需要注意的是,GCNet直接回歸目標(biāo)邊界框的絕對(duì)坐標(biāo)和尺寸,這和當(dāng)前主流的目標(biāo)檢測(cè)思路是不一樣的,尤其和基于anchor的方法不同。
Bd,ij=W?BN([CijVij])B_{d, i j}=W \cdot B N\left(\left[\begin{array}{ll} C_{i j} & V_{i j} \end{array}\right]\right) Bd,ij?=W?BN([Cij??Vij??])
接著,我們來(lái)看跟蹤模塊,其實(shí)所謂跟蹤就是為當(dāng)前幀的目標(biāo)賦予ID的過(guò)程,它可以通過(guò)和歷史目標(biāo)關(guān)聯(lián)也可以作為新的軌跡的開(kāi)端。跟蹤模塊的結(jié)構(gòu)如下圖所示,它的輸入由三部分組成,分別是當(dāng)前幀的特征圖KKK、當(dāng)前幀的檢測(cè)置信度圖(即熱力圖)、歷史軌跡的特征向量。跟蹤模塊為每個(gè)歷史軌跡輸出一個(gè)跟蹤置信度和邊界框。從下圖不難看出,它的結(jié)構(gòu)其實(shí)和檢測(cè)模塊是很類(lèi)似的,它的大部分參數(shù)也是和檢測(cè)模塊共享的,除了計(jì)算跟蹤置信度的全連接層(下圖的綠色塊)。跟蹤框和檢測(cè)框在表達(dá)上是一致的,都是形如Bi=[xi,yi,hi,wi]B_{i}=\left[x_{i}, y_{i}, h_{i}, w_{i}\right]Bi?=[xi?,yi?,hi?,wi?]的絕對(duì)坐標(biāo)的格式。跟蹤置信度則表明這個(gè)目標(biāo)仍舊在當(dāng)前幀上的概率。此外,由于跟蹤模塊以逐目標(biāo)的方式進(jìn)行(也就是每個(gè)歷史軌跡都會(huì)逐一處理到),因此它能夠很自然地進(jìn)行ID傳遞而不需要關(guān)聯(lián)步驟,這和并行SOT方法類(lèi)似。
Training
GCNet是可以端到端訓(xùn)練的,不過(guò)為了更好的效果,作者采用先訓(xùn)練檢測(cè)模塊再整個(gè)網(wǎng)絡(luò)微調(diào)的二階段訓(xùn)練思路。
分類(lèi)分支的訓(xùn)練策略和CornerNet一致,GT熱力圖的產(chǎn)生方式如下式,通過(guò)2D高斯核函數(shù)產(chǎn)生GT heatmap Ygt∈Rh′×w′×nY_{g t} \in R^{h^{\prime} \times w^{\prime} \times n}Ygt?∈Rh′×w′×n 。
Ygt,ijk=max?1?n?Nk(Gijn)Gijn=exp?[?(i?xn)22σx,n2?(i?yn)22σy,n2]\begin{array}{l} Y_{g t, i j k}=\max _{1 \leqslant n \leqslant N_{k}}\left(G_{i j n}\right) \\ G_{i j n}=\exp \left[-\frac{\left(i-x_{n}\right)^{2}}{2 \sigma_{x, n}^{2}}-\frac{\left(i-y_{n}\right)^{2}}{2 \sigma_{y, n}^{2}}\right] \end{array} Ygt,ijk?=max1?n?Nk??(Gijn?)Gijn?=exp[?2σx,n2?(i?xn?)2??2σy,n2?(i?yn?)2?]?
上面式子中的NkN_kNk?表示類(lèi)別kkk的目標(biāo)數(shù)目,[xn,yn]\left[x_{n}, y_{n}\right][xn?,yn?]則表示目標(biāo)nnn的中心,σ2\sigma^2σ2依據(jù)目標(biāo)的尺寸而定,σx\sigma_xσx?和σy\sigma_yσy?的表達(dá)式如下,其中的IoU閾值設(shè)置為0.3。
σx=h(1?IoU_threshold)3(1+IoU_threshold)σy=w(1?IoU_threshold)3(1+IoU_threshold)\begin{aligned} \sigma_{x} &=\frac{h(1- IoU\_threshold)}{3(1+IoU\_threshold)} \\ \sigma_{y} &=\frac{w(1-IoU\_threshold )}{3(1+IoU\_threshold )} \end{aligned} σx?σy??=3(1+IoU_threshold)h(1?IoU_threshold)?=3(1+IoU_threshold)w(1?IoU_threshold)??
分類(lèi)損失是像素級(jí)的focal loss,式子如下。
Ld,cla=?1h′w′n∑ijk{(1?Yd,ijk)2log?(Yd,ijk),Ygt,ijk=1(1?Ygt,ijk)2Yd,ijk2log?(1?Yd,ijk),Ygt,ijk≠1\begin{array}{c} L_{d, c l a}=-\frac{1}{h^{\prime} w^{\prime} n} \sum_{i j k}\left\{\begin{array}{ll} \left(1-Y_{d, i j k}\right)^{2} \log \left(Y_{d, i j k}\right), & Y_{g t, i j k}=1 \\ \left(1-Y_{g t, i j k}\right)^{2} Y_{d, i j k}^{2} \log \left(1-Y_{d, i j k}\right), & Y_{g t, i j k} \neq 1 \end{array}\right. \end{array} Ld,cla?=?h′w′n1?∑ijk?{(1?Yd,ijk?)2log(Yd,ijk?),(1?Ygt,ijk?)2Yd,ijk2?log(1?Yd,ijk?),?Ygt,ijk?=1Ygt,ijk??=1??
回歸損失采用CIoU loss,算式如下。
Ld,reg=∑[ij]=1βij?LCIoU(Bgt,ij,Bd,ij)L_{d, r e g}=\sum_{[i j]=1} \beta_{i j} \cdot L_{C I o U}\left(B_{g t, i j}, B_{d, i j}\right) Ld,reg?=[ij]=1∑?βij??LCIoU?(Bgt,ij?,Bd,ij?)
這里的[ij]=1[i j]=1[ij]=1表示相應(yīng)的Bd,ijB_{d, i j}Bd,ij?被分配給一個(gè)GT框,只有當(dāng)Gijn>0.3G_{i j n}>0.3Gijn?>0.3 and ∑nGijn?max?nGijn<0.3\sum_{n} G_{i j n}- \max _{n} G_{i j n}<0.3∑n?Gijn??maxn?Gijn?<0.3滿足時(shí)一個(gè)Bd,ijB_{d, i j}Bd,ij?才會(huì)被分配給一個(gè)GT,表示如下。
[ij]={1,?nGijn>0.3&∑nGijn?max?nGijn<0.30,otherwise?[i j]=\left\{\begin{array}{ll} 1, \exists_{n} G_{i j n}>0.3 \& \sum_{n} G_{i j n}-\max _{n} G_{i j n}<0.3 \\ 0, & \text { otherwise } \end{array}\right. [ij]={1,?n?Gijn?>0.3&∑n?Gijn??maxn?Gijn?<0.30,??otherwise??
并且對(duì)于max?nGijn=1\max _{n} G_{i j n}=1maxn?Gijn?=1的BijB_{ij}Bij?,設(shè)置回歸損失的權(quán)重為2,其余為1,這是為了加強(qiáng)中心點(diǎn)的邊框精準(zhǔn)度。
首先預(yù)訓(xùn)練檢測(cè)模塊,然后在整個(gè)網(wǎng)絡(luò)上微調(diào),微調(diào)這一步訓(xùn)練時(shí),一次輸入兩個(gè)圖像It?iI_{t-i}It?i?和ItI_tIt?,這里的iii在1和5之間。損失包含兩部分,分別是It?iI_{t-i}It?i?的檢測(cè)損失和兩幅圖像的跟蹤損失,跟蹤損失又由兩項(xiàng)組成,回歸CIoU損失和分類(lèi)focal loss。跟蹤的GT由目標(biāo)的ID確定,當(dāng)It?iI_{t-i}It?i?中的[ij]=1[i j] = 1[ij]=1時(shí),相對(duì)應(yīng)的目標(biāo)也存在ItI_tIt?中,Bt,ijB_{t, i j}Bt,ij? 和 Yt,ijY_{t, i j}Yt,ij?為正例。最終的損失如下式所示。
Loss?=Ld,cla+Lt,cla+0.1×(Ld,reg+Lt,reg)\operatorname{Loss}=L_{d, c l a}+L_{t, c l a}+0.1 \times\left(L_{d, r e g}+L_{t, r e g}\right) Loss=Ld,cla?+Lt,cla?+0.1×(Ld,reg?+Lt,reg?)
Inference
上圖所示為整個(gè)推理算法,輸入為連續(xù)的圖像幀序列I1~I(xiàn)tI_{1} \sim I_{t}I1?~It?,記錄每個(gè)目標(biāo)的軌跡TiT_iTi?、置信度YiY_iYi?、特征向量及候選向量[Vi,Qi]\left[V_{i}, Q_{i}\right][Vi?,Qi?]為四個(gè)集合,T,O,Y,C\mathcal{T}, \mathcal{O}, \mathcal{Y}, \mathcal{C}T,O,Y,C,它們均初始化為空。在每個(gè)時(shí)刻,對(duì)當(dāng)前幀圖像進(jìn)行檢測(cè)并在軌跡集合候選集之間進(jìn)行跟蹤。通過(guò)跟蹤置信度來(lái)更新集合Y,C\mathcal{Y}, \mathcal{C}Y,C的所有置信度,其中Yi=min?(2×Yi×Yt,i,1.5)Y_{i}=\min \left(2 \times Y_{i} \times Y_{t, i}, 1.5\right)Yi?=min(2×Yi?×Yt,i?,1.5)。軌跡和候選的置信度低于p2p_2p2?將會(huì)被刪除,然后軌跡集、候選集和特征集也會(huì)相應(yīng)更新。檢測(cè)結(jié)果中,IoU高于p3p_3p3?或者置信度低于p2p_2p2?的將被忽略。對(duì)于剩下的檢測(cè)框,如果置信度高于閾值p1p_1p1?則會(huì)用于生成新的軌跡,此外的框加入候選集合C\mathcal{C}C中。這里不難發(fā)現(xiàn),整個(gè)檢測(cè)和跟蹤都能以稀疏模式完成,因此整體計(jì)算復(fù)雜度并不高。
實(shí)驗(yàn)
關(guān)于一些實(shí)驗(yàn)的配置這里忽略,感興趣的可以查看原論文。作者首先是對(duì)各個(gè)模塊的有效性進(jìn)行了消融實(shí)驗(yàn),得出的結(jié)果如下表。可以看到,無(wú)論是Gate還是V亦或是位置編碼,都是實(shí)實(shí)在在有效的組件。
在基準(zhǔn)數(shù)據(jù)集上和其他方法比較檢測(cè)的結(jié)果如下,改方法優(yōu)勢(shì)還是比較明顯的。
GCNet在多目標(biāo)跟蹤任務(wù)上的效果如下圖,達(dá)到SOTA水準(zhǔn),且速度很快,達(dá)到34FPS。
總結(jié)
這篇論文提出了一種新的聯(lián)合檢測(cè)和跟蹤的框架,GCNet,通過(guò)引入全局相關(guān)計(jì)算操作來(lái)捕獲全局信息實(shí)現(xiàn)絕對(duì)尺寸和坐標(biāo)的回歸,并且通過(guò)雙幀輸入無(wú)需復(fù)雜的關(guān)聯(lián)策略即可達(dá)到SOTA表現(xiàn)。實(shí)驗(yàn)表明,GCNet速度較快且達(dá)到實(shí)時(shí)應(yīng)用的需求,滿足自動(dòng)駕駛等場(chǎng)景的應(yīng)用。總的來(lái)說(shuō),是JDT領(lǐng)域的一個(gè)新的方法,也留有了不少改進(jìn)的空間,是一個(gè)該方向強(qiáng)有力的baseline。本文也只是我本人從自身出發(fā)對(duì)這篇文章進(jìn)行的解讀,想要更詳細(xì)理解的強(qiáng)烈推薦閱讀原論文。最后,如果我的文章對(duì)你有所幫助,歡迎一鍵三連,你的支持是我不懈創(chuàng)作的動(dòng)力。
總結(jié)
- 上一篇: TransCenter解读
- 下一篇: CorrTracker解读