【RCNN系列】R-CNN目標檢測模型

       上篇文章大致介紹目標檢測的發展以及衆多的網絡模型,後續的文章會主要針對經典的系列性網絡模型進行詳細的分析與解讀。本篇文章會主要針對RCNN系列的R-CNN模型進行詳細分析。

        RCNN論文:https://arxiv.org/abs/1311.2524

        RCNN論文翻譯:https://alvinzhu.xyz/2017/10/09/r-cnn/

一、概述

        R-CNN(Regions with CNN features),把region proposal和CNNs結合起來,因此稱爲R-CNN。在數據集PASCAL VOC【1】上,物體檢測效果較之VOC2012年的mAp提高了30%到達53.3%。(同期OverFeat也是利用CNN和滑動窗口進行目標檢測的方法,結果發現RCNN在200類ILSVRC2013檢測數據集上的性能明顯優於OVerFeat)。

【Overfeat:改進了Alex-net,並用圖像縮放和滑窗方法在test數據集上測試網絡;提出了一種圖像定位的方法;最後通過一個卷積網絡來同時進行分類,定位和檢測三個計算機視覺任務,並在ILSVRC2013中獲得了很好的結果。】

二、R-CNN 網絡結構

    R-CNN物體檢測系統由三個模塊構成:

  • 產生類別無關的region proposal,這些推薦定義了一個候選檢測區域的集合,大約2000個;
  • 一個大型的卷積神經網絡(AlexNet,5conv+2fc+1softmax總計約6000萬的參數量,2013年),用於從每個區域抽取特定大小的特徵向量;
  • 一個指定類別的線性SVM分類器以及擬合邊框迴歸。

1、區域推薦(region proposal)

    區域推薦就是通過算法在圖片上產生一定數量的候選檢測區域即bounding boxes,也就是目標檢測常提到的bbox。區域選擇的算法也較多,較經典的有滑窗法,以及R-CNN論文中使用到的選擇搜索法(selective search)。

  • 滑窗法(Sliding Window):就是不同大小的窗口遍歷整個圖片。優點:操作簡單;缺點:窗口尺寸難定義以及工作量太大,要保證足夠的有效就要提供足夠的窗口尺寸,以及一定的滑動步長,類似窮舉所有情況。
滑窗法
  • 選擇搜素法(Selective Search):就是對圖像利用分割算法產生許多小的子區域,然後根據這些子區域之間的相似性(主要是顏色、紋理、大小等)進行區域合併,不斷的迭代這個操作,每次迭代過程中對這些合併的子區域做外切矩形,最後形成候選框。優點:可以包含大小的疑似物體,合併區域相似性指標多樣,提高了準確度;缺點:算法較複雜

 

 

選擇搜索算法中關於相似性的的計算可以參考別的文章,在此就不闡述了。

2、特徵提取(Feature extraction)

   R-CNN的特徵提取利用了2012年在ImageNet分類上拿到冠軍的AlexNet。AlexNet 網絡模型是基於早年間提出的LeNet網絡,是由5層Conv + 2層Fc+1層softmax構成,12年在分類項目中的成功(拉開利用傳統機器學習分類算法準確度很大),將人們的視線重新從SVM拉回到卷積神經網絡乃至深度學習領域。

AlexNet

    AlexNet再此不做過多介紹,相對於後來的分類網絡,這個網絡已經比較簡單和基礎。後來的vgg、googlenet V系列、resnet殘差網絡等算法在模型複雜度、分類準確度以及魯棒性都有了很大提高。

3、SVM(Support Vector Machine)線性分類器

    SVM是用來分類的,事先對每一個類都訓練一個線性分類器,然後對每個region proposal通過CNN前向傳播計算出的特徵進行分類打分。注:SVM是一個很經典的分類算法,也是SVM一度將人們的視線從卷積神經網絡拉到SVM傳統機器學習分類算法。

4、技巧

  • NMS(non maximum suppression)非極大值抑制,就是不是局部的最大值的那些值都丟棄。作用:將經過SVM分類後的衆多候選區域經過刪選,選擇某個目標重疊區域得分最高的一個,作爲目標檢測對該對象的檢測結果。

  • 交併比IOU,兩個區域的交集和並集的比值。作用:在選取正負樣本進行正式訓練的時候需要利用IOU與設定的比值選定。

  • 預訓練  CNN提取特徵的參數,作者預先在ILSVRC2012分類數據集(沒有約束框數據)上進行了預訓練。方便在正式訓練的時候參數擬合。

三、創新與挑戰

1、創新

  • 準確度較之以往目標檢測算法性能提升百分之50;
  • CNN網絡提取圖像特徵改變了以往通過經驗驅動的人造特徵範式HOG、SIFT到數據驅動的表示學習凡是,提高特徵對樣本的表達能力;
  • 採用大樣本下有監督預訓練+小樣本微調的方式解決了小樣本難以訓練甚至過擬合的問題。

2、挑戰

  • 訓練過程是多級流水線。R-CNN首先使用目標候選框對卷積神經網絡使用log損失進行微調。然後,它將卷積神經網絡得到的特徵送入SVM。 這些SVM作爲目標檢測器,替代通過微調學習的softmax分類器。 在第三個訓練階段,學習檢測框迴歸;
  • 訓練在時間和空間上是的開銷很大,目標檢測速度很慢
  • 模型邊框預測的準確性取決於區域提案模型的性能。(這是區域提案與提取特徵分離的通病,也是制約模型精度的主要地方。RCNN、SPPNet、Fast RCNN都有這個情況。)

總結:在現在看來RCNN可能不是那麼的驚豔,但是在當時RCNN確實引起了不小的關注。在目標檢測兩步走的時代,目標檢測是由選擇候選框和提取特徵組成,在選定候選區域的算法中,Selective Search算法是比較出衆的,而提取特徵中AlexNet的突然問世,更是引起了一波躁動,之前的SIFT、HOG等靠人工標註特徵已然沒有靠數據驅動的CNN更有優勢,畢竟數據量、硬件性能都上來了。RCNN本身並沒有很有技巧的創新點,在目標檢測性能停滯3年的時代,將兩個領域優秀的性能結合的嘗試有一定的偶然性,但是也是一種必然。

 

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