论文复现——CE-FPN: Enhancing Channel Information for Object Detection
最近想自己對(duì)FPN結(jié)構(gòu)進(jìn)行一些改進(jìn),讀了不少有關(guān)FPN的論文,有些論文開(kāi)源了,但是有些最新的論文沒(méi)有開(kāi)源,后面打算把最近復(fù)現(xiàn)的論文都總結(jié)一下,發(fā)個(gè)論文復(fù)現(xiàn)系列的文章。
有些論文具體實(shí)現(xiàn)細(xì)節(jié)沒(méi)有說(shuō)清楚,所以我是按照自己的理解來(lái)復(fù)現(xiàn)的,如果有不同的方法歡迎在評(píng)論區(qū)討論。
CEFPN論文鏈接:https://arxiv.org/abs/2103.10643
CEFPN復(fù)現(xiàn)代碼:https://github.com/RooKichenn/CEFPN
文章目錄
- 一、CEFPN結(jié)構(gòu)
- 1.SSF模塊
- 2.SCE模塊
- 3.CAG模塊
- 4.使用線性插值和maxpool得到特征圖I
- 二、訓(xùn)練策略
- 三、復(fù)現(xiàn)代碼
一、CEFPN結(jié)構(gòu)
話不多說(shuō),先上圖:
CEFPN中用了不少前輩們的思想,整體框架借鑒了LibraRCNN(https://arxiv.org/abs/1904.02701v1),我認(rèn)為最大創(chuàng)新就是CEFPN的網(wǎng)絡(luò)結(jié)構(gòu),其他模塊都是借鑒前輩們的思想,沒(méi)什么特別大的創(chuàng)新,但是提供了一個(gè)改進(jìn)的思路:去掉F5和P5層,融合P4,P3,P2。下面就具體分析一下CEFPN的結(jié)構(gòu)。
1.SSF模塊
SSF(Sub-pixel Skip Fusion)是借鑒了CVPR2016年一篇關(guān)于超分辨率圖像論文中提出的亞像素卷積思想,具體是實(shí)現(xiàn)細(xì)節(jié)我在這里就不贅述了,對(duì)這篇論文不了解的話可以先去讀一下:https://arxiv.org/abs/1609.05158,在CEFPN中,作者采用了殘差融合亞像素卷積的方法對(duì)C5和C4進(jìn)行上采樣到C4和C3大小,而沒(méi)有采用傳統(tǒng)的線性插值來(lái)進(jìn)行上采樣,同時(shí)將C4和C3進(jìn)行1x1的卷積操作,并將這個(gè)結(jié)果跟亞像素卷積后的進(jìn)行特征融合,就得到了F4和F3。
2.SCE模塊
SCE(Sub-pixel Context Enhancement),這個(gè)模塊的思想也比較簡(jiǎn)單:將Input Feature分別進(jìn)行三種處理,最后得到一個(gè)通道數(shù)為原來(lái)的1/8,長(zhǎng)寬為原來(lái)的2倍的特征圖。在論文中,將Input Feature的維度描述為 2h x 2w x 8C,我認(rèn)為這樣描述的原因是第二個(gè)分支中,涉及到了長(zhǎng)寬減半的操作,也正是在這里,有一個(gè)小問(wèn)題:當(dāng)Input Feature長(zhǎng)寬為 25x25 時(shí),在長(zhǎng)寬減半后,長(zhǎng)寬為13x13,作者進(jìn)行了四倍的上采樣,得到的特征圖為52x52,與第一個(gè)分支得到的特征圖50x50大小不匹配,而文中作者并沒(méi)有提到這種情況,所以我在第二個(gè)分支輸出特征圖前又加了一個(gè)線性插值的操作,將其縮放到和第一個(gè)分支輸出的特征圖相同大小(如果有復(fù)現(xiàn)過(guò)的小伙伴可以在評(píng)論區(qū)說(shuō)一下你的解決方法,我復(fù)現(xiàn)出來(lái)的效果并沒(méi)有作者說(shuō)的好)。經(jīng)過(guò)SCE模塊后得到的特征圖和P4,P3,P2進(jìn)行特征融合,得到特征圖I。
3.CAG模塊
CAG
CAM
CAG(Channel Attention Guided)模塊借鑒了CBAM中通道注意力機(jī)制的思想,與CAM不同的是,在CAG中去掉了一個(gè)參數(shù)共享的全鏈接層,直接進(jìn)行了特征融合。
4.使用線性插值和maxpool得到特征圖I
在得到特征圖I的這個(gè)部分,跟LibraRCNN中FPN特征特征融合是一模一樣的,不了解的可以去細(xì)看LibraRCNN論文,在這里就簡(jiǎn)單說(shuō)一下作者是怎么做的:將經(jīng)過(guò)SCE模塊得到的P5,以及P4,P3,P2進(jìn)行線性插值和maxpool操作,得到特征圖I(I的size跟P4是一樣的),再除以4(I = I / 4),這里的4代表融合了幾個(gè)特征層;之后再經(jīng)過(guò)CAG模塊得到一個(gè)權(quán)重α,再通過(guò)線性插值和maxpool得到R5, R4, R3, R2,最后將Ri(i=2,3,4,5)乘以權(quán)重α,就得到了最后的預(yù)測(cè)特征圖。
二、訓(xùn)練策略
以ResNet50為例,作者再COCO數(shù)據(jù)集上訓(xùn)練了12輪,使用了4塊16G顯存的GPU,每塊GPU上2張圖片,初始學(xué)習(xí)率為0.01,并且在第8輪和第11輪下降0.1倍。這里說(shuō)一下我復(fù)現(xiàn)的結(jié)果,我只跑了ResNet50,用學(xué)校的服務(wù)器,四塊40G的A100,跟作者參數(shù)設(shè)置相同,但是map比作者低了接近兩個(gè)百分點(diǎn)。
三、復(fù)現(xiàn)代碼
代碼已同步到GitHub,歡迎star:https://github.com/RooKichenn/CEFPN
總結(jié)
以上是生活随笔為你收集整理的论文复现——CE-FPN: Enhancing Channel Information for Object Detection的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: wpf/sl下的复合程序-CAG入门
- 下一篇: 170928 逆向-Reversing.