DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution 论文笔记
前言
本文分別從宏觀和微觀角度對(duì)目標(biāo)檢測(cè)模型的backbone進(jìn)行設(shè)計(jì),進(jìn)而提出DetectorRS,
-
在宏觀上,提出遞歸特征金字塔(Recursive Feature Pyramid,RFP),它是在FPN的基礎(chǔ)上建立的,通過(guò)將FPN中額外的反饋連接整合到自底向上的backbone中,以構(gòu)成RFP,如下圖所示,圖中的黑色實(shí)線箭頭就是所提到的反饋連接。具體來(lái)說(shuō),這個(gè)反饋連接將detector head中直接接收梯度的特征(應(yīng)該就是語(yǔ)義信息豐富的特征)帶回到backbone的較低層級(jí)的特征層中,從而能夠加速訓(xùn)練并增強(qiáng)性能。
-
在微觀上,提出可轉(zhuǎn)換的空洞卷積(Switchable Atrous Convolution,SAC),它以不同的空洞率(atrous rates)對(duì)相同的輸入特征進(jìn)行卷積,然后使用switch函數(shù)合并卷積后的結(jié)果,如下圖所示,switch函數(shù)在空間上是相關(guān)的,即特征圖上的每個(gè)位置可能需要不同的switch函數(shù)來(lái)控制SAC的輸出。
Recursive Feature Pyramid
RFP
設(shè)BiB_iBi?表示bottom-up的主干網(wǎng)絡(luò)中的第i個(gè)stage,FiF_iFi?表示top-down的第i個(gè)FPN操作,那么上圖(a)FPN的輸出就是:
如上圖(b)的高亮部分所示所示,RFP向FPN中加入了反饋連接。設(shè)RiR_iRi?表示將特征連接到bottom-up主干網(wǎng)絡(luò)之前的特征轉(zhuǎn)換(這個(gè)特征轉(zhuǎn)換應(yīng)該就是圖c中的綠色圓點(diǎn)),那么RFP的輸出特征fif_ifi?就為:
可以看到RFP是一個(gè)遞歸的操作,把它展開(kāi)為有序網(wǎng)絡(luò)為(圖c就是將RFP展開(kāi)為一個(gè)2階的有序網(wǎng)絡(luò)):
展開(kāi)為有序網(wǎng)絡(luò)之后,其實(shí)就是step-1中的FPN輸出的特征圖fi1f^1_ifi1?經(jīng)過(guò)RiR_iRi?操作后,與bottom-up主干網(wǎng)絡(luò)連接起來(lái),然后再經(jīng)過(guò)step-2中的FPN得到特征圖fi2f^2_ifi2?,從圖c可以看到最終還要再經(jīng)過(guò)一個(gè)融合操作(紅色圓點(diǎn))得到最終的輸出特征圖。
為了讓ResNet能夠同時(shí)接收xxx(原始特征圖)和R(f)R(f)R(f)(反饋信息)作為輸入,還需要對(duì)ResNet做出改進(jìn)。一般來(lái)說(shuō)ResNet有四個(gè)階段,每個(gè)階段都由相似的殘差塊組成,這里僅對(duì)每個(gè)階段的第一個(gè)塊進(jìn)行更改,如下圖所示。
ASPP
ASPP(Atrous Spatial Pyramid Pooling)用于實(shí)現(xiàn)RFP中的連接模塊RRR,它以FPN的輸出特征fitf^t_ifit?作為輸入,然后把它轉(zhuǎn)換成RFP特征。在這個(gè)模塊中,有四個(gè)并行的分支,它們都以fitf^t_ifit?作為輸入,最后每個(gè)分支的輸出沿著通道維度進(jìn)行連結(jié),以生成RRR的最終輸出。其中,
- 三個(gè)分支使用的是卷積層后跟一個(gè)ReLU層,輸出的通道數(shù)是輸入通道數(shù)的1/41/41/4;
- 最后一個(gè)分支使用全局平均池化層來(lái)壓縮特征,后跟1×11 \times 11×1和ReLU層以將經(jīng)過(guò)壓縮的特征轉(zhuǎn)換為1/41/41/4大小(通道數(shù))的特征。
每個(gè)分支產(chǎn)生的特征的通道數(shù)都是輸入特征的1/41/41/4,最終經(jīng)過(guò)連結(jié)后產(chǎn)生的特征和輸入特征的大小是相同的。
Fusion Module
在RFP中最后還有一個(gè)融合模塊用于將fitf^t_ifit?和fit+1f^{t+1}_ifit+1?結(jié)合起來(lái),以更新在t+1t+1t+1個(gè)展開(kāi)階段時(shí)的特征fif_ifi?。如果將fitf^t_ifit?看作是數(shù)據(jù)的序列的話,那么這個(gè)融合模塊其實(shí)和RNN中的數(shù)據(jù)更新過(guò)程是十分相似的。在第t+1t+1t+1個(gè)展開(kāi)階段,融合模塊以第ttt個(gè)階段的特征fitf^t_ifit?和第t+1t+1t+1個(gè)階段的特征fit+1f^{t+1}_ifit+1?作為輸入,并且利用fit+1f^{t+1}_ifit+1?來(lái)計(jì)算一個(gè)attention map,這個(gè)attention map用于計(jì)算fitf^t_ifit?和fit+1f^{t+1}_ifit+1?之間的一個(gè)權(quán)重和。fitf^t_ifit?和fit+1f^{t+1}_ifit+1?以不同的權(quán)重進(jìn)行相加,最終得到新的特征fif_ifi?,這個(gè)fif_ifi?將會(huì)取代fit+1f^{t+1}_ifit+1?進(jìn)行后續(xù)的計(jì)算。
可轉(zhuǎn)換的空洞卷積
SAC(Switchable Atrous Convolution)
如上圖所示是SAC的整體結(jié)構(gòu),作者將ResNet中所有的3×33 \times 33×3的卷積層都轉(zhuǎn)換為SAC,以實(shí)現(xiàn)在不同空洞率的情況下卷積操作的軟切換。圖中紅色的鎖表示權(quán)重是相同的,只是訓(xùn)練過(guò)程可能有差異。兩個(gè)一前一后的全局上下文模塊用于將圖像級(jí)別的信息引入特征中。
用y=Conv(x,w,r)y=Conv(x,w,r)y=Conv(x,w,r)表示卷積操作,其中www表示權(quán)重,rrr表示空洞率,xxx是輸入,yyy是輸出。nn那么可以根據(jù)下式將卷積層轉(zhuǎn)換為SAC:
其中Δw\Delta wΔw是一個(gè)可學(xué)習(xí)的權(quán)重,轉(zhuǎn)換函數(shù)S()˙S(\dot)S()˙?由5×55 \times 55×5的平均池化層和1×11 \times 11×1的卷積層組成,其與輸入和位置相關(guān)。
作者提出一種鎖機(jī)制,也就是將一個(gè)權(quán)重設(shè)為www,將另一個(gè)權(quán)重設(shè)為w+Δww+\Delta ww+Δw,這樣做的原因?yàn)?#xff1a;目標(biāo)檢測(cè)通常使用預(yù)訓(xùn)練好的模型來(lái)對(duì)權(quán)重進(jìn)行初始化,但是對(duì)于一個(gè)由標(biāo)準(zhǔn)卷積層轉(zhuǎn)換而來(lái)的SAC來(lái)說(shuō),較大空洞率的權(quán)重通常是缺失的。由于可以在相同的權(quán)重下以不同的空洞率粗略地檢測(cè)出不同大小的目標(biāo),因此還是可以用預(yù)訓(xùn)練模型的權(quán)重來(lái)初始化缺失的權(quán)重的。
本文使用w+Δww+\Delta ww+Δw作為缺失的權(quán)重,其中www來(lái)自于預(yù)訓(xùn)練模型,Δw\Delta wΔw被初始化為0。當(dāng)固定Δw=0\Delta w=0Δw=0時(shí),AP會(huì)降低約0.1%0.1 \%0.1%。但是沒(méi)有鎖機(jī)制的話,Δw\Delta wΔw會(huì)使AP降低很多。
全局上下文模塊
在SAC的之前和之后有兩個(gè)全局上下文模塊,由于輸入特征已經(jīng)先被全局平均池化層壓縮過(guò)了,因此這兩個(gè)模塊都是輕量級(jí)的,權(quán)重很低。全局上下文模塊有點(diǎn)類(lèi)似于SENet,但和SENet有以下兩個(gè)不同之處:
通過(guò)實(shí)驗(yàn)發(fā)現(xiàn),在SAC之前添加全局上下文模塊(也就是將全局信息添加到轉(zhuǎn)換函數(shù)中)會(huì)對(duì)檢測(cè)性能產(chǎn)生好的影響。作者推測(cè)可能是因?yàn)樵谌中畔⒖捎玫那闆r下,轉(zhuǎn)換函數(shù)SSS能夠做出更加穩(wěn)固的轉(zhuǎn)換預(yù)測(cè)。
后來(lái)作者將全局上下文模塊從轉(zhuǎn)換函數(shù)中移出來(lái),并把它放到了SAC的之前和之后,這樣的話卷積層和轉(zhuǎn)換函數(shù)都能從中獲取全局信息。
實(shí)驗(yàn)結(jié)果
上圖從左到右分別是:baseline HTC,HTC+RFP,HTC+SAC,gt。可以看到,
- RFP與人類(lèi)視覺(jué)類(lèi)似,它可以選擇性增強(qiáng)或抑制神經(jīng)元激活,能夠更容易地找到被遮擋的目標(biāo),而附近的上下文信息也因此更加重要;
- SAC可以根據(jù)需要擴(kuò)大感受野,因此更適合檢測(cè)圖像中的大目標(biāo)。
總結(jié)
以上是生活随笔為你收集整理的DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution 论文笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 技术员 Ghost Win7 Sp1(x
- 下一篇: 基于百度API的开源自动翻译.srt文件