R-FCN閱讀筆記

R-FCN: Object Detection via Region-based Fully Convolutional Network

原文:R-FCN: https://arxiv.org/abs/1605.06409
Github鏈接: https://github.com/daijifeng001/r-fcn(https://github.com/daijifeng001/r-fcn)

what

本文是基於region based framework的一種新的detection方法,主要目的是通過移除最後的fc層進行加速。同時通過本篇論文,很好的將RCNN,faster rcnn進行了一個general的總結。本文目前是Pascal voc上面速度和performance結合的最好的方法,並且用到了最新的residual network(好吧,也過去好久了其實)。
唯一美中不足的是,沒有其他網絡,比如VGG16和GoogleNet的baseline,所以和不少其他的方法沒有比較。

why

首先,region base detection framework有一個問題,就是多多少少會有subnet的重複計算。
最早的RCNN,每一個proposal都會獨立經歷一次CNN網絡抽取feature,那麼這個時候,這個subnet就是整個網絡,非常非常慢。後來的fast rcnn,先把整張image進行卷積計算,然後在最後一層通過ROI pooling把每一個proposal變成一個大小一致的map,對於每一個map,經過若干次fc層然後得到結果,在這個時候,這個subnet指的就是那若干層fc層。假如一幅圖片的proposal有N個,所以這樣經歷subnet的計算也會有N次,subnet越深計算的效率越低。本文的想法就是不用這些subnet,讓所有的計算都可以共享。(見下圖的總結)
在這裏插入圖片描述
隨着網絡深度的提高,網絡對於location的敏感度越來越低,也就是所謂的translation-invariance,但是在detection的時候,需要對位置信息有很強的的敏感度。

ResNet論文的檢測流程將RoI池化層插入到卷積中—特定區域的操作打破了平移不變性,當在不同區域進行評估時,RoI後卷積層不再是平移不變的。然而,這個設計犧牲了訓練和測試效率,因爲它引入了大量的區域層

一方面,圖像級別的分類任務有利於平移不變性——圖像內目標的移動應該是無差別的。因此,深度(全)卷積架構儘可能保持平移不變,這一點可以從ImageNet分類[9,24,26]的主要結果中得到證實。另一方面,目標檢測任務的定位表示需要一定程度上的平移可變性。例如,在候選框內目標變換應該產生有意義的響應,用於描述候選框與目標的重疊程度。我們假設圖像分類網絡中較深的卷積層對平移不太敏感。

在ResNet論文中,Faster R-CNN檢測器的RoI池層不自然地插入在兩組卷積層之間——這創建了更深的RoI子網絡,其改善了精度,由於非共享的RoI計算,因此是以更低的速度爲代價。

R-FCN要解決的根本問題是Faster R-CNN檢測速度慢的問題,速度慢是因爲ROI層後的結構對不同的proposal是不共享的,試想下如果有300個proposal,ROI後的全連接網絡就要計算300次,這個耗時就太嚇人了。所以作者把ROI後的結構往前挪來提升速度,但光是挪動下還不行,ROI在conv5後會引起上節提到的平移可變性問題,必須通過其他方法加強結構的可變性,所以作者就想出了通過添加Position-sensitive score map來達到這個目的。

Approach/Idea

在本文中,作者開發了一個稱爲基於區域的全卷積網絡(R-FCN)框架來進行目標檢測。網絡由共享的全卷積架構組成,就像FCN一樣。爲了將平移可變性併入FCN,作者通過使用一組專門的卷積層作爲FCN輸出來構建一組位置敏感的分數圖。這些分數圖中的每一個都對關於相對空間位置(的位置信息進行編碼例如,“在目標的左邊”)。在這個FCN之上,添加了一個位置敏感的RoI池化層,它從這些分數圖中獲取信息,並且後面沒有權重(卷積/fc)層。整個架構是端到端的學習。所有可學習的層都是卷積的,並在整個圖像上共享,但對目標檢測所需的空間信息進行編碼。圖1說明了關鍵思想,表1比較了基於區域的檢測器方法。

