Scale-Transferrable Object Detection算法詳解(基於多尺寸目標檢測)

論文背景

論文名稱:Scale-Transferrable Object Detection
論文日期:2018年提交至CVPR

算法背景

在目標檢測領域,針對多尺寸對象的檢測一直是一個難點,本文提出了一個名爲STDN算法,可轉化尺寸檢測算法。

  • 不同於之前的算法:利用網絡的多個網絡層的特徵映射進行結合預測。
  • STDN:利用具有向量化的超分辨率網絡層(又被稱爲可轉換尺寸層/模塊)顯式地探索跨多個檢測標度的跨尺度一致性特性。

尺寸轉化模塊適用於基礎網絡,只有一點計算消耗。

尺寸轉化模塊與 DenseNet 網絡結合,組成一個one-stage目標檢測器。

本文在PASCAL VOC 2007 與 MS COCO兩個數據集上進行了測試實驗。

算法簡介

多尺寸問題一直是目標檢測領域的一個難點,爲了解決這一問題,多種方法被提出:

  • 圖片金字塔,獲得不同尺寸的特徵。 但是會增加內存與計算消耗。
  • RPN自動提取特徵,例如Faster R-CNN使用一層神經網絡以及一個特徵映射預測不同尺寸與比例的候選區域。但是卷積神經網絡每一層的感受野是固定的,而待檢測對象的尺寸是不確定的,會導致檢測準確率下降。
  • 利用不同深度的網絡層的特徵映射預測不同尺寸的對象,例如SSD, MS-CNN。淺層的特徵圖具有更小的感受野,用於預測小尺寸的對象,而深層的特徵圖具有更大的感受野,用於預測大尺寸對象。但是淺層特徵圖具有更少的語義信息,會影響檢測準確率。
  • 結合不同網絡層的語義信息,例如FPN,ZIP,DSSD等。一個由上而下的結構用於結合不同深度的特徵圖,從而獲得所有尺寸的更多語義信息。但是特徵金字塔的構造會需要添加多餘的網絡層,從而導致計算量增加。
    在這裏插入圖片描述

STDN:獲得高級語義多尺寸特徵圖,同時不會影響檢測速率將STM嵌入到DenseNet網絡,DenseNet網絡結構就是結合結合低層與高層的特徵,從而得到更強大的特徵。DenseNet的表現優於ResNet,是2018年發表在CVPR上的一篇文章。

STM:由池化與尺寸轉化層兩部分構成。

  • pooling:獲取小尺寸的特徵圖;
  • Scale-transfer layer:獲得大尺寸特徵圖。
    在這裏插入圖片描述

本算法利用scale-transfer layer拓展了特徵圖的長與寬,而不增加通道數量。這能有效減少參數數量,提高檢測效率。
在這裏插入圖片描述

STM的兩個優勢:

  • 能有效結合DenseNet的特徵圖的低級對象細節特徵與高級語義特徵。
  • 由池化層與超分辨率層組成,沒有額外的參數與計算量。

本文的主要貢獻:

  • 提出了一個獲取特徵金字塔的新框架,結合高級與低級語義特徵;
  • 在高層使用超參數層獲得高分辨率特徵圖,從而不增加參數量。
  • 在PASCAL VOC 2007與MS COCO數據集上進行了測試實驗,準確率超過前沿算法,同時速度增快。

算法對比

目前常用的優化多尺寸目標檢測的方法:

  • 提取多個網絡層的特徵,然後使用結合的特徵進行目標檢測。例如ION,HyperNet,YOLOv2。
  • 利用不同深度的特徵圖預測不同尺寸的對象。例如 SSD,MS-CNN,DSOD。
  • 結合以上兩種優化方法。例如 FPN,TDM,DSSD。

本文就是第三種優化方法, 利用不同的特徵圖預測不同尺寸的對象,使用STM模塊獲取不同分辨率的特徵圖,同時利用DenseNet結合不同網絡層的特徵。

算法詳解

網絡結構

在這裏插入圖片描述

DenseNet

在DenseNet的每一個dense block中,對於每個層,其特徵映射被用作所有後續層的輸入。因此,這樣就結合了輸入圖像的低層次和高層次特徵。

stem block
本文將輸入層(7×7卷積層,步長=2,然後是3×3最大池層,步長=2)替換爲3個3×3卷積層和1個2×2平均池層。第一卷積層的步長爲2,其餘的爲1。所有三個卷積層的輸出通道爲64。

原始的DenseNet-169中的輸入層由於連續兩個下行採樣而丟失了很多信息。這將降低目標檢測的性能(尤指目標檢測),適用於小型物體。

STM

在DenseNet的最後一個dense block中,除了通道數之外,所有層的輸出都具有相同的寬度和高度。
爲了獲得具有豐富語義信息的不同分辨率的特徵圖,本文提出了STM。

  • 在網絡低層中,使用平均池化獲得低分辨的特徵圖;
  • 在網絡深層中,使用scale-transfer layer獲得高分辨率特徵圖。

具體實現過程:
輸入:特徵圖尺寸H × W × C · r2,r是上採樣因子。
輸出:高分辨率特徵圖。
在這裏插入圖片描述
在這裏插入圖片描述
以 r=2爲例:
在這裏插入圖片描述
將r2通道的特徵值平鋪到一個通道上,拓寬長與寬,減小通道數。從而減少參數,提高檢測效率。

與反捲積不同,不需要在卷積操作前的反池化時,用0來進行填充,因此不需要額外的參數。

Object Localization Module

STDN由一個基礎網絡以及兩個預測特定任務的子網絡:

  • 基礎網絡用於進行特徵提取;
  • 其中一個子網絡用於目標分類;
  • 另一個子網絡用於邊界框迴歸定位。

錨框

錨框尺寸與SSD相同,比例由三種,[1.6, 2.0, 3.0],IoU設置爲0.5,但是在匹配過程之後,只有少量的正樣本,因此採用hard negative mining用於解決正負樣本不平衡問題,使用hard negative mining之後正負樣本的比例最少爲1:3。

hard negative mining:
先將初始樣本放入分類器,然後再將錯誤分類的樣本放入負樣本中繼續訓練,直到達到分類要求,就是反覆訓練難以正確分類的樣本。

分類子網絡

在這裏插入圖片描述
分類損失函數爲softmax。
最後輸出的參數有KA個,K指共有K個對象,A指每個定位共有A個錨框。

定位子網絡

在這裏插入圖片描述
損失函數爲Smooth L1。
輸出參數爲4A,共A個錨框,每個錨框有4個座標值。

訓練損失函數

在這裏插入圖片描述
由分類損失函數與定位損失函數兩部分組成。

實驗

檢測器基於MXNet框架,使用SGD進行訓練。
本文分別在PASCAL VOC 與MS COCO兩個數據集上進行測試實驗。

PASCAL VOC:
IoU:0.5;
輸入圖片尺寸:300 x 300;
mini-batch:80;
學習率:前500個epoch: 0.001;
600個epoch:降爲0.0001;
700個epoch:降爲0.00001。

對比實驗:

baseline:SSD
DSSD是在SSD基礎上進行了改進,利用ResNet替代原來的VGG-16,同時融合了不同深度的網絡層的特徵。
DSSD準確率比SSD高,但是檢測速率下降了。
在這裏插入圖片描述
對比不同模塊對結果的影響:
在這裏插入圖片描述
對比不同算法的檢測速度:
在這裏插入圖片描述
COCO:
在這裏插入圖片描述

結論

STDN算法提出了一個scale transfer layer,有效減小了參數數量。算法不僅提高了檢測精度,還提高了檢測速度。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章