免费高清特黄a大片,九一h片在线免费看,a免费国产一级特黄aa大,国产精品国产主播在线观看,成人精品一区久久久久,一级特黄aa大片,俄罗斯无遮挡一级毛片

分享

閱讀筆記

 李xinle 2021-08-23

來源:arXiv:2005.12872v3, Facebook AI
代碼:https://github.com/facebookresearch/detr

image.png

Transformer入侵CV。目標(biāo)檢測目前的框架包括mmdetection等對于檢測領(lǐng)域挺好用的,但對于其他領(lǐng)域而言可能就挺難上手的,集成度有點太大:( Facebook傲嬌的不適用已有的檢測框架,支持。另一方面,將大熱的transformer納入cv領(lǐng)域的基礎(chǔ)目標(biāo)檢測,必然引起cv領(lǐng)域transformer化的熱潮。個人更欣賞這種暴力美學(xué),目標(biāo)檢測目前發(fā)展有些過多設(shè)計的痕跡,讓人對其泛化能力還是有所懷疑的。當(dāng)然DETR把暴力推的太遠(yuǎn),肯定會有些工作把他往回拉,但這個工作還是開創(chuàng)了一個新的思路的,讓人興奮。值得仔細(xì)讀一下。

摘要

我們提出了一種新的檢測方法將目標(biāo)檢測任務(wù)直接視作為集合預(yù)測問題。該方法有效的移除了傳統(tǒng)深度檢測方法中的許多手工設(shè)計的部件以簡化檢測流程,如非極大值抑制和anchor生成,其中anchor顯式的編碼了檢測任務(wù)的先驗知識。我們提出框架,DEtection TRansformer(DETR)的主要成分是一種基于集合的全局損失和一個transformer編解碼框架,其中基于集合的全局損失通過二部匹配保證單一預(yù)測。給定已學(xué)習(xí)的的固定的小規(guī)模目標(biāo)查詢集合, DETR推理目標(biāo)之間的關(guān)系以及圖像全局信息進(jìn)而以并行的方式直接輸出最終的預(yù)測集合。該新模型概念簡單,且不像其他的一些現(xiàn)代檢測器那樣需要一些特定的庫。DETR在COCO目標(biāo)檢測數(shù)據(jù)集上展現(xiàn)了和Faster RCNN可比的精度和速度表現(xiàn)。更讓人期待的是,DETR能夠很方便的擴(kuò)展到全景分割任務(wù)中,實驗展示了相對于一些基線方法的較大優(yōu)勢。

介紹

目標(biāo)檢測的目標(biāo)是預(yù)測感興趣目標(biāo)的bbox和類別標(biāo)簽集合。modern檢測器以一種間接的方式處理集合預(yù)測問題,即轉(zhuǎn)換為基于大規(guī)模候選框、anchors或者windows中心點上的回歸和分類問題。這類方法的性能受制于一些手工設(shè)計策略,比如用于處理近重復(fù)預(yù)測的后處理步驟、anchor集合的設(shè)計以及anchor與gt的分配策略等。為了簡化檢測流程,我們跳過代理方式直接預(yù)測輸出集合。這種端到端哲學(xué)在一些復(fù)雜的結(jié)構(gòu)化預(yù)測問題,比如機(jī)器翻譯和語音識別,上都取得較好反饋,但在目標(biāo)檢測上尚未推廣。之前的一些假設(shè)要不添加其他形式的先驗知識,要不沒有證明在挑戰(zhàn)性數(shù)據(jù)集上能獲得與強(qiáng)baseline可比的性能。本文目標(biāo)是填補(bǔ)之一缺陷。

我們將目標(biāo)檢測問題直接視作集合預(yù)測問題以簡化訓(xùn)練流程。我們采用了基于transformers的編解碼框架,該框架被廣泛應(yīng)用于序列預(yù)測。transformers中的自注意力機(jī)制使該框架非常適合于集合預(yù)測的特定約束比如移除重復(fù)預(yù)測等,自注意力機(jī)制顯示的建模了序列中元素對之間的交互關(guān)系。

image.png

如圖1所示,DETR能夠一次性預(yù)測所有的目標(biāo),其訓(xùn)練采用一種集合損失函數(shù)以端到端方式進(jìn)行。集合損失定義在預(yù)測結(jié)果與真實目標(biāo)的二部匹配結(jié)果上。DETR扔掉了當(dāng)前主流檢測器中手工設(shè)計的一些用于編碼先驗知識的模塊,比如空間anchor和非極大值抑制等,簡化了檢測流程。不想已經(jīng)存在的其他檢測方法,DETR不需要任何定制的層,因此能夠便捷的在任何包含transformer和CNN的深度框架中進(jìn)行復(fù)現(xiàn)。

與當(dāng)前的大多數(shù)直接set預(yù)測方法相比,DETR的主要特點在于二部圖損失和并行編碼的transformers的結(jié)合。與之相反的是,之前的方法往往聚焦于使用RNN進(jìn)行autoregressive的編碼。我們的匹配損失能夠?qū)⒁粋€預(yù)測唯一的分配給一個gt,且對于預(yù)測目標(biāo)具有排列不變性,因此能夠并行處理。