圖1的ResNet-101應用到R-FCN時會把最後的average pool和1000-d fc全連接層都去掉了,僅保留前100層

利用最後一層網絡通過FCN構成一個position-sensitive的feature map。
具體而言,每一個proposal的位置信息都需要編碼,那麼先把proposal分成k*k個grid,
然後對每一個grid進行編碼。
在最後一層map之後,再使用卷積計算產生一個k*k*(C+1)map
(k*k代表總共的grid數目,C代表class num+1代表加入一個背景類)。

Position-sensitive score map對於平移可變性的本質 https://blog.csdn.net/qq_30622831/article/details/81459407

k2(C+1)k^2*(C+1)個feature map的物理意義:共有k2k^2=9個顏色,每個顏色的立體塊(WH(C+1))表示的是不同位置存在目標的概率值(第一塊黃色表示的是左上角位置,最後一塊淡藍色表示的是右下角位置)。共有k2(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)的概率值。
在這裏插入圖片描述在這裏插入圖片描述

Result

本文采用的一些方法比faster rcnn的baseline提高了3個點,並且是原來faster rcnn更快(因爲全部計算都共享了)。但是和改進過的faster rcnn相比(roi pooling提前那種)提高了0.2個點,速度快了2.5倍。所以目前爲止這個方法的結果應該是所有方法中速度和performance結合的最好的。
在這裏插入圖片描述在這裏插入圖片描述

Experiments

Atrous and stride(空洞和步長)

作者的全卷積架構享有FCN廣泛使用的語義分割的網絡修改的好處[15,2]。特別的是,我們將ResNet-101的有效步長從32像素降低到了16像素,增加了分數圖的分辨率。conv4階段[9](stride = 16)之前和之後的所有層都保持不變;第一個conv5塊中的stride=2操作被修改爲stride=1,並且conv5階段的所有卷積濾波器都被“hole algorithm”[15,2](“Algorithm atrous”[16])修改來彌補減少的步幅。爲了進行公平的比較,RPN是在conv4階段(與R-FCN共享)之上計算的,就像[9]中Faster R-CNN的情況那樣,所以RPN不會受空洞行爲的影響。下表顯示了R-FCN的消融結果(k×k=7×7,沒有難例挖掘)。這個空洞竅門提高了2.6點的mAP。

caffe卷積層延伸:卷積核膨脹詳細解析

https://blog.csdn.net/jiongnima/article/details/69487519

設置不同的k(空洞技巧)

在這裏插入圖片描述類別特定的RPN具有67.6%(表2)的mAP,比標準Faster R-CNN的76.4%低約9個百分點。這個比較符合[6,12]中的觀測結果——實際上,類別特定的RPN類似於使用密集滑動窗口作爲提議的一種特殊形式的Fast R-CNN[6],如[6,12]中所報道的較差結果。
詳細可以在R-CNN minus R論文中瞭解
https://blog.csdn.net/tanghong1996/article/details/88060173

不同的Rols

在這裏插入圖片描述在測試時使用300個RoI,Faster R-CNN每張圖像花費0.42s,比我們的R-FCN慢了2.5倍,R-FCN每張圖像只有0.17s(在K40 GPU上,這個數字在Titan X GPU上是0.11s)。R-FCN的訓練速度也快於Faster R-CNN。此外,難例挖掘沒有增加R-FCN的訓練成本(表3)。當從2000個RoI挖掘時訓練R-FCN是可行的,在這種情況下,Faster R-CNN慢了6倍(2.9s vs. 0.46s)。但是實驗表明,從更大的候選集(例如2000)中進行挖掘沒有好處

MS COCO上的實驗

在這裏插入圖片描述在這裏插入圖片描述

Conclusion

作者的方法實現了與Faster R-CNN對應網絡相比更具競爭力的準確性,但是在訓練和推斷上都快得多。
應該可以通過擴展,提高精度。(後續的light-head RCNN貌似是根據R FCN而來的)

https://blog.csdn.net/u012361214/article/details/51507590

https://blog.csdn.net/weixin_37203756/article/details/80199225

https://blog.csdn.net/qq_30622831/article/details/81455550

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章