天天看點

經典網絡結構梳理:SSD目标檢測算法。

論文下載下傳位址:https://arxiv.org/abs/1512.02325

論文代碼:https://github.com/weiliu89/caffe/tree/ssd

SSD全稱:Single Shot MultiBox Detector  是2016年ICCV的一篇論文。是目前為止主要的目标檢測算法。

算法的主要優點:

1. 速度比Faster-Rcnn快,精度比YOLO高。(在兼顧速度的同時,精度也很高。在不同的測試集下面結果都很不錯)。

2.為提高準确率在不同的特征圖下面(不同的尺度下面)進行結果的預測特征金字塔預測方式。

3.采用了END-TO-END的訓練方式,即使分辨率比較小的圖檔,分類結果也很準确。

SSD網絡結構:

SSD 是基于一個前向傳播 CNN 網絡,産生一系列 固定大小(fixed-size) 的 bounding boxes,以及每一個 box 中包含物體執行個體的可能性,即 score。之後,進行一個 非極大值抑制(Non-maximum suppression) 得到最終的 predictions。SSD網絡結構從圖中可以看出來分為兩部分 基礎網絡 + 金字塔網絡。基礎網絡是VGG-16的前4層網絡。金字塔網絡是特征圖逐漸變小的簡單磁碟區積網絡由5部分構成。

1.Mult-scale feature map for detection

    就是特征金字塔檢測方式。從不同尺度的特征圖下面來預測目标分類與位置。

2.Convolutional predictors for detection

   在金字塔結構中每一部分都有3*3的卷積來進行預測,在某個位置上得到一個預測值,這個預測值可能是一個分類的得分,也可能是現對于預設框的的位置偏差。從圖3可以看出來conv6-2,conv7-2,conv8-2,conv9-2,fc7,conv4-2。

3.Default boxes and aspect ratio

在特征圖的每個位置預測K個box,每個box預測c個分類得分,和4個現對于預設框的位置偏移量。那麼在m*n的特征圖中就可以得到(c+4)*n*m個預測值。論文中的prior box 類似于Faster-Rcnn中的anchor。如下圖4所示。

經典網絡結構梳理:SSD目标檢測算法。

圖2,SSD網絡結構:

經典網絡結構梳理:SSD目标檢測算法。

圖3,金字塔結構:

經典網絡結構梳理:SSD目标檢測算法。

SSD網絡訓練:

SSD 訓練圖像中的 groundtruth 需要賦予到那些固定輸出的 boxes 上。SSD 輸出的是事先定義好的,一系列固定大小的 bounding boxes。

1.Matching strategy:主要介紹的是如何将GT與預設框組成label。

在開始的時候,用 MultiBox 中的 best jaccard overlap 來比對每一個 ground truth box 與 default box,這樣就能保證每一個 groundtruth box 與唯一的一個 default box 對應起來。但是又不同于 MultiBox ,本文之後又将 default box 與任何的 groundtruth box 配對,隻要兩者之間的jaccard overlap 大于一個門檻值,這裡本文的門檻值為 0.5。 

2.Training objective:

總的目标損失函數(objective loss function)就由 localization loss(loc) 與 confidence loss(conf) 的權重求和:

經典網絡結構梳理:SSD目标檢測算法。

其中:

  • NN 是與 ground truth box 相比對的 default boxes 個數
  • localization loss(loc) 是 Fast R-CNN 中 Smooth L1 Loss,用在 predict box(ll) 與 ground truth box(gg) 參數(即中心坐标位置,width、height)中,回歸 bounding boxes 的中心位置,以及 width、height
  • confidence loss(conf) 是 Softmax Loss,輸入為每一類的置信度 cc
  • 權重項 αα,設定為 1

3.Choosing scales and aspect ratios for default boxes:

大部分 CNN 網絡在越深的層,feature map 的尺寸(size)會越來越小。這樣做不僅僅是為了減少計算與記憶體的需求,還有個好處就是,最後提取的 feature map 就會有某種程度上的平移與尺度不變性。

4.Hard negative mining:

在生成一系列的 predictions 之後,會産生很多個符合 ground truth box 的 predictions boxes,但同時,不符合 ground truth boxes 也很多,而且這個 negative boxes,遠多于 positive boxes。這會造成 negative boxes、positive boxes 之間的不均衡。訓練時難以收斂。

是以,本文采取,先将每一個物體位置上對應 predictions(default boxes)是 negative 的 boxes 進行排序,按照 default boxes 的 confidence 的大小。 選擇最高的幾個,保證最後 negatives、positives 的比例在 1:3。

本文通過實驗發現,這樣的比例可以更快的優化,訓練也更穩定。 

3.Data augmentation:

  • 使用原始的圖像
  • 采樣一個 patch,與物體之間最小的 jaccard overlap 為:,,, 與 
  • 随機的采樣一個 patch

SSD存在的缺點:

1.需要手動設定參數prior box,無法通過訓練得到,依賴經驗。

2.存在着對小目标檢測效果不好的現象。

繼續閱讀