SSD论文笔记

SSD论文笔记

SSD和YOLO是one-stage检测算法的代表,最近也把这两个整理一下,之前看了一遍,对应的mxnet的代码也看了一遍,但是又忘记了,还是要多总结,多积累。

亮点

-SSD 速度上要快

快的原因有两个,一是没有bounding box proposals, 二是后面没有像faster-rcnn那样对roi进行采样操作。

  • 用了多个不同的scale的feature map

这样的好处是使效果更好,因为多个不同scale的feature map的好处是可以适用于不同的大小的物体。

  • 之前在Faster-rcnn中预测bbox和分类都是用的全连接,现在改成了用conv filter,并且对于不同的scale的feature map用不同的filter来预测。

大致的过程

提特征,然后得到不同的scale的feature maps, 按paper里面是6个.针对每个feature map都有default bounding boxes, 总共有8732个。 然后针对default bounding boxes打label, 即每个default bounding boxes对应的target是什么类别,以及回归的目标是什么。然后从中选择一部分的default bounding boxes去训练和做Loss.

各种boxes

见paper中的图 avator

有几个概念需要清晰

  • cell (feature map cell)

如上图所示,有两种feature map 8-8和4-4,所次各有feature map cells 64和16个。

  • default boxes

针对每个cell,会有不同的default boxes.按照 paper里面介绍的会有6种不同的default boxes. 其中每个default box的 scale和aspect ratio是按下面的公式确定的。

假设有m个feature maps做预测.从而

这里的$S_{min}=0.2, S_{max}=0.9$, 而aspce ratio 有下面的5种

每个default box 的width和height是这样计算的,对于每一个scale 和每一个aspce ratio,

然后当$scale ratio$为1的时候,增加一种$S_k’ =\sqrt{S_k\cdot S_{k+1}}$, 从而对于每一个feature map cell 而言(尽管会在不同scale的feature map 上面,但是产生的个数是一样的)会有6种default box.这些default box的中心都是一样的,即都是以cell的中心为中心的。

  • prior boxes

虽然每个cell都产生了一些default boxes,但是并不是每个default boxes都会去参加训练,而去参加训练的就叫prior boxes.

  • 打label的过程
  1. 先是用gt的bbox去找default box, 找到最大的IOU的box或boxes,然后这些boxes就打好了。

  2. 从上一步剩下的那些default boxes里面,对于每一个defaut boxes, 算它与每个gt的IOU,在所有IOU>0.5的里面选择最大IOU的那个.

上面选择出的default boxes就是正样本,这个集合记为P, 即这里面的每个default boxes的target是有具体的类别和bbox-target的。

然后经过上面两步之后仍没有没匹配到的就是负样本了。即它的类别是背景类别,并且没有bbox-target信息。这时候负样本其实是很多的,那么需要将负样本按照 “confidence loss”进行排序,选择最高的”num”个。这一点还要看代码进行确认.

这一步实际上叫Hard negative mining.

打赏,谢谢~~

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,多谢支持~

打开微信扫一扫,即可进行扫码打赏哦