何愷明組新論文:只用ViT做主干也可以做好目標(biāo)檢測
研究概覽
論文鏈接:https://arxiv.org/pdf/2203.16527.pdf
當(dāng)前的目標(biāo)檢測器通常由一個(gè)與檢測任務(wù)無關(guān)的主干特征提取器和一組包含檢測專用先驗(yàn)知識(shí)的頸部和頭部組成。頸部 / 頭部中的常見組件可能包括感興趣區(qū)域(RoI)操作、區(qū)域候選網(wǎng)絡(luò)(RPN)或錨、特征金字塔網(wǎng)絡(luò)(FPN)等。如果用于特定任務(wù)的頸部 / 頭部的設(shè)計(jì)與主干的設(shè)計(jì)解耦,它們可以并行發(fā)展。從經(jīng)驗(yàn)上看,目標(biāo)檢測研究受益于對(duì)通用主干和檢測專用模塊的大量獨(dú)立探索。長期以來,由于卷積網(wǎng)絡(luò)的實(shí)際設(shè)計(jì),這些主干一直是多尺度、分層的架構(gòu),這嚴(yán)重影響了用于多尺度(如 FPN)目標(biāo)檢測的頸 / 頭的設(shè)計(jì)。
在過去的一年里,視覺 Transformer(ViT)已經(jīng)成為視覺識(shí)別的強(qiáng)大支柱。與典型的 ConvNets 不同,最初的 ViT 是一種簡單的、非層次化的架構(gòu),始終保持單一尺度的特征圖。它的「極簡」追求在應(yīng)用于目標(biāo)檢測時(shí)遇到了挑戰(zhàn),例如,我們?nèi)绾瓮ㄟ^上游預(yù)訓(xùn)練的簡單主干來處理下游任務(wù)中的多尺度對(duì)象?簡單 ViT 用于高分辨率圖像檢測是否效率太低?放棄這種追求的一個(gè)解決方案是在主干中重新引入分層設(shè)計(jì)。這種解決方案,例如 Swin Transformer 和其他網(wǎng)絡(luò),可以繼承基于 ConvNet 的檢測器設(shè)計(jì),并已取得成功。
在這項(xiàng)工作中,何愷明等研究者追求的是一個(gè)不同的方向:探索僅使用普通、非分層主干的目標(biāo)檢測器。如果這一方向取得成功,僅使用原始 ViT 主干進(jìn)行目標(biāo)檢測將成為可能。在這一方向上,預(yù)訓(xùn)練設(shè)計(jì)將與微調(diào)需求解耦,上游與下游任務(wù)的獨(dú)立性將保持,就像基于 ConvNet 的研究一樣。這一方向也在一定程度上遵循了 ViT 的理念,即在追求通用特征的過程中減少歸納偏置。由于非局部自注意力計(jì)算可以學(xué)習(xí)平移等變特征,它們也可以從某種形式的監(jiān)督或自我監(jiān)督預(yù)訓(xùn)練中學(xué)習(xí)尺度等變特征。
研究者表示,在這項(xiàng)研究中,他們的目標(biāo)不是開發(fā)新的組件,而是通過最小的調(diào)整克服上述挑戰(zhàn)。具體來說,他們的檢測器僅從一個(gè)普通 ViT 主干的最后一個(gè)特征圖構(gòu)建一個(gè)簡單的特征金字塔(如圖 1 所示)。這一方案放棄了 FPN 設(shè)計(jì)和分層主干的要求。為了有效地從高分辨率圖像中提取特征,他們的檢測器使用簡單的非重疊窗口注意力(沒有 shifting)。他們使用少量的跨窗口塊來傳播信息,這些塊可以是全局注意力或卷積。這些調(diào)整只在微調(diào)過程中進(jìn)行,不會(huì)改變預(yù)訓(xùn)練。
這種簡單的設(shè)計(jì)收獲了令人驚訝的結(jié)果。研究者發(fā)現(xiàn),在使用普通 ViT 主干的情況下,F(xiàn)PN 的設(shè)計(jì)并不是必要的,它的好處可以通過由大步幅 (16)、單一尺度圖構(gòu)建的簡單金字塔來有效地獲得。他們還發(fā)現(xiàn),只要信息能在少量的層中很好地跨窗口傳播,窗口注意力就夠用了。
更令人驚訝的是,在某些情況下,研究者開發(fā)的名為「ViTDet」的普通主干檢測器可以媲美領(lǐng)先的分層主干檢測器(如 Swin、MViT)。通過掩蔽自編碼器(MAE)預(yù)訓(xùn)練,他們的普通主干檢測器可以優(yōu)于在 ImageNet-1K/21K 上進(jìn)行有監(jiān)督預(yù)訓(xùn)練的分層檢測器(如下圖 3 所示)。
在較大尺寸的模型上,這種增益要更加顯著。該檢測器的優(yōu)秀性能是在不同的目標(biāo)檢測器框架下觀察到的,包括 Mask R-CNN、Cascade Mask R-CNN 以及它們的增強(qiáng)版本。
在 COCO 數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,一個(gè)使用無標(biāo)簽 ImageNet-1K 預(yù)訓(xùn)練、帶有普通 ViT-Huge 主干的 ViTDet 檢測器的 AP^box 可以達(dá)到 61.3。他們還在長尾 LVIS 檢測數(shù)據(jù)集上展示了 ViTDet 頗具競爭力的結(jié)果。雖然這些強(qiáng)有力的結(jié)果可能部分來自 MAE 預(yù)訓(xùn)練的有效性,但這項(xiàng)研究表明,普通主干檢測器可能是有前途的,這挑戰(zhàn)了分層主干在目標(biāo)檢測中的根深蒂固的地位。
方法細(xì)節(jié)
該研究的目標(biāo)是消除對(duì)主干網(wǎng)絡(luò)的分層約束,并使用普通主干網(wǎng)絡(luò)進(jìn)行目標(biāo)檢測。因此,該研究的目標(biāo)是用最少的改動(dòng),讓簡單的主干網(wǎng)絡(luò)在微調(diào)期間適應(yīng)目標(biāo)檢測任務(wù)。經(jīng)過改動(dòng)之后,原則上我們可以應(yīng)用任何檢測器頭(detector head),研究者選擇使用 Mask R-CNN 及其擴(kuò)展。
簡單的特征金字塔
FPN 是構(gòu)建用于目標(biāo)檢測的 in-network 金字塔的常見解決方案。如果主干網(wǎng)絡(luò)是分層的,F(xiàn)PN 的動(dòng)機(jī)就是將早期高分辨率的特征和后期更強(qiáng)的特征結(jié)合起來。這在 FPN 中是通過自上而下(top-down)和橫向連接來實(shí)現(xiàn)的,如圖 1 左所示。
如果主干網(wǎng)絡(luò)不是分層網(wǎng)絡(luò),那么 FPN 動(dòng)機(jī)的基礎(chǔ)就會(huì)消失,因?yàn)橹鞲删W(wǎng)絡(luò)中的所有特征圖都具有相同的分辨率。該研究僅使用主干網(wǎng)絡(luò)中的最后一張?zhí)卣鲌D,因?yàn)樗鼞?yīng)該具有最強(qiáng)大的特征。
研究者對(duì)最后一張?zhí)卣鲌D并行應(yīng)用一組卷積或反卷積來生成多尺度特征圖。具體來說,他們使用的是尺度為 1/16(stride = 16 )的默認(rèn) ViT 特征圖,該研究可如圖 1 右所示,這個(gè)過程被稱為「簡單的特征金字塔」。
從單張?zhí)卣鲌D構(gòu)建多尺度特征圖的策略與 SSD 的策略有關(guān),但該研究的場景涉及對(duì)深度、低分辨率的特征圖進(jìn)行上采樣。在分層主干網(wǎng)絡(luò)中,上采樣通常用橫向連接進(jìn)行輔助,但研究者通過實(shí)驗(yàn)發(fā)現(xiàn),在普通 ViT 主干網(wǎng)絡(luò)中橫向連接并不是必需的,簡單的反卷積就足夠了。研究者猜想這是因?yàn)?ViT 可以依賴位置嵌入來編碼位置,并且高維 ViT patch 嵌入不一定會(huì)丟棄信息。
如下圖所示,該研究將這種簡單的特征金字塔與同樣建立在普通主干網(wǎng)絡(luò)上的兩個(gè) FPN 變體進(jìn)行比較。在第一個(gè)變體中,主干網(wǎng)絡(luò)被人為地劃分為多個(gè)階段,以模仿分層主干網(wǎng)絡(luò)的各個(gè)階段,并應(yīng)用橫向和自上而下的連接(圖 2(a))。第二個(gè)變體與第一個(gè)變體類似,但僅使用最后一張?zhí)卣鲌D(圖 2(b))。該研究表明這些 FPN 變體不是必需的。
主干網(wǎng)絡(luò)調(diào)整
目標(biāo)檢測器受益于高分辨率輸入圖像,但在整個(gè)主干網(wǎng)絡(luò)中,計(jì)算全局自注意力對(duì)于內(nèi)存的要求非常高,而且速度很慢。該研究重點(diǎn)關(guān)注預(yù)訓(xùn)練主干網(wǎng)絡(luò)執(zhí)行全局自注意力的場景,然后在微調(diào)期間適應(yīng)更高分辨率的輸入。這與最近使用主干網(wǎng)絡(luò)預(yù)訓(xùn)練直接修改注意力計(jì)算的方法形成對(duì)比。該研究的場景使得研究者能夠使用原始 ViT 主干網(wǎng)絡(luò)進(jìn)行檢測,而無需重新設(shè)計(jì)預(yù)訓(xùn)練架構(gòu)。
該研究探索了使用跨窗口塊的窗口注意力。在微調(diào)期間,給定高分辨率特征圖,該研究將其劃分為常規(guī)的非重疊窗口。在每個(gè)窗口內(nèi)計(jì)算自注意力,這在原始 Transformer 中被稱為「受限」自注意力。
與 Swin 不同,該方法不會(huì)跨層「移動(dòng)(shift)」窗口。為了允許信息傳播,該研究使用了極少數(shù)(默認(rèn)為 4 個(gè))可跨窗口的塊。研究者將預(yù)訓(xùn)練的主干網(wǎng)絡(luò)平均分成 4 個(gè)塊的子集(例如對(duì)于 24 塊的 ViT-L,每個(gè)子集中包含 6 個(gè)),并在每個(gè)子集的最后一個(gè)塊中應(yīng)用傳播策略。研究者分析了如下兩種策略:
- 全局傳播。該策略在每個(gè)子集的最后一個(gè)塊中執(zhí)行全局自注意力。由于全局塊的數(shù)量很少,內(nèi)存和計(jì)算成本是可行的。這類似于(Li et al., 2021 )中與 FPN 聯(lián)合使用的混合窗口注意力。
- 卷積傳播。該策略在每個(gè)子集之后添加一個(gè)額外的卷積塊來作為替代。卷積塊是一個(gè)殘差塊,由一個(gè)或多個(gè)卷積和一個(gè) identity shortcut 組成。該塊中的最后一層被初始化為零,因此該塊的初始狀態(tài)是一個(gè) identity。將塊初始化為 identity 使得該研究能夠?qū)⑵洳迦氲筋A(yù)訓(xùn)練主干網(wǎng)絡(luò)中的任何位置,而不會(huì)破壞主干網(wǎng)絡(luò)的初始狀態(tài)。
這種主干網(wǎng)絡(luò)的調(diào)整非常簡單,并且使檢測微調(diào)與全局自注意力預(yù)訓(xùn)練兼容,也就沒有必要重新設(shè)計(jì)預(yù)訓(xùn)練架構(gòu)。
實(shí)驗(yàn)結(jié)果
消融研究
在消融研究中,研究者得到了以下結(jié)論:
1、一個(gè)簡單的特征金字塔就足夠了。在表 1 中,他們比較了圖 2 所示的特征金字塔構(gòu)建策略。
2、在幾個(gè)傳播塊的幫助下,窗口注意力就足夠了。表 2 總結(jié)了本文提出的主干調(diào)整方法。簡而言之,與只有窗口注意力、無跨窗口傳播塊的基線(圖中的「none」)相比,各種傳播方式都可以帶來可觀的收益。
3、掩蔽自編碼器可以提供強(qiáng)大的預(yù)訓(xùn)練主干。表 4 比較了主干預(yù)訓(xùn)練的策略。
與分層主干的對(duì)比
下表 5 顯示了與分層主干網(wǎng)絡(luò)的比較結(jié)果。
下圖 3 顯示了幾種模型的準(zhǔn)確率與模型尺寸、FLOPs 和測試時(shí)間三者的關(guān)系。
與之前系統(tǒng)的對(duì)比
下表 6 給出了幾種方法在 COCO 數(shù)據(jù)集上的系統(tǒng)級(jí)比較結(jié)果。