谷歌大腦的研究人員發表最新成果,他們采用神經結構搜索發現了一種新的特征金字塔結構NAS-FPN,可實現比 Mask R-CNN、FPN、SSD 更快更好的目標檢測。
目前用于目標檢測的最先進的卷積架構都是人工設計的。
近日,谷歌大腦的研究人員發表最新成果,他們采用神經結構搜索發現了一種新的特征金字塔結構NAS-FPN,可以更好地用于目標檢測。論文已被CVPR 2019接收。
論文地址:
https://arxiv.org/pdf/1904.07392.pdf
研究人員采用神經結構搜索,在一個新的可擴展搜索空間中發現了一種新的特征金字塔架構。
這個被發現的架構被命名為NAS-FPN,可實現比 Mask R-CNN、FPN、SSD 更快更好的目標檢測。
與目前最先進的目標檢測模型相比,NAS-FPN與RetinaNet框架中各種主干模型相結合,可以實現更好的精度和延遲權衡。
與MobileNetV2中最先進的SSDLite相比,NAS-FPN在移動檢測精度方面提高了2 AP,達到48.3 AP,超過了Mask R-CNN的檢測精度,并且計算時間更少。
設計搜索空間,生成特征表示
學習視覺特征表示是計算機視覺中的一個基本問題。近年來,針對圖像分類和目標檢測的深度卷積網絡(ConvNets)模型架構的設計取得了很大進展。與預測圖像類別概率的圖像分類任務不同,目標檢測有其自身的挑戰,即在多種尺度和位置上檢測和定位多個對象。為了解決這一問題,許多先進的目標檢測器通常使用金字塔特征表示,它以多尺度特征層來表示圖像。
特征金字塔網絡(FPN)是產生用于目標檢測的金字塔特征表示的典型模型架構之一。該方法采用通常用于圖像分類的主干模型,通過自頂向下的連接和橫向連接,將主干模型特征層中的相鄰兩層按順序組合,從而構建特征金字塔。
設計特征金字塔結構的挑戰在于其巨大的設計空間。組合來自不同尺度的特征的可能連接的數量隨層數呈指數增長。
最近的研究表明,神經結構搜索算法在巨大搜索空間中可以有效發現性能最佳的圖像分類架構。受此啟發,我們提出可擴展架構的搜索空間,用以生成金字塔表示。
本研究的主要貢獻是設計了涵蓋所有可能的跨尺度連接的搜索空間,以生成多尺度特征表示。
在搜索過程中,我們的目標是發現一個原子架構(atomic architecture),它具有相同的輸入和輸出特性級別,并且可以重復應用。
模塊化搜索空間使搜索金字塔架構易于管理。模塊化金字塔結構的另一個好處是能夠隨時檢測目標(或“提前退出”)。
所發現的架構名為NAS-FPN,為構建對象檢測架構提供了很大的靈活性。NAS-FPN適用于各種主干模型,如MobileNet、ResNet和AmoebaNet。它為快速移動模型和精確模型提供了更好的速度和精度的權衡。在相同的推理時間下,結合RetinaNet框架中的MobileNetV2主干網絡,其性能優于目前最先進的基于MobileNetV2的SSDLite移動檢測模型,精度提高了2 AP。
憑借強大的AmoebaNet-D主干模型,NAS-FPN在單次測試中達到48.3 AP單模型精度。
NAS-FPN的檢測精度也超過了Mask R-CNN,且所需推理時間更短。
我們的結果摘要如圖1所示。
圖1:移動設備上精確模型(上)和快速模型(下)的平均精度vs每張圖像的推理時間。綠色曲線突出了NAS-FPN與RetinaNet組合的結果。
方法:基于RetinaNet框架,搜索最佳架構
我們的方法基于RetinaNet框架,因為它簡單有效。RetinaNet框架有兩個主要組件:主干網絡(通常是最先進的圖像分類網絡)和特征金字塔網絡(FPN)。該算法的目標是為RetinaNet找到一個更好的FPN架構。圖2顯示了RetinaNet架構。
圖2:具有NAS-FPN的RetinaNet。在我們的方法中,特征金字塔網絡將由一個神經結構搜索算法來搜索。主干模型和用于類和邊界框預測的子網絡遵循了RetinaNet的原始設計。FPN的架構可以堆疊N次,以獲得更高的精度。
為了找到一個更好的FPN,我們利用了B. Zoph等人提出的神經結構搜索框架[44]。神經結構搜索利用強化學習訓練一個控制器(controller),在給定的搜索空間中選擇最優的模型結構。controller利用搜索空間中子模型的精度作為獎勵信號來更新其參數。因此,通過反復試驗,controller學會了隨著時間的推移生成更好的架構。正如之前的研究所指出的,搜索空間對于架構搜索的成功起著至關重要的作用。
接下來,我們將為FPN設計一個搜索空間來生成特征金字塔表示。為FPN的可伸縮性(即,這樣一個FPN架構就可以在RetinaNet中重復堆疊),在搜索過程中,我們還強制FPN自身重復N次,然后連接成一個大型架構。我們將這個特征金字塔結構稱為NAS-FPN。
架構的搜索空間
在搜索空間中,特征金字塔網絡由許多“合并單元”組成,這些單元將許多輸入層組合成RetinaNet的表示。
特征金字塔網絡
特征金字塔網絡以多尺度特征層為輸入,在相同尺度下生成輸出特征層,如圖2所示。
合并單元(Merging cell)
在以往的目標檢測工作中,一個重要的發現是,需要在不同尺度上“合并”特征。跨尺度連接允許模型將具有強語義的高級特性和具有高分辨率的低級特性結合。
我們提議merging cell,這是FPN的一個基本構建塊,將任意兩個輸入特性層合并到一個輸出特性層中。
在我們的實現中,每個merging cell接受兩個輸入特性層(可能來自不同scale),應用處理操作,然后將它們組合起來,生成一個所需規模的輸出特性層。
構建merging cell的過程如圖3所示。
圖3:merging cell中需要四個預測步驟。
每個 merging cell 有4個預測步驟:
步驟1:從候選項中選擇一個特征層;
步驟2:從候選項中選擇另一個特性層,無需替換;
步驟3:選擇輸出特性分辨率
步驟4:選擇一個二進op,將步驟1和步驟2中選擇的hi和hj組合起來,生成具有步驟3中選擇的分辨率的特征層。
在步驟4中,我們在搜索空間中設計了兩個二進操作,sum和global pooling,如圖4所示:
圖4:Binary operations
實驗和結果
我們在實驗中使用了RetinaNet的開源實現。實驗設置細節請參考原論文。
模型在COCO train2017上進行訓練,大部分實驗采用COCO val2017進行評估。在表1中,我們報告了test-dev的準確度,以便與現有方法進行比較。
表1:使用NAS-FPN和其他最先進的檢測器的RetinaNet在COCO的test-dev set上的性能比較
架構搜索找到的特征金字塔結構
什么是好的特性金字塔結構?我們希望通過可視化所發現的架構來闡明這個問題。
在圖7(b-f)中,我們繪制了在RL訓練過程中獎勵逐漸提高的NAS-FPN架構。
圖7:NAS-FPN架構圖。
圖7中,每個點代表一個特征層。同一行的特征層具有相同的分辨率。分辨率在自底向上下降。箭頭表示內部層之間的連接。圖中左側是輸入層。金字塔網絡的輸入用綠色圓圈標記,輸出用紅色圓圈標記。(a)基線FPN架構。(b-f)通過對RNN控制器的訓練進行神經結構搜索發現的7-cell NAS-FPN結構。(f)我們在實驗中使用的NAS-FPN。
可擴展的特征金字塔結構
在本節中,我們展示了如何通過調整(1)主干模型、(2)重復金字塔網絡的數量和(3)金字塔網絡的維數來控制模型容量。我們將討論這些調整如何權衡計算時間和速度。
疊加金字塔網絡。
我們的金字塔網絡有一個很好的特性,它可以通過疊加多個重復的架構來擴展成更大的架構。
在圖8a中,我們顯示了普通FPN架構的疊加并不總是提高性能,而NAS-FPN的疊加顯著提高了精度。
這個結果突出了我們的搜索算法可以找到可擴展的架構,這可能很難手工設計。
圖8:通過(a)疊加金字塔網絡,(b)改變主干結構,(c)增加金字塔網絡的特征維數,可以控制NAS-FPN的模型容量。
采用不同的主干架構。
在對象檢測架構的準確性和速度之間進行權衡的一種常見方法是更改主干架構。
圖8b顯示了不同主干上的NAS-FPN的性能。在MobilenetV2上應用NAS-FPN時,我們在160B FLOPs時得到了36.6 AP的精度。
調整特征金字塔網絡的特征維數。
另一種提高模型容量的方法是在NAS-FPN中增加特征層的特征維數。圖8c顯示了采用ResNet-50主干架構的NAS-FPN中128、256和384個特征維度的結果。毫無疑問,增加特征維可以提高檢測性能。
高檢測精度的架構
利用可擴展的NAS-FPN架構,我們討論了如何在保持效率的同時構建準確的模型。
圖9顯示,與現有方法相比,NAS-FPN與最先進的Mask R-CNN模型一樣精確,且計算時間更短。
圖9:檢測精度與推理時間(左)、FLOPs(中)和參數(右)的關系。
結論
本文提出利用神經結構搜索進一步優化用于目標檢測的特征金字塔網絡的設計過程。在COCO數據集上的實驗表明,神經結構搜索發現的架構,名為NAS-FPN,具有良好的靈活性和高性能,可用于構建精確的檢測模型。在廣泛的精度和速度權衡方面,NAS-FPN在許多主干架構上產生了顯著的改進。
-
檢測器
+關注
關注
1文章
868瀏覽量
47733 -
谷歌
+關注
關注
27文章
6177瀏覽量
105683 -
SSD
+關注
關注
21文章
2871瀏覽量
117587
原文標題:谷歌大腦重磅研究:神經結構搜索發現全新特征金字塔架構,超越Mask R-CNN等
文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論