目標檢測經典網絡之R-CNN

一、目標檢測(Object detection)

圖像識別是輸入一張圖像,輸出該圖像對應的類別。

目標檢測輸入是一張圖像,但輸出不單單是圖像的類別,而是該圖像中所含的所有目標物體以及它們的位置,通常使用矩形框來標識物體的位置。

大部分的目標檢測方法流程是:生成區域候選框,對這些區域框提取特徵(SIFT 特徵 、HOG 特徵、CNN),使用圖像識別方法(SVM、CNN),得到所有分類成功的區域後,通過非極大值抑制(Non-maximum suppression)輸出結果。

二、候選框(bounding boxes)

區域候選框的生成主要有兩種方法,一種是窮舉法;一種是選擇性搜索。

窮舉法:也叫滑窗法。使用不同大小的窗口在圖片上從左到右,從上到下滑動,每次滑動就是一個候選框,由於是全局搜索而且要考慮窗口的長寬比,計算量大、效率低下。

選擇搜索(Selective Search):首先,使用圖像分割(邊緣等特性)算法,分割出許多小區域;然後,根據這些小區域之間相似性(顏色、紋理等)進行區域合併,不斷的進行區域迭代合併。每次迭代過程中對這些合併的子區域做bounding boxes(外邊矩形)就生成了候選框。

三、R-CNN:Region-CNN

整體結構:

利用Selective Search算法生成Region proposal -> warped region縮放到統一大小 -> CNN -> FC -> linear SVM、regression 

訓練過程細節:

1、先預訓練AlexNet,使用的是ImageNet數據集,按照分類任務有監督pre-training;

2、微調(fine-tuning),使用的是pascal-VOC數據集

      輸入爲warped region proposal,輸出爲21維類向量。(與pre-training網絡的唯一改變是由輸出1000類改爲輸出21類)。包括20類目標和背景。把與ground truth的IoU>0.5的region proposal作爲正例,其餘爲負例,即背景。每個batch裏包含32個正例,96個負例共128個。學習率爲0.001,是pre-training的1/10,爲了不破壞訓練的結果。

3、訓練SVM分類器

訓練某類別的SVM,與該類目標的groud-truth的IoU>0.3的region proposal 的特徵向量作爲正例,其餘作爲負例。

4、訓練bounding box regression

測試步驟:

1、使用selective search得到測試樣本的候選框,處理得到warped region

2、送入到模型進行類別預測和迴歸

3、將預測結果按照概率大小排序,採用NMS,也就是選出概率最大的region,然後刪除和它的region的IoU超過指定閾值的其他region,重複這個步驟直到沒有候選框。篩選出最終得到的檢測框。

發佈了28 篇原創文章 · 獲贊 19 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章