本文轉載自:
http://www.cnblogs.com/lillylin/p/6277094.html
R-FCN論文閱讀(R-FCN: Object Detection via Region-based Fully Convolutional Networks )
目錄
- 作者及相關連結
- 方法概括
- 方法細節
- 實驗結果
- 總結
- 參考文獻
作者及相關連結
論文閱讀 R-FCN: Object Detection via Region-based Fully Convolutional Networks R-FCN論文閱讀(R-FCN: Object Detection via Region-based Fully Convolutional Networks ) 作者及相關連結 方法概括 方法細節 實驗結果 總結 參考文獻 - 作者連結:代季峰,何恺明,孫劍
- 論文連結:論文傳送門
- 代碼連結:matlab版,python版
方法概括
-
R-FCN解決問題——目标檢測
-
整個R-FCN的結構
- 一個base的conv網絡如ResNet101, 一個RPN(Faster RCNN來的),一個position sensitive的prediction層,最後的ROI pooling+投票的決策層
論文閱讀 R-FCN: Object Detection via Region-based Fully Convolutional Networks R-FCN論文閱讀(R-FCN: Object Detection via Region-based Fully Convolutional Networks ) 作者及相關連結 方法概括 方法細節 實驗結果 總結 參考文獻 -
R-FCN的idea出發點(關鍵思想)
- 分類需要特征具有平移不變性,檢測則要求對目标的平移做出準确響應。現在的大部分CNN在分類上可以做的很好,但用在檢測上效果不佳。SPP,Faster R-CNN類的方法在ROI pooling前都是卷積,是具備平移不變性的,但一旦插入ROI pooling之後,後面的網絡結構就不再具備平移不變性了。是以,本文想提出來的position sensitive score map這個概念是能把目标的位置資訊融合進ROI pooling。
論文閱讀 R-FCN: Object Detection via Region-based Fully Convolutional Networks R-FCN論文閱讀(R-FCN: Object Detection via Region-based Fully Convolutional Networks ) 作者及相關連結 方法概括 方法細節 實驗結果 總結 參考文獻
論文閱讀 R-FCN: Object Detection via Region-based Fully Convolutional Networks R-FCN論文閱讀(R-FCN: Object Detection via Region-based Fully Convolutional Networks ) 作者及相關連結 方法概括 方法細節 實驗結果 總結 參考文獻 -
- 對于region-based的檢測方法,以Faster R-CNN為例,實際上是分成了幾個subnetwork,第一個用來在整張圖上做比較耗時的conv,這些操作與region無關,是計算共享的。第二個subnetwork是用來産生候選的boundingbox(如RPN),第三個subnetwork用來分類或進一步對box進行regression(如Fast RCNN),這個subnetwork和region是有關系的,必須每個region單獨跑網絡,銜接在這個subnetwork和前兩個subnetwork中間的就是ROI pooling。我們希望的是,耗時的卷積都盡量移到前面共享的subnetwork上。是以,和Faster RCNN中用的ResNet(前91層共享,插入ROI pooling,後10層不共享)政策不同,本文把所有的101層都放在了前面共享的subnetwork。最後用來prediction的卷積隻有1層,大大減少了計算量。
論文閱讀 R-FCN: Object Detection via Region-based Fully Convolutional Networks R-FCN論文閱讀(R-FCN: Object Detection via Region-based Fully Convolutional Networks ) 作者及相關連結 方法概括 方法細節 實驗結果 總結 參考文獻 方法細節
論文閱讀 R-FCN: Object Detection via Region-based Fully Convolutional Networks R-FCN論文閱讀(R-FCN: Object Detection via Region-based Fully Convolutional Networks ) 作者及相關連結 方法概括 方法細節 實驗結果 總結 參考文獻 - Backbone architecture: ResNet 101——去掉原始ResNet101的最後一層全連接配接層,保留前100層,再接一個1*1*1024的全卷積層(100層輸出是2048,為了降維,再引入了一個1*1的卷積層)。
- k^2(C+1)的conv: ResNet101的輸出是W*H*1024,用K^2(C+1)個1024*1*1的卷積核去卷積即可得到K^2(C+1)個大小為W*H的position sensitive的score map。這步的卷積操作就是在做prediction。k = 3,表示把一個ROI劃分成3*3,對應的9個位置分别是:上左(左上角),上中,上右,中左,中中,中右,下左,下中,下右(右下角),如圖Figuire 3。
論文閱讀 R-FCN: Object Detection via Region-based Fully Convolutional Networks R-FCN論文閱讀(R-FCN: Object Detection via Region-based Fully Convolutional Networks ) 作者及相關連結 方法概括 方法細節 實驗結果 總結 參考文獻
論文閱讀 R-FCN: Object Detection via Region-based Fully Convolutional Networks R-FCN論文閱讀(R-FCN: Object Detection via Region-based Fully Convolutional Networks ) 作者及相關連結 方法概括 方法細節 實驗結果 總結 參考文獻 - k^2(C+1)個feature map的實體意義: 共有k*k = 9個顔色,每個顔色的立體塊(W*H*(C+1))表示的是不同位置存在目标的機率值(第一塊黃色表示的是左上角位置,最後一塊淡藍色表示的是右下角位置)。共有k^2*(C+1)個feature map。每個feature map,z(i,j,c)是第i+k(j-1)個立體塊上的第c個map(1<= i,j <=3)。(i,j)決定了9種位置的某一種位置,假設為左上角位置(i=j=1),c決定了哪一類,假設為person類。在z(i,j,c)這個feature map上的某一個像素的位置是(x,y),像素值是value,則value表示的是原圖對應的(x,y)這個位置上可能是人(c=‘person’)且是人的左上部位(i=j=1)的機率值。
- ROI pooling: 就是faster RCNN中的ROI pooling,也就是一層的SPP結構。主要用來将不同大小的ROI對應的feature map映射成同樣次元的特征,思路是不論對多大的ROI,規定在上面畫一個n*n 個bin的網格,每個網格裡的所有像素值做一個pooling(平均),這樣不論圖像多大,pooling後的ROI特征次元都是n*n。注意一點ROI pooling是每個feature map單獨做,不是多個channel一起的。
- ROI pooling的輸入和輸出:ROI pooling操作的輸入(對于C+1個類)是k^2*(C+1)*W' *H'(W'和H'是ROI的寬度和高度)的score map上某ROI對應的那個立體塊,且該立體塊組成一個新的k^2*(C+1)*W' *H'的立體塊:每個顔色的立體塊(C+1)都隻摳出對應位置的一個bin,把這k*k個bin組成新的立體塊,大小為(C+1)*W'*H'。例如,下圖中的第一塊黃色隻取左上角的bin,最後一塊淡藍色隻取右下角的bin。所有的bin重新組合後就變成了類似右圖的那個薄的立體塊(圖中的這個是池化後的輸出,即每個面上的每個bin上已經是一個像素。池化前這個bin對應的是一個區域,是多個像素)。ROI pooling的輸出為為一個(C+1)*k*k的立體塊,如下圖中的右圖。更詳細的有關ROI pooling的操作如公式(1)所示:
論文閱讀 R-FCN: Object Detection via Region-based Fully Convolutional Networks R-FCN論文閱讀(R-FCN: Object Detection via Region-based Fully Convolutional Networks ) 作者及相關連結 方法概括 方法細節 實驗結果 總結 參考文獻
論文閱讀 R-FCN: Object Detection via Region-based Fully Convolutional Networks R-FCN論文閱讀(R-FCN: Object Detection via Region-based Fully Convolutional Networks ) 作者及相關連結 方法概括 方法細節 實驗結果 總結 參考文獻
論文閱讀 R-FCN: Object Detection via Region-based Fully Convolutional Networks R-FCN論文閱讀(R-FCN: Object Detection via Region-based Fully Convolutional Networks ) 作者及相關連結 方法概括 方法細節 實驗結果 總結 參考文獻
論文閱讀 R-FCN: Object Detection via Region-based Fully Convolutional Networks R-FCN論文閱讀(R-FCN: Object Detection via Region-based Fully Convolutional Networks ) 作者及相關連結 方法概括 方法細節 實驗結果 總結 參考文獻
論文閱讀 R-FCN: Object Detection via Region-based Fully Convolutional Networks R-FCN論文閱讀(R-FCN: Object Detection via Region-based Fully Convolutional Networks ) 作者及相關連結 方法概括 方法細節 實驗結果 總結 參考文獻
論文閱讀 R-FCN: Object Detection via Region-based Fully Convolutional Networks R-FCN論文閱讀(R-FCN: Object Detection via Region-based Fully Convolutional Networks ) 作者及相關連結 方法概括 方法細節 實驗結果 總結 參考文獻
論文閱讀 R-FCN: Object Detection via Region-based Fully Convolutional Networks R-FCN論文閱讀(R-FCN: Object Detection via Region-based Fully Convolutional Networks ) 作者及相關連結 方法概括 方法細節 實驗結果 總結 參考文獻
論文閱讀 R-FCN: Object Detection via Region-based Fully Convolutional Networks R-FCN論文閱讀(R-FCN: Object Detection via Region-based Fully Convolutional Networks ) 作者及相關連結 方法概括 方法細節 實驗結果 總結 參考文獻
論文閱讀 R-FCN: Object Detection via Region-based Fully Convolutional Networks R-FCN論文閱讀(R-FCN: Object Detection via Region-based Fully Convolutional Networks ) 作者及相關連結 方法概括 方法細節 實驗結果 總結 參考文獻
論文閱讀 R-FCN: Object Detection via Region-based Fully Convolutional Networks R-FCN論文閱讀(R-FCN: Object Detection via Region-based Fully Convolutional Networks ) 作者及相關連結 方法概括 方法細節 實驗結果 總結 參考文獻
論文閱讀 R-FCN: Object Detection via Region-based Fully Convolutional Networks R-FCN論文閱讀(R-FCN: Object Detection via Region-based Fully Convolutional Networks ) 作者及相關連結 方法概括 方法細節 實驗結果 總結 參考文獻
論文閱讀 R-FCN: Object Detection via Region-based Fully Convolutional Networks R-FCN論文閱讀(R-FCN: Object Detection via Region-based Fully Convolutional Networks ) 作者及相關連結 方法概括 方法細節 實驗結果 總結 參考文獻
論文閱讀 R-FCN: Object Detection via Region-based Fully Convolutional Networks R-FCN論文閱讀(R-FCN: Object Detection via Region-based Fully Convolutional Networks ) 作者及相關連結 方法概括 方法細節 實驗結果 總結 參考文獻 - vote投票:k*k個bin直接進行求和(每個類單獨做)得到每一類的score,并進行softmax得到每類的最終得分,并用于計算損失
論文閱讀 R-FCN: Object Detection via Region-based Fully Convolutional Networks R-FCN論文閱讀(R-FCN: Object Detection via Region-based Fully Convolutional Networks ) 作者及相關連結 方法概括 方法細節 實驗結果 總結 參考文獻
論文閱讀 R-FCN: Object Detection via Region-based Fully Convolutional Networks R-FCN論文閱讀(R-FCN: Object Detection via Region-based Fully Convolutional Networks ) 作者及相關連結 方法概括 方法細節 實驗結果 總結 參考文獻
論文閱讀 R-FCN: Object Detection via Region-based Fully Convolutional Networks R-FCN論文閱讀(R-FCN: Object Detection via Region-based Fully Convolutional Networks ) 作者及相關連結 方法概括 方法細節 實驗結果 總結 參考文獻 - 損失函數:和faster RCNN類似,由分類loss和回歸loss組成,分類用交叉熵損失(log loss),回歸用L1-smooth損失
論文閱讀 R-FCN: Object Detection via Region-based Fully Convolutional Networks R-FCN論文閱讀(R-FCN: Object Detection via Region-based Fully Convolutional Networks ) 作者及相關連結 方法概括 方法細節 實驗結果 總結 參考文獻 - 訓練的樣本選擇政策:online hard example mining (OHEM,參考文獻1) 。主要思想就是對樣本按loss進行排序,選擇前面loss較小的,這個政策主要用來對負樣本進行篩選,使得正負樣本更加平衡。
- 訓練細節:
- decay = 0.0005
- momentum = 0.9
- single-scale training: images are resized such that the scale (shorter side of image) is 600 pixels [6, 18].
- 8 GPUs (so the effective mini-batch size is 8×), each GPU holds 1 image and selects B = 128 RoIs for backprop.
- fine-tune learning rate = 0.001 for 20k mini-batches, 0.0001 for 10k mini-batches on VOC.
- the 4-step alternating training between training RPN and training R-FCN.(類似于Faster RCNN)
- 使用atrous(hole算法)
論文閱讀 R-FCN: Object Detection via Region-based Fully Convolutional Networks R-FCN論文閱讀(R-FCN: Object Detection via Region-based Fully Convolutional Networks ) 作者及相關連結 方法概括 方法細節 實驗結果 總結 參考文獻 實驗結果
-
VOC2007和VOC2010上與Faster R-CNN的對比:R-FCN比Faster RCNN好!
論文閱讀 R-FCN: Object Detection via Region-based Fully Convolutional Networks R-FCN論文閱讀(R-FCN: Object Detection via Region-based Fully Convolutional Networks ) 作者及相關連結 方法概括 方法細節 實驗結果 總結 參考文獻
論文閱讀 R-FCN: Object Detection via Region-based Fully Convolutional Networks R-FCN論文閱讀(R-FCN: Object Detection via Region-based Fully Convolutional Networks ) 作者及相關連結 方法概括 方法細節 實驗結果 總結 參考文獻
論文閱讀 R-FCN: Object Detection via Region-based Fully Convolutional Networks R-FCN論文閱讀(R-FCN: Object Detection via Region-based Fully Convolutional Networks ) 作者及相關連結 方法概括 方法細節 實驗結果 總結 參考文獻
論文閱讀 R-FCN: Object Detection via Region-based Fully Convolutional Networks R-FCN論文閱讀(R-FCN: Object Detection via Region-based Fully Convolutional Networks ) 作者及相關連結 方法概括 方法細節 實驗結果 總結 參考文獻
論文閱讀 R-FCN: Object Detection via Region-based Fully Convolutional Networks R-FCN論文閱讀(R-FCN: Object Detection via Region-based Fully Convolutional Networks ) 作者及相關連結 方法概括 方法細節 實驗結果 總結 參考文獻 -
COCO庫上與Faster R-CNN的對比:R-FCN比Faster RCNN好!
論文閱讀 R-FCN: Object Detection via Region-based Fully Convolutional Networks R-FCN論文閱讀(R-FCN: Object Detection via Region-based Fully Convolutional Networks ) 作者及相關連結 方法概括 方法細節 實驗結果 總結 參考文獻
論文閱讀 R-FCN: Object Detection via Region-based Fully Convolutional Networks R-FCN論文閱讀(R-FCN: Object Detection via Region-based Fully Convolutional Networks ) 作者及相關連結 方法概括 方法細節 實驗結果 總結 參考文獻 總結
- R-FCN是在Faster R-CNN的架構上進行改造,第一,把base的VGG16換車了ResNet,第二,把Fast R-CNN換成了先用卷積做prediction,再進行ROI pooling。由于ROI pooling會丢失位置資訊,故在pooling前加入位置資訊,即指定不同score map是負責檢測目标的不同位置。pooling後把不同位置得到的score map進行組合就能複現原來的位置資訊。
參考文獻
- A. Shrivastava, A. Gupta, and R. Girshick. Training region-based object detectors with online hard example mining. In CVPR, 2016.