天天看點

目标檢測基礎知識(2)--R-CNN目标檢測基礎知識(2)–R-CNN0.參考部落格1.背景2.滑動視窗3.R-CNN模型4.候選區域選擇5.非極大值抑制(NMS)6.修正候選區域(邊框回歸)7.目标檢測評估名額8.R-CNN過程總結

目标檢測基礎知識(2)–R-CNN

    本文是目标檢測基礎知識相關的第2次學習記錄,主要記錄R-CNN算法相關的知識。

目錄

  • 目标檢測基礎知識(2)--R-CNN
  • 0.參考部落格
  • 1.背景
  • 2.滑動視窗
  • 3.R-CNN模型
  • 4.候選區域選擇
  • 5.非極大值抑制(NMS)
  • 6.修正候選區域(邊框回歸)
  • 7.目标檢測評估名額
  • 8.R-CNN過程總結

0.參考部落格

  1. 幹貨 | 目标檢測入門,看這篇就夠了(已更完)
  2. 【目标檢測系列】經典論文回顧
  3. 深度學習檢測小目标常用方法
  4. OverFeat 詳解
  5. (一)目标檢測-R-CNN模型

1.背景

    對于存在多個目标的檢測問題,不能确定圖檔中具體有多少個物體,是以不能設定一個超參數來限定每次輸出多少個物體以及物體的位置資訊,是以提出了一種目标檢測的Overfeat模型。

2.滑動視窗

    通過設定滑動視窗模型,用視窗從左到右,從上到下,對原始圖像進行周遊,并對每個視窗中的圖像類别進行判定,是否屬于某種類别,通過這種方式,将圖像中的目标檢測問題轉化成了圖像的分類問題。使用滑動視窗的步驟表述為:

  1. 首先定義若幹個視窗的大小,為K個;
  2. K個視窗分别對圖像進行滑動周遊,每個視窗需要在圖檔上滑動M次;
  3. 一幅圖需要滑動K×M次。

    滑動視窗是一種采用暴力破解的方法,計算代價較大。

3.R-CNN模型

    2014年的CVPR會議中提出,論文連結:Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation,可參照博文:目标檢測R-CNN模型。不适用暴力方法,而是采用候選區域方法(region proposal model),實作20個類别的物體分類。

    R-CNN模型的實作步驟(以AlexNet網絡為基準):

  1. 對于一張圖檔,找出預設2000個候選區域;
  2. 2000個候選區域做大小變換,輸入AlexNet當中,得到特征向量,大小為2000×4096;
  3. 經過20個類别的SVM分類器,對于2000個候選區域做判斷,得到一個[2000,20]的得分矩陣;
  4. 對于2000個候選區域做NMS(非極大值抑制),去處不好的、重疊度較高的一些候選區域,得到剩下的分數高的、結果好的區域。
  5. 修正候選框,做bbox的回歸微調。

4.候選區域選擇

    候選區域也可以成為是感興趣區(Region of Interest, ROI),通過選擇性搜尋(selective search)的方法在一張圖檔上提取出來約2000個候選區域,由于候選區域的長寬各不相同,不能直接輸入到AlexNet中,是以要對2000個候選區做大小變換,将候選區大小都調整成為227×227的尺寸。

    R-CNN選用SVM進行二分類,假設檢測20個類别,那麼會提供20個不同類别的SVM分類器,每個分類器都會對2000個候選區域的特征向量分别判斷一次,這樣得出[2000,20]的得分矩陣。

5.非極大值抑制(NMS)

    NMS目的:篩選候選區域,目标是一個物體隻保留一個最優的框,來抑制那些備援的候選框。

    RCNN預測2000個候選框,得到3個(比如有3個ground truth)比較準确的候選框。

    非極大值抑制的過程:

  1. 對于所有的2000個候選區域得分進行機率篩選;
  2. 然後對剩餘的候選框,每個類别進行IoU(交并比)>= 0.5 篩選;
  3. 假設現在滑動視窗有:A、B、C、D、E 5個候選框,
  4. 第一輪:假設B是得分最高的,與B的IoU>0.5删除。現在與B計算IoU,DE結果>0.5,剔除DE,B作為一個預測結果;
  5. 第二輪:AC中,A的得分最高,與A計算IoU,C的結果>0.5,剔除C,A作為一個結果;
  6. 最終結果為在這個5個中檢測出了兩個目标為A和B。
    目标檢測基礎知識(2)--R-CNN目标檢測基礎知識(2)–R-CNN0.參考部落格1.背景2.滑動視窗3.R-CNN模型4.候選區域選擇5.非極大值抑制(NMS)6.修正候選區域(邊框回歸)7.目标檢測評估名額8.R-CNN過程總結

6.修正候選區域(邊框回歸)

    通過非最大抑制篩選出來的候選框不一定就非常準确怎麼辦?R-CNN提供了這樣的方法,建立一個bbox regressor回歸用于修正篩選後的候選區域,使之回歸于ground-truth,預設認為這兩個框之間是線性關系,因為在最後篩選出來的候選區域和ground-truth很接近了,使用邊框回歸的方法進行修正的過程可以表示為下圖(線性回歸):

目标檢測基礎知識(2)--R-CNN目标檢測基礎知識(2)–R-CNN0.參考部落格1.背景2.滑動視窗3.R-CNN模型4.候選區域選擇5.非極大值抑制(NMS)6.修正候選區域(邊框回歸)7.目标檢測評估名額8.R-CNN過程總結
目标檢測基礎知識(2)--R-CNN目标檢測基礎知識(2)–R-CNN0.參考部落格1.背景2.滑動視窗3.R-CNN模型4.候選區域選擇5.非極大值抑制(NMS)6.修正候選區域(邊框回歸)7.目标檢測評估名額8.R-CNN過程總結
目标檢測基礎知識(2)--R-CNN目标檢測基礎知識(2)–R-CNN0.參考部落格1.背景2.滑動視窗3.R-CNN模型4.候選區域選擇5.非極大值抑制(NMS)6.修正候選區域(邊框回歸)7.目标檢測評估名額8.R-CNN過程總結

7.目标檢測評估名額

    對目标檢測的評估名額主要有2個,分别是IOU(Intersection over Union, 交并比)和平均精确率(mean average precision, map)。

  1. IOU交并比:計算公式為IOU = (Area of Overlap)/(Area of Union) ,并且IOU的取值範圍在0~1。
  2. 平均精确率:是物體分類準确度的考量标準,定義為多個分類任務的AP的平均值,計算方法為:map=所有類别的AP之和/類别的總個數,以20個類别的檢測為例,map=(AP1+AP2+AP3+…+AP20)/20,對于每個類别計算其AP值。

8.R-CNN過程總結

    對整個R-CNN過程進行總結如下:

目标檢測基礎知識(2)--R-CNN目标檢測基礎知識(2)–R-CNN0.參考部落格1.背景2.滑動視窗3.R-CNN模型4.候選區域選擇5.非極大值抑制(NMS)6.修正候選區域(邊框回歸)7.目标檢測評估名額8.R-CNN過程總結

繼續閱讀