三者的處理步驟
先上三者的處理步驟:
RCNN:
1、提取1000-2000個(超參數)的候選框(采用selective search算法);
2、将每個候選框中的圖像調整到相同的size;
3、将調整size後的圖像(數量與候選框個數相同)輸入CNN提取feature;
4、用SVM對每個候選框feature進行分類,判斷是否屬于某個特定的類(多個二分類器);
5、對于屬于某一分類的候選框,用回歸器進一步調整其位置。
fast RCNN:
1、提取1000-2000個打候選框(采用selective saerch算法);
2、将整張圖像輸入CNN提取feature;
3、找到每個候選框在feature map上的映射patch,将此patch作為每個候選框的卷積特征(feature)
4、将候選框卷積特征輸入到SPP layer(ROI pooling層)和之後的層;
(SPP:空間金字塔池化,其輸入是大小不一的各候選框特征圖的尺寸,輸出是相同的尺寸)
5、用softmax對每個候選框feature進行分類,判斷是否屬于某個特定的類;
6、對于屬于某一分類的候選框,用回歸器進一步調整其位置。
faster RCNN:
1、将整張圖輸入CNN擷取feature map;
2、将feature map輸入RPN(region proposal network),獲得候選框,以及各候選框的特征資訊
(一步到位獲得了候選框,以及候選框的特征資訊);
3、用softmat對每個候選框feature進行分類,判斷是否屬于某個特定的類;
4、對于屬于某一分類打候選框,用回歸器進一步調整其位置。
涉及的幾個關鍵技術和概念
SPP Net
SPP:Spatial Pyramid Pooling(空間金字塔池化)
它的特點有兩個:
1.結合空間金字塔方法實作CNNs的對尺度輸入。
一般CNN後接全連接配接層或者分類器,他們都需要固定的輸入尺寸,是以不得不對輸入資料進行crop或者warp,這些預處理會造成資料的丢失或幾何的失真。SPP Net的第一個貢獻就是将金字塔思想加入到CNN,實作了資料的多尺度輸入。一般CNN後接全連接配接層或者分類器,他們都需要固定的輸入尺寸,是以不得不對輸入資料進行crop或者warp,這些預處理會造成資料的丢失或幾何的失真。SPP Net的第一個貢獻就是将金字塔思想加入到CNN,實作了資料的多尺度輸入。
如下圖所示,在卷積層和全連接配接層之間加入了SPP layer。此時網絡的輸入可以是任意尺度的,在SPP layer中每一個pooling的filter會根據輸入調整大小,而SPP的輸出尺度始終是固定的。
2.隻對原圖提取一次卷積特征
在R-CNN中,每個候選框先resize到統一大小,然後分别作為CNN的輸入,這樣是很低效的。在R-CNN中,每個候選框先resize到統一大小,然後分别作為CNN的輸入,這樣是很低效的。
是以SPP Net根據這個缺點做了優化:隻對原圖進行一次卷積得到整張圖的feature map,然後找到每個候選框zaifeature map上的映射patch,将此patch作為每個候選框的卷積特征輸入到SPP layer和之後的層。節省了大量的計算時間,比R-CNN有一百倍左右的提速。
ROI Pooling層詳解
大牛提出了一個可以看做單層sppnet的網絡層,叫做ROI Pooling,這個網絡層可以把不同大小的輸入映射到一個固定尺度的特征向量.
目标檢測typical architecture 通常可以分為兩個階段:
(1)region proposal:給定一張輸入image找出objects可能存在的所有位置。這一階段的輸出應該是一系列object可能位置的bounding box。這些通常稱之為region proposals或者 regions of interest(ROI)。
(bounding box、region proposals、 ROI 這幾個概念等同)
(2)final classification:确定上一階段的每個region proposal是否屬于目标一類或者背景。
這個architecture存在的一些問題是:
- 産生大量的region proposals 會導緻performance problems,很難達到實時目标檢測。
- 在處理速度方面
- 是suboptimal。
-
無法做到end-to-end training。
這就是ROI pooling提出的根本原因。
ROI pooling層能實作training和testing的顯著加速,并提高檢測accuracy。該層有兩個輸入:
- 從具有多個卷積核池化的深度網絡中獲得的固定大小的feature maps;
- 個表示所有ROI的N*5的矩陣,其中N表示ROI的數目。第一清單示圖像index,其餘四清單示其餘的左上角和右下角坐标;
ROI pooling具體操作如下:
(1)根據輸入image,将ROI映射到feature map對應位置;
(2)将映射後的區域劃分為相同大小的sections
(sections數量與輸出的次元相同;當不能均分時,區域大小可以略有不同,見後文示例);
(3)對每個sections進行max pooling操作;
這樣我們就可以從不同大小的方框得到固定大小的相應 的feature maps。值得一提的是,輸出的feature maps的大小不取決于ROI和卷積feature maps大小。ROI pooling 最大的好處就在于極大地提高了處理速度。
ROI pooling example
考慮一個88大小的feature map,一個ROI,以及輸出大小為22.
(1)輸入的固定大小的feature map
2)region proposal 投影之後位置(左上角,右下角坐标):(0,3),(7,8)。
(3)将其劃分為(22)個sections(因為輸出大小為22),我們可以得到:
(4)對每個section做max pooling,可以得到:
ROI pooling總結: (1)用于目标檢測任務; (2)允許我們對CNN中的feature map進行reuse; (3)可以顯著加速training和testing速度; (4)允許end-to-end的形式訓練目标檢測系統。
RPN簡介
• 在feature map上滑動視窗
• 建一個神經網絡用于物體分類(分類為兩種:“候選目标”,“不是目标”)+框位置的回歸
• 滑動視窗的位置提供了物體的大體位置資訊
• 框的回歸提供了框更精确的位置
一種網絡,四個損失函數;
• RPN calssification(anchor good.bad)
• RPN regression(anchor->propoasal)
• Fast R-CNN classification(over classes)
• Fast R-CNN regression(proposal ->box)
特征提取器與fine tuning
在目标檢測中,會使用VGG、Resnet、zf、Alexnet等基礎網絡作為特征提取器。然後調用預訓練好的網絡(輸出pool5的feature map,詳情參考這篇部落格),根據特定任務進行fine-tuning。
(有實驗證明:如果不進行fine-tuning,也就是你直接把預訓練模型當做萬金油使用,類似于HOG、SIFT一樣做特征提取,不針對特定的任務。然後把提取的特征用于分類,結果發現p5(pooling layer 5)的精度竟然跟f6(fullconnect layer 6)、f7差不多,而且f6提取到的特征還比f7的精度略高;如果你進行fine-tuning了,那麼在rcnn中f7、f6的提取到的特征最後訓練的svm分類器的精度就會飙漲)
據此我們明白了一個道理,如果不針對特定任務進行fine-tuning,而是把CNN當做特征提取器,卷積層所學到的特征其實就是基礎的共享特征提取層,就類似于SIFT算法一樣,可以用于提取各種圖檔的特征,而f6、f7所學習到的特征是用于針對特定任務的特征。打個比方:對于人臉性别識别來說,一個CNN模型前面的卷積層所學習到的特征就類似于學習人臉共性特征,然後全連接配接層所學習的特征就是針對性别分類的特征了。
為啥要用SVM分類器
在RCNN中,有一個疑問:CNN訓練的時候,本來就是對bounding box的物體進行識别分類訓練,是一個端到端的任務,在訓練的時候最後一層softmax就是分類層,那麼為什麼作者閑着沒事幹要先用CNN做特征提取(提取fc7層資料),然後再把提取的特征用于訓練svm分類器?
這個是因為svm訓練和cnn訓練過程的正負樣本定義方式各有不同,導緻最後采用CNN softmax輸出比采用svm精度還低。
事情是這樣的,cnn在訓練的時候,對訓練資料做了比較寬松的标注,比如一個bounding box可能隻包含物體的一部分,那麼我也把它标注為正樣本,用于訓練cnn;采用這個方法的主要原因在于因為CNN容易過拟合,是以需要大量的訓練資料,是以在CNN訓練階段我們是對Bounding box的位置限制條件限制的比較松(IOU隻要大于0.5都被标注為正樣本了);
然而svm訓練的時候,因為svm适用于少樣本訓練,是以對于訓練樣本資料的IOU要求比較嚴格:IOU<0.7的都當成負樣本(rcnn訓練的是svm二分類這裡會存在正負樣本不均衡情況,要對負樣本下采樣或者對正樣本上采樣)。我們隻有當bounding box把整個物體都包含進去了,我們才把它标注為物體類别,然後訓練svm。
##faster RCNN 詳解
https://blog.csdn.net/WZZ18191171661/article/details/79439212