图像检测:SSD系列

目标检测:SSD系列

SSD:Single Shot MultiBox Detector
DSSD: Deconvolutional Single Shot Detector
FSSD:Feature Fusion Single Shot Multibox Detector
RefineDet: Single-Shot Refinement Neural Network for Object Detection
RfbNet:Receptive Field Block Net for Accurate and Fast Object Detection
M2Det: A Single-Shot Object Detector based on Multi-Level Feature Pyramid Network

Pelee:Pelee: A Real-Time Object Detection System on Mobile Devices

序:SSD系列属于one_stage基于回归的目标检测方法。多尺度特征开创者。

SSD(2016):

  1. 主要创新点
    利用多尺度特征图进行目标检测
  2. 效果
    74.3mAP、59FPS ( on VOC2007 test )
  3. 网络结构

SSD网络结构
如图所示,SSD的backbone采用VGG-16,将VGG-16的两个全连接层FC6和FC7换成conv6和con7。

  • 特征层选取:选取VGG-16的conv4_3层和后面的conv7、conv8_2、conv9_2、conv10_2和conv11_2作为特征层进行目标检测,针对inputs为300*300的图像对应这六个尺度分别为scale=[38,19,10,5,3,1]。

  • 先验框选择:对所选特征层的每个像素生成多个anchor box(prior box/default box),先验框长宽比例为h/w=[1,2,1/2,3,1/3]以及宽高比例为1对应两个尺寸,针对此网络中,对应所选六个特征层每个像素对应特征框数为[4,6,6,6,4,4],先验框数量为4时对应比例为[1,2,1/2],不同特征层对应不同scale_ratio。
    最终得到先验框数为:
    8732 = 38 ∗ 38 ∗ 4 + 19 ∗ 19 ∗ 6 + 10 ∗ 10 ∗ 6 + 5 ∗ 5 ∗ 6 + 3 ∗ 3 ∗ 4 + 1 ∗ 1 ∗ 4 8732=38*38*4+19*19*6+10*10*6+5*5*6+3*3*4+1*1*4 8732=38384+19196+10106+556+334+114
    每个先验框得到(num_class+1)+4个参数,物体类别数+1个背景类+4个位置参数

  • 先验框尺寸:
    不同特征层对应先验框尺寸不同,相对于原图像尺寸,smin=0.2,smax=0.9,conv4_2层尺寸单独计算,其他尺寸计算如下,m为选取的特征层数:
    s k = s m i n + s m a x − s m i n m − 1 ( k − 1 ) , k ∈ [ 1 , m ] s_k=s_{min}+\frac{s_{max}-s_{min}}{m-1}(k-1),k\in{[1,m]} sk=smin+m1smaxsmin(k1),k[1,m]
    每层的anchor box宽高比例为1的另一个特殊尺寸为: s m i n × s m a x \sqrt{s_{min}\times{s_{max}}} smin×smax

  • ground_truth:将每个先验框与label框进行IOU,选择最大的IOU类别作为anchor box的类别,当最大IOU小于规定的IOU_threshold时则anchor box标定为背景。得到最终的ground_truth。

  • 样本不均衡问题:
    ground_truth中大部分都是背景,属于负例negative sample。样本极度不均衡,这里采用难例挖掘并将正负样例比例控制在1:3。

  • 损失函数:
    类别损失:使用softmax函数,采用8732个anchor中被选取的部分做损失
    loc损失:采用8732个anchor中包含目标的正例做回归损失。采用smooth_l1函数。

心得:

  • 全部采用卷积层,因此允许输入不同尺寸图片,但不要低于300,影响检测精度,图片尺寸不同导致最终anchor box数量不同。
  • VGG-16作为backbone,现在可以选择其他如Resnet101,Densenet等网络增加识别精度。
  • 多尺寸特征可以关注到多尺寸目标,但多尺寸分布在网络结构的不同层数,语义程度不同。浅层网络包含语义信息少,导致对小目标检测不是很准,另一个方面,最大特征图尺寸为38,相较原图300,已经缩小了近8倍,所以8个像素大的目标还是无法分辨。
  • 神游:
    目标检测是建立在目标识别的基础上,目标的特征跟目标的位置无关,但在图像中,anchor不同得到的目标置信度不同,可以根据此对各anchor间得到的位置参数一个数学关系,得到最终的目标位置。否则,训练好网络是如何对输入图片得到其目标位置的呢,只有推理过程没有反馈。
    神经网络以结果为导向,设计网络,并训练使之完成任务,而如何根据实际问题设计一个合适的网络(包括精度和速度两个方面)这很重要。
    基础网络中,VGG,MobileNet都是改变了卷积方式,减少计算量和参数量。而NIN和inception系列是从不同尺寸来获取多层信息。Resnet和Densenet又是从长时记忆和短时记忆的角度进行改进,信息长时间的传递会导致信息扭曲等问题,但不用记忆所有内容只需要记忆内容间的不同,就大大减轻了负担。
    早期机器学习中使用的是人工提取的特征,即人工给出具有现实意义的特征,如边缘,面积,形状等。图像只是一堆像素组成的,所利用的只有像素值(空间相关如三维可以利用相机内外参数),专家们提出,灰度直方图,傅立叶变换,小波理论等,后期,又根据像素及其周围之间的关系得到SIFT算子,为方便使用进一步得到SURF算子等,基于梯度的直方图统计出来的,SIFT算子有128维,足以表达所有特征,只是需要计算每个像素的SIFT耗费太大,而且太精细不足以表达整体,或者太注重细节。
    网络实际构建和训练及最终使用,充分利用矩阵计算,注意数据类型。了解硬件也是任务之一。

DSSD(2017):

在SSD基础上进行了以下几点改进:

  • 使用Resnet101和VGG-16作为backbone,分别实验,相比较而言VGG_16 层数不足,语义信息不足。
  • 借鉴FPN,使用特征融合,深层特征利用反卷积进行上采样与浅层特征融合,加强浅层网络的语义信息,提高小目标检测准确性。
  • 训练时使用多个预测分支,类似于inception系列,提升浅层网络的表达能力。
  • 借鉴YOLOv2在anchor box比例的选取,聚类分析样本目标框的长款比例,在原来的[1,2,1/2,3,1/3]基础上增加了1.6。
  • 分开训练,三个阶段训练。

网络结构

在这里插入图片描述

效果

小目标检测能力加强,但是速度不及SSD。

心得

  • resnet101和特征融合提高小目标的检测能力,浅层网络的细节融合深层网络的语义信息。

FSSD(2017):

在SSD基础上做了以下改进:

  • 使用特征融合。一次性融合后再生成不同尺度的特征图。
    在这里插入图片描述

效果

提升小目标检测能力,减少同一物体的部位重复检测

RefineDet(2018):

结合了two_stage的region proposal和feature merge
主要包含三个部分:anchor refinement module (ARM) 、object detection module (ODM)、transfer connection block (TCB)。
Refine网络检测部分
结合了SSD、FPN和RPN技术,保持one_stage效率的情况下,提高了精度。
先通过ARM部分得到anhor并进行尺寸和位置的微调,并判断出前景,作用跟RPN类似。经过TCB,在TCB完成特征融合,再传送给ODM进一步检测和分类。

RfbNet(2018):

解决的问题:
使用轻量级网络作为backbone,结合Rfb提取高表达性特征,提高目标检测精度,并保持较高的效率。
之前的DSSD,RentinaNet使用Resnet101作为backbone,精度提升了但是效率降低了。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值