解答關于R-FCN的所有疑惑(原創(chuàng))

論文鏈接:https://arxiv.org/pdf/1605.06409.pdf
Matlab源碼:https://github.com/daijifeng001/r-fcn

R-FCN是微軟亞洲研究院的代季峰在2016年提出的一種全新的目標檢測結構。它對傳統(tǒng)的Faster R-CNN結構進行了改造梗脾,將ROI層后的卷積都移到了ROI層前,并利用一種位置敏感的特征圖來評估各個類別的概率投储,使其在保持較高定位準確度的同時,大幅提高檢測速率阔馋。
網上很容易找到關于R-FCN的各種文章玛荞,所以不再重復介紹它的結構,只是選幾個容易引起誤解的點做深入解讀呕寝。

理解難點1:平移不變性和平移可變性

作者在論文中提到了兩個概念勋眯,平移不變性(translation invariance)和平移可變性(translation variance)。平移不變性比較好理解下梢,在用基礎的分類結構比如ResNet客蹋、Inception給一只貓分類時,無論貓怎么扭曲怔球、平移嚼酝,最終識別出來的都是貓浮还,輸入怎么變形輸出都不變這就是平移不變性竟坛,網絡的層次越深這個特性會越明顯。平移可變性則是針對目標檢測的,一只貓從圖片左側移到了右側担汤,檢測出的貓的坐標會發(fā)生變化就稱為平移可變性涎跨。當卷積網絡變深后最后一層卷積輸出的feature map變小,物體在輸入上的小偏移崭歧,經過N多層pooling后在最后的小feature map上會感知不到隅很,這就是為什么原文會說網絡變深平移可變性變差。

再來看個Faster R-CNN + ResNet-101結構的例子率碾。如果在Faster R-CNN中沒有ROI層叔营,直接對整個feature map進行分類和位置的回歸,由于ResNet的結構較深所宰,平移可變性較差绒尊,檢測出來的坐標會極度不準確。如果在ResNet中間(圖1 conv4與conv5間)加個ROI層結果就不一樣了仔粥,ROI層提取出的proposal中婴谱,有的對應前景l(fā)abel,有的對應背景l(fā)abel躯泰,proposal位置的偏移就有可能造成label分類(前景和背景分類)的不同谭羔。偏移后原來的前景很有可能變成了背景,原來的背景很有可能變成了前景麦向,換句話說分類loss對proposal的位置是敏感的瘟裸,這種情況ROI層給深層網絡帶來了平移可變性。如果把ROI加到ResNet的最后一層(圖1 conv5后)結果又是怎樣呢磕蛇?conv5的第一個卷積stride是2景描,造成conv5輸出的feature map更小,這時proposal的一個小偏移在conv5輸出上很有可能都感知不到秀撇,即proposal對應的label沒有改變超棺,所以conv5后雖然有ROI也對平移可變性沒有什么幫助,識別出來的位置準確度會很差呵燕。


圖1:ResNet-101的結構

論文中作者給了測試的數(shù)據(jù):ROI放在ResNet-101的conv5后棠绘,mAP是68.9%;ROI放到conv5前(就是標準的Faster R-CNN結構)的mAP是76.4%再扭,差距是巨大的氧苍,這能證明平移可變性對目標檢測的重要性。

理解難點2:R-FCN結構的由來

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

理解難點3:Position-sensitive score map的結構

圖1的ResNet-101應用到R-FCN時會把最后的average pool和1000-d fc全連接層都去掉了漱受,僅保留前100層络凿,再新加一個1x1x1024的卷積層用來降維(從2048維降到1024維),和一個很特殊的卷積來生成k2 * (C+1)維的Position-sensitive score map昂羡。其中的C是要分類的類別數(shù)絮记,比如PASCAL VOC類別就是20,加上1表示加上一個背景分類虐先;k是之后的ROI Pooling中對ROI區(qū)域要劃分的小格數(shù)到千,比如論文中k=3就是對ROI在長寬方向各三等分形成9個小區(qū)域(如圖2)。Position-sensitive score map的值對小區(qū)域相對于ROI中的位置很敏感赴穗,為什么這么說后面會解釋憔四。

圖2:Position-sensitive score map的結構

