前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >目标检测 | SSD,经典单阶段Anchor-Based目标检测模型

目标检测 | SSD,经典单阶段Anchor-Based目标检测模型

作者头像
Justlovesmile
发布2022-03-30 15:34:08
1.2K0
发布2022-03-30 15:34:08
举报
文章被收录于专栏:云+分享

SSD: Single Shot MultiBox Detector

论文发表:2016 论文链接:SSD: Single Shot MultiBox Detector | SpringerLink

代码语言:javascript
复制
@inproceedings{liu2016ssd,
  title={Ssd: Single shot multibox detector},
  author={Liu, Wei and Anguelov, Dragomir and Erhan, Dumitru and Szegedy, Christian and Reed, Scott and Fu, Cheng-Yang and Berg, Alexander C},
  booktitle={European conference on computer vision},
  pages={21--37},
  year={2016},
  organization={Springer}
}

归纳总结

标签

目的

方法

总结

#Anchor #单阶段

实现多尺度以及卷积预测,进一步提升精度和速度

MultiBox,Anchor

经典单阶段算法

1. 引言

SSD算法,其英文全名是Single Shot MultiBox Detector, SSD的优势在于消除了bounding box proposal和pixel or feature resampling,并使用了multi-scale,因此达到了比faster rcnn和yolo更高的检测精度和更快的检测速度。

图片来自目标检测|SSD原理与实现 - 知乎 (zhihu.com)

2. SSD模型

SSD采用VGG16作为基础模型,然后在VGG16的基础上新增了卷积层来获得更多的特征图以用于检测,模型结构如下图:

SSD和Yolo一样都是采用一个CNN网络来进行检测,但是却采用了多尺度的特征图,网络的核心点:

  • 使用小的卷积核预测类别和边界框偏移量
  • 对多个(多尺度)特征图进行检测
  • 设置不同比例的先验框,如下图

SSD将背景也当做了一个特殊的类别,如果检测目标共有c个类别,SSD其实需要预测c+1个置信度值,其中第一个置信度指的是不含目标或者属于背景的评分。在预测过程中,置信度最高的那个类别就是边界框所属的类别,特别地,当第一个置信度值最高时,表示边界框中并不包含目标。第二部分就是边界框的location,包含4个值(cx,cy,w,h),分别表示边界框的中心坐标以及宽高。但是真实预测值其实只是边界框相对于先验框的转换值。先验框位置用d=(d^{cx},d^{cy},d^{w},d^{h})表示,其对应边界框用b=(b^{cx},b^{cy},b^{w},b^{h})表示,那么边界框的预测值l其实是b相对于d的转换值:

3. 模型训练

3.1 正负样本划分

首先,对于图片中每个ground truth,找到与其IOU最大的先验框,该先验框与其匹配,这样,可以保证每个ground truth一定与某个先验框匹配。通常称与ground truth匹配的先验框为正样本,其次,通过判断先验框和ground truth之间的IoU值是否大于阈值(如0.5),大于则为正样本

3.2 损失计算

损失包含两个部分:定位损失和分类损失

L(x,c,l,g)=\frac{1}{N}(L_{conf}(x,c)+\alpha L_{loc}(x,l,g))

其中N代表所匹配的正负样本数量,l代表预测框,g代表真实框,和faster rcnn相似,回归的偏移量的值是边界框的中心坐标(cx,cy)和框的宽度w和高度h。

\hat{g}{j}^{cx}=(g{j}^{cx}-d_{i}^{cx})/d_{i}^{w}
\hat{g}{j}^{cy}=(g{j}^{cy}-d_{i}^{cy})/d_{i}^{h}
\hat{g}{j}^{w}=\log(\frac{g{j}^{w}}{d_{i}^{w}})
\hat{g}{j}^{h}=\log(\frac{g{j}^{h}}{d_{i}^{h}})

因此定位损失函数为:L_{loc}(x,l,g)=\sum_{i \in Pos}^N \sum_{m\in {cx,cy,w,h}}x_{ij}^{k}smooth_{L1}(l_i^m-\hat{g}j^m)分类损失是一个损失:分类损失是一个softmax损失:L{conf}(x,c)=-\sum_{i\in Pos}^{N}x_{ij}^p\log(\hat{c}i^p)-\sum{i\in Neg}log(\hat{c}_i^0)其中其中\hat{c}_i^p=\frac{exp(c_i^p)}{\sum_p(exp(c_i^p))}$

4. 参考文献

目标检测|SSD原理与实现 - 知乎 (zhihu.com)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SSD: Single Shot MultiBox Detector
    • 归纳总结
      • 1. 引言
        • 2. SSD模型
          • 3. 模型训练
            • 3.1 正负样本划分
            • 3.2 损失计算
          • 4. 参考文献
          相关产品与服务
          对象存储
          对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档