1. 程式人生 > >影象框檢測演算法的演變

影象框檢測演算法的演變

mAP

mean Average Precision:在每個類上的平均準確率

NMS

非極大值抑制

  1. 針對每個類的候選框,根據得分從大到小排序
  2. 取最大得分的候選框,依次和後面的候選框進行IoU計算,若大於閾值,則刪除得分低的。否則認為影象中存在多個同類物體。
  3. 依次在得分較低的候選框上計算2,得到最終候選框。

這裡有說可以在最後一步結果上刪除候選框得分小於閾值的。但是完全可以在開始就做這一步呀。

selective search

選擇性搜尋

  1. 簡單演算法將影象劃分成一個個小區域集合R

  2. R中每個相鄰區域相似度組成集合s

  3. 取s中最相近的兩個區域,合併後新增入R

  4. 刪除s中和3相關子集

  5. 計算新的相似度

  6. 迴圈到3,直至s為空

EdgeBoxes

Anchor Box

DPM

hard negative mining

難分樣本挖掘

將分類錯誤的負樣本劃分為負樣本繼續訓練。

代表演算法:OHEM

image-centric sampling

FPN

特徵金字塔網路;在每個尺度層面進行預測。用於RPN

RPN

proposal :大概位置

區域建議網路:

每個點有9個錨點,將9個錨點中的物件進行檢測後迴歸,再進行非極大值抑制來得到最終需要的待檢測框。

SVD

ROI Align

相對於ROI 池化的取整損失精度,採用了保留浮點數的方式,讓結果更準確。

RoI Warping Layer

R-CNN

  1. 使用selective search選擇約2000個候選框
  2. 對影象padding16後,將影象變形為227*227以適應AlexNet的輸入
  3. 對每個候選框減去影象均值(預處理)後輸入AlexNet產生2000*4096的特徵矩陣
  4. 使用svm將每個候選矩陣分類,20個分類器這裡,因為是svm是2分類
  5. 使用NMS進行篩選
  6. 使用迴歸器進行迴歸以修正結果

存在問題:慢,複雜。。

SPPnet

Fast-RCNN

  1. 對整幅圖卷積,得到特徵圖
  2. 對原圖進行selective search得到候選框
  3. 從2的候選框在特徵圖中取到特徵框
  4. 通過池化得到相同大小特徵框(ROI池化)就是每個max pooling的範圍大小不固定。
  5. 將相同大小特徵框輸入全連線層得到固定大小特徵向量
  6. 將5所得特徵向量並行經過兩個全連線層,分別得到softmax的類別輸出和bounding-box的視窗迴歸。
  7. 對每個類非極大值抑制後,得到的特徵框迴歸修正。

相對改進:

對整個影象進行一次卷積後,selective search的結果,選取特徵區域。

取消了SVM,節約了儲存空間

採用了SVD,優化全連線速度。

Faster-RCNN

  1. 對整幅圖進行卷積,卷積的前半部分共享,產生的特徵一部分用於繼續後面的Fast-RCNN使用,一部分輸入RPN網路
  2. 通過RPN網路得到候選框,其他同上Fast-RCNN

RPN訓練時產生2000個,測試時300個。

MASK_RCNN

修改ROI pooling 為ROI Align的Faster-RCNN

FCIS

YOLO

同樣也是對整幅圖卷積,不過不再使用預測框+分類的方式,而是直接對結果迴歸。也有多個版本的變遷。

SSD

MobileNet

感覺這個網路就是一種速度和記憶體的優化吧。用於移動端