SSD系列

一 SSD算法介绍

  • Single Short MultiBox Detector(one-stage方法)
  • Wei Liu在ECCV 2016提出
  • 直接回归目标类别和位置
  • 不同尺度的特征图上进行预测
  • 端到端的训练
  • 图像的分辨率比较低,也能保证检测的精度

二 原理:

        

        

      

         prior box layer:如果将每一个点都当做一个cell,对于每一个点也对应到了Faster-RCNN中的一个anchor。以当前这个点作为中心点,找到它在原始图片中的相应位置,以它为中心点,来生成固定尺寸以及不同长宽比例的bounding box,如果每个cell对应k个default box,假设一个feature map有m * n个cell,如果每个bounding box都会预测出c个类别的分数,和4个坐标的偏移值,这里类别的分数就对应到了当前的bounding box对应的不同类别的概率分布,4个偏移值则对应相应的坐标,最终每一个prior box 层如果输入为m*n,最终的输出大小则为(c+4)*k*m*n

            1.m*n个cell

            2.每个cell上生成固定scale和aspect ratio的box(两个超参数)

  •  假设一个feature map有m * n个cell,每个cell对应k个default box,每个default box预测c个类别score和4个offset
  •  (c+4)*k*m*n个输出

               

prior box layer:

1. shape数量越多,效果越好

2.anchor

3.38*38*4+19*19*6+10*10*6+5*5*6+3*3*4+1*1*4=8732个prior box

4.每一个feature map cell不是k个default box都取

5.prior box与GT box做匹配,IOU>阈值为正样本

6.训练:确保prior box的分类准确且尽可能回归到GT box

样本构造:

1.正样本:从GT box出发给找到最匹配的prior box放入候选正样本集;从prior box集出发,寻找与GT box满足IOU>0.5的最大prior box放入候选正样本集。不满足上述条件的样本可以放入负样本

2.负样本:难例挖掘;正负样本比1:3

         

三 数据增强:

  • 随机采样管多个path,与物体间最小的jaccard overlap为:0.1,0.3,0.5,0.7,0.9
  • 采样的patch比例为[0.3,1.0],aspect ratio在0.5或者2
  • GT box中心在采样patch中且面积大于0
  • Resize到固定大小
  • 以0.5的概率随机的水平旋转

四 损失函数:

            

对于损失函数的计算,我们通常会采用回归loss和分类loss相结合的方法来计算最终的loss,这个loss也会用来后序的反向传播。对于每一个prior box,尽可能让它回归到GT box,这个过程的调控我们需要损失层的帮助,它会计算真实值和预测值之间的误差,从而指导学习的走向。

五 SSD系列算法的使用细节:

1.数据增强时,crop采样大小

2.多任务网络的权重(对于分类任务和回归任务不同loss的权重比)

3.正负样本比例1:3

4.难例挖掘方式默认只取64个最高predictions loss来从中寻找负样本

六 算法性能分析:

  1. 数据增强对于结果的提升非常明显
  2. 使用更多的feature maps对结果提升更大
  3. 使用更多的default boxes,结果也越好
  4. Atrous使得SSD又好又快

七 SSD系列算法优化及扩展

1.DSSD:

  • 2017年的CVPR, WeiLiu
  • SSD算法对小目标不够鲁棒的最主要的原因是浅层feature map的表征能力不够强
  • 加入上下文信息
  • 更好的基础网络(RestNet)和Deconvolution层,skip连接来给浅层feature map更好的表征能力

2.DSOD

  • 2017年的ICCV2017
  • DSOD可以从0开始训练数据,不需要预训练模型,而且效果可以和fine-tune的模型媲美
  • SSD+DenseNet=DSOD

    可以从零开始训练得到一个好的目标监测网络吗?

    如果可以,设计这样的网络有没有什么原则可以遵守?

    预训练模型优点:开源模型多,可以直接将他们用于目标检测;可以快速得到最终模型,需要的训练数据也相对较少。

    预训练模型缺点:预训练模型大,参数太多,模型结构灵活性差,难以改变网络结构,计算量也大,限制其应用场合;分类和检   测任务的损失函数和类别分布是不一样的,优化空间存在差异;尽管微调可以减少不同目标类别分布的差异性,但是差异太大时,微调效果依然不理想。

DSOD设计原则:

  • 基于候选区域的方法无法从零开始训练,不收敛,只有proposal-free方法可以从零开始训练兵收敛(ROI Pooling)
  • DenseNet中更多的skip connections(跳连)实现supervised signals传递
  • 增加dense blocks数量区别原先的固定数量
  • Stem Block优化(3个3*3卷积层和1个2*2最大池化层)
  • 6个尺度特征图进行目标检测,再融合(如何利用特征图)

3.FSSD

FSSD设计原则:

  • 借鉴了FPN的思想,重构了一组pyramid feature map,使得算法的精度有了明显的提升,速度也没有太降
  • 把网络中某些feature调整为同一size再contact,得到一个像素层,以此层为base layer来生成pyramid feature map
  • feature fusion module

4.RSSD

RSSD设计原则:

  • rainbow concatenation方式(pooling加deconvolution)融合不同层的特征,在增加不同层之间feature map关系的同时也增加了不同层的feature map个数
  • 这种融合方式不仅解决了传统SSD算法存在的重复框问题,同时一定程度上解决了small objection的检测问题。

八 SSD系列算法应用场景

  • 人脸检测与识别任务(注意,在人脸检测场景中,由于他是个二分类,类别数量会少一点,因此在人脸检测的模型中,通常会采用SSD算法多一点)
  • ADAS场景目标检测与识别
  • 通用物体检测与识别
  • 自然场景下文本检测与识别(textbox,textbox++)
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值