我們在一個廣泛使用的目標(biāo)檢測數(shù)據(jù)集COCO上虞當(dāng)前較強(qiáng)的檢測方法Faster R-CNN進(jìn)行了對比。Faster R-CNN已經(jīng)經(jīng)過了好多次迭代設(shè)計,相較于其原始版本性能有較明顯的提升。我們實驗表明提出的模型具有可比的性能。更具體而言,DETR在大目標(biāo)上性能提升明顯,該提升可能源于transformer中的non-local計算。然對于小目標(biāo)而言,性能較差。我們希望后續(xù)工作能通過FPN對于Faster R-CNN一樣的路徑改善這個問題。

DETR的訓(xùn)練策略和標(biāo)準(zhǔn)的目標(biāo)檢測器有許多不同。新模型需要更長的訓(xùn)練周期,并且transformer中輔助的編碼損失有利于性能的提升。我們詳細(xì)探索了哪些部件對于性能提升至關(guān)重要。

DETR能夠被便宜的拓展到更復(fù)雜的任務(wù)中。在我們的實驗中,我們驗證了在預(yù)訓(xùn)練的DETR中引入簡單的分割頭就能獲得比baseline方法優(yōu)越的全景分割結(jié)果(全景分割是指最近流行的逐像素識別任務(wù))。

相關(guān)工作

我們的工作建立在一些領(lǐng)域的已有工作基礎(chǔ)上:集合預(yù)測中的二部圖匹配損失, 基于transformers的編解碼結(jié)構(gòu),并行編碼以及目標(biāo)檢測方法。

集合預(yù)測

目前并沒有標(biāo)準(zhǔn)的用于直接預(yù)測集合的深度模型。最基礎(chǔ)的集合預(yù)測任務(wù)是多標(biāo)簽分類,而其基線方法one-vs-rest并沒有應(yīng)用于檢測任務(wù),因為檢測任務(wù)中元素之間有潛在的結(jié)構(gòu)性(例如ID相近的目標(biāo)框)。這些任務(wù)中的首要問題是避免近似重復(fù)。絕大多數(shù)當(dāng)前的檢測器都利用后處理方法,比如NMS,處理這個問題,但是直接的集合預(yù)測是不需要后處理過程的。他們需要全局的推理框架,用以建模所有預(yù)測結(jié)果之間的關(guān)系進(jìn)而避免冗余。對于固定大小的集合預(yù)測問題,密集全連接網(wǎng)絡(luò)可以解決但是代價太大。更一般的方法是采用auto-regressive序列將該問題建模為RNN網(wǎng)絡(luò)。在所有的情況下,損失函數(shù)相對于預(yù)測都應(yīng)該具有排列不變性。最常見的解決辦法是設(shè)計一種基于匈牙利算法的損失函數(shù),找到gt與predict之間的二值匹配。這樣能夠保證排列不變性且保證了每個目標(biāo)只有唯一的匹配結(jié)果。我們采用了二部圖匹配損失的思路。然而,與當(dāng)前大多數(shù)方法不同的是,我們拋開了auto-regressive模型,使用的是可以并行編碼的transformers框架。

