發表日期 4/1/2022, 12:56:58 PM
機器之心報道
編輯:張倩、小舟
做目標檢測就一定需要 FPN 嗎?昨天,來自 Facebook AI Research 的 Yanghao Li、何愷明等研究者在 arXiv 上上傳瞭一篇新論文,證明瞭將普通的、非分層的視覺 Transformer 作為主乾網絡進行目標檢測的可行性。他們希望這項研究能夠引起大傢對普通主乾檢測器的關注。
研究概覽
論文鏈接:https://arxiv.org/pdf/2203.16527.pdf
當前的目標檢測器通常由一個與檢測任務無關的主乾特徵提取器和一組包含檢測專用先驗知識的頸部和頭部組成。頸部 / 頭部中的常見組件可能包括感興趣區域(RoI)操作、區域候選網絡(RPN)或錨、特徵金字塔網絡(FPN)等。如果用於特定任務的頸部 / 頭部的設計與主乾的設計解耦,它們可以並行發展。從經驗上看,目標檢測研究受益於對通用主乾和檢測專用模塊的大量獨立探索。長期以來,由於捲積網絡的實際設計,這些主乾一直是多尺度、分層的架構,這嚴重影響瞭用於多尺度(如 FPN)目標檢測的頸 / 頭的設計。
在過去的一年裏,視覺 Transformer(ViT)已經成為視覺識彆的強大支柱。與典型的 ConvNets 不同,最初的 ViT 是一種簡單的、非層次化的架構,始終保持單一尺度的特徵圖。它的「極簡」追求在應用於目標檢測時遇到瞭挑戰,例如,我們如何通過上遊預訓練的簡單主乾來處理下遊任務中的多尺度對象?簡單 ViT 用於高分辨率圖像檢測是否效率太低?放棄這種追求的一個解決方案是在主乾中重新引入分層設計。這種解決方案,例如 Swin Transformer 和其他網絡,可以繼承基於 ConvNet 的檢測器設計,並已取得成功。
在這項工作中,何愷明等研究者追求的是一個不同的方嚮: 探索僅使用普通、非分層主乾的目標檢測器 。如果這一方嚮取得成功,僅使用原始 ViT 主乾進行目標檢測將成為可能。在這一方嚮上,預訓練設計將與微調需求解耦,上遊與下遊任務的獨立性將保持,就像基於 ConvNet 的研究一樣。這一方嚮也在一定程度上遵循瞭 ViT 的理念,即在追求通用特徵的過程中減少歸納偏置。由於非局部自注意力計算可以學習平移等變特徵,它們也可以從某種形式的監督或自我監督預訓練中學習尺度等變特徵。
研究者錶示, 在這項研究中,他們的目標不是開發新的組件,而是通過最小的調整剋服上述挑戰。具體來說,他們的檢測器僅從一個普通 ViT 主乾的最後一個特徵圖構建一個簡單的特徵金字塔(如圖 1 所示)。這一方案放棄瞭 FPN 設計和分層主乾的要求。為瞭有效地從高分辨率圖像中提取特徵,他們的檢測器使用簡單的非重疊窗口注意力(沒有 shifting)。他們使用少量的跨窗口塊來傳播信息,這些塊可以是全局注意力或捲積。這些調整隻在微調過程中進行,不會改變預訓練。
這種簡單的設計收獲瞭令人驚訝的結果。研究者發現,在使用普通 ViT 主乾的情況下,FPN 的設計並不是必要的,它的好處可以通過由大步幅 (16)、單一尺度圖構建的簡單金字塔來有效地獲得。他們還發現,隻要信息能在少量的層中很好地跨窗口傳播,窗口注意力就夠用瞭。
更令人驚訝的是,在某些情況下,研究者開發的名為「ViTDet」的普通主乾檢測器可以媲美領先的分層主乾檢測器(如 Swin、MViT)。通過掩蔽自編碼器(MAE)預訓練,他們的普通主乾檢測器可以優於在 ImageNet-1K/21K 上進行有監督預訓練的分層檢測器(如下圖 3 所示)。
在較大尺寸的模型上,這種增益要更加顯著。該檢測器的優秀性能是在不同的目標檢測器框架下觀察到的,包括 Mask R-CNN、Cascade Mask R-CNN 以及它們的增強版本。
在 COCO 數據集上的實驗結果錶明,一個使用無標簽 ImageNet-1K 預訓練、帶有普通 ViT-Huge 主乾的 ViTDet 檢測器的 AP^box 可以達到 61.3。他們還在長尾 LVIS 檢測數據集上展示瞭 ViTDet 頗具競爭力的結果。雖然這些強有力的結果可能部分來自 MAE 預訓練的有效性,但這項研究錶明, 普通主乾檢測器可能是有前途的,這挑戰瞭分層主乾在目標檢測中的根深蒂固的地位 。
方法細節
該研究的目標是消除對主乾網絡的分層約束,並使用普通主乾網絡進行目標檢測。因此,該研究的目標是用最少的改動,讓簡單的主乾網絡在微調期間適應目標檢測任務。經過改動之後,原則上我們可以應用任何檢測器頭(detector head),研究者選擇使用 Mask R-CNN 及其擴展。
簡單的特徵金字塔
FPN 是構建用於目標檢測的 in-network 金字塔的常見解決方案。如果主乾網絡是分層的,FPN 的動機就是將早期高分辨率的特徵和後期更強的特徵結閤起來。這在 FPN 中是通過自上而下(top-down)和橫嚮連接來實現的,如圖 1 左所示。
如果主乾網絡不是分層網絡,那麼 FPN 動機的基礎就會消失,因為主乾網絡中的所有特徵圖都具有相同的分辨率。該研究僅使用主乾網絡中的最後一張特徵圖,因為它應該具有最強大的特徵。
研究者對最後一張特徵圖並行應用一組捲積或反捲積來生成多尺度特徵圖。具體來說,他們使用的是尺度為 1/16(stride = 16 )的默認 ViT 特徵圖,該研究可如圖 1 右所示,這個過程被稱為「簡單的特徵金字塔」。
從單張特徵圖構建多尺度特徵圖的策略與 SSD 的策略有關,但該研究的場景涉及對深度、低分辨率的特徵圖進行上采樣。在分層主乾網絡中,上采樣通常用橫嚮連接進行輔助,但研究者通過實驗發現,在普通 ViT 主乾網絡中橫嚮連接並不是必需的,簡單的反捲積就足夠瞭。研究者猜想這是因為 ViT 可以依賴位置嵌入來編碼位置,並且高維 ViT patch 嵌入不一定會丟棄信息。
如下圖所示,該研究將這種簡單的特徵金字塔與同樣建立在普通主乾網絡上的兩個 FPN 變體進行比較。在第一個變體中,主乾網絡被人為地劃分為多個階段,以模仿分層主乾網絡的各個階段,並應用橫嚮和自上而下的連接(圖 2(a))。第二個變體與第一個變體類似,但僅使用最後一張特徵圖(圖 2(b))。該研究錶明這些 FPN 變體不是必需的。
主乾網絡調整
目標檢測器受益於高分辨率輸入圖像,但在整個主乾網絡中,計算全局自注意力對於內存的要求非常高,而且速度很慢。該研究重點關注預訓練主乾網絡執行全局自注意力的場景,然後在微調期間適應更高分辨率的輸入。這與最近使用主乾網絡預訓練直接修改注意力計算的方法形成對比。該研究的場景使得研究者能夠使用原始 ViT 主乾網絡進行檢測,而無需重新設計預訓練架構。
該研究探索瞭使用跨窗口塊的窗口注意力。在微調期間,給定高分辨率特徵圖,該研究將其劃分為常規的非重疊窗口。在每個窗口內計算自注意力,這在原始 Transformer 中被稱為「受限」自注意力。
與 Swin 不同,該方法不會跨層「移動(shift)」窗口。為瞭允許信息傳播,該研究使用瞭極少數(默認為 4 個)可跨窗口的塊。研究者將預訓練的主乾網絡平均分成 4 個塊的子集(例如對於 24 塊的 ViT-L,每個子集中包含 6 個),並在每個子集的最後一個塊中應用傳播策略。研究者分析瞭如下兩種策略:
全局傳播。該策略在每個子集的最後一個塊中執行全局自注意力。由於全局塊的數量很少,內存和計算成本是可行的。這類似於(Li et al., 2021 )中與 FPN 聯閤使用的混閤窗口注意力。
捲積傳播。該策略在每個子集之後添加一個額外的捲積塊來作為替代。捲積塊是一個殘差塊,由一個或多個捲積和一個 identity shortcut 組成。該塊中的最後一層被初始化為零,因此該塊的初始狀態是一個 identity。將塊初始化為 identity 使得該研究能夠將其插入到預訓練主乾網絡中的任何位置,而不會破壞主乾網絡的初始狀態。
這種主乾網絡的調整非常簡單,並且使檢測微調與全局自注意力預訓練兼容,也就沒有必要重新設計預訓練架構。
實驗結果
消融研究
在消融研究中,研究者得到瞭以下結論:
1、一個簡單的特徵金字塔就足夠瞭。在錶 1 中,他們比較瞭圖 2 所示的特徵金字塔構建策略。
2、在幾個傳播塊的幫助下,窗口注意力就足夠瞭。錶 2 總結瞭本文提齣的主乾調整方法。簡而言之,與隻有窗口注意力、無跨窗口傳播塊的基綫(圖中的「none」)相比,各種傳播方式都可以帶來可觀的收益。
3、掩蔽自編碼器可以提供強大的預訓練主乾。錶 4 比較瞭主乾預訓練的策略。
與分層主乾的對比
下錶 5 顯示瞭與分層主乾網絡的比較結果。
下圖 3 顯示瞭幾種模型的準確率與模型尺寸、FLOPs 和測試時間三者的關係。
與之前係統的對比
下錶 6 給齣瞭幾種方法在 COCO 數據集上的係統級比較結果。