作者:Yesha R Shastri
編譯:ronghuaiyang
導讀
給大家分析一種新提出的scale-permuted主幹結構,用於識別和定位。
由於編碼器部分的解碼器結構的解析度不斷降低,分類問題得到了很好的解決。然而,這種架構不能有效地生成用於目標檢測(同時識別和定位)所需的強多尺度特徵。
SpineNet和之前的主幹網路有什麼不同?
一個特徵的存在可能需要高解析度來檢測,而它的確切位置不需要以同樣高的精度來確定。
尺度遞減的主幹的缺點
- 主幹網模型通常是指編碼器-解碼器架構(即編碼器)內的縮小尺度的網路。
- 由於編碼器的任務是從輸入中計算特徵表示,一個縮小的主幹將不能容納空間資訊。
- 隨著層次的加深,特徵會變得更加抽象,更少的區域性化,這使得解碼器很難找到確切需要的特徵。
提出的新方法
為了克服區域性化中多尺度特徵獲取和檢索的困難,引入了具有跨尺度連線的scale-permuted模型,並進行了以下改進:
- 特徵圖的尺度可以靈活的增加和減少,可以在體系結構中的任何時間透過permuting block的方式增加或減少,而不是以前的嚴格減少的模式。這將支援空間資訊的維護。
- 特徵圖的連線允許跨特徵尺度進行,以便從多個尺度進行特徵融合。
方法和結構
神經網路搜尋 (NAS)
- 採用 NAS的方法來選擇SpineNet的架構。
- NAS使用強化學習控制器。它提出了各種各樣的架構,並將這些架構送到他們接受充分訓練的環境中。
- 輸出準確度將作為一種獎勵,選擇架構的決定將依賴於它。
該SpineNet體系結構具有一個固定的stem網路(尺度縮小網路),然後是一個可學習的 scale-permuted網路。用於構建scale permuted網路的NAS的搜尋空間,包括scale permutations、cross-scale connections和block adjustments。
- Scale permutations:一個block只能連線到它的父塊,父塊的順序較低,所以塊的順序很重要。在這裡,中間塊和輸出塊發生了排列。
- 跨尺度連線:對於搜尋空間中的每個塊,定義兩個輸入連線。
- Block 調整:每個塊可以調整它們的尺度級別和型別。中間塊的尺度範圍可以像{−1,0,1,2} ,塊的型別可以是bottleneck block或residual block。
Cross-Scale Connections中的重取樣
- 在執行跨尺度連線時,在父塊和目標塊中融合具有不同解析度和特徵尺寸的跨尺度特徵是一個挑戰。
- 為了做到這一點,進行了空間和特徵重新取樣,以匹配目標塊的引數。
- 重取樣採用最近鄰演算法進行上取樣,stride為2,3×3的卷積核對feature map進行下采樣以匹配目標解析度。
評估來自ResNet的SpineNet結構
- scale-permuted模型是對ResNet結構中的block進行permuting形成的。
- 為了比較全尺度縮減的網路和scale-permuted網路,生成了許多中間模型,這些模型逐漸將架構轉換為scale-permuted的形式。
- 在上圖中,(a)表示ResNet-50,後面是Feature Pyramid Network (FPN)的輸出層。
- 在(b)中,有7個block是ResNet的一部分,10個block用在了scale-permuted網路中。
- 在(c)中,所有的塊都scale-permuted網路的一部分,在(d) SpineNet-49中,最高AP得分為40.8%,減少l了10%的FLOPs(85.4B vs. 95.2B)。
提出的SpineNet結構
基於圖4 (d)中派生出的SpineNet-49結構,在SpineNet家族中又構建了四個結構。
- SpineNet-49S具有與SpineNet-49相同的體系結構,其特徵尺寸縮小了0.65倍。
- SpineNet-96架構將所有塊重複兩次,因此模型大小是SpineNet-49的兩倍。
- SpineNet-143每個塊重複三次,重取樣操作中的比例係數保持在1.0。
- SpineNet-190每個塊重複4次,比例因子=1.3,進一步放大特徵維數。
結果對比
針對目標檢測和影像分類任務進行了實驗,以證明該架構的通用性。
目標檢測
將ResNet-FPN骨幹模型替換掉,使用RetinaNet檢測器來完成目標檢測任務。模型在COCO test-dev資料集上進行評估,並在train2017上進行訓練。
- 下面的結果(圖6)顯示了SpineNet模型在很大程度上優於其他流行的檢測器。 SpineNet-190獲得最高的52.1%的AP。通常,SpineNet架構需要更少的FLOPs和更少的引數,這使得模型的計算成本更低。
圖6:一階段物體檢測的結果,在COCO測試集上。在RetinaNet上使用不同的骨幹,應用到單個模型上。預設情況下,訓練使用多尺度訓練,使用ReLU啟用函式。模型帶(†)的在訓練時應用了隨機深度和swish啟用和塞納湖,訓練了更長的時間。
- 以下在COCO val2017上的結果(圖7),SpineNet-49減少了~10%的FLOPs, AP從R50-FPN的37.8提高到了40.8。
- 與ResNet-FPN和NAS-FPN骨幹相比,採用SpineNet骨幹的RetinaNet模型獲得了更高的AP評分,且FLOPs顯著減少(圖8)。
影像分類
為了進行影像分類,SpineNet在ImageNet ILSVRC-2012和iNaturalist-2017兩個資料集上進行了訓練。
- 在ImageNet上,Top-1%和Top-5%的準確率與ResNet相當,除此之外,FLOPs大大減少。
- 在iNaturalist上,ResNet被SpineNet超過5%,同時減少了FLOPs。
以上結果表明,SpineNet不僅能夠更好地進行目標檢測,而且對於影像分類等其他視覺學習任務也具有足夠的通用性。
Scale-Permutation和Cross-Scale Connections的重要性
我們在編解碼器網路中選擇了 Fish和 Hourglass 兩種常見的結構形式,並與R0-SP53模型進行了比較。所有模型中的交叉連線都是使用NAS學習的。
Scale-Permutation
- 由此得出的結論是,聯合學習scale-permutations和cross-scale connections (R0-SP53)優於只學習固定架構/固定塊順序(Hourglass 和Fish)上的connections。
- 在提出的模型R0-SP53中,AP得分較高**(40.7%)**。
Cross-Scale Connections
- 用於研究cross-scale connections重要性的方法是圖損壞。
- cross-scale connections在三種情況下進行損壞 —— 移除短連線,移除長連線,以及同時移除兩個連線。
- 結果顯示,在case(2)和case(3)中,AP得分受到嚴重影響。原因是遠端連線可以有效地處理頻繁的解析度變化,因此破壞這些會更嚴重地損害整體精度。
最後
- 提出了一種新的元架構,提出了一種scale-permuted模型,有效地解決了先前使用縮減尺度的主幹網路無法有效地同時解決目標識別和定位的問題。
- 使用Neural Architecture Search (NAS)獲取SpineNet-49 Architecture。此外,透過增加模型深度,又產生了四個更健壯的架構。
- 使用COCO test-dev對SpineNet進行目標檢測任務評估,其AP達到52.1%,高於現有的最先進的檢測器。
- SpineNet還成功地分別使用ImageNet和iNaturalist資料集在影像分類任務中獲得了相當好的表現,並提升了Top1%的準確率。
- 總而言之,使用新的架構,用更少的計算和近似相同數量的引數,可以獲得更高的精度。
英文原文: