YOLOS:通過(guò)目標(biāo)檢測(cè)重新思考Transformer(附源代碼)
最近我看了一些之前的檢測(cè)框架,發(fā)現(xiàn)有兩個(gè)很有意思,不錯(cuò)的框架,接下來(lái)我給大家簡(jiǎn)單分析下,希望給大家?guī)?lái)創(chuàng)新的啟示!
論文地址:https://arxiv.org/pdf/2106.00666.pdf
源代碼地址:https://github.com/hustvl/YOLOS
1 前言
Transformer能否從純序列到序列的角度執(zhí)行2D目標(biāo)級(jí)識(shí)別,而對(duì)2D空間結(jié)構(gòu)知之甚少?為了回答這個(gè)問(wèn)題,今天就展示了“You Only Look at One Sequence” (YOLOS),這是一系列基于樸素視覺(jué)變換器的目標(biāo)檢測(cè)模型,具有盡可能少的修改和inductive biases。
YOLOS-S, 200 epochs pre-trained, COCO AP = 36.1
我們發(fā)現(xiàn)僅在中等大小的ImageNet-1k數(shù)據(jù)集上預(yù)訓(xùn)練的YOLOS已經(jīng)可以在COCO上實(shí)現(xiàn)具有競(jìng)爭(zhēng)力的目標(biāo)檢測(cè)性能,例如直接從BERT-Base中采用的YOLOS-Base可以實(shí)現(xiàn)42.0 box AP。研究者還通過(guò)目標(biāo)檢測(cè)討論了當(dāng)前預(yù)訓(xùn)練方案和模型縮放策略對(duì)Transformer在視覺(jué)中的影響和局限性。
2 背景
Transformer為遷移而生。在自然語(yǔ)言處理 (NLP) 中,主要方法是首先在大型通用語(yǔ)料庫(kù)上預(yù)訓(xùn)練Transformer以進(jìn)行通用語(yǔ)言表示學(xué)習(xí),然后針對(duì)特定目標(biāo)任務(wù)對(duì)模型進(jìn)行微調(diào)。最近,Vision Transformer(ViT)表明,直接從NLP繼承的典型Transformer編碼器架構(gòu)可以使用現(xiàn)代視覺(jué)遷移學(xué)習(xí)配方在大規(guī)模圖像識(shí)別上表現(xiàn)出奇的好。將圖像補(bǔ)丁嵌入序列作為輸入,ViT可以從純序列到序列的角度成功地將預(yù)訓(xùn)練的通用視覺(jué)表示從足夠的規(guī)模轉(zhuǎn)移到更具體的圖像分類(lèi)任務(wù),數(shù)據(jù)點(diǎn)更少。
ViT-FRCNN是第一個(gè)使用預(yù)訓(xùn)練的ViT作為R-CNN目標(biāo)檢測(cè)器的主干。然而,這種設(shè)計(jì)無(wú)法擺脫對(duì)卷積神經(jīng)網(wǎng)絡(luò)(CNN)和強(qiáng)2D歸納偏差的依賴(lài),因?yàn)閂iT-FRCNN將ViT的輸出序列重新解釋為2D空間特征圖,并依賴(lài)于區(qū)域池化操作(即RoIPool或RoIAlign)以及基于區(qū)域的CNN架構(gòu)來(lái)解碼ViT特征以實(shí)現(xiàn)目標(biāo)級(jí)感知。受現(xiàn)代CNN設(shè)計(jì)的啟發(fā),最近的一些工作將金字塔特征層次結(jié)構(gòu)和局部性引入Vision Transformer設(shè)計(jì),這在很大程度上提高了包括目標(biāo)檢測(cè)在內(nèi)的密集預(yù)測(cè)任務(wù)的性能。然而,這些架構(gòu)是面向性能的。另一系列工作,DEtection TRansformer(DETR)系列,使用隨機(jī)初始化的Transformer對(duì)CNN特征進(jìn)行編碼和解碼,這并未揭示預(yù)訓(xùn)練Transformer在目標(biāo)檢測(cè)中的可遷移性。
ViT-FRCNN
為了解決上面涉及的問(wèn)題,有研究者展示了You Only Look at One Sequence (YOLOS),這是一系列基于規(guī)范ViT架構(gòu)的目標(biāo)檢測(cè)模型,具有盡可能少的修改以及注入的歸納偏置。從ViT到Y(jié)OLOS檢測(cè)器的變化很簡(jiǎn)單:
YOLOS在ViT中刪除[CLS]標(biāo)記,并將一百個(gè)可學(xué)習(xí)的[DET]標(biāo)記附加到輸入序列以進(jìn)行目標(biāo)檢測(cè);
YOLOS將ViT中的圖像分類(lèi)損失替換為bipartite matching loss,以遵循Carion等人【End-to-end object detection with transformers】的一套預(yù)測(cè)方式進(jìn)行目標(biāo)檢測(cè)。這可以避免將ViT的輸出序列重新解釋為2D特征圖,并防止在標(biāo)簽分配期間手動(dòng)注入啟發(fā)式和對(duì)象2D空間結(jié)構(gòu)的先驗(yàn)知識(shí)。
3 新框架
YOLOS刪除用于圖像分類(lèi)的[CLS]標(biāo)記,并將一百個(gè)隨機(jī)初始化的檢測(cè)標(biāo)記([DET] 標(biāo)記)附加到輸入補(bǔ)丁嵌入序列以進(jìn)行目標(biāo)檢測(cè)。
在訓(xùn)練過(guò)程中,YOLOS將ViT中的圖像分類(lèi)損失替換為bipartite matching loss,這里重點(diǎn)介紹YOLOS的設(shè)計(jì)方法論。
Detection Token
我們有目的地選擇隨機(jī)初始化的[DET]標(biāo)記作為目標(biāo)表示的代理,以避免2D結(jié)構(gòu)的歸納偏差和在標(biāo)簽分配期間注入的任務(wù)的先驗(yàn)知識(shí)。在對(duì)COCO進(jìn)行微調(diào)時(shí),對(duì)于每次前向傳遞,在[DET]tokens生成的預(yù)測(cè)與真實(shí)對(duì)象之間建立最佳二分匹配。該過(guò)程與標(biāo)簽分配的作用相同,但不知道輸入的2D結(jié)構(gòu),即YOLOS不需要將ViT的輸出序列重新解釋為用于標(biāo)簽分配的2D特征圖。理論上,YOLOS在不知道確切的空間結(jié)構(gòu)和幾何形狀的情況下執(zhí)行任何維度的物體檢測(cè)是可行的,只要每次通過(guò)輸入總是以相同的方式展平為一個(gè)序列。
YOLOS-S, 300 epochs pre-trained, COCO AP = 36.1
Fine-tuning at Higher Resolution
在COCO上進(jìn)行微調(diào)時(shí),除用于分類(lèi)和邊界框回歸的MLP頭以及隨機(jī)初始化的100個(gè)[DET]標(biāo)記外,所有參數(shù)均從ImageNet-1k預(yù)訓(xùn)練權(quán)重初始化。分類(lèi)和邊界框回歸頭均由MLP實(shí)現(xiàn),具有兩個(gè)使用單獨(dú)參數(shù)的隱藏層。
在微調(diào)期間,圖像具有比預(yù)訓(xùn)練高得多的分辨率,為了保持補(bǔ)丁大小相同(16 × 16),這導(dǎo)致更大的有效序列長(zhǎng)度。雖然ViT可以處理任意序列長(zhǎng)度,但位置嵌入需要適應(yīng)更長(zhǎng)的輸入序列。我們以相同的方式對(duì)預(yù)訓(xùn)練的位置嵌入進(jìn)行2D插值。
4 實(shí)驗(yàn)分析及可視化
YOLOS的不同版本的結(jié)果
與訓(xùn)練的效果
不同尺度模型的預(yù)訓(xùn)練和遷移學(xué)習(xí)性能
與一些小型CNN檢測(cè)器的比較
Self-attention Maps of YOLOS
檢驗(yàn)與YOLOS-S最后一層頭部預(yù)測(cè)相關(guān)的[DET]tokens的自注意力。可視化pipeline遵循【 Emerging properties in self-supervised vision transformers】??梢暬Y(jié)果如下圖所示。
對(duì)于給定的YOLOS模型,不同的自注意力頭關(guān)注不同的模式和不同的位置。一些可視化是可解釋的,而另一些則不是。
我們研究了兩個(gè)YOLOS模型的注意力圖差異,即200 epochs ImageNet-1k預(yù)訓(xùn)練YOLOS-S和300 epochs ImageNet-1k預(yù)訓(xùn)練YOLOS-S。注意這兩個(gè)模型的AP是一樣的(AP=36.1)。從可視化中,我們得出結(jié)論,對(duì)于給定的預(yù)測(cè)對(duì)象,相應(yīng)的[DET]標(biāo)記以及注意力圖模式通常對(duì)于不同的模型是不同的。
? THE END
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。