论文-SSD-Single Shot MultiBox Detector

SSD: Single Shot MultiBox Detector

SSD 的贡献是:

1,            比state-of-the-art single shot detector YOLO取得了更快和更准确的表现。

2,            SSD的核心是使用convolutional filter在feature map的很多给定的Bounding boxes中得到category scores 和 box offsets。

3,            为了获得高的detection accuracy , 在不同 scales 上的feature maps 进行预测。

网络结构:

 

SSD的关键特点有:

(1), 使用 multi-scale feature maps 来detect,

(2), Convolutional predictors , 没有采用FC layer,这样可以适用于各种size的image,对于一个NxMxP的feature map, prediction detection 是 3x3xP的small kernel

(3),利用filter作为classifier 和 regressor,来对feature map的每一个pixels所在的位置是否object并且判断bbox相对于ground true的offsets。此时,filter将classifier和regressor结合起来,所以产生了filter产生的vector的维度是 (c + 4) x K, 其中c是categories number, 4 是bbox相对于ground true的4个offsets,k值是不同aspect和scale的bbox的数量。

 

Training:

包含: default boxes集合和detection scale的选择,hard negative mining 和 data augmentation。Hard negative mining,因为出来的绝大多数的bbox都是negatives,为了使得categories balance,sort 之后取最高的confidence loss的bbox,其中限制 negative/positive 最大为3.

对于Matching,用jaccard overlap来衡量每一个candidate的bounding boxes。

其中training loss是:

 

Loss function 是localization 和 confidence 结合的加权和。

Aspect和scale的选取:

假设我们想要选择m个feature maps来做prediction,scale的计算可为:

 

其中 Smin是0.2,表示lowest layer的scale是0.2。Smax是0.9。

总结:

(1), 用filter来做classification和regression是一个新的创新,这样就可以不引入fc,从而让image可以任意shape

(2),用multi-scale进行detection,浅层的feature map对较小的object有保证。

(3),多级的filter进行detection,有个疑问,不同scale的backpropagation对network的影响不同,浅层scale的backpropagation对前面的主干cnn影响较大,而后面scale的对前面的主干cnn的影响较小,是否会有影响?

原文地址:https://www.cnblogs.com/zhang-yd/p/6596913.html