日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution论文学习

發(fā)布時間:2024/3/24 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution论文学习 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Abstract

很多的目標(biāo)檢測器通過 looking and thinking twice 的方式實(shí)現(xiàn)了驚人的表現(xiàn)。本文作者針對目標(biāo)檢測主干網(wǎng)絡(luò)的設(shè)計,研究了該機(jī)制。在宏觀層面,作者提出了遞歸特征金字塔,將來自FPN的額外的反饋連接加入到自下而上的主干層。在微觀層面,作者提出了可切換的空洞卷積(SAC),它以不同的空洞率(rate)對特征進(jìn)行卷積,并使用switch函數(shù)合并卷積后的結(jié)果。這樣就得到了DetectoRS,極大地提升了目標(biāo)檢測性能。在COCO 測試驗(yàn)證集上,DetectoRS 取得了SOTA的成績,目標(biāo)檢測項為54.7%54.7\%54.7%的邊框AP,實(shí)例分割項為47.1%47.1\%47.1%的mask AP,全景分割項為49.6%49.6\%49.6%的PQ。代碼位于:https://github.com/joe-siyuan-qiao/DetectoRS。

1. Introduction

要想找到目標(biāo)物體,人類的視覺感知會通過反饋連接來傳入高層及的語義信息,選擇性地增強(qiáng)或抑制神經(jīng)元活動。受此啟發(fā),計算機(jī)視覺領(lǐng)域?qū)嵺`了 looking and thinking twice 的思想,取得了優(yōu)異的表現(xiàn)。許多流行的雙階段檢測器,如Faster R-CNN,首先基于區(qū)域特征,輸出候選目標(biāo)框。Cascade R-CNN 設(shè)計了一個多階段的檢測器,它使用更優(yōu)質(zhì)的樣本來訓(xùn)練后面的檢測器heads。該設(shè)計思想非常成功,促使我們?nèi)パ芯磕繕?biāo)檢測的主干網(wǎng)絡(luò)如何設(shè)計。作者在宏觀和微觀兩個層面實(shí)現(xiàn)了該機(jī)制,就是 DetectoRS,它極大地提升了SOTA目標(biāo)檢測器 HTC 的性能,推理速度沒降,如表1所示。


在宏觀層面,遞歸特征金字塔(RFP)構(gòu)建于FPN之上,將FPN層中的額外反饋連接加入到自下而上的主干層中,如圖1(a)所示。將遞歸結(jié)構(gòu)拆開為一組順序?qū)崿F(xiàn),我們得到了一個目標(biāo)檢測器的主干網(wǎng)絡(luò),它會關(guān)注圖片至少兩次。與Cascade R-CNN 中的級聯(lián)檢測器的heads類似,RFP遞歸地增強(qiáng)FPN,產(chǎn)生的特征表示越來越強(qiáng)。與Deeply-Supervised Nets相似,反饋連接可以將從檢測器heads傳來的梯度,傳回自下而上的低層級主干網(wǎng)絡(luò)中,加速訓(xùn)練并提升性能。RFP實(shí)現(xiàn)了looking and thinking twice的順序設(shè)計,自下而上的主干網(wǎng)絡(luò)和FPN可以多次運(yùn)行,輸出的特征取決于之前步驟的輸出。

在微觀層面,作者提出了可切換的空洞卷積(SAC),用不同的空洞率來對相同的輸入特征做卷積,使用switch函數(shù)來結(jié)合結(jié)果。圖1b 展示了 SAC 的概念。Switch函數(shù)在空間上互相依賴,即特征圖的每個位置有著不同的switches來控制SAC的輸出。在檢測器中,作者將自下而上的主干網(wǎng)絡(luò)中所有3×33\times 33×3標(biāo)準(zhǔn)卷積層替換為SAC,顯著地提升了檢測器性能。[39,74]也采用了條件卷積,將不同的卷積結(jié)果結(jié)合為一個輸出。與這些方法不同,這些架構(gòu)需要從頭開始訓(xùn)練,而SAC提供了一個機(jī)制,可以很容易地轉(zhuǎn)化預(yù)訓(xùn)練的標(biāo)準(zhǔn)卷積網(wǎng)絡(luò)(如ImageNet-預(yù)訓(xùn)練權(quán)重)。而且SAC中使用了一個新的權(quán)重閉鎖機(jī)制,除了一個可訓(xùn)練的差異之外,不同空洞卷積的權(quán)重是一樣的。

將RFP和SAC的結(jié)合起來,就有了DetectoRS。為了證明其有效性,作者將DetectoRS加入到SOTA的HTC中,在COCO數(shù)據(jù)集上做實(shí)驗(yàn)。在COCO測試驗(yàn)證集上,作者報告了目標(biāo)檢測的邊框AP、實(shí)例分割的mask AP,和全景分割的PQ。用ResNet-50作為主干網(wǎng)絡(luò)的DetectoRS將HTC的邊框AP提升了7.7%7.7\%7.7%,mask AP提升了5.9%5.9\%5.9%。此外,將DetectoRS結(jié)合到ResNeXt-101-32x4d中,取得了54.7%54.7\%54.7%的邊框AP和47.1%47.1\%47.1%的mask AP。DetectoRS 搭配 DeepLabV3+和Wide-ResNet-41作為主干網(wǎng)絡(luò),在全景分割任務(wù)上取得了49.6%49.6\%49.6%的PQ,是一個新的記錄。

2. Related Works

目標(biāo)檢測。目標(biāo)檢測方法主要有2類:單階段方法和多階段方法。多階段檢測器通常更加靈活、準(zhǔn)確,但是比起單階段方法來說更加復(fù)雜。本文作者用多階段的HTC作為基線模型。

多層級特征。遞歸特征金字塔基于FPN而來,FPN 利用多尺度特征來進(jìn)行有效的目標(biāo)檢測。之前,許多目標(biāo)檢測器直接使用主干網(wǎng)絡(luò)的多尺度特征,而FPN加入了自上而下的path,將不同尺度的特征按照順序進(jìn)行結(jié)合。PANet 在FPN之上,增加了另一個自下而上的path。STDL通過尺度轉(zhuǎn)換模塊來利用跨尺度的特征。G-FRNet 通過gating units增加反饋信息。NAS-FPN和Auto-FPN使用神經(jīng)結(jié)構(gòu)搜索找到最佳的FPN結(jié)構(gòu)。EfficientDet提出復(fù)用一個簡單的BiFPN層。與它們不同,本文的遞歸特征金字塔重復(fù)連入自下而上的主干網(wǎng)絡(luò),增強(qiáng)FPN特征表示的能力。此外,作者在FPN中加入了空洞空間金字塔池化(ASPP),增強(qiáng)特征,與Seamless 的 mini-DeepLab設(shè)計相似。

遞歸卷積網(wǎng)絡(luò)。人們提出了許多遞歸方法,解決不同類型的計算機(jī)視覺問題。最近有一個遞歸方法CBNet用于目標(biāo)檢測,將多個主干網(wǎng)絡(luò)級聯(lián)起來,它輸出的特征作為FPN的輸入。相反,本文的RFP通過ASPP加持的FPN來執(zhí)行遞歸計算。

條件卷積。條件卷積網(wǎng)絡(luò)采用動態(tài)卷積核、寬度或深度。與它們不同,本文的可切換空洞卷積(SAC)不會改變預(yù)訓(xùn)練模型,將標(biāo)準(zhǔn)卷積轉(zhuǎn)換為條件卷積。SAC因此對于許多預(yù)訓(xùn)練主干網(wǎng)絡(luò)來說,可以即插即用。而且,SAC使用全局上下文信息,以及一個創(chuàng)新的權(quán)重閉鎖機(jī)制,來讓它更加有效。

3. 遞歸特征金字塔

3.1 特征金字塔網(wǎng)絡(luò)

這一部分將介紹下特征金字塔網(wǎng)絡(luò)。BiB_iBi?表示自下而上主干網(wǎng)絡(luò)的第iii個階段,FiF_iFi?表示第iii個自上而下FPN操作。搭配FPN的主干網(wǎng)絡(luò)輸出一組特征圖{fi∣i=1,...,S}\{f_i | i=1,...,S\}{fi?i=1,...,S},其中SSS是階段的個數(shù)。例如圖2a中,S=3S=3S=3?i=1,...,S\forall i=1,...,S?i=1,...,S,輸出特征fif_ifi?定義為:

fi=Fi(fi+1,xi),xi=Bi(xi?1)f_i = F_i (f_{i+1}, x_i), x_i = B_i(x_{i-1})fi?=Fi?(fi+1?,xi?),xi?=Bi?(xi?1?)

其中x0x_0x0?是輸入圖像,fS+1=0f_{S+1}=0fS+1?=0。目標(biāo)檢測器構(gòu)建于FPN之上,使用fif_ifi?用于檢測計算。

3.2 遞歸特征金字塔

RFP往FPN中增加了反饋連接,如圖2b所示。在將它們連接回自下而上的主干網(wǎng)絡(luò)前,我們用RiR_iRi?表示特征變換,在將它們連接到自下而上的主干網(wǎng)絡(luò)之前。然后,對于?i=1,...,S\forall i=1,...,S?i=1,...,S,輸出特征fif_ifi?的定義為:

fi=Fi(fi+1,xi),xi=Bi(xi?1,Ri(fi))f_i = F_i (f_{i+1}, x_i), x_i = B_i(x_{i-1}, R_i(f_i))fi?=Fi?(fi+1?,xi?),xi?=Bi?(xi?1?,Ri?(fi?))

這樣RFP就是遞歸操作了。我們將它拆開為一個網(wǎng)絡(luò)序列,即 ?i=1,...,S,t=1,...,T\forall i=1,...,S, t=1,...,T?i=1,...,S,t=1,...,T

fit=Fit(fi+1t,xit),xit=Bit(xi?1t,Rit(fit?1))f_i^t = F_i^t(f_{i+1}^t, x_i^t), x_i^t = B_i^t(x_{i-1}^t, R_i^t (f_i^{t-1}))fit?=Fit?(fi+1t?,xit?),xit?=Bit?(xi?1t?,Rit?(fit?1?))

其中TTT為拆開的次數(shù),我們用上標(biāo)ttt來表示第ttt步的運(yùn)算與特征。fi0f_i^0fi0?被設(shè)為0。在實(shí)現(xiàn)中,FitF_i^tFit?RitR_i^tRit?在不同的步驟中共享。在第5部分的實(shí)驗(yàn)研究中,作者列出了共享的和不同的BitB_i^tBit?,以及不同TTT的表現(xiàn)。在實(shí)驗(yàn)中,作者使用了不同的BitB_i^tBit?,設(shè)T=2T=2T=2

作者改進(jìn)了ResNet主干網(wǎng)絡(luò)BBB,將xxxR(f)R(f)R(f)作為輸入。ResNet有4個階段,每個都由多個相似的模塊構(gòu)成。作者只改變了每個階段的第一個模塊,如圖3所示。該模塊計算一個3層的特征,將它加到shortcut計算出的特征上。為了使用特征R(f)R(f)R(f),作者增加了另一個卷積層,卷積核大小是1。該層的權(quán)重初始化為0,確保加載預(yù)訓(xùn)練權(quán)重時,它不會有任何的影響。

作者使用空洞空間金字塔池化(ASPP)來實(shí)現(xiàn)連接模塊RRR,它將特征fitf_i^tfit?作為輸入,將之變換為RFP特征,如圖3所示。在該模塊中,有4個平行的分支,將fitf_i^tfit?作為輸入,輸出然后沿著通道維度進(jìn)行concat,得到最終的輸出RRR。它們中的三條分支使用一個卷積層和一個ReLU層,輸出通道數(shù)是輸入通道數(shù)的1/41/41/4。最后一個分支使用全局平均池化層來壓縮特征,后面跟著一個1×11\times 11×1卷積層和一個ReLU層,將壓縮后的特征變換為1/41/41/4大小(通道維度)的特征。最后,我們將這些特征重新縮放,與其它三個分支的特征進(jìn)行concat。這三個分支里的卷積層的配置如下:卷積核大小為[1,3,3][1,3,3][1,3,3],空洞率為[1,3,6][1,3,6][1,3,6],padding為[0,3,6][0,3,6][0,3,6]。與原始的ASPP不同,作者并沒有在concat特征之后跟著一個卷積層,因?yàn)?span id="ozvdkddzhkzd" class="katex--inline">RRR沒有輸出最終的結(jié)果。注意,這四個分支中的每一個所輸出的特征,其維度都是輸入特征的1/41/41/4,將它們concat之后就會得到一個與輸入特征RRR一樣大小的特征。在第5部分,作者證明了有和沒有ASPP模塊時RFP的性能。

3.4 Output updated by the fusion module

如圖2c所示,RFP額外地使用了融合模塊,將fitf_i^tfit?fit+1f_i^{t+1}fit+1?結(jié)合起來,更新上面等式中第t+1t+1t+1個階段的fif_ifi?值。該融合模塊與遞歸神經(jīng)網(wǎng)絡(luò)中的更新過程非常相似,如果我們將fitf_i^tfit?看作為一個數(shù)據(jù)序列。在第2到第TTT步驟中,使用了融合模塊。在第t+1t+1t+1t=1,...,T?1t=1,...,T-1t=1,...,T?1)的步驟中,融合模塊將第ttt步的特征fitf_i^tfit?與FPN在第t+1t+1t+1步中最新計算出的特征fit+1f_i^{t+1}fit+1?作為輸入。該融合模塊使用特征fit+1f_i^{t+1}fit+1?來計算注意力圖,通過一個卷積層和一個sigmoid操作。該注意力圖用于計算fitf_i^tfit?fit+1f_i^{t+1}fit+1?的加權(quán)和,來更新fif_ifi?。這個fif_ifi?將作為fit+1f_i^{t+1}fit+1?,在后續(xù)的步驟中使用。

4. 可切換的空洞卷積

4.1 空洞卷積

空洞卷積是增大卷積層濾波器感受野的有效方式。特別地,空洞率rrr的空洞卷積在兩個連續(xù)的濾波器值之間引入r?1r-1r?1個0,相當(dāng)于將卷積核大小由k×kk\times kk×k增大到ke=k+(k?1)(r?1)k_e = k + (k-1)(r-1)ke?=k+(k?1)(r?1),而不會增加參數(shù)的個數(shù)或計算量。圖1b為3×33\times 33×3卷積層和空洞率為1(紅色)與2(綠色)的一個例子:不同尺度的同類物體可以通過相同的卷積權(quán)重和不同的空洞率來檢測。

4.2 可切換的空洞卷積

作者介紹了SAC的細(xì)節(jié)。圖4展示了SAC的整體結(jié)構(gòu),它主要有3個組成:2個全局上下文模塊分別加在SAC組建的前面和后面。這部分關(guān)注在SAC中間的主要構(gòu)成上,隨后作者會介紹全局上下文模塊。

作者用y=Conv(x,w,r)y=\text{Conv}(x,w,r)y=Conv(x,w,r)來表示卷積操作,權(quán)重為www,空洞率為rrr,輸入是xxx,輸出是yyy。然后,將卷積層轉(zhuǎn)化為一個SAC:

Conv(x,w,1)→to?SACConvertS(x)?Conv(x,w,1)+(1?S(x))?Conv(x,w+Δw,r)\text{Conv}(x,w,1) \xrightarrow[\text{to SAC}]{\text{Convert}} S(x)\cdot \text{Conv} (x, w, 1) + (1-S(x))\cdot \text{Conv}(x,w + \Delta w,r)Conv(x,w,1)Convertto?SAC?S(x)?Conv(x,w,1)+(1?S(x))?Conv(x,w+Δw,r)

其中rrr是SAC的超參數(shù),Δw\Delta wΔw是可訓(xùn)練的權(quán)重,switch函數(shù)S(?)S(\cdot)S(?)用一個5×55\times 55×5的核的平均池化層,后面跟著一個1×11\times 11×1的卷積層,如圖4所示。該swtich函數(shù)依賴于輸入和位置;因此,主干網(wǎng)絡(luò)模型能夠適應(yīng)不同的尺度。實(shí)驗(yàn)中作者設(shè)r=3r=3r=3

作者提出了一個閉鎖機(jī)制,設(shè)一個權(quán)重為www,其它的為w+Δww+\Delta ww+Δw。目標(biāo)檢測器通常用預(yù)訓(xùn)練權(quán)重來初始化網(wǎng)絡(luò)。但是,對于一個由標(biāo)準(zhǔn)卷積轉(zhuǎn)化而來的SAC層,沒有較大空洞率的權(quán)重。由于不同尺度的物體大概都可以用相同的權(quán)重,而空洞率不同來檢測到,很自然地我們就可以用預(yù)訓(xùn)練模型的權(quán)重來初始化這些缺失的權(quán)重。本文實(shí)現(xiàn)將w+Δww+\Delta ww+Δw用作為這些缺失的權(quán)重,其中www來自于預(yù)訓(xùn)練權(quán)重,而Δw\Delta wΔw初始化為0。當(dāng)Δw=0\Delta w=0Δw=0時,發(fā)現(xiàn)AP降低了0.1%0.1\%0.1%。但是不用閉鎖機(jī)制的話,AP會下降許多。

4.3 全局上下文

如圖4所示,作者在SAC前后共插入了2個全局上下文模塊。這2個模塊都很輕量級,輸入特征首先通過一個全局平均池化層壓縮。全局上下文模塊與SENet類似,除了2個不同之處:(1) 我們只有一個卷積層,沒有非線性層;(2) 輸出被加到主干之后,而不是通過sigmoid計算出的值來乘到輸入上。作者發(fā)現(xiàn)將全局上下文信息加到SAC之前(即將全局信息加到switch函數(shù)里),對檢測效果有正面的作用。作者猜測,這是因?yàn)?span id="ozvdkddzhkzd" class="katex--inline">SSS在有全局信息的時候,所做出的預(yù)測更加穩(wěn)定。然后,作者將全局信息移除switch函數(shù),將它放在主干部分的前面和后面,這樣ConvConvConvSSS都會受益。作者沒有采用原始的SENet方式,因?yàn)闆]有發(fā)現(xiàn)它對最終的AP有何影響。

4.4 實(shí)現(xiàn)細(xì)節(jié)

在實(shí)現(xiàn)中,作者使用了變形卷積來代替等式4中的卷積操作。它們的offset函數(shù)沒有共享。第5部分會講述SAC有和沒有變形卷積時的性能比較。作者在ResNet和其變體上采用SAC,在主干網(wǎng)絡(luò)中將所有的3×33\times 33×3卷積替換。全局上下文模塊的權(quán)重和偏置都被初始化為0。swtich SSS中的權(quán)重初始化為0,偏置初始化為1。Δw\Delta wΔw初始化為0。上述初始化策略確保了,當(dāng)我們加載從ImageNet上訓(xùn)練得到的預(yù)訓(xùn)練模型時,將所有3×33\times 33×3卷積轉(zhuǎn)化為SAC不會改變輸出。

4. Experiments

Pls read paper for more details.

總結(jié)

以上是生活随笔為你收集整理的DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution论文学习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。