欢迎光临 x-algo
关注算法在工业界应用
Hi, 这是一个关注大数据算法在工业界应用的网站

SSD原理

性能信息

QQ20170228-4

来源:https://github.com/weiliu89/caffe/tree/ssd

特性

  • 在每一个feature map location,将bounding box离散化为不同的比例和大小(类似Faster R-CNN的Anchor)
  • 预测的时候,预测类别+bounding box信息。
  • 可以做到自然的合并不同分辨率下产生的bbox
  • 没有传统的预先生成proposal过程(类似YOLO),速度比YOLO还快。
  • 在512x512的图片上面达到了mAP值是76.9%,要好于Faster R-CNN。
  • 速度快,可以达到59FPS
  • 低分辨率表现良好
  • 利用多层的不同比例的feature map

模型

QQ20170228-5

SSD对每一个location都会预测出来一个「偏移量」和「置信度」(类别分布),和以前的方式不同的地方在于,SSD在不同的卷积位置进行预测,从而可以实现对不同的尺度的Object可以较好的拟合。

SSD也是每一个location预先生成几个候选的框,然后gt会激发某一个候选框。被激发的就生成一个正样本,没有被激发的就作为负样本。激发的标准可以使用IOU的值。

最终SSD会有很多个输出候选,同样通过「非极大抑制」(no-max suppression)进行合并。

详细结构

QQ20170228-7

可以看到,中间的卷积层直接通过3x3的filter直接和最终的回归、分类联系到了一起,通过设置filter的个数,实现对多个bbox的回归和分类。如果有k个bbox需要回归,c个类别需要区分,那么卷积核的个数为 \(k(c+4)\) .

训练

Matching Strategy

这个策略,决定如何构造正负样本。任何一个location可以生成样本的个数为:

\(size_{defaultbox} \times size_{ground truth} \)

和Faster R-CNN类似,有两条规则,触发任何一个就会「生成」一个正样本,否则就是负样本:

  1. 和某一个groundtruth的重叠面积比例(jaccard overlap)比其他default box都要大
  2. 和某一个groundtruth的重叠面积比例超过指定阈值(论文中是0.5)

Training objective

目标函数(损失函数)很直观,和RPN很像,就是 \(Smooth_{L1} + CrossEntropy\) .

为了表述方便,引入了一个「指示器」 \(x_{i,j}^p \in \{0,1\}\) ,标识第i个default box是否和第j个ground truth匹配(上面的匹配策略),p标识当前ground truth的类别,匹配了就是一个正样本。

下图为关键公式:

QQ20170301-0

值得解释的有两个地方,bbox, \(L_{conf}(x,c)\) 是将label为0的分类直接省去的写法,损失还是交叉熵;

设置候选框

合适的设置候选对最终回归的效果影响应该很大,在不同的面积和宽高比生成default box。

数据增强

依靠数据增强,mAP提升了8.8%

QQ20170301-2

 

论文实现

https://github.com/weiliu89/caffe/tree/ssd

论文

《SSD: Single Shot MultiBox Detector》

未经允许不得转载:大数据算法 » SSD原理

评论 抢沙发

*

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

关注大数据算法在工业界应用

本站的GitHub关于本站