Transofmers和并行編碼

Transformers是由Vaswani提出的一種新的用于機(jī)器翻譯的注意力模塊。注意力機(jī)制是用于從整個輸入序列中聚合信息的網(wǎng)絡(luò)層。Transformers和Non-local網(wǎng)絡(luò)一樣引入了自注意力機(jī)機(jī)制,遍歷序列中的每個元素并通過整個序列的聚合信息更新該元素?;赼ttention的模型的一個主要優(yōu)勢在于他全局計算與記憶,使其相對于RNN更適合于長時序列。Transformers現(xiàn)在已經(jīng)在NLP,CV和語音處理等多個領(lǐng)域上取代了RNN。

仿照早期序列到序列的模型,Transformers首先在auto-regressive模型中使用,逐個產(chǎn)生輸出向量。但是其令人望而生畏的推理代價(正比于輸出長度,且難以用于batch方式處理)促使并行序列生成方法的發(fā)展,比如audio領(lǐng)域,機(jī)器翻譯,詞嵌入學(xué)習(xí)以及最近的語音識別。我們同樣的將transformers和并行編碼融合用于權(quán)衡集合預(yù)測中的計算代價和性能表現(xiàn)。

目標(biāo)檢測

多數(shù)目標(biāo)檢測器都是預(yù)測相對于初始猜測的偏差。兩階段檢測器預(yù)測box相遇于proposal的差異,而單階段模型則是相對于anchors或者目標(biāo)中心點可能存在的網(wǎng)格的差異。最近的工作[52]證明,這些模型的最終性能嚴(yán)重依賴于他們初始猜測的集合的精度。在我們的模型中,我們移除了這些手工處理的過程,通過直接預(yù)測具有絕對box的檢測集合(即相對于整張圖象,而非anchor)簡化了檢測過程。

基于集合的損失。 一些目標(biāo)檢測器利用了二部圖匹配損失。但是在這些早期的深度模型中,不同的預(yù)測之間的關(guān)系一幫使用卷積或者全連接層建模,且手工設(shè)計的NMS操作能夠提升其性能。更新的檢測器[23,37,53]則使用了gt與預(yù)測間非唯一分配策略以及NMS。

可學(xué)習(xí)的NMS策略以及關(guān)系網(wǎng)絡(luò)顯式的用注意力建模了預(yù)測之間的關(guān)系。直接使用set損失,不需要任何后處理過程。然而這些方法仍然利用了想候選框坐標(biāo)這些手工設(shè)計的上下文特征去有效建模檢測之間的關(guān)系,而本文尋求不適用任何先驗知識的解決方案。

循環(huán)檢測器。 與我們思路最接近的是用于目標(biāo)檢測的集合預(yù)測[43]和實例分割[30,36,41,42].和我們相似,他們使用了二部圖損失以及基于CNN激活的編解碼結(jié)構(gòu)直接預(yù)測bbox的集合。然而這些方法只在小的數(shù)據(jù)集上進(jìn)行了對比,并沒有對比大的數(shù)據(jù)集。值得注意的是,他們急于autoregressive模型,更具體是RNN,因此無法使用最近提出的具有并行編碼的transformers。

DETR模型

檢測中直接使用集合預(yù)測有兩個重要的點:1.能夠強(qiáng)制保證gt與預(yù)測一一對應(yīng)的集合預(yù)測損失;2.能夠一次性預(yù)測出目標(biāo)集合以及建模其中關(guān)系的網(wǎng)絡(luò)結(jié)構(gòu)。

目標(biāo)檢測集合預(yù)測損失

DETR通過編碼器一次前向推理預(yù)測出長度為N的固定大小的集合,N顯著大于圖像中能具有的目標(biāo)數(shù)。訓(xùn)練該模型的一個主要難點在于評估預(yù)測相對于gt的質(zhì)量。我們的損失函數(shù)先預(yù)測和gt之間計算一個最優(yōu)的二部圖匹配,然后監(jiān)督特定目標(biāo)的損失函數(shù)。

