學習筆記

1.簡介

writers: Ross Girshick1 Jeff Donahue1,2 Trevor Darrell1,2 Jitendra Malik1算法

這篇論文於2014年發佈在計算機視覺頂會CVPR上,做者在這篇論文中提出了一種更加優秀的object detection算法,由於對圖像中對象的提取使用了region proposal(推薦區域) 方法,以及在特徵提取過程當中使用了深度卷積神經網絡(large convolutional neural network),因此,做者將這種目標檢測算法命名爲RCNN(Regions with CNN features)。到目前爲止,RCNN算法已經不是解決object detection問題的最優方法,可是在這篇論文剛提出的時候,RCNN算法將mAP值在VOC-2012數據集上提升到了53.3%,較當時最好的算法提升了30%。網絡

這篇文章的主要貢獻在於兩點:
(1) 將卷積神經網絡應用到bottom-up區域候選方法上,用來定位圖片中的對象
(2) 在可供訓練的數據量較小的狀況下,能夠將模型在其餘相關數據集上進行大規模學習,而後再進行將輸出明確化的調整工做,能夠達到良好的訓練結果。svn

2.模型介紹

做者提出的RCNN模型如圖:其中主要包含了三個模塊,而且解決了對象定位以及參數訓練的問題。
學習

從圖中能夠看到,做者的模型主要分爲三個部分:
(1) 產生類別獨立的region proposals
(2) 使用CNNs對每一個region提取出一個固定長度的feature
(3) 使用class-specific linear SVM對提取的features 分類.net

2.1產生region proposals

做者使用selective search 算法產生2000個region proposals
selective search 算法以下:

(圖片轉自blog:https://blog.csdn.net/u011436429/article/details/80277633)對象

產生initial region的方法能夠參考論文《Efficient Graph-Based Image Segmentation》blog

2.2提取定長features

做者對每一個region proposal,使用Caffe implementation of CNN 提取到4096-dimensional 向量,須要注意的是,CNN模型的輸入須要固定大小的227227的圖片,因此在region proposal 經過CNN 提取特徵以前,對圖片進行填充,已達到輸入須要的227227pixel圖片

做者提取特徵用的CNN的網絡結構由5個卷積層以及2個全聯接層構成ci

2.3SVN分類

在使用CNN提取到region proposals 的feature Vectors 後,對每一個類使用SVM判斷候選區域是否包含了目標檢測對象,對每一個region計算評分分值,利用這個分值做爲該候選區域屬於某個類別的可能性,採用非極大抑制,即若是兩個scored regions 之間的intersection-over-union(IoU)值大於某個閾值時,丟棄分數小的regionget

3.模型訓練

採用遷移學習
做者在 ILSVRC 2012數據集上訓練好的CNN模型,而後調整輸出目標

4.分類

一般對待一個二值化的分類器,它的結果只要 2 中,Positive 和 Negetive。
好比,有一個汽車分類器,它能夠輕鬆地確認,一個方框裏面包含了一輛汽車,那麼它確定就是 Positive。
也能夠很清楚地確認,若是一個背景方框中沒有包含汽車,那麼它就是 Negetive。
可是,比較難確認的是,若是一個方框,只有一部分與汽車重疊,那麼如何標註這個方框呢?
R-CNN 採用的是 IoU 的閾值,這個 threshold 取 0.3,若是一個區域與 Ground tureth 的 IoU 值低於設定的閾值,那麼能夠講它當作是 Negetive.
IoU 的 threshold 它不是做者胡亂取值的,而是來自 {0,0.1,0.2,0.3,0.4,0.5} 的數值組合的。
並且,這個數值相當重要,若是 threshold 取值爲 0.5,mAP 指標直接降低 5 個點,若是取值爲 0,mAP 降低 4 個點。一旦特徵抽取成功,R-CNN 會用 SVM 去識別每一個區域的類別

論文沒看完,由於理解誤差,不少地方以爲特別特別矛盾,寫不下去了,等哪天懂了再補

相關文章
相關標籤/搜索