【论文笔记】:DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution
&Title
- DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution
- 代碼
&Summary
許多現(xiàn)代的物體檢測(cè)器通過使用兩次觀察和思考的機(jī)制展示了出色的性能。 在本文中,我們探索了用于目標(biāo)檢測(cè)的主干設(shè)計(jì)中的這種機(jī)制。 ’
- 在宏級(jí)別,我們提出了遞歸特征金字塔,它結(jié)合了從特征金字塔網(wǎng)絡(luò)到自下而上的骨干層的額外反饋連接。
- 在微觀層面上,我們提出了可切換的Atrous卷積,它以不同的atrous速率對(duì)特征進(jìn)行卷積,并使用switch函數(shù)收集結(jié)果。
將它們組合在一起可產(chǎn)生DetectoRS,從而大大提高了對(duì)象檢測(cè)的性能。
在COCO測(cè)試開發(fā)中,DetectoRS達(dá)到了用于對(duì)象檢測(cè)的54.7%的box AP,用于實(shí)例分割的47.1%的mask AP和用于全景分割的49.6%的PQ。
&Research Objective
looking and thinking twice in backbone
&Problem Statement
受人類視覺系統(tǒng)的啟發(fā),計(jì)算機(jī)視覺中已實(shí)例化了兩次查看和思考的機(jī)制,并顯示了出色的性能。
- 許多流行的兩階段目標(biāo)檢測(cè)器,例如Faster R-CNN [58],首先輸出目標(biāo)提議,然后根據(jù)該提議提取區(qū)域特征以檢測(cè)目標(biāo)。
- Cascade R-CNN [5]開發(fā)了一個(gè)多級(jí)檢測(cè)器,在此之后的檢測(cè)器頭部將通過更多選擇性示例進(jìn)行訓(xùn)練。
這種設(shè)計(jì)理念的成功促使我們?cè)谟糜趯?duì)象檢測(cè)的神經(jīng)網(wǎng)絡(luò)主干設(shè)計(jì)中進(jìn)行探索。
&Method(s)
RFP
在宏觀層面上,我們提出的遞歸特征金字塔(RFP)建立在特征金字塔網(wǎng)絡(luò)(FPN)之上,通過將額外的反饋連接從FPN層合并到自下而上的骨干層,如上圖所示。將遞歸結(jié)構(gòu)展開為順序?qū)崿F(xiàn)(展開如下圖所示),我們獲得了用于對(duì)象檢測(cè)器的主干,該主干可以將圖像查看兩次或更多次。類似于在Cascade R-CNN中級(jí)聯(lián)檢測(cè)器頭經(jīng)過更多選擇性示例訓(xùn)練后,我們的RFP遞歸增強(qiáng)了FPN以生成越來越強(qiáng)大的表示形式。類似于深度監(jiān)控網(wǎng),反饋連接將直接從檢測(cè)器頭接收梯度的特征帶回到自下而上的骨干網(wǎng)的低層,以加快訓(xùn)練速度并提高性能。我們提出的RFP實(shí)現(xiàn)了兩次思考的順序設(shè)計(jì),其中自下而上的骨干網(wǎng)和FPN運(yùn)行了多次,其輸出功能取決于前面步驟中的功能。
如何遞歸傳遞呢??先看FPN的公式表達(dá):Bi表示自下而上的骨干網(wǎng)的第i個(gè)階段,Fi表示第i個(gè)自上而下的FPN操作,i為第i層
所以對(duì)于RFP來說,公式則如下:不同之處在于右邊的式子多了個(gè)Ri,Ri表示特征轉(zhuǎn)換,然后再將其連接到自底向上的主干。
ok,對(duì)于多次遞歸來說的話,就需要T來表示迭代的次數(shù):
我們使用上標(biāo)t表示展開步驟t的操作和特征。 f0i設(shè)置為0。在我們的實(shí)現(xiàn)中,Fti和Rti在不同的步驟之間共享。
ASPP(Connecting Module Input)
- 語義分割(semantic segmentation)–DeepLabV3之ASPP(Atrous Spatial Pyramid Pooling)代碼詳解
ASPP將特征fti 作為其輸入并將其轉(zhuǎn)換為圖3中使用的RFP特征。
ASPP中有四個(gè)并行分支以fti作為輸入,然后將它們的輸出沿通道維數(shù)連接在一起,以形成R的最終輸出。它們的三個(gè)分支使用卷積層,后跟ReLU層,輸出通道數(shù)為1/4輸入通道數(shù)。最后一個(gè)分支使用全局平均池化層壓縮特征,然后使用1x1卷積層和ReLU層將壓縮后的特征轉(zhuǎn)換為1/4尺寸(逐通道)的特征。最后,它被調(diào)整大小并與其他三個(gè)分支的特征連接在一起。這三個(gè)分支中的卷積層具有以下配置:內(nèi)核大小= [1、3、3],粗率= [1、3、6],填充= [0、3、6]。與原始的ASPP 不同,我們?cè)谶B接的特征之后沒有卷積層,因?yàn)榇颂嶳不會(huì)生成用于密集預(yù)測(cè)任務(wù)的最終輸出。 請(qǐng)注意,四個(gè)分支中的每一個(gè)都產(chǎn)生一個(gè)特征,其特征通道的輸入特征為輸入特征的1/4,并將它們連接起來將生成一個(gè)特征,該特征的大小與R的輸入特征相同。
Fusion module
RFP還使用融合模塊來組合fti和ft+1i來更新等式中使用的展開階段t +1的fi值。
融合模塊使用特征ft+1i通過卷積層和Sigmoid操作計(jì)算注意力圖。 所得注意力圖用于計(jì)算fti和ft+1i的加權(quán)和以形成更新的fi。 此fi將在接下去的步驟中用作fti進(jìn)行計(jì)算。
SAC
在微觀層面上,我們提出了可切換原子卷積(SAC),它可將相同的輸入特征與不同的atrous 率進(jìn)行卷積,并使用切換功能來收集結(jié)果。上圖顯示了SAC概念的圖示。
上圖顯示了一個(gè)3x3卷積層的示例,其原子率設(shè)置為1(紅色)和2(綠色):可以使用不同的原子率通過同一組卷積權(quán)重粗略地檢測(cè)出相同比例的同類物體 。
開關(guān)功能在空間上是相關(guān)的,即,特征圖的每個(gè)位置可能具有不同的開關(guān)來控制SAC的輸出。為了在檢測(cè)器中使用SAC,我們將自下而上的主干網(wǎng)中的所有標(biāo)準(zhǔn)3x3卷積層都轉(zhuǎn)換為SAC,從而大大提高了檢測(cè)器性能。
某些先前的方法采用條件卷積,例如[39,74],它也將不同卷積的結(jié)果組合為單個(gè)輸出。
與那些需要從頭開始訓(xùn)練其架構(gòu)的方法不同,SAC提供了一種機(jī)制,可以輕松轉(zhuǎn)換預(yù)先訓(xùn)練的標(biāo)準(zhǔn)卷積網(wǎng)絡(luò)(例如ImageNet預(yù)先訓(xùn)練的[59]檢查點(diǎn))。此外,在SAC中使用了一種新的權(quán)重鎖定機(jī)制,其中除了可訓(xùn)練的差異之外,不同 atrous 卷積的權(quán)重相同。
上圖是SAC的總體架構(gòu),它具有三個(gè)主要組件:在SAC組件之前和之后附加了兩個(gè)全局上下文模塊。
SAC
使用y = Conv(x,w,r)來表示權(quán)重為w和原子率r的卷積運(yùn)算,其中x為輸入和輸出y。 然后,可以將卷積層轉(zhuǎn)換為SAC,如下所示
其中,r是SAC的超參數(shù),Δw是可訓(xùn)練的權(quán)重,并且開關(guān)函數(shù)S(·)被實(shí)現(xiàn)為具有5x5內(nèi)核和1x1卷積層的平均池化層(請(qǐng)參見圖4)。 開關(guān)功能取決于輸入和位置。 因此,骨干模型能夠根據(jù)需要適應(yīng)不同的規(guī)模。 除非另有說明,否則我們?cè)趯?shí)驗(yàn)中將r設(shè)置為3。
我們提出一種鎖定機(jī)制,將一個(gè)權(quán)重設(shè)置為w,將另一個(gè)重量設(shè)置為w + ?w
原因如下。 對(duì)象檢測(cè)器通常使用預(yù)訓(xùn)練的檢查點(diǎn)來初始化權(quán)重。 但是,對(duì)于從標(biāo)準(zhǔn)卷積層轉(zhuǎn)換而來的SAC層,缺少較大atrous率的權(quán)重。 由于可以用相同的權(quán)重以不同的atrous率粗略地檢測(cè)出不同比例的物體,因此自然地用預(yù)訓(xùn)練模型中的權(quán)重來初始化丟失的權(quán)重是很自然的。 我們的實(shí)現(xiàn)對(duì)缺失的權(quán)重使用w + ?w,其中w來自預(yù)訓(xùn)練的檢查點(diǎn),而?w初始化為0。固定?w = 0時(shí),我們觀察到AP下降了0.1%。 但是沒有鎖定機(jī)制的單獨(dú)Δw會(huì)使AP大大降低。
Global Context
在SAC主要組件之前和之后插入兩個(gè)全局上下文模塊。由于首先通過全局平均池化層對(duì)輸入要素進(jìn)行壓縮,因此這兩個(gè)模塊的重量輕。全局上下文模塊類似于SENet [31],但有兩個(gè)主要區(qū)別:
- 我們只有一個(gè)卷積層,沒有任何非線性層
- 輸出被加回到主流上,而不是乘以輸入由Sigmoid計(jì)算的重新校準(zhǔn)值
通過實(shí)驗(yàn),我們發(fā)現(xiàn)在SAC組件之前添加全局上下文信息(即,將全局信息添加到switch函數(shù))對(duì)檢測(cè)性能有積極影響。我們推測(cè)這是因?yàn)楫?dāng)全局信息可用時(shí),S可以做出更穩(wěn)定的切換預(yù)測(cè)。然后,我們將全局信息移到切換功能之外,并將其放在主體之前和之后,以便Conv和S都可以從中受益。我們沒有采用原始的SENet公式,因?yàn)槲覀儼l(fā)現(xiàn)最終模型AP沒有任何改進(jìn)。
&Evaluation
&Thinks
- looking and thinking twice這個(gè)insight算是比較創(chuàng)新的吧,其實(shí)認(rèn)真看的話,沒啥可以參考借鑒的,但是漲點(diǎn)確實(shí)很牛逼,畢竟目前精度最高。
- RFG中,說是多次的迭代,但本文也僅僅迭代了兩次。是否更多次可以有更好的效果???
- RFG其實(shí)就是對(duì)特征的重復(fù)利用,而SAC像是做自適應(yīng)的選擇卷積操作(個(gè)人感覺)
總結(jié)
以上是生活随笔為你收集整理的【论文笔记】:DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: p2p shareaza 老牌多功能跨协
- 下一篇: 异步调用的接口设计