美文网首页
目标检测学习总结之SSD

目标检测学习总结之SSD

作者: 妖皇裂天 | 来源:发表于2019-01-12 18:11 被阅读0次

  首先要明确SSD的motivation:要让目标检测任务又快又准。怎么快?那就是将two-stage改为one-stage。怎么准?尽可能多预测些box(当然这里也有trade-off,毕竟预测的box越多计算量就越大,越耗时)。针对这些,SSD的关键技术在于:

  1. one-stage(相对于Faster RCNN);
  2. 采用anchor box机制(相对于YOLOv1);
  3. 采用多尺度特征图预测(相对于Faster RCNN和YOLOv1)。

采用anchor box机制,为要预测的box加入一些先验,可以使得模型更加鲁棒,降低出现不收敛的风险。anchor box机制相对来说可以在提出少量的box的基础上保证检测任务的准确率和召回率,结合anchor机制SSD需要预测8千多个box(Faster RCNN则需要预测2万3千多个box,更多的box意味着更多的计算,从而降低了实时性;YOLOv1只需要预测98个box,但是在MAP上表现一般)。
采用多尺度特征图,尽可能引入不同接收野的特征。这样尽管每个gird对应的anchor box都是相同的size,但是由于不同层特征图的接收野不同,所以相同的anchor在不同层对应的image实际区域也不同。总的来说,大尺度特征图(比如1919)用来检测小的target,而小尺度特征图(比如11)用来检测大的target。
其他还需要注意的点:

  1. 匹配机制:首先,保证每个ground truth和一个anchor box匹配上(评判标准是最大的jaccard overlap);然后,将jaccard overlap值大于0.5的anchor box与ground truth也匹配上。也就是说,对于每个ground truth,至少有一个anchor box能匹配上。
  2. 损失函数分析:SSD的损失函数为L(x,c,l,g)=\frac{1}{N}(L_{conf}(x,c)+\alpha L_{loc}(x,l,g)),可见损失函数包含2项——置信误差和定位误差。定位误差公式是L_{loc}(x,l,g)=\sum_{i \in Pos}^N\sum_{m \in \{cx,cy,w,h \}}x_{ij}^kSmooth_{L1}(l_i^m-\hat{g}_j^m),可见定位误差只考虑了正样本(有object的anchor box)。置信误差公式是L_{conf}(x,c)=-\sum_{i \in Pos}^Nx_{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)},置信误差就是计算了正负样本的交叉熵,正样本考虑了粗分类误差(是否有object)和细分类误差(object具体类别),负样本只考虑了粗分类误差。
  3. 对比下SSD和YOLO的区别\begin{array}{|c|c|c|} \hline 比较项 & SSD & YOLO \\ \hline 匹配机制 & 一个ground \; truth至少匹配一个anchor \; box & 一个ground \; truth只能匹配一个anchor \; box \\ \hline 正负样本失衡问题 & 对负样本抽样 & 为负样本的置信误差加上权重\\ \hline \end{array}注:SSD负样本采样机制——按照置信度误差(预测背景的置信度越小,误差越大)进行降序排列,选取误差的较大的top-k作为训练的负样本,以保证正负样本比例接近1:3(也就是每次选择最容易误判的负样本)。

相关文章

  • 目标检测学习总结之SSD

      首先要明确SSD的motivation:要让目标检测任务又快又准。怎么快?那就是将two-stage改为one...

  • SSD(Single Shot MultiBox Detecto

    前言 本文用于记录学习SSD目标检测的过程,并且总结一些精华知识点。 为什么要学习SSD,是因为SSD和YOLO一...

  • 目标检测之SSD

    SSD的网络分为两部分,前半部分是用于图像分类的标准网络(去掉了分类相关的层),后面的网络是用于检测的多尺度特征映...

  • 目标检测学习资料

    RCNN学习笔记(10):SSD:Single Shot MultiBox Detector 深度学习目标检测模型...

  • [Caffe配置]SSD(Single Shot MultiBo

    1.SSD简介 SSD全称Single Shot MultiBox Detector,是一个用于目标检测的深度学习...

  • SSD代码阅读

    1.CNN目标检测(三):SSD详解 - 浩瀚之水的专栏 - CSDN博客 2.深度学习笔记(七)SSD 论文阅读...

  • 目标检测系列——SSD(上)

    一、SSD原理   本文记录一阶段目标检测模型SSD的学习笔记及代码复现过程。首先个人感觉SSD和YOLO相比稍微...

  • C++ opencv-3.4.1 调用tensorflow训练好

    本文使用tensorflow的目标检测model zoo的ssd_mobilenet_v1_coco进行目标检测测...

  • texbox++_2018_华科白翔

    旋转文本检测,基于ssd 1、ssd目标检测算法 backboneVGG16,输入是固定大小的图像,输出是下采样的...

  • 搞定目标检测(SSD篇)(下)

    搞定目标检测(SSD篇)(上)主要分析了目标检测的基本原理和技术局限,本文将继续上集的未尽事宜,详解如何使用SSD...

网友评论

      本文标题:目标检测学习总结之SSD

      本文链接:https://www.haomeiwen.com/subject/olycdqtx.html