閱讀筆記-DETR End-to-end object detection with transformers

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

image.png

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

摘要

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

介紹

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

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

image.png

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

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

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

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

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

相關(guān)工作

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

集合預(yù)測(cè)

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

Transofmers和并行編碼

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

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

目標(biāo)檢測(cè)

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

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

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

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

DETR模型

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

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

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

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

1

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

該匹配代價(jià)同時(shí)考慮了類別預(yù)測(cè)以及預(yù)測(cè)和gt之間的相似度喂急。gt的每個(gè)元素表示為y_i=(c_i, b_i),其中c_i是目標(biāo)類別(可能為\emptyset)格嘁,b_i\in [0, 1]^4是相對(duì)于圖像size的gt目標(biāo)的中心點(diǎn)坐標(biāo)以及寬高。對(duì)于索引為\sigma(i)的預(yù)測(cè)廊移,我們將其屬于類別c_i的概率表示為\hat{p}_{\sigma(i)}(c_i),其預(yù)測(cè)的框表示為\hat糕簿_{\sigma(i)}. 于是使用這些符號(hào)可以定義匹配損失:
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)})

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

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

Eq.2

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

bbox 損失贮竟。 匹配損失和匈牙利損失的第二部分是用于評(píng)價(jià)bbox的L_{box}(\cdot, cdot)。 不像其他一些檢測(cè)器預(yù)測(cè)box相對(duì)于一些初始猜測(cè)的偏量较剃,我們直接預(yù)測(cè)box咕别。盡管該方法簡(jiǎn)化了操作,但是帶來了一些損失的相對(duì)尺度問題写穴。最常用的L1損失對(duì)于大小不同的目標(biāo)即使相對(duì)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,這兩項(xiàng)損失在batch中使用目標(biāo)個(gè)數(shù)進(jìn)行歸一化。

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

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


Fig.2

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

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

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

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

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

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

實(shí)驗(yàn)

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

數(shù)據(jù)集 COCO2017陋守,以及全景分割數(shù)據(jù)集[24, 18]
實(shí)驗(yàn)細(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層)媚送。我們測(cè)試了兩種不同的backbone:ResNet50和ResNet101. 對(duì)應(yīng)的模型分別稱之為DETR和DETR-R101. 沿用[21]中燥,我們同樣在ResNet的最后一個(gè)stage上增加了dilation系數(shù)以及在該階段的第一個(gè)卷積層中移除了stride=2的限制,其模型分別稱之為DETR-DC5和DETR-DC5-R101(分別對(duì)應(yīng)ResNet50和ResNet101).這種修改使最后輸出特征的分辨率增加了兩倍季希,提升了小目標(biāo)的檢測(cè)褪那,但encoder中的自注意力機(jī)制的計(jì)算代價(jià)增加了16倍,最終導(dǎo)致計(jì)算資源消耗增加2倍以上式塌。 表1給出了不同模型FLOPs的對(duì)比博敬。
使用的數(shù)據(jù)增強(qiáng)包括尺度增廣,將最小邊限制在480~800峰尝,最長(zhǎng)邊小于1333.為了利用自注意力機(jī)制和編碼器學(xué)習(xí)更好的全局關(guān)系偏窝,訓(xùn)練過程中我們還是用了隨機(jī)裁剪增廣,大約能提一個(gè)點(diǎn)的AP武学。具體而言祭往,訓(xùn)練圖像依0.5的概率隨機(jī)裁剪為一個(gè)矩形塊,然后再resize到800-1333. transformer訓(xùn)練時(shí)采用0.1的dropout參數(shù)火窒。在推理時(shí)一些預(yù)測(cè)為空集硼补。為了優(yōu)化AP,我們使用置信度第二高的類別作為其類別熏矿,相對(duì)于直接剔除空集預(yù)測(cè)已骇,這能提升AP約2個(gè)點(diǎn)离钝。 其他的訓(xùn)練超參見補(bǔ)充材料A4. 在分離實(shí)驗(yàn)中,我們訓(xùn)練了300個(gè)epoch褪储,其中學(xué)習(xí)率在200個(gè)epoch時(shí)下降10倍卵渴。 使用16塊V100 卡,每張卡4張圖像需要跑3天鲤竹。和Faster RCNN對(duì)比的模型我們訓(xùn)練了500個(gè)epoch浪读,在第400個(gè)epoch進(jìn)行學(xué)習(xí)率衰減,最終相對(duì)于epoch300模型辛藻,AP提升了1.5個(gè)點(diǎn)碘橘。

Table1

與Faster RCNN的對(duì)比

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

分離實(shí)驗(yàn)

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

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

Table.2

Figure3

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

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

image.png

Figure 6

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

pisitional編碼的重要性颠区。兩種位置編碼方式:空間位置編碼和輸出位置編碼即目標(biāo)queries削锰。我們?cè)赥able3中給出了不同組合固定和學(xué)習(xí)的encodiing下的結(jié)果。輸出位置編碼是必須的毕莱,不可或缺的器贩,因?yàn)槲覀儑L試在decoder輸入一次或者在每個(gè)decoder層上使用。在第一個(gè)實(shí)驗(yàn)中朋截,我們?nèi)恳瞥臻g位置編碼蛹稍,將輸出編碼只利用一次,有意思的的是模型依然獲得了32AP部服,相對(duì)于baseline降低了7.8. 然后我們使用固定的sine空間位置編碼唆姐,繞線相對(duì)于直接使用空間位置編碼下降了1.4AP。

Table.3

以上分離實(shí)驗(yàn)的結(jié)論:transformer部件中廓八,全局的self-attention編碼器奉芦,F(xiàn)FN, 多層解碼器瘫想, 位置編碼都對(duì)最終的目標(biāo)檢測(cè)性能至關(guān)重要仗阅。

loss分析

Table.4

分析

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


Figure.7

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

全景分割

略。

附錄

Fig.10 DETR核心部件
DETR推理腳本
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末乐埠,一起剝皮案震驚了整個(gè)濱河市抗斤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌丈咐,老刑警劉巖瑞眼,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異棵逊,居然都是意外死亡伤疙,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來徒像,“玉大人黍特,你說我怎么就攤上這事【庵” “怎么了灭衷?”我有些...
    開封第一講書人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)谬墙。 經(jīng)常有香客問我今布,道長(zhǎng),這世上最難降的妖魔是什么拭抬? 我笑而不...
    開封第一講書人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮侵蒙,結(jié)果婚禮上造虎,老公的妹妹穿的比我還像新娘。我一直安慰自己纷闺,他們只是感情好算凿,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著犁功,像睡著了一般氓轰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上浸卦,一...
    開封第一講書人閱讀 51,562評(píng)論 1 305
  • 那天署鸡,我揣著相機(jī)與錄音,去河邊找鬼限嫌。 笑死靴庆,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的怒医。 我是一名探鬼主播炉抒,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼稚叹!你這毒婦竟也來了焰薄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤扒袖,失蹤者是張志新(化名)和其女友劉穎塞茅,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體僚稿,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡凡桥,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蚀同。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缅刽。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡啊掏,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出衰猛,到底是詐尸還是另有隱情迟蜜,我是刑警寧澤,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布啡省,位于F島的核電站娜睛,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏卦睹。R本人自食惡果不足惜畦戒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望结序。 院中可真熱鬧障斋,春花似錦、人聲如沸徐鹤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽返敬。三九已至遂庄,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間劲赠,已是汗流浹背涛目。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留经磅,地道東北人泌绣。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像预厌,于是被迫代替她去往敵國和親阿迈。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容