ResNeSt 論文閱讀筆記

論文:《ResNeSt: Split-Attention Networks》

論文鏈接:https://hangzhang.org/files/resnest.pdf

代碼鏈接:https://github.com/zhanghang1989/ResNeSt

摘要

    儘管圖像分類模型最近一直在繼續發展,但是由於其簡單且模塊化的結構,大多數下游應用(例如目標檢測和語義分段)仍將ResNet變體用作backbone。 我們提出了一個模塊化的Split-Attention block,該block可實現跨feature map groups的attention。 通過以ResNet樣式堆疊這些Split-Attention塊,我們獲得了一個稱爲ResNeSt的新ResNet變體。 我們的網絡保留了完整的ResNet結構,可直接用於下游任務,而不會引起額外的計算成本。

    ResNeSt模型的模型複雜度優於其他網絡。 例如,ResNeSt-50使用224×224的單個crop-size在ImageNet上實現了81.13%的top-1 accuracy,比以前的最佳ResNet變種高出1%以上。 此改進還有助於下游任務,包括目標檢測,實例分割和語義分割。 例如,通過簡單地用ResNeSt-50替換ResNet-50backbone,我們將MS-COCO上的Faster RCNN的mAP從39.3%提高到42.3%,並將ADE20K上的DeeplabV3的mIoU從42.1%提高到45.1%。