假設(shè)用y表示目標(biāo)的gt結(jié)合,\hat{y}={\hat{y}_i}_{i=1}^N表示N個預(yù)測,N大于圖像中存在的目標(biāo)數(shù),我們使用空集配平gt數(shù)和預(yù)測數(shù)。為了找到兩個集合中最有二部圖匹配,我們找到如下的N個u元素排列\sigma\in\mathcal{G}_N:

1

其中,L_{match}(y_i, \hat{y}_{\sigma_i})是gt與預(yù)測的匹配損失。該優(yōu)化問題能夠通過匈牙利算法進(jìn)行有效求解。

該匹配代價同時考慮了類別預(yù)測以及預(yù)測和gt之間的相似度。gt的每個元素表示為y_i=(c_i, b_i),其中c_i是目標(biāo)類別(可能為\emptyset),b_i\in [0, 1]^4是相對于圖像size的gt目標(biāo)的中心點坐標(biāo)以及寬高。對于索引為\sigma(i)的預(yù)測,我們將其屬于類別c_i的概率表示為\hat{p}_{\sigma(i)}(c_i),其預(yù)測的框表示為\hat_{\sigma(i)}. 于是使用這些符號可以定義匹配損失:
L_{match}(y_i, \hat{y}_{\sigma(i)} = -1_{c_i\neq \emptyset}\hat{p}_{\sigma(i)}(c_i)+1_{c_i\neq\emptyset}L_{box}(b_i,\hat_{sigma(i)})

這個尋找最優(yōu)匹配的過程類似于當(dāng)代檢測器中將proposals或者anchors分配給gt的過程。關(guān)鍵不同點在于直接集合預(yù)測尋找的是一一匹配,因此避免了重復(fù)預(yù)測。

第二步是計算上一步中所有匹配對的匈牙利損失。我們使用的損失函數(shù)和一般的檢測器相似,即用于類別預(yù)測的負(fù)對數(shù)似然函數(shù)和后續(xù)定義的box回歸損失的線性組合:

Eq.2

其中\hat{\sigma}是上一步中獲得的最優(yōu)匹配。在實際應(yīng)用中,我們對于為空的類別預(yù)測項系數(shù)除以10以平衡類別。這個操作和Faster RCNN訓(xùn)練過程中通過下采樣平衡正負(fù)候選類似。注意目標(biāo)和空集在匹配損失(Eq1)中是個常數(shù),并不依賴于檢測。在匹配損失中我們直接使用概率而非對數(shù)值是為了讓類別預(yù)測項與box損失一個量級,我們發(fā)現(xiàn)這種效果更好。

bbox 損失。 匹配損失和匈牙利損失的第二部分是用于評價bbox的L_{box}(\cdot, cdot)。 不像其他一些檢測器預(yù)測box相對于一些初始猜測的偏量,我們直接預(yù)測box。盡管該方法簡化了操作,但是帶來了一些損失的相對尺度問題。最常用的L1損失對于大小不同的目標(biāo)即使相對error類似但是尺度差異挺大。為了緩解該問題,我們使用L1損失逾GIOU損失的聯(lián)合,GIoU是尺度不變的。最終我們的box損失定義為L_{box}(b_i, \hat_{\sigma(i)})=\lambda_{iou}L_{iou}(b_i, \hat_{\sigma(i)}) + \lambda_{L1}\Vert b_i - \hat_{\sigma(i)}\Vert,這兩項損失在batch中使用目標(biāo)個數(shù)進(jìn)行歸一化。

DETR的結(jié)構(gòu)

DETR的結(jié)構(gòu)如圖2所示非常簡單。主要包括三個模塊:CNN的backbone用于壓縮和抽取特征表示,編解碼transformer,以及一個簡單的前向網(wǎng)絡(luò)(FFN)用于輸出最終預(yù)測結(jié)果。


Fig.2

和其他一些現(xiàn)代的檢測器不同,DETR能在任何提供了普通CNN和transformer結(jié)構(gòu)的深度學(xué)習(xí)框架中使用幾百行代碼簡單實現(xiàn)。PyTorch中DETR的推理代碼不足50行。我們希望我們方法的簡潔性能吸引更多的研究人員進(jìn)入目標(biāo)檢測領(lǐng)域。

Backbone 輸入初始的圖像x_{img}\in R^{3\times H_0\times W_0}, 傳統(tǒng)的卷積網(wǎng)絡(luò)生成了一個更低分辨率的特征圖f\in R^{c\times H\times W}。 典型值為C=2048, H,W=\frac{H_0}{32},\frac{W_0}{32}.

Transformer 編碼器. 首先,使用一個1x1的卷積核將f的通道由C降為d,生成新的特征圖z_0\in R^{d\times H\times W. encoder的輸入是一段序列,因此我們將Z0的空間維度拉成列向量,產(chǎn)生d\times HW的特征map。每個encoder層具有相同的結(jié)構(gòu),包含了一個多頭自注意力機(jī)制以及一個前向網(wǎng)絡(luò)。由于transformer結(jié)構(gòu)式排列不變的,我們使用固定的位置編碼作為補(bǔ)充輸入每個注意力層。該結(jié)構(gòu)的具體定義參考補(bǔ)充材料。

Transformer 解碼器。 decoder沿用了transformer的標(biāo)準(zhǔn)結(jié)構(gòu), 將N個d維的特征嵌入使用多頭自注意力機(jī)制和編解碼機(jī)制進(jìn)行轉(zhuǎn)換。和原始的transformer相比,我們模型在每個decoder層并行的解碼N個目標(biāo),而不是像aswani那樣使用autoregression模型以序列方式輸出一個序列。由于decoder也是排列不變的,因此為了產(chǎn)生N個不同的結(jié)果,那么輸入也必須不同。這些輸入采用學(xué)習(xí)到的位置編碼,稱之為目標(biāo)queries,與encoder類似,我們將其輸入到decoder的每個注意力層。N個目標(biāo)quries被decoder轉(zhuǎn)換為N個輸出。然后這些輸出被獨立的FFN解碼為類別標(biāo)簽和box預(yù)測作為最終結(jié)果。使用這些embedding的自注意力機(jī)制以及編解碼注意力特性,模型能夠利用目標(biāo)對之間的關(guān)系以及整張圖象內(nèi)容全局的推理所有目標(biāo)。

前向預(yù)測網(wǎng)絡(luò)FFNs。 最終的預(yù)測網(wǎng)絡(luò)由使用激活函數(shù)ReLU的3層感知機(jī)實現(xiàn),中間隱層維度為d,以及一個線性預(yù)測層。 FFN預(yù)測相對于圖像尺寸的歸一化后的box中心點坐標(biāo)以及寬高。線性層+softmax喲關(guān)于預(yù)測類別標(biāo)簽。因為我們預(yù)測一個相對較大的固定尺寸N的集合,我們使用空集表示該預(yù)測為no object,即背景區(qū)域。

輔助解碼損失。 我們發(fā)現(xiàn)在訓(xùn)練過程中對decode添加輔助損失是有益的,尤其是對于輸出每類正確的目標(biāo)個數(shù)。每個解碼層之后我們都添加了FFNs和匈牙利損失,所有的FFNs共享參數(shù)。另外我們在每一個decoder層的FFNs之前使用了共享的layer-norm進(jìn)行歸一化。

實驗

我們在COCO數(shù)據(jù)集上采用DETR獲得了與Faster RCNN可比的檢測性能。然后我們對模型結(jié)構(gòu)和損失函數(shù)進(jìn)行了分類實驗。最終,實驗表明DETR是一種易擴(kuò)展的的模型,我們驗證了DETR經(jīng)過簡單的擴(kuò)展就可用于全景分割。代碼和預(yù)訓(xùn)練權(quán)重見:https://github.com/facebookresearch/detr

數(shù)據(jù)集 COCO2017,以及全景分割數(shù)據(jù)集[24, 18]
實驗細(xì)節(jié) 采用AdamW訓(xùn)練DETR, transformer的初始學(xué)習(xí)率設(shè)為1e-4, backbone的初始學(xué)習(xí)率設(shè)為1e-5, 權(quán)重衰減系數(shù)為1e-4。 所有的transformer的權(quán)重使用Xaiver初始化,backnone采用ImageNet預(yù)訓(xùn)練的ResNet模型(torchvision提供,并鎖定bn層)。我們測試了兩種不同的backbone:ResNet50和ResNet101. 對應(yīng)的模型分別稱之為DETR和DETR-R101. 沿用[21],我們同樣在ResNet的最后一個stage上增加了dilation系數(shù)以及在該階段的第一個卷積層中移除了stride=2的限制,其模型分別稱之為DETR-DC5和DETR-DC5-R101(分別對應(yīng)ResNet50和ResNet101).這種修改使最后輸出特征的分辨率增加了兩倍,提升了小目標(biāo)的檢測,但encoder中的自注意力機(jī)制的計算代價增加了16倍,最終導(dǎo)致計算資源消耗增加2倍以上。 表1給出了不同模型FLOPs的對比。
使用的數(shù)據(jù)增強(qiáng)包括尺度增廣,將最小邊限制在480~800,最長邊小于1333.為了利用自注意力機(jī)制和編碼器學(xué)習(xí)更好的全局關(guān)系,訓(xùn)練過程中我們還是用了隨機(jī)裁剪增廣,大約能提一個點的AP。具體而言,訓(xùn)練圖像依0.5的概率隨機(jī)裁剪為一個矩形塊,然后再resize到800-1333. transformer訓(xùn)練時采用0.1的dropout參數(shù)。在推理時一些預(yù)測為空集。為了優(yōu)化AP,我們使用置信度第二高的類別作為其類別,相對于直接剔除空集預(yù)測,這能提升AP約2個點。 其他的訓(xùn)練超參見補(bǔ)充材料A4. 在分離實驗中,我們訓(xùn)練了300個epoch,其中學(xué)習(xí)率在200個epoch時下降10倍。 使用16塊V100 卡,每張卡4張圖像需要跑3天。和Faster RCNN對比的模型我們訓(xùn)練了500個epoch,在第400個epoch進(jìn)行學(xué)習(xí)率衰減,最終相對于epoch300模型,AP提升了1.5個點。

Table1

與Faster RCNN的對比

Transformer一般使用Adam或者Adagrad訓(xùn)練較長的周期以及dropout, DETR同樣。Faster RCNN則通過少量的數(shù)據(jù)增廣使用SGD進(jìn)行訓(xùn)練,且使用Adam和dropout并沒有顯著增益。盡管這些差異,我們?nèi)韵M麖?qiáng)化Faster RCNN。 為了和DETR更好的對比,我們對Faster RCNN使用了GIoU和box損失,以及同樣的crop增廣以及更長的訓(xùn)練過程以提升結(jié)果。實驗結(jié)果在表1中給出(+),以9x的訓(xùn)練調(diào)度,提升了大約1-2個點AP。為了讓參數(shù)量可比,我們DETR中采用了6個encoder和decoder,以及8個寬度為256的注意力頭。 和使用FPN的FasterRCNN類似,模型具有41.3M的參數(shù)量,其中ResNet-50和transformer分別占23.5M和17.8M。 盡管訓(xùn)練周期更長Faster RCNN和DETR都可能進(jìn)一步提升性能,但我們能得出DETR在相同參數(shù)量下雨Faster RCNN在COCO驗證集上取得了可比的42AP性能。
DETR在大目標(biāo)APL上提升了7.8個點,但在小目標(biāo)APs上減少了5.5個點。 DETR-DC5在相同的參數(shù)量上取得了更高的AP值,但是APs值依然低了很多。使用ResNet101作為backbone的FasterRCNN和DETR實驗結(jié)果結(jié)論差不多。

