R-FCN 論文理解2

本文轉載自:

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


arxiv上的一篇新論文,出自MSRA,目前還沒有發表,今天剛讀完,文章的缺點還要想一想,有空更新。原文鏈接:點擊打開鏈接


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

本文的motivation非常直接,首先,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,讓所有的計算都可以共享。(見下圖的總結)



這種思路最早在google net上就出現過。googlenet的原始模型最後一層feature map就是一個7*7的map,然後經過一個7*7的avg pooling轉化成向量,最後加一層fc作爲分類層。全部共享計算的第一種思路就是直接把fc層給替換成計算低廉的pooling(成爲naive faster rcnn),然而這樣做效果很不好,因爲熟悉CNN分類的人都知道,隨着網絡深度的提高,網絡對於location的敏感度越來越低,也就是所謂的translation-invariance,但是在detection的時候,需要對位置信息有很強的的敏感度。所以在最後一層直接這麼做效果很不好,尤其是在深層網絡(res-101),甚至比VGG還低。

那麼res-101的detection是怎麼做的?在本文之前,很簡單,把ROI-pooling層放到了前面的卷積層,然後後面的卷積層不共享計算,這樣一可以避免過多的信息損失,二可以用後來的卷積層學習位置信息。

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




產生完了這張map之後,再根據proposal產生一個長寬各爲k,channel數目爲c+1的score map。具體產生score map的方法是,假如k=3,C=20,那麼score map的20個類每個類都有3*3的feature,一共9個格子,每一個格子都記錄了空間信息。而這每一個類的每一個格子都對應前面那個channel數爲3*3*21的大map的其中一個channel的map。現在把score map中的格子對應的區域的map中的信息取平均,然後這個平均值就是score map格子中的值。最後把score map的值進行vote(avg pooling)來形成一個21維的向量來做分類即可。

對應的bbox regression只需要把C+1設成4就可以了。

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


我的評價:難以評價。爲什麼說難以評價,因爲本文沒有其他網絡的結果。目前爲止,fast rcnn那一套東西的變種已經非常多了,但是基於residual網絡的目前還沒有,基本都是基於VGG16的,所以這套東西雖然強過faster rcnn,但是難說就一定強過其他變種的residual版本(如果有),而且,我認爲在VGG的版本下這種模式不一定work。不過具體來說,等我實現了做完實驗再看,希望比他release代碼快吧哈哈。


依舊,歡迎討論,尤其是我有解釋理解錯誤的地方。


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