RCNN的演變

詳細信息可參考: http://zh.gluon.ai/chapter_computer-vision/rcnn.html

1. 早期傳統的目標檢測或者圖像分類,對整個圖像或者圖像滑窗截取的方式,計算對應的特徵,獲取特徵的方式使用梯度計算,比如hog,lbp,sift,orb,surf等進行特徵描述,獲取特徵後,把特徵放入分類器,進行特徵分類。如果是整幅圖像放進去,就能夠實現特徵分類,如果是滑窗截取的方式就是目標檢測。

 

2. 接着是r-cnn(其中r表示region)的出現,在傳統圖像處理的思路上,主要考慮到使用卷積神經網絡來提取圖像特徵,這樣就省去了傳統圖像特徵描述子對特徵的提取了。同樣也存在對圖像不同區域的選擇,區域選擇的方法是啓發式搜索(selection search)的方法,通過該方法獲取圖像中不同區域框(會對不同框resize到相同尺寸),然後使用卷積神經網絡獲取特徵,對獲取的特徵使用svm進行框的分類,因此也就確定了框的位置。

 

3. 接着是fast-rcnn的出現,在rcnn的基礎上,目的爲了解決使用啓發式搜索導致的大量重疊框的出現問題,如果每個框都進行卷積的話會比較浪費資源,所以fast-rcnn先對圖像提取特徵,然後在特徵圖上使用selection search的方法選取區域。這樣就節省了大量重疊區域的卷積開銷。另外把之前的多個svm二分類轉化爲了單個多分類softmax。

 

又因爲每個selection search選取的區域大小是不一致的,如果使用resize到相同尺寸的方法,會導致卷積神經網絡無法反向傳播求導,所以此處使用的是ROI pooling的方式,將框分割到相同大小的尺寸,方便之後進入全連接層實現分類和框的迴歸。

 

ROI pooling解釋:對卷積之後的特徵,使用selection search方法獲取框,在框上面劃分成n x m 大小的格子,然後對每個格子中選取最大的值保留,作爲該格子的唯一值。最終就變成了n x m 大小的框。

 

實例說明:

4. 接着是faster-rcnn的出現,在fast-rcnn的基礎上,爲了解決selection search這個傳統圖像檢測中框選擇運行比較慢的問題,把selection search部分使用了region proposal network(rpn)方法來代替。

(兩幅圖表示的意思一樣,一個是中文一個是英文而已)

region proposal network(rpn):以特徵圖上的每個像素點生成n個大小形狀不同的框,成爲錨框(anchor box)。這個n個框的生成依賴於預定的生成框的大小和比例決定。

 

我們對生成的每個錨框進行卷積提取特徵,然後進行bounding box regression判斷與真實框的距離,以及進行二分類判斷是否爲前景框。將初步判定爲存在物體的目標框送入ROI pooling中,處理後使用全連接提取特徵,最後進行softmax分類,和微調(refine)檢測框,使其生成更精確的目標框。

 

5. 接着是mask-rcnn的出現,在faster-rcnn的基礎上,在mask-rcnn中添加了全卷積神經網絡分支。訓練時需要添加像素級別的類別和位置信息,以此提高目標檢測準確率。

另外,mask-rcnn還提出了使用ROI align來替換ROI pooling層,這是因爲對於像素級別的預測,如果出現像素偏差就會導致掩碼預測出現問題,而ROI pooling的操作必然會導致這樣的問題,爲了解決這個問題,提出了ROI align。ROI align就是在劃分區域時取消ROI pooling類似的量化操作,使用雙線性差值對的方式獲取浮點座標對應的像素值,從而使得整個特徵聚集過程轉化爲一個連續的操作。

 

ROI align操作說明:假設首先經過卷積神經網絡操作,然後經過區域提議網絡操作之後feature map中regin proposal network獲取不同anchor大小的框,假設其中一個框的大小爲20.78 * 20.78,接着到達ROI align層,需要把feature map 切割成7 * 7大小的塊(ROI align中的pool_size爲7 * 7 ),那麼每塊的大小爲20.78 / 7 = 2.97,即沒一小塊的大小爲2.97 * 2.97,然後在這個2.97 * 2.97 大小的塊中平分n個點,比如平分4個份等,取每一份的中心點,獲取方式是使用雙線性插值的方法,這樣就會得到四個點,對這四個點取最大值,就成爲了7 * 7大小的其中一塊的像素值。可參考下面兩圖,第一個爲示意圖,第二個爲實際取值圖。

 

RCNN整體發展的總結:

  • R-CNN對圖像選取若干提議區域,然後用卷積神經網絡對每個提議區域做前向計算抽取特徵,再用這些特徵預測提議區域的類別和邊界框。
  • Fast R-CNN對R-CNN的一個主要改進在於只對整個圖像做卷積神經網絡的前向計算。它引入了興趣區域池化層,從而令興趣區域能夠抽取出形狀相同的特徵。
  • Faster R-CNN將Fast R-CNN中的選擇性搜索替換成區域提議網絡,從而減少提議區域的生成數量,並保證目標檢測的精度。
  • Mask R-CNN在Faster R-CNN基礎上引入一個全卷積網絡,從而藉助目標的像素級位置進一步提升目標檢測的精度。

 

 

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