神經架構搜尋已經在影象識別上展現出很強的能力,不論是可微架構搜尋的速度,還是基於強化學習搜尋的準確度,很多時候自動架構搜尋已經超越了我們手動設計的版本。與此同時,學習視覺的特徵表示是計算機視覺中的一個基本問題。不論是影象分類還是目標檢測,抽取影象特徵才是最首要的。
在過去幾年裡,用於影象分類和目標檢測的深度卷積網路在架構搜尋方面取得了很大進展。與預測影象類別概率的影象分類不同,目標檢測在大範圍的尺度和位置上檢測和定位多個目標時存在自身的挑戰。為了解決這個問題,很多現代目標檢測器普遍使用金字塔特徵表示,它表示具有多尺度特徵層的影象。
在這篇論文中,谷歌大腦的 Quoc V. Le 等研究者提出了一種新的架構搜尋方法 NAS-FPN。他們希望藉助神經架構搜尋的優勢,並學習更好的目標檢測特徵金字塔網路架構。目前 NAS-FPN 實現了優於當前最佳目標檢測模型的準確率和延遲權衡
目標檢測中的神經架構搜尋
特徵金字塔網路(FPN)是目標檢測中生成金字塔形狀特徵表示的代表性模型架構之一。它採用通常為影象分類設計的骨幹模型,然後通過自上而下和橫向連線,並組合不同的特徵層來構建特徵金字塔。FPN 取代了檢測器(如 Faster R-CNN)中的特徵提取器,並生成更高質量的金字塔特徵圖。
圖注:特徵金字塔網路,選自 arXiv: 1612.03144。
FPN 由自下而上和自上而下路徑組成。其中自下而上的路徑是用於提取特徵的常用卷積網路,空間解析度自下而上地下降。當空間解析度下降,且檢測到更高層的結構時,每層的語義值增加。
設計特徵金字塔架構的挑戰在於其巨大的設計空間。組合不同尺度的可能連線數量隨著網路層數的增加呈指數級增長。最近,神經架構搜尋演算法在巨大的搜尋空間中有效地發現了用於影象分類的高效能架構。為了實現這個領域的結果,Quoc V. Le 等研究者提出生成金字塔表示的可擴充套件架構搜尋空間。
NAS-FPN:一種靈活的目標檢測新方法
本文的主要貢獻是設計搜尋空間,覆蓋所有可能的跨尺度連線,已生成多尺度特徵表示。在搜尋過程中,研究者的目標是發現具有相同輸入和輸出特徵級別並且可以被重複應用的微粒架構。模組化搜尋空間使得搜尋金字塔架構變得易於管理。模組化金字塔架構的另一個好處是可以隨時檢測目標(即「early exit」),雖然這種「early exit」方法已經被嘗試過,但手動設計這種架構依舊相當困難。
研究者構建的架構,即 NAS-FPN,在構建目標檢測架構方面具有很大的靈活性。NAS-FPN 與各種骨幹模型配合得很好,如 MobileNet、ResNet、AmoebaNet。它為移動端模型和高準確率模型在速度和準確率方面提供了更好的權衡。
在相同的推理時間下,與 RetinaNet 框架中的 MobileNetV2 骨幹模型相結合,它的效能超過當前最佳的移動檢測模型(與 MobilenetV2 結合的 SSDLite)2 個 AP。與強大的 AmoebaNet-D 骨幹模型結合,NASFPN 在單個測試規模中達到了 48.3 的 AP 單模型準確率。其檢測準確率超過了 Mask RCNN,同時使用的推理時間更少。幾種模型的具體結果如圖 1 所示。
圖 1:移動裝置上準確型模型(上)和快速型模型(下)的平均精度與推斷時間關係。綠色折線是 NASFPN 與 RetinaNet 相結合的結果。詳情請看圖 9。
論文:NAS-FPN: Learning Scalable Feature Pyramid Architecture for Object Detection
論文地址:https://arxiv.org/pdf/1904.07392.pdf
摘要:當前最先進的目標檢測卷積架構都是人工設計的。在這項工作中,我們的目標是學習更好的目標檢測特徵金字塔網路架構。我們採用了神經架構搜尋,在一個包含所有跨尺度連線的新的可擴充套件搜尋空間中發現了一個新的特徵金字塔架構。這個名為 NAS-FPN 的架構包含自上而下和自下而上的連線,以融合各種尺度的特徵。NAS-FPN 與 RetinaNet 框架中的若干骨幹模型相結合,實現了優於當前最佳目標檢測模型的準確率和延遲權衡。該架構將移動檢測準確率提高了 2 AP,優於 [32] 中的當前最佳模型——與 MobileNetV2 相結合的 SSDLite,達到了 48.3 AP,超越了 Mask R-CNN [10] 的檢測準確率,且計算時間更少。
方法
本文中的方法基於 RetinaNet 框架 [23],因為該框架簡單、高效。RetinaNet 框架有兩個主要的組成部分:一個骨架網路(通常是當前最優的影象分類網路)和一個特徵金字塔網路(FPN)。本文演算法的目標是為 RetinaNet 框架發現更好的 FPN 架構。圖 2 所示為 RetinaNet 架構。
圖 2:帶有 NAS-FPN 的 RetinaNet。在本文中,特徵金字塔網路將由神經架構搜尋演算法來搜尋。骨幹網路和用於類和框預測的子網路遵循 RetinaNet [23] 中的原始設計。FPN 的架構可以堆疊多次,以獲得更高的準確率。
為了找到更好的 FPN,研究者利用 Quoc Le 等人在「Neural architecture search with reinforcement learning」中提出的神經架構搜尋(NAS)框架。NAS 利用強化學習訓練控制器在給定的搜尋空間中選擇最優的模型架構。控制器利用子模型在搜尋空間中的準確度作為獎勵訊號來更新其引數。因此,通過反覆試驗,控制器逐漸學會了如何生成更好的架構。
研究者還為 FPN 設計了一個搜尋空間來生成特徵金字塔表徵。為了實現 FPN 的可擴充套件性,研究者強制 FPN 在搜尋過程中重複 N 次,然後連線到一個大型架構中。他們將這一特徵金字塔架構命名為 NAS-FPN。
實驗
這一部分描述了學習一個 RNN 控制器來發現 NAS-FPN 架構的神經架構搜尋實驗。然後,研究者證明了他們發現的 NAS-FPN 在不同的骨幹模型和影象大小下都能很好地工作。在金字塔網路中,通過改變疊加層數和特徵維數,可以很容易地調整 NAS-FPN 的容量。此外,作者還在實驗中展示瞭如何構建準確、快速的架構。
圖 5:左:強化學習訓練的獎勵。計算獎勵的方法為在代理任務上取樣架構的 AP。右:取樣的獨特架構數與架構總數。隨著控制器逐漸收斂,控制器會取樣到越來越多的相同架構。
圖 6:5 個輸入層(黃色)和 5 個輸出特徵層(藍色)的 NAS-FPN 中發現的 7-merging-cell 金字塔網路架構。GP:全域性池化;R-C-B:ReLU-Conv-BatchNorm。
圖 7:NAS-FPN 的架構圖。每個點代表一個特徵層,同一行的特徵層具有相同的解析度,解析度由下往上遞減。箭頭表示內層之間的連線,該圖的結構是輸入層位於左側。金字塔網路的輸入用綠色圓圈標記,輸出用紅色圓圈標記。(a)基線 FPN 架構。(b~f)在 RNN 控制器的訓練中通過神經架構搜尋發現的 7-cell NAS-FPN 架構。(f)實驗中最後收斂得出的 NAS-FPN。
圖 8:NAS-FPN 的模型容量。(a)疊加金字塔網路,(b)改變骨幹架構,(c)增加金字塔網路中的特徵維度。所有的模型都是在 640x640 的影象大小上訓練/測試的。標記上方的數字表示在 NAS-FPN 中金字塔網路的數量。
圖 9:檢測準確率和推理時間的折衷(左)、浮點數(中)、引數(右)。(a)研究者將其與其他高準確率模型進行了對比。所有模型的推理時間都是在一個搭載 P100 GPU 的裝置上計算出來的。綠色折線顯示的是擁有不同骨幹架構的 NAS-FPN 結果。該標記上的數字表示在 NAS-FPN 中金字塔網路的重複次數。在每個資料點旁邊都表明了 NAS-FPN/FPN 的特徵維數和輸入影象大小。(b)研究者將自己的模型與其他快速模型進行了對比,其中所有模型的輸入影象大小為 320x320,推理時間是在 Pixel 1 CPU 上計算的。本文中的模型是用 MobileNetV2 的輕型模型訓練的。
表 1:NAS-FPN 和其他當前最優檢測器在 COCO 測試資料集上的效能表現。
圖 10:特徵維數為 256 或 384 的 NAS-FPN 在訓練時有無 DropBlock (DB) 的效能對比。模型和 ResNet-50 骨幹模型在大小為 1024x1024 的影象上訓練。當我們在金字塔網路中增加特徵維數時,新增 DropBlock 變得更重要。