RCNN->SppNET->Fast-RCNN->Faster-RCNN

參考:RCNN介紹
參考:RCNN,Fast RCNN, Faster RCNN整理總結(jié)

一妨猩、 RCNN
【借助CNN良好的特征提取和分類性能验游,通過RegionProposal方法實(shí)現(xiàn)目標(biāo)檢測問題的轉(zhuǎn)化】

20180527152957814.png

RCNN三個步驟:

1)候選區(qū)域選擇

  • Region Proposal:一類傳統(tǒng)的區(qū)域提取方法陆馁,可以看作不同寬高的滑動窗口徘公,通過窗口滑動獲得潛在的目標(biāo)圖像。
  • SelectiveSearch:
    滑動窗口法:就是按照子塊的大小在整幅圖像上窮舉所有子圖像塊(費(fèi)時費(fèi)力)驹溃。
    選擇性搜索:和滑動窗口法相對的是另外一類基于區(qū)域(region proposal)的方法舱殿。參考SelectiveSearch
  • Candidate:一般2k個饲宛,可理解為將圖片劃分成2k個網(wǎng)格僵娃,之后再對網(wǎng)格進(jìn)行特征提取或卷積操作概作,這根據(jù)RCNN類算法下的分支來決定。然后基于就建議提取的目標(biāo)圖像將其標(biāo)準(zhǔn)化為CNN的標(biāo)準(zhǔn)輸入默怨。

2)CNN特征提取
標(biāo)準(zhǔn)CNN過程讯榕,根據(jù)輸入進(jìn)行卷積或池化等操作,得到固定維度的輸出匙睹。在特征提取之后愚屁,特征映射被卷積和匯集以獲得輸出(向量)。

3)分類與邊界回歸
兩個步驟:
1.分類:對前一步的輸出向量進(jìn)行分類痕檬,分類器需要根據(jù)特征進(jìn)行訓(xùn)練集绰。(分類器的選擇中有支持向量機(jī)SVM、Softmax等等)
2.邊界回歸:通過邊界回歸框(bounding-box regression)進(jìn)行回歸谆棺,獲得精確的目標(biāo)區(qū)域。其目的是準(zhǔn)確定位和合并完成分類的預(yù)期目標(biāo),并避免多重檢測改淑。(邊界回歸有bbox回歸碍岔、多任務(wù)損失函數(shù)邊框回歸等)

RCNN缺點(diǎn)

  • 在RCNN剛剛被發(fā)明出來的2014年,RCNN在目標(biāo)檢測與行人檢測上取得了巨大的成就朵夏,然而效率低下蔼啦,花費(fèi)時間長等一系列的問題的產(chǎn)生,還是導(dǎo)致了RCNN的運(yùn)用并沒有取得大范圍的應(yīng)用仰猖。
  • 其最大的問題有三:
  • 需要事先提取多個候選區(qū)域?qū)?yīng)的圖像捏肢。這一行為會占用大量的磁盤空間。
  • 針對傳統(tǒng)的CNN來說饥侵,輸入的map需要時固定尺寸的鸵赫,而歸一化(crop/warp)過程中對圖片產(chǎn)生的形變(截?cái)嗷蚶欤?dǎo)致圖片大小改變,導(dǎo)致輸入CNN的信息丟失躏升,這對CNN的特征提取有致命的壞處辩棒。
  • 每個RegionProposal都需要進(jìn)入CNN網(wǎng)絡(luò)計(jì)算,上千個Region存在大量范圍重疊膨疏,導(dǎo)致重復(fù)的相同的特征提取一睁,這導(dǎo)致巨大的計(jì)算資源。

二佃却、SPP-Net
克服CNN特征提取過程卷積計(jì)算資源的耗費(fèi)者吁,提取整體特征(而不是對每個候選區(qū)域獨(dú)立計(jì)算),分類之前僅僅做一次Region截取饲帅。

SPP-Net.png

改進(jìn):
1)取消了crop/warp圖像歸一化過程复凳,解決圖像變形導(dǎo)致的信息丟失以及存儲問題;
2)采用空間金字塔池化(SpatialPyramid Pooling)替換了全連接層之間的最優(yōu)一個遲化層洒闸。

空間金字塔池化

使得任意大小的特征圖都能夠轉(zhuǎn)換成固定大小的特征向量染坯,這就是空間金字塔池化的意義(多尺度特征提取出固定大小的特征向量),送入全連接層丘逸。整體框架大致為:輸入圖像单鹿,卷積層提取特征,空間金字塔池化提取固定大小特征深纲,全連接層仲锄。

SppNet缺點(diǎn):

  1. 和RCNN一樣,訓(xùn)練過程仍然是隔離的湃鹊,提取候選框 | 計(jì)算CNN特征| SVM分類 | Bounding Box回歸獨(dú)立訓(xùn)練儒喊,大量的中間結(jié)果需要轉(zhuǎn)存,無法整體訓(xùn)練參數(shù)币呵;
  2. SPP-Net在無法同時Tuning在SPP-Layer兩邊的卷積層和全連接層怀愧,很大程度上限制了深度CNN的效果侨颈;
  3. 在整個過程中,Proposal Region仍然很耗時芯义。