分離實驗

注意力機(jī)制是decoder中刻畫不同目標(biāo)特征關(guān)系的核心要素。在分離實驗中,我們希望探索結(jié)構(gòu)中的其他部件以及損失函數(shù)對性能的影響。我們選擇ResNet50的DETR作為研究對象,該模型有41.3M的參數(shù)量,在長時和短時的訓(xùn)練周期中分別有40.6和42.0的AP值。和Faster RCNN -FPN雷速能獲得28FPS的推理速度。

encoder層數(shù)影響 table2給出了不同encoder對于全局自注意力機(jī)制的重要性影響。不使用encoder,AP下降了3.9, 大目標(biāo)甚至下降了6.0個AP。我們認(rèn)為,利用全局信息推理,encoder能夠更好的理清目標(biāo)。Figure3中,我們可視化了最后一個encoder的注意力map,可以發(fā)現(xiàn)集中在image的若干點。encoder似乎已經(jīng)分離了不同的實例,從而使decoder中目標(biāo)抽取和定位更加簡單。

Table.2

Figure3

decoder層數(shù)影響, 由于輔助損失函數(shù),每個decoder層都會進(jìn)行預(yù)測,我們直接評價每一層預(yù)測的精度,如圖4所示,隨著層數(shù)增加性能越來越好。憑借基于集合的損失,DETR不再需要NMS操作。為了驗證這一典故,我們在每一層decoder上使用NMS,發(fā)現(xiàn)只有第一層性能提升較明顯,其后隨著層數(shù)增加NMS作用越來越小。我們認(rèn)為其原因在于第一層尚未能全面計算輸出元素之際愛你的相互關(guān)系,因此傾向于同一個目標(biāo)預(yù)測多個結(jié)果,而隨著層數(shù)增加相互關(guān)系更全面,也就不會產(chǎn)生重復(fù)預(yù)測,此時NMS用處可以忽略不計。