1 引言

    圖像分類是計算機視覺研究的基本任務。 經過圖像分類訓練的網絡通常充當爲其他應用設計的神經網絡的backbone,例如目標檢測[22,46],語義分割[6、43、73]和姿態估計[14、58]。 最近的工作通過大規模的神經體系結構搜索(NAS)顯着提高了圖像分類的準確性[45,55]。 儘管具有最先進的性能,但這些基於NAS的模型通常並未針對通用/商業處理硬件(CPU / GPU)上的訓練效率或內存使用情況進行優化[36]。 由於過多的內存消耗,這些模型的某些較大版本甚至無法在每臺設備batch-size合適的GPU上進行訓練2 [55]。 這限制了將NAS派生的模型用於其他應用,尤其是涉及密集預測(例如分割)的任務。(NAS的侷限性)

    關於下游應用的最新工作仍然使用ResNet [23]或其變體之一作爲backbone CNN。其簡單的模塊化設計可輕鬆適應各種任務。但是,由於ResNet模型最初是爲圖像分類而設計的,由於感受野大小有限且缺乏跨通道交互,它們可能不適合各種下游應用。這意味着要提高給定計算機視覺任務的性能,需要進行“網絡手術”來修改ResNet,以使其對特定任務更加有效。例如,某些方法添加了金字塔模塊[8,69]或引入了long-range連接[ [56]或使用跨channel特徵圖attention[15,65]。雖然這些方法確實提高了某些任務的學習學習性能,但它們提出了一個問題:我們是否可以創建具有通用改進特徵表示的通用backbone,從而提高性能跨通道信息同時顯示在下游應用中是成功的[56、64、65],而最近的圖像分類網絡則更側重於分組或深度卷積[27、28、54、60]。儘管它們在分類任務中具有出色的計算能力和準確性,但這些模型無法很好地轉移到其他任務,因爲它們的孤立表示無法捕獲跨channel關係[27,2 8]。因此,具有跨通道表示的網絡是理想的。

    作爲本文的第一個貢獻,我們探索了ResNet [23]的簡單體系結構修改,將feature map 拆分attention納入各個網絡模塊中。 更具體地說,我們的每個block都將特徵圖分爲幾組(沿通道維數)和更細粒度的子組或splits,其中,每個組的特徵表示是通過其分割表示的加權組合確定的( 根據全局上下文信息選擇權重)。 我們將結果單元稱爲Split-Attention block,它保持簡單且模塊化。 通過堆疊幾個Split-Attention block,我們創建了一個類似ResNet的網絡,稱爲ResNeSt(代表“ split”)。我們的體系結構不需要比現有ResNet變量更多的計算,並且很容易被用作其他視覺任務的backbone 。

    本文的第二個貢獻圖像分類和遷移學習應用的大規模基準測試。 我們發現,利用ResNeSt backbone的模型能夠在幾個任務上達到最先進的性能,即:圖像分類,目標檢測,實例分割和語義分割。 提出的ResNeSt優於所有現有的ResNet變體,並且具有相同的計算效率,甚至比通過神經結構搜索(NAS)生成的最新的CNN模型[55]更好地實現了speed-accuracy的折衷,如表1所示。 在MS-COCO實例分割中,使用ResNeSt-101backbone的Cascade RCNN [3]模型實現了48.3%的boxes mAP和41.56%的mask mAP。 我們的單個DeepLabV3 [7]模型再次使用ResNeSt-101backbone,在ADE20K場景解析驗證集上的mIoU達到46.9%,比以前的最佳結果高出1%以上。 其他結果可以在第5節和第6節中找到。

表1:使用官方代碼實現在GPU上(左)accuracy和latency的trade-off(第5節中的詳細信息)。 (右上)使用ResNeSt在ImageNet上的Top-1accuracy。 (右下)遷移學習結果:MS-COCO上的目標檢測mAP [42]和ADE20K上的語義分割mIoU [71] 

2 相關工作

    現代CNN結構。自從AlexNet [34]以來,深度卷積神經網絡[35]主導了圖像分類。隨着這種趨勢,研究已經從工程手工特徵轉移到工程網絡體系結構。 NIN [40]首先使用全局平均池化層來代替沉重的全連接層,並採用1×1卷積層來學習特徵圖通道的非線性組合,這是第一類特徵圖注意機制。 VGG-Net [47]提出了一種模塊化的網絡設計策略,將相同類型的網絡blocks重複堆疊,從而簡化了網絡設計的工作流程,併爲下游應用提供了遷移學習的機會。Highway network[50]引入了公路連接,使信息跨幾層流動而不會衰減,並有助於網絡收斂。 ResNet [23]建立在開拓性工作成功的基礎上,引入了identity skip  connecting,減輕了深度神經網絡中消失梯度的難度,並允許網絡學習更深層的特徵表示。 ResNet已成爲最成功的CNN架構之一,已被各種計算機視覺應用採用。

    Multi-path 和 特徵圖 Attention。多路徑表示已在GoogleNet [52]中取得成功,其中每個網絡塊均由不同的卷積內核組成。 ResNeXt [61]在ResNet bottle block中採用組卷積[34],將多路徑結構轉換爲統一操作。 SE-Net [29]通過自適應地重新校準通道特徵響應來引入通道注意機制。 SK-Net [38]引起了兩個網絡分支對特徵圖的關注。 受先前方法的啓發,我們的網絡將channel-wise的注意力概括爲特徵圖組表示,可以使用統一的CNN運算符對其進行模塊化和加速。

    神經結構搜索。隨着計算能力的提高,人們的興趣已經開始從手動設計的體系結構轉移到系統搜索的體系結構,這些體系結構可以適應特定任務。 最近的神經體系結構搜索算法已經自適應地產生了CNN體系結構,這些體系結構實現了最新的分類性能,例如:AmoebaNet [45],MNASNet [54]和EfficientNet [55]。 儘管元網絡結構在圖像分類方面取得了巨大成功,但它們彼此之間卻截然不同,這使得下游模型難以建立。 相反,我們的模型保留了ResNet元結構,可以將其直接應用於許多現有的下游模型[22、41、46、69]。 我們的方法還可以擴大神經體系結構搜索的搜索空間,並有可能提高整體性能,這可以在以後的工作中進行研究。

3 Split-Attention Networks

    現在,我們引入Split-Attention blocks,該blocks啓用了跨不同featuremap組的feature map attention。 稍後,我們將描述我們的網絡實例化以及如何通過標準CNN操作加速此體系結構。

3.1 Split-Attention Block

   我們的Split-Attention blocks是一個計算單元,由特徵圖組和Split Attention操作組成。 圖1(右)描繪了Split-Attention模塊的概述。

圖1:將我們的ResNeSt block與SE-Net [30]和SK-Net [38]進行比較。 圖2中顯示了Split-Attention單元的詳細視圖。爲簡單起見,我們在cardinality-major視圖中顯示ResNeSt block(具有相同ardinal group index的feature map組彼此相鄰)。 我們在實際實現中使用radix-major,可以通過組卷積和標準CNN層對其進行模塊化和加速(請參閱補充材料)。

          圖2:cardinal group內的Split-Attention。 爲了簡化圖中的可視化,我們在該圖中使用。 

    特徵圖組。如在ResNeXt塊[61]中一樣,特徵可以分爲幾組,特徵圖組的數量由基數(cardinality)超參數K給出。我們將所得的特徵圖組稱爲基數組(cardinal groups)。 我們引入了一個新的基數(radix)超參數R,該基數指示cardinal group內的split 數目,因此特徵組的總數爲G = KR。 我們可以應用一系列變換到每個單獨的組,則對於每個組的中間表示爲

    Cardinal Groups中的Split Attention。繼[30,38]之後,每個cardinal的組合表示可以通過跨多個splits的逐元素求和來融合而獲得。 第 k 個cardinal group的表示爲,其中,並且H,W和C 是block輸出特徵圖的大小。 可以使用跨空間維度的全局平均池來收集embedded channel-wise統計信息的全局上下文信息[29,38]。 在這裏,第 c 個分量的計算公式爲:

   cardinal group組表示V k 2 RH×W×C = K的加權融合是使用channel-wise的soft attention聚合的,其中,每個特徵圖通道均使用加權splits組合產生。 第c個通道的計算公式爲:

    其中通過(soft)分配權重表示:

    並且映射根據全局上下文表示確定第 c 個channel的每個split的權重。

    ResNeSt Block。然後,將cardinal group表示形式沿通道維度連接起來:。與標準殘差塊一樣,如果輸入和輸出特徵圖共享相同的形狀,則使用shortcut connection 生成我們的Split-Attention blocks的最終輸出 Y。 對於具有跨步的blocks,將適當的變換 T 應用於shortcut connection以對齊輸出形狀。 例如, T可以是跨步卷積(stride convolution)或卷積-池化組合。

    Instantiation, Acceleration, and Computational Costs。圖1(右)顯示了我們的Split-Attention塊的實例,其中組變換是一個1×1卷積,然後是3×3卷積,並且注意權重函數使用帶有ReLU激活的兩個全連接層進行參數化。 我們以cardinality-major的視圖(具有相同cardinality index的feature map組彼此相鄰)繪製此圖,以方便地描述總體邏輯。 通過將佈局切換到radix-major視圖,可以使用標準CNN層(例如組卷積,組全連接的層和softmax操作)輕鬆加速這個block,我們將在補充材料中對其進行詳細描述。 Split-Attention塊的參數數量和FLOPS與具有相同cardinality和通道數量的殘差塊[23,60]大致相同。

    和現有Attention方法的關係。在SE-Net[29]中首次引入的“squeeze-and-attention”(在原文中稱爲“excitation”)概念是利用一個全局上下文來預測信道上的注意因素。當radix=1時,我們的Split-Attention block對每個cardinal group應用一個sequeeze-and-attention操作,而SE-Net在整個block的頂部操作,而不管多個groups。之前的SK-Net[38]模型引入了兩個網絡分支之間的特徵注意,但是其操作並沒有在訓練效率和向大型神經網絡擴展方面進行優化。我們的方法概括了之前在cardinal group設置[60]中關於特徵圖注意力的工作[29,38],並且它的實現保持計算效率。圖1顯示了與SE-Net和SK-Net塊的總體比較。

4 網絡和訓練

    現在我們來描述實驗中使用的網絡設計和訓練策略。首先,我們詳細介紹了一些進一步提高性能的調整,其中一些已經在[25]中得到了經驗驗證。

4.1 網絡調整(Network Tweaks)

    Average Downsampling。當遷移學習的下游應用是密集的預測任務(例如檢測或分割)時,保留空間信息就變得至關重要。 最近的ResNet實現通常將跨步卷積應用於3×3層而不是1×1層,以更好地保存此類信息[26,30]。 卷積層需要使用零填充策略處理特徵圖邊界,這在轉移到其他密集的預測任務時通常不是最佳選擇。 我們不是在過渡塊(對空間分辨率進行下采樣)(transitioning block)處使用大步卷積,而是使用kernel size爲3×3的平均池化層

    從ResNet-D上面調整。我們還採用了[26]引入的兩個簡單而有效的ResNet修改:(1)將第一個7×7卷積層替換爲三個連續的3×3卷積層,它們具有相同的感受野大小,並且計算代價比原始設計更小。 (2)對於步長爲2的過渡塊(transition blocks),在1×1卷積層之前,將2×2平均池化層添加到shortcut連接中。

4.2 訓練策略

    大mini-batch分佈式訓練。遵循在先前的工作[19,37],我們並行使用8個服務器(總共64個GPU)訓練模型。 我們的學習率根據consine scheduler進行調整[26,31]。 我們遵循通常的做法,即根據mini-batch size線性擴展初始學習率。 初始學習率由給出,其中B是mini-batch size,我們使用作爲基本學習率。 這種Warmup策略在前5個epochs內應用,將學習率從0逐漸線性增加到Cosine scheduler的初始值[19,39]。 batch normalize(BN)參數γ在每個塊的最終BN操作中被初始化爲零,這已被建議用於大型批處理訓練[19]。

    Label Smoothing。標籤平滑首先用於改善Inception-V2的訓練[53]。 回想一下,我們的網絡的預測類概率q的交叉熵損失是針對ground truthp計算的,如下所示:

    其中 K 是類別總數,是第 i 類的ground truth概率, 是網絡對第 i 類的預測概率。 與標準圖片分類一樣,我們定義:其中   是我們網絡的輸出層產生的對數。 當提供的標籤是類而不是類概率(硬標籤)時,如果 i 等於ground truth類 c,則,否則=0。因此,在這種情況下:。 在訓練的最後階段,對於j往往很小,而將推至最佳值時,這可能會導致過擬合[26,53]。 標籤平滑處理不是使用硬標籤作爲目標,而是使用平滑的ground truth概率:

   小常 。這可以減輕網絡的過度自信和過擬合。

    自動增強。Auto-Augment [11]是一種通過變換圖像增強訓練數據的策略,在變換圖像中自適應地學習變換。 引入了16種不同類型的圖像抖動轉換,從中,一種基於兩個連續轉換的24種不同組合(例如移位,旋轉和色彩抖動)增強了數據。 可以利用相對參數(例如,rotation angle)來控制每個變換的幅度,並且可以概率性地跳過變換。 嘗試各種候選增強策略的搜索將返回最佳的24種最佳組合。 然後,在訓練期間隨機選擇這24個策略之一併將其應用於每個樣本圖像。 原始的Auto-Augment實現使用強化學習來搜索這些超參數,並將它們視爲離散搜索空間中的分類值。 對於連續搜索空間,它會先搜索可能的值,然後再搜索最佳值。

    Mixup訓練。mixup是另一種數據增強策略,可以從訓練數據中生成隨機圖像對的加權組合[67]。 給定兩個圖像及其ground truth標籤:,合成訓練示例生成爲:  

    其中,λ〜Beta(α= 0.2)是每個增強樣本的獨立採樣。

    Large Crop Size。圖像分類研究通常會比較在共享相同crop size的圖像上運行的不同網絡的性能。 ResNet變體[23,26,29,60]通常使用224的固定訓練crop  size,而 Inception-Net 系列[51 {53]使用299的訓 crop size。最近,EfficientNet方法[55]已證明 增加輸入圖像大小以實現更深,更寬的網絡可能會更好地權衡accuracy與FLOPS。 爲了公平比較,在將ResNeSt與ResNet變體進行比較時,我們使用的crop size爲224,在與其他方法進行比較時,我們使用的crop size爲256。

    正則化。即使對於大型數據集,非常深的神經網絡也傾向於過擬合[68]。 爲了防止這種情況,dropout正則化在訓練過程中(但不是在推理過程中)隨機掩蓋了一些神經元,以形成隱式網絡集成[29、49、68]。 在最終的全連接層之前,將以0.2的丟棄概率應用於具有200層以上的網絡。 我們還將DropBlock層應用於網絡的最後兩個階段的卷積層。 作爲dropout的結構化變體,DropBlock [18]隨機掩蓋了局部塊區域,並且比dropout更有效地用於特定正則化卷積層。

    最後,我們還應用了權重衰減(即L2正則化),這還有助於穩定訓練。 先前對大 mini-batch訓練的研究表明,權重衰減應應用於卷積層全連接層的權重[19,26]。 我們不對其他任何網絡參數進行權重衰減,包括batch normalization層中的 biasd 單元 γ 和 β。

5 圖像分類結果

    我們的第一個實驗研究了ImageNet 2012數據集[13]上ResNeSt 的圖像分類性能,其中包含1.28M訓練圖像和 50K 驗證圖像(來自1000個不同的類)。 按照標準,網絡會在訓練集上進行訓練,我們會在驗證集上報告其top-1 accuracy。

5.1 改善細節

    我們使用數據分片(sharding)在ImageNet上進行分佈式訓練,從而在GPU之間平均劃分數據。在每次訓練迭代中,從相應的分片中採樣一小部分訓練數據(無替換)。我們將從學習到的“自動增強”策略應用於每個單獨的圖像。然後,我們進一步應用標準轉換,包括:隨機size裁剪,隨機水平翻轉,顏色抖動和更改照明。最後,通過 均值/標準差 重新縮放對圖像數據進行RGB歸一化。對於mixup訓練,我們僅將當前mini-batch中的每個樣本與其相反順序的樣本進行mix[26]。在ReLU激活[44]之前的每個卷積層之後使用batch normalization[32]。使用Kaiming初始化[24]初始化網絡權重。在最終分類層之前插入一個dropout層,其dropout 概率爲0.2。使用餘弦學習速率scheduler(其中前5個時間段預留給warmup),針對270個epochs進行訓練,權重衰減爲0.0001,momentum爲0.9。對於ResNeSt-50,我們使用大小爲8192的mini-batch,對於ResNeSt101,使用大小爲4096的mini-batch,並且對於ResNeSt-{200, 269}採用2048的mini-batch。爲了進行評估,我們首先將每個圖像沿短邊resize爲crop size的1 / 0.875然後應用center crop。我們用於ImageNet訓練的代碼實現使用GluonCV [21]和MXNet [9]。

5.2 消融研究

    ResNeSt基於ResNet-D模型[26]。 Mixup訓練將ResNetD-50的準確性從78.31%提高到79.15%。 自動增強功能將準確性進一步提高了0.26%。 當使用我們的Split-Attention塊形成ResNeSt-50-fast模型時,準確度進一步提高到80.64%。 在此ResNeSt-fast設置中,在3×3卷積之前應用有效的平均下采樣以避免在模型中引入額外的計算成本。 當把下采樣操作移動到卷積層之後,ResNeSt-50達到了81.13%的accuracy。

    Radix vs. Cardinality。我們對具有不同 radix/cardinality 的ResNeSt變體進行消融研究。 在每種變體中,我們都會適當調整網絡的寬度,以使其整體計算成本與ResNet變體相似。 結果顯示在表2中,其中 s 表示radixx 表示cardinalityd 表示網絡寬度(0s表示使用ResNet-D [26]中的標準殘差塊)。 從經驗上我們發現,將radix從0增加到4會不斷提高top-1的accuracy,同時還會增加latency和內存使用率 儘管我們期望通過更大的 radix/cardinality 進一步提高accuracy,但我們在後續實驗中採用了2s1x64d設置的Split-Attention,以確保這些blocks可擴展到更深的網絡,並在速度,準確性和內存使用之間取得良好的平衡。

表2:ImageNet圖像分類的消融研究。 (左)改進的細目分類。 ResNeSt-fast設置下的(右)cardinality vs. radix的關係。 例如2s2x40d表示radix= 2,cardinality= 2,width= 40。 請注意,即使radix = 1也不會降低任何現有方法的性能(請參見公式3)。


5.3 和State-of-the-Art比較

    ResNet變體。爲了與ResNet變體[23,26,29,38,60]進行比較,所有網絡(包括ResNeSt)都使用224×224的crop size進行訓練,然後使用224×224以及320x320的center crop進行評估。按照先前的實踐,我們在此基準測試中考慮50層和101層網絡。使用平均池而不是大步卷積作爲下采樣策略會使計算量額外增加1 GFLOPS。爲了公平地比較匹配的計算成本,我們將平均池化操作移到3×3卷積層之前,以構建ResNeSt-fast模型,其中卷積層在降採樣特徵圖上運行。我們使用2s1x64d(請參閱表2)作爲ResNeSt設置,因爲它具有更好的訓練和推理速度,並且內存使用較少。表3顯示,我們提出的ResNeSt在具有相似數量的網絡參數和FLOPS的情況下優於所有ResNet變體,包括:ResNet [23],ResNeXt [60],SENet [29],ResNet-D [26]和SKNet [38]。值得注意的是,我們的ResNeSt-50達到了80.64 top-1accuracy,這是第一個50層ResNet變體,在ImageNet上超過80%。

表3:在ImageNet上進行的圖像分類結果,將我們提出的ResNeSt與其他複雜程度在50層和101層配置中的ResNet變體進行了比較。 我們使用crop size224和320報top-1的accuracy。 

     其他CNN模型。爲了與使用不同crop size設置訓練的CNN模型進行比較,我們增加了更較深模型的訓練crop size。 對於ResNeSt-200,我們使用256×256的crop size;對於ResNeSt 269,我們使用320×320的crop size。對於大於256的輸入大小,採用雙三次上採樣策略。結果如表4所示,除了參數數量外,我們還比較inference速度。 我們發現,儘管在accuracy折衷的參數上具有優勢,但廣泛使用的depth-wise卷積並未針對推理速度進行優化。 在此基準測試中,所有推論速度均使用mini-batch爲16 進行測量,並使用原始作者在單個NVIDIA V100 GPU上的實現[1]。 與通過神經體系結構搜索找到的模型相比,提出的ResNeSt具有更好的accuracy和latency權衡。

6 遷移學習結果

6.1 目標檢測

    我們在 表5 中報告了在MS-COCO [42]上的檢測結果。所有模型均在帶有118k圖像的COCO-2017訓練集上進行了訓練,並使用標準COCO在具有5k圖像(又稱爲minival)的COCO-2017驗證集上進行了單一尺度的AP指標評估。 我們使用FPN [41],(跨卡)同步batch normalization[65]和圖像多尺度增強(從640到800隨機選擇圖像的短邊尺寸)訓練所有模型。 使用 1x 學習率scheduler。 我們使用 Detectron2  [57]進行FasterRCNNs和Cascade-RCNNs實驗。 爲了進行比較,我們僅使用ResNeSt替換了原始的ResNetbackbone,同時使用了超參數和檢測頭的默認設置[20,57]。

                  表5:MS-COCO驗證集上的目標檢測結果。 我們的ResNeS backbone極大地改善了FasterRCNN和Cascade-RCNN。 

                           表10:MS-COCO test-dev集上的實例分割結果。 *表示多尺度inference。

    與使用標準ResNet的baselines相比,我們的backbone能夠將Faster-RCNN和CascadeRCNN的mean average precision提高約3%。 結果表明,我們的backbone具有良好的泛化能力,可以輕鬆地轉移到下游任務。 值得注意的是,在更少的參數下,我們的ResNeSt50在Faster-RCNN和Cascade-RCNN檢測模型上均優於ResNet101。 詳細結果見表10。我們評估了具有ResNeSt101可變形的Cascade-RCNN,它也是使用COCO test-dev集上的1倍學習率計劃進行訓練的。 使用單尺度inference得出的boxes mAP爲49.2。


6.2 實例分割

    爲了探索我們新型backbone的泛化能力,我們還將其應用於實例分割任務。 除了邊界框和類別概率之外,實例分割還可以預測目標mask,因此需要更精確的密集圖像表示。

    我們以ResNeSt-50和ResNeSt-101爲backbone評估了Mask-RCNN [22]和Cascade-Mask-RCNN [2]模型。 所有模型都與FPN [41]和同步batch normalization一起訓練。 爲了增強數據,輸入圖像的短邊會隨機縮放爲(640、672、704、736、768、800)之一。 爲了與其他方法進行公平比較,應用了1x學習率計schedule,其他超參數保持不變。 我們使用上述相同的設置,但使用標準的ResNet重新訓練baseline。 我們所有的實驗都在使用COCO-2017數據集並使用Detectron2進行了訓練[57]。 對於baseline實驗,我們默認使用的backbone是ResNet的MSRA版本,在1x1轉換層上具有stride-2。 邊界框和mask mAP均在COCO-2017驗證數據集上報告。

    如表6所示,我們的新backbone具有更好的性能。 對於Mask-RCNN,ResNeSt50的性能優於baseline,box/mask 的性能提高了2.85%/ 2.09%,而ResNeSt101的改進更好,爲4.03%/ 3.14%。 對於Cascade-Mask-RCNN,切換到ResNeSt50或ResNeSt101所產生的增益分別爲3.13%/ 2.36%或3.51%/ 3.04%。 這表明,如果模型包含更多的“Split-Attention”模塊,則效果會更好。 從檢測結果中可以看出,我們的ResNeSt50的mAP超過了標準ResNet101 backbone的結果,這表明使用我們所提出模塊的小型模型的容量更高。 最後,我們還使用1倍的學習速率schedule訓練了具有ResNeSt101可變形的CascadeMask-RCNN。 我們在COCO test-dev集上對其進行評估,分別得出50.0 box mAP和43.1 mask mAP。 補充材料中包括不同設置下的其他實驗。

表6:MS-COCO驗證集上的實例分割結果。 我們的ResNeSt backbone改進了Mask-RCNN和Cascade-RCNN模型。 使用ResNeSt-101的模型優於使用ResNet-101的所有先前工作。

6.3 語義分割

    在遷移學習的語義分段的下游任務中,我們使用DeepLabV3 [7]的GluonCV [21]實現作爲baseline方法。 此處,將膨脹的(dilated)網絡策略[6,62]應用於backbone網絡,從而形成了stride-8模型。 訓練期間使用了同步batch normalize[65],以及類似多項式的學習率scheduler(初始學習率= 0.1)。 爲了進行評估,對網絡預測對數進行了8次上採樣,以針對ground truth標籤計算每個像素的交叉熵損失。 我們使用flipping[65、69、73]進行多尺度評估。

    我們首先考慮Cityscapes [10]數據集,該數據集由5K高質量標註的圖像組成。 我們在訓練集中的2,975張圖像上訓練每個模型,並在500個驗證圖像上報告其mIoU。 經過先前的工作,我們在此基準測試中僅考慮19種object/stuff類別。 在此benchmark中,我們沒有使用任何帶有粗標註的圖像或任何其他數據。 我們的ResNeSt backbone將DeepLabV3模型實現的mIoU提高了約1%,同時保持了相似的總體模型複雜性。 值得注意的是,使用我們的ResNeSt-50 backbone的DeepLabV3模型已經比具有更大的ResNet-101 backbone的DeepLabV3獲得了更好的性能。

    ADE20K [71]是一個大型場景解析數據集,包含150個object和stuff類,其中包含20K訓練,2K驗證和3K測試圖像。 所有網絡都在訓練集上訓練了120個epochs,並在驗證集上進行了評估。 表7顯示了得到的像素精度(pixAcc)和mean IoU(mIoU)。 通過使用ResNeSt backbone,DeepLabV3模型的性能得到了顯着改善。 與之前的結果類似,使用ResNeSt-50 backbone的DeepLabv3模型已經優於使用更深的ResNet-101 backbone的DeepLabv3模型。 帶有ResNeSt-101 backbone的DeepLabV3達到了82.07%pixAcc和46.91%mIoU,據我們所知,這是針對ADE20K推出的最佳單一模型。

    表7:驗證集的語義分割結果:ADE20K(左),Citscapes(右)。 訓練模型時沒有粗略標記或額外的數據。

附錄

A Radix-major的Split-Attention Block

    爲了輕鬆直觀地顯示“Split-Attentio”的概念,我們在主要方法的描述中採用了cardinality major實現,其中cardinal index相同的組在物理上彼此相鄰。 cardinality-major的實現是直接直觀的,但是很難使用標準的CNN運算符進行模塊化和加速。 因此,我們在實驗中採用以radix-major的實現。

    圖3 radix-major的佈局概述了Split-Attention block。首先將輸入feature map分爲 RK 組,其中每個組都有一個cardinality-index和radix-index。在這種佈局中,具有相同radix-index的組在內存中彼此相鄰。然後,我們可以對不同的splits進行求和,以便將cardinality-index相同,但radix-index不同的特徵圖組融合在一起。此操作與在主要論文中所述的cardinality-major實現中的每個radix組內的各個片段之間的融合處相同。類似地,全局池化層在空間維上聚合,同時保持通道維分離,這與對每個cardinal組進行全局池化然後將結果連接在一起相同。然後在池化層之後添加兩個連續的全連接(FC)層,其組數等於基cardinaty,以預測每個splits的attention權重。分組FC層的使用使得將每個FC對分別應用於每個cardinal組的頂部相同。

   圖3:ResNeSt塊的Radix-major實現,其中具有相同radix-index但不同cardinality的特徵圖組在物理上彼此相鄰。 因爲可以將1×1卷積層統一爲一個層,並且可以使用組卷積(組數等於RK)來實現3×3卷積層,所以可以輕鬆地加速此實現。

   通過這種實現,可以將前1×1卷積層統一爲一個層,並可以使用具有 RK 組數的單個分組卷積來實現3×3卷積層。 因此,使用標準CNN運算符將SplitAttention block模塊化並實現。

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章