三哈垢、Fast RCNN

改進(jìn)點(diǎn):對RCNN進(jìn)行加速。(更快扛拨、更準(zhǔn)耘分、更魯棒——是我們一直追求的目標(biāo))

    1. (重點(diǎn)一)借鑒SPP思路,提出簡化版ROI池化層(不是金字塔)绑警,同時加入候選框映射功能求泰,使得網(wǎng)絡(luò)能夠反向傳播,解決了SPP的整體網(wǎng)絡(luò)訓(xùn)練問題计盒;
    1. (重點(diǎn)二)多任務(wù)Loss層
      a) SoftmaxLoss代替SVM渴频,證明softmax比SVM更好的效果;
      b) SmoothL1Loss代替Bounding box回歸(邊界回歸)章郁。
      將分類和邊框回歸進(jìn)行合并枉氮,通過多任務(wù)Loss層進(jìn)一步整合深度網(wǎng)絡(luò),統(tǒng)一了訓(xùn)練過程暖庄,從而提高了算法準(zhǔn)確度聊替。
    1. 全連接層通過SVD加速(有一定的提升但不是革命性的)
    1. 結(jié)合上面的改進(jìn),模型訓(xùn)練時可對所有層進(jìn)行更新培廓,除了速度提升外(訓(xùn)練速度是SPP的3倍惹悄,測試速度10倍),得到了更好的檢測效果(VOC07數(shù)據(jù)集mAP為70肩钠,注:mAP泣港,mean Average Precision)。

四价匠、Faster RCNN
* 對于提取候選框最常用的SelectiveSearch方法当纱,提取一副圖像大概需要2s的時間,改進(jìn)的EdgeBoxes算法將效率提高到了0.2s踩窖,但是這還不夠坡氯。
* 選框提取不一定要在原圖上做,特征圖上同樣可以洋腮,低分辨率特征圖意味著更少的計(jì)算量箫柳,基于這個假設(shè),MSRA的任少卿等人提出RPN(RegionProposal Network)啥供,完美解決了這個問題悯恍,我們先來看一下網(wǎng)絡(luò)拓?fù)洹?br> 候

Faster-RCNN.png

RPN分支

  • 通過添加額外的RPN分枝網(wǎng)絡(luò),將候選框提取合并到深度網(wǎng)絡(luò)中伙狐,這正是Faster-RCNN里程碑式的貢獻(xiàn)涮毫。
  • RPN網(wǎng)絡(luò)的特點(diǎn)在于通過滑動窗口的方式實(shí)現(xiàn)候選框的選取瞬欧,每個滑動窗口位置生成9個候選框(不同尺寸、不同高度)窒百,提取對應(yīng)9個候選框的特征黍判,用于目標(biāo)分類和邊框回歸,與FastRCNN類似篙梢。
  • 目標(biāo)分類只需要區(qū)分候選框內(nèi)特征為前景或者背景。
    邊框回歸確定更精確的目標(biāo)位置美旧。


    Faster-RCNN-RPN.png
  • 訓(xùn)練過程中渤滞,候選框選取依據(jù):

    1. 丟棄跨越邊界的anchor;
    2. 與樣本重疊區(qū)域大于0.7的anchor標(biāo)記為前景榴嗅,重疊區(qū)域小于0.3的標(biāo)定為背景妄呕;
    • 對于每一個位置,通過兩個全連接層(目標(biāo)分類+邊框回歸)對每個候選框(anchor)進(jìn)行判斷嗽测,并且結(jié)合概率值進(jìn)行舍棄(僅保留約300個anchor)绪励,沒有顯式地提取任何候選窗口,完全使用網(wǎng)絡(luò)自身完成判斷和修正唠粥。
  • 從模型訓(xùn)練的角度來看疏魏,通過使用共享特征交替訓(xùn)練的方式,達(dá)到接近實(shí)時的性能晤愧,交替訓(xùn)練方式描述為:

    1. 根據(jù)現(xiàn)有網(wǎng)絡(luò)初始化權(quán)值w大莫,訓(xùn)練RPN;
    2. 用RPN提取訓(xùn)練集上的候選區(qū)域官份,用候選區(qū)域訓(xùn)練FastRCNN只厘,更新權(quán)值w;
    3. 重復(fù)1舅巷、2羔味,直到收斂。
  • 因?yàn)镕aster-RCNN钠右,這種基于CNN的real-time 的目標(biāo)檢測方法看到了希望赋元,在這個方向上有了進(jìn)一步的研究思路。

RCNN網(wǎng)絡(luò)的演進(jìn):


RCNN網(wǎng)絡(luò)的演進(jìn).png

Faster實(shí)現(xiàn)了端到端的檢測爬舰,并且?guī)缀踹_(dá)到了效果上的最優(yōu)们陆,速度方向的改進(jìn)仍有余地,于是YOLO誕生了情屹。