圖2中最后一個特殊卷積輸出Position-sensitive score map后,就要做ROI Pooling了般眉,和Faster R-CNN中的ROI Pooling一樣要對9個小區(qū)域分別進行pooling了赵,要注意的是R-FCN中9個小區(qū)域并不是在所有k2 * (C+1)維度上都做pooling,每個小區(qū)域只會在對應的(C+1)個維度上作pooling甸赃,比如ROI左上角的區(qū)域就在前C+1個維度上pooling柿汛,左中位置的區(qū)域就在C+2到2C+2間的維度上作pooling,以此類推埠对。pooling后輸出的是C+1維度的k*k數(shù)據(jù)络断,每個維度上的k*k個數(shù)據(jù)再加到一起(圖2的vote過程)形成C+1個單點數(shù)據(jù),就代表了C+1個類別的分類概率项玛。
對于目標定位的輸出和上面的分類輸出過程類似貌笨,只是維度不再是k2 * (C+1),而是k2*4襟沮,表示9個小區(qū)域的[dx,dy,dw,dh]4個偏移坐標锥惋。

理解難點4:Position-sensitive score map為什么會帶來平移可變性

Position-sensitive score map的概念最早來自另一篇實例分割的論文Instance-sensitive Fully Convolutional Networks (https://arxiv.org/pdf/1603.08678.pdf)。圖3是示意圖开伏,中間的9張圖對應Position-sensitive score map的9個維度的輸出膀跌。拿左上角的圖說明:它的每一個點代表該點正好出現(xiàn)在目標左上角的概率(更準確的說應該是得分,因為還沒做softmax)固灵,也可以理解是該點右下方正好是目標的概率捅伤。要注意的是:“目標左上角的概率”的概念并不局限于圖中畫的綠色框范圍,而是整張圖上的每一個點巫玻,這是新學習者很容易引起誤解的地方丛忆。同理其余8張圖各自對應了目標正上側困介、右上側、左中側蘸际、正中側、右中側徒扶、左下側粮彤、正下側、右下側的概率姜骡。在訓練時导坟,一個ROI的9個小區(qū)域從每張圖的對應區(qū)域去Pooling出一個結果,組成新的圖(圖3右側的9宮格圖)圈澈,如果ROI剛好覆蓋ground truth惫周,這個新的區(qū)域就標記為前景(label=1)。
這里有個關鍵點要解釋康栈,為什么每張圖都能攜帶相對位置信息递递?因為從圖3提取1~9號小方格時,每個小方格在每張圖上的位置并不相同啥么,而是在上下左右方向上有偏移登舞,當組合出來的9宮格對應ground truth時,小方格1就對應了 ground truth左上角的位置悬荣,小方格2對應了ground truth正上方的位置菠秒,依此類推,所以用這種9宮格訓練目標時就有了相對目標位置的信息在里面 氯迂。

圖3:Position-sensitive score map

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末践叠,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子嚼蚀,更是在濱河造成了極大的恐慌禁灼,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件轿曙,死亡現(xiàn)場離奇詭異匾二,居然都是意外死亡,警方通過查閱死者的電腦和手機拳芙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門察藐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人舟扎,你說我怎么就攤上這事分飞。” “怎么了睹限?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵譬猫,是天一觀的道長讯檐。 經常有香客問我,道長染服,這世上最難降的妖魔是什么别洪? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮柳刮,結果婚禮上挖垛,老公的妹妹穿的比我還像新娘。我一直安慰自己秉颗,他們只是感情好痢毒,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蚕甥,像睡著了一般哪替。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上菇怀,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天凭舶,我揣著相機與錄音,去河邊找鬼爱沟。 笑死库快,一個胖子當著我的面吹牛,可吹牛的內容都是我干的钥顽。 我是一名探鬼主播义屏,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蜂大!你這毒婦竟也來了闽铐?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤奶浦,失蹤者是張志新(化名)和其女友劉穎兄墅,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體澳叉,經...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡隙咸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了成洗。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片五督。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖瓶殃,靈堂內的尸體忽然破棺而出充包,到底是詐尸還是另有隱情,我是刑警寧澤遥椿,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布基矮,位于F島的核電站淆储,受9級特大地震影響,放射性物質發(fā)生泄漏家浇。R本人自食惡果不足惜本砰,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望钢悲。 院中可真熱鬧点额,春花似錦、人聲如沸譬巫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽芦昔。三九已至,卻和暖如春娃肿,著一層夾襖步出監(jiān)牢的瞬間咕缎,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工料扰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留凭豪,地道東北人。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓晒杈,卻偏偏與公主長得像嫂伞,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子拯钻,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內容