一、目標檢測(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,重複這個步驟直到沒有候選框。篩選出最終得到的檢測框。