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