【目標檢測】DSSD:Deconvolutional Single Shot Detector

論文:《DSSD:Deconvolutional Single Shot Detector》

論文地址https://arxiv.org/abs/1701.06659

1、背景

SSD算法在檢測小目標時精度並不高,本文是在在SSD的基礎上做出一些改進,引入卷積層,能綜合上下文信息,提高模型性能。

DSSD針對小目標魯棒性太差,提出了以下兩個貢獻:
1. 把SSD的基準網絡從VGG換成了Resnet-101,增強了特徵提取能力;
2. 使用反捲積層(deconvolution layer )增加了大量上下文信息。

2、改進

DSSD將SSD的Vgg16網絡用Resnet-101進行了替換,在分類迴歸之前引入了殘差模塊,在SSD添加的輔助卷積層後又添加了反捲積層形成“寬 - 窄 - 寬”的“沙漏”結構。

DSSD相比SSD的一個最大的提升在於對小目標的檢測度上DSSD有了很大的提升,文章的最後部分也展示了小目標的檢測效果。即便如此,DSSD的檢測速度相比SSD慢了很多,其中很大一部分原因在於引入的Resnet-101太深。

SSD與DSSD的網絡模型如下圖所示:

圖中的藍色部分是SSD在基礎網絡的基礎上添加的輔助層,紅色部分是DSSD在SSD的後面添加的反捲積層,紅色的反捲積層和藍色的卷積層對應尺度相同,融合後再送入上面的藍色框框的Prediction Module模塊進行分類迴歸。

3、DSSD和SSD的區別

3.1、Resnet-101替換VGG網絡

3.2、PM(Prediction Module)模塊

DSSD還引入了新的Prediction Module,如下圖,可以看到主要使用的還是ResNet的short cut思想。

左圖(a)是SSD中用於分類和迴歸用的結構,即在特徵圖上直接連接1*1的卷積,一個用來分類,一個用於迴歸。

圖(c)是文中用於分類和迴歸的最優結構。

圖(b)、圖(c)、圖(d)均是在SSD的基礎上將原有的結構改成Resnet模塊。

這麼做的目的是提取更深維度的特徵用於分類和迴歸。添加的位置在反捲積結構之後,分類和迴歸之前。

Eltw sum有兩種,一種點和、一種點積,最後實驗證明點積的效果最好。

3.3、DM(Deconvolutional Module)模塊

 

SSD是一層一層下采樣,然後分別在這些feature map上進行預測。

DSSD則是在後面加入了很多的Deconvolution Module,通過逆卷積算法feature map上採樣,然後與前面的feature map通過點積產生新的feature map,包含上下文的信息。

爲什麼加入了Deconv層就能提高模型在小目標檢測上的精度呢?

  首先,我們都知道,隨着Conv層加深,越往後feature map的分辨率越小,同時包含的語義信息越高。而小目標是在淺層檢測的,因此feature map語義信息弱,分類不準也是正常的;

  而文中通過Deconv層,將深層強語義的feature map放大,與淺層feature map結合,產生的新feature map語義也比淺層的強,分類自然更準一些。

4、總結

        提高淺層的表徵能力,是可以提高類似檢測器對小目標的檢測能力。

  DSSD=Deconv+Predict Module+SSD

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