检测网络SSD

SSD: Single Shot MultiBox Detector(2016)

Abstract总结:

SSD(一次性探测器,a single-shotdetector)主要为了图像中的目标检测。SSD,根据不同的长宽比和放缩每个feature map的位置,将输出空间中的bounding boxes离散化为一组默认框。在预测时(Test),网络会在每个默认框中为存在的每个类别进行打分(给出scores),并对框进行调整以更好的匹配物体的形状。此外,网络结合来自不同分辨率的多特征图预测,以自然的处理各种尺寸的物体。相对于需要对象提议的方法而言,SSD非常简单,因为它完全消除了提案生成和随后的像素或特征重新采样阶段,并将所有计算封装在单个网络中。 这使得SSD易于训练和直接集成到需要检测组件的系统中。

 

Introduction总结:

当前先进的物体检测系统都是基于以下几个方法的变体:假设边界框、对每个框的重采样像素或特征、应用高质量的分类器。为了解决以往检测器过高的计算复杂度对于嵌入式系统和低的实时性问题(Faster R-CNN atonly 7 frames per second)。本文介绍了第一种基于深度网络的物体检测器,它不对边界框假设的像素或特征进行重采样,并且与所采用的方法一样精确。SSD的改进包括使用小型的卷积核去预测边界框位置中物体的类别(scores)和偏移量。对不同长宽比的检测使用单独的预测器(filters),并且将这些滤波器应用于网络的最后阶段,以便于执行多尺度检测。特别对于不同尺度的多层预测,SSD在输入低分辨率的图像上实现了高精度,进一步提升了检测速度。

 

The Single ShotDetector(SSD)

SSD framework: SSD在训练的时候只需要输入的数据和每个物体的ground truth,在卷积过程中,网络会选取不同放缩比的feature maps(这里的不同放缩比,个人理解是可以有两种假设:一、如果卷积核的尺寸一样,那么经过卷积后feature map的长宽应该是一样的,要形成不同放缩比的feature map相当于将feature map分块,按照4*4/8*8,分成不同的大小。二、对于卷积核尺寸的不同而生成的不同放缩比的feature map,这个对卷积核与生成feature map之间的比例关系有较高的要求), 并在每个feature map的每个位置根据不同长宽比评估default boxes的一个小集合。此外,对于每个默认的box,网络需要预测两个量:一个是box形状的偏移量,另一个是每个box对于所有类的做出一个分类预测(c1,c2, … ,cp)有p个类。在训练时,将default box与ground truth进行匹配,能够匹配上的视为正样本,否则为负样本。

SSD是基于前馈卷积神经网络(这个应该是机器学习的核心基础模型,当有人问一篇深度学习方面的文章的核心是基于什么机器学习的基础模型时,应该就是这个答案),它产生固定大小的bounding box集合,并且在这些boxes中,给存在的所有物体类的实例评分。最后,通过非最大抑制步骤去产生最后的检测。

SSD是在base network的基础上(base network是一个标准的结构,为了高质量图像的分类),添加了一些辅助结构以便检测。但需要几个key features:

一、Multi-scalefeature maps for detection

在base network添加了一些卷积特征层(convolutionfeature layers),这个层在尺寸上逐渐减小并且允许预测多尺度的检测。用于预测检测的卷积模型对于每个feature map是不同的(这里可以看出对于多尺度的预测时,bounging boxes的比例放缩,应该是第二种假设,卷积核的尺度是不同的,并且多尺度的预测应该是在不同的feature map间进行的)。

二、Convolutionalpredictors for detection

在base network上添加的每个feature层(可以是来自base network的一层)能够使用一组卷积核产生一组固定大小的检测预测。这些在SSD网络构架的顶部指出。对于一个大小为m*n*p的feature layer,一个潜在检测参数预测的基本要素是3*3*p的小kernel(其实这里的多尺度可能不是卷积核的大小不同,因为default box本身就有不同的比例,取出来的bounding box也就不一样),

,它既产生了一个分类score,有给出关于默认box坐标的一个形状偏移。Kernel被应用于m*n的每个位置并产生一个输出值。

三、Default boxes andaspect ratios

将一组default boxes与每个feature map的单元相关联,为了获得网络顶部的多个feature maps。Default 以卷积的方式平铺feature map。从而使每个box的位置与feature map中的cell是固定的,进而给出feature map中每个cell处的default box形状的偏移预测并指出已有类的一个scores。(意思是在每个feature map的每个点上,将每个default box平铺处理,并在每个feature map的每个点上给出形状偏移的预测和类别的预测,文章中将不同的default box看做不同的filter,所以一个m*n的feature map总共需要(c+4)K*M*N个filters,c为类的个数,4是偏移的位置坐标),文章的关键点是,将default box应用于不同的分辨率的几个feature maps(不同的分辨率是指,因为在base network 后面增加了feature layer,每个feature layer是逐渐变小的,因此可以将其看做为不同的分辨率,并且不同default box的形状有效的分离了可能输出box形状的空间)。

Training

训练SSD和训练使用区域提议的典型检测器之间的主要区别在于,需要将ground truth信息分配给固定检测器输出集中的特定输出。一旦分配确定,损失函数和反向传播就被应用于端到端。训练还涉及到default box的选择和放缩,同样也需要hard negative mining和数据增强策略(为了均衡正负样本的比例)。

Matching strategy

         在训练期间,我们需要确定哪些默认框对应于ground truth检测并相应地训练网络。每个ground truth box是从default box选出来的,并且随着位置、长宽比和缩放比而变化。Ground truth的匹配策略是根据它与default box的最大jaccard重叠率(AUC),并将高于0.5的box保留,从而简化了学习问题。

Training objective

         SSD的训练目标是来源于MultiBox目标,但是SSD扩展到了处理多个目标类别。整体的损失函数是localization loss和confidence loss:

Choosing scales and aspect ratios for default boxes:

         对于不同尺度物体的处理问题,一些方法建议处理不同尺度的图像,然后合并结果。但是SSD中,通过利用单个网络中几个不同layers的feature maps可以模拟相同的效果,同时也能在物体尺度上共享参数。(之前有一些工作已经显示出,低层次feature maps能够提高语义分割的质量,因为低层次能够捕获更加好的图像细节,也有一些工作显示出从feature map添加global contextpooled能够平滑分割结果)。 SSD设计默认盒子的平铺,以便特定的功能地图学习对物体的特定比例作出响应。假设使用m个feature maps做预测,那么每个feature map中default boxes的尺寸Sk

每一个feature maps都有对应的默认boxes的尺寸。

Hard negative mining

经过匹配阶段后,大部分的默认boxes是负样本,造成了正负样本明显的不平衡,SSD并不全部使用所有的负样本。它使用每个defaultbox的最高置信度(highest confidence loss)对他们进行排序,并选择最高的那个,以便负数和正数之间的比率至多为3:1。

Data augmentation

为了是模型对于输入物体尺寸和形状具有更好的鲁棒性。每个训练图像被随机采样通过下列方式:

1、  使用整个原始输入图像

2、  采样一个patch(物体minimum jaccardoverlap 是0.1, 0.3, 0.5, 0.7, 0.9)

3、  随机采样一个patch

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值