Fig6中我們可視化了decoder的attention,不同目標(biāo)使用了不同顏色表示,可以發(fā)現(xiàn)decoder attention更加局部,表示其更傾向于目標(biāo)極值點比如頭部和腿部。我們認(rèn)為經(jīng)過encoder的全局注意力獲得instance后,decoder只需要聚焦在邊界部分以提取目標(biāo)類別和邊框。

image.png

Figure 6

FFN的重要性 我們嘗試移除encoder中的所有FFN,法相參數(shù)量由28.7M降為10.8M,但其性能AP也將下了2.3個點,因此說明FFN對于獲得較好性能很重要。FFN在transformers中可以認(rèn)為是1x1的卷積層,使encoder更像attention增廣的卷積網(wǎng)絡(luò)。

pisitional編碼的重要性。兩種位置編碼方式:空間位置編碼和輸出位置編碼即目標(biāo)queries。我們在Table3中給出了不同組合固定和學(xué)習(xí)的encodiing下的結(jié)果。輸出位置編碼是必須的,不可或缺的,因為我們嘗試在decoder輸入一次或者在每個decoder層上使用。在第一個實驗中,我們?nèi)恳瞥臻g位置編碼,將輸出編碼只利用一次,有意思的的是模型依然獲得了32AP,相對于baseline降低了7.8. 然后我們使用固定的sine空間位置編碼,繞線相對于直接使用空間位置編碼下降了1.4AP。

Table.3

以上分離實驗的結(jié)論:transformer部件中,全局的self-attention編碼器,F(xiàn)FN, 多層解碼器, 位置編碼都對最終的目標(biāo)檢測性能至關(guān)重要。

loss分析

Table.4

分析

圖7給出了100個queries中的前20個預(yù)測目標(biāo)的位置分布,不同的顏色標(biāo)識不同尺度目標(biāo),可以發(fā)現(xiàn)不同的queries其實具有一定的位置鑒別性,也就是說訓(xùn)練得到的queries本質(zhì)上可以負(fù)責(zé)不同位置不同尺寸的目標(biāo)的預(yù)測。


Figure.7

COCO中的一些類在同一張圖像中可能同類實例并不多,比如在訓(xùn)練集中不存在多于13個長頸鹿的圖像,我們合成了一張圖像包含了24個長頸鹿,圖5可以發(fā)現(xiàn)也能夠很好的檢測,這說明我們的query并沒有多少特定類別的信息。

全景分割

略。

附錄

Fig.10 DETR核心部件
DETR推理腳本

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多