五坪仇、YOLO
YOLO來自于“YouOnly Look Once”,你只需要看一次垃你,不需要類似RPN的候選框提取椅文,直接進(jìn)行整圖回歸就可以了喂很。

YOLO.png

算法描述

  1. 將圖像劃分為固定的網(wǎng)格(比如7*7),如果某個樣本Object中心落在對應(yīng)網(wǎng)格皆刺,該網(wǎng)格負(fù)責(zé)這個Object位置的回歸少辣;
  2. 每個網(wǎng)格預(yù)測包含Object位置與置信度信息,這些信息編碼為一個向量羡蛾;
  3. 網(wǎng)絡(luò)輸出層即為每個Grid的對應(yīng)結(jié)果漓帅,由此實(shí)現(xiàn)端到端的訓(xùn)練。

存在的問題

  1. 7*7的網(wǎng)格回歸特征丟失比較嚴(yán)重痴怨,缺乏多尺度回歸依據(jù)忙干;

  2. Loss計(jì)算方式無法有效平衡(不管是加權(quán)或者均差),Loss收斂變差浪藻,導(dǎo)致模型不穩(wěn)定捐迫。

     Object(目標(biāo)分類+回歸)<=等價于=>背景(目標(biāo)分類)
    
  • 導(dǎo)致Loss對目標(biāo)分類+回歸的影響,與背景影響一致爱葵,部分殘差無法有效回傳施戴;
  • 整體上YOLO方法定位不夠精確,貢獻(xiàn)在于提出給目標(biāo)檢測一個新的思路萌丈,讓我們看到了目標(biāo)檢測在實(shí)際應(yīng)用中真正的可能性赞哗。
  • 這里備注一下,直接回歸可以認(rèn)為最后一層即是對應(yīng)7*7個網(wǎng)格的特征結(jié)果浓瞪,每一個網(wǎng)格的對應(yīng)向量代表了要回歸的參數(shù)(比如pred懈玻、cls、xmin乾颁、ymin涂乌、xmax、ymax)英岭,參數(shù)的含義在于Loss函數(shù)的設(shè)計(jì)湾盒。

SSD
由于YOLO本身采用的SingleShot基于最后一個卷積層實(shí)現(xiàn),對目標(biāo)定位有一定偏差诅妹,也容易造成小目標(biāo)的漏檢罚勾。
借鑒Faster-RCNN的Anchor機(jī)制,SSD(Single Shot MultiBox Detector)在一定程度上解決了這個問題吭狡,我們先來看下SSD的結(jié)構(gòu)對比圖尖殃。

SSD.png

  • 基于多尺度特征的Proposal,SSD達(dá)到了效率與效果的平衡划煮,從運(yùn)算速度上來看送丰,能達(dá)到接近實(shí)時的表現(xiàn),從效果上看弛秋,要比YOLO更好器躏。
  • 對于目標(biāo)檢測網(wǎng)絡(luò)的探索仍在一個快速的過程中俐载,有些基于Faster-RCNN的變種準(zhǔn)確度已經(jīng)刷到了87%以上,而在速度的改進(jìn)上登失,YOLO2也似乎會給我們帶來一定的驚喜遏佣,“未來已來”,我們拭目以待揽浙!

【上面都是理論状婶,接下來去代碼實(shí)踐一下】

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市馅巷,隨后出現(xiàn)的幾起案子太抓,更是在濱河造成了極大的恐慌,老刑警劉巖令杈,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異碴倾,居然都是意外死亡逗噩,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進(jìn)店門跌榔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來异雁,“玉大人,你說我怎么就攤上這事僧须「俚叮” “怎么了?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵担平,是天一觀的道長示绊。 經(jīng)常有香客問我,道長暂论,這世上最難降的妖魔是什么面褐? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮取胎,結(jié)果婚禮上展哭,老公的妹妹穿的比我還像新娘。我一直安慰自己闻蛀,他們只是感情好匪傍,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著觉痛,像睡著了一般役衡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上秧饮,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天映挂,我揣著相機(jī)與錄音泽篮,去河邊找鬼。 笑死柑船,一個胖子當(dāng)著我的面吹牛帽撑,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鞍时,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼亏拉,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了逆巍?” 一聲冷哼從身側(cè)響起及塘,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎锐极,沒想到半個月后笙僚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡灵再,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年肋层,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片翎迁。...
    茶點(diǎn)故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡栋猖,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出汪榔,到底是詐尸還是另有隱情蒲拉,我是刑警寧澤,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布痴腌,位于F島的核電站雌团,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏衷掷。R本人自食惡果不足惜辱姨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望戚嗅。 院中可真熱鬧雨涛,春花似錦、人聲如沸懦胞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽躏尉。三九已至蚯根,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背颅拦。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工蒂誉, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人距帅。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓右锨,卻偏偏與公主長得像,于是被迫代替她去往敵國和親碌秸。 傳聞我的和親對象是個殘疾皇子绍移,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容