对SSD理解

two stage与one stage

two stage:先用非深度学习的算法产生候选框,就是目标位置,然后再对候选框进行分类与回归,回归就是做一些bounding box regression微调,因为候选框的位置可能与ground truth有些偏移。速度较慢,准确度高。
one stage:仅用一个神经网络直接预测类别和位置。速度较快,准确度低一些。

anchor:

anchor,default box,prior box表示的是同一个意思
目标检测中的边框定位:
(1)绝对坐标:框对于原图像所在的位置,例如500 * 500 的图片,目标位置为(左上角坐标,右下角坐标)=(130,130,180,190),但是在深度学习中,要对图像进行缩放,绝对坐标就会发生变化。
(2)相对坐标:对图像坐标进行归一化,坐标归一到(0,1)之间,例如500 * 500 的图片,绝对坐标为(130,130,180,190),相对坐标则为(0.26,0.26,0.36,0.38)
(3)中心坐标:用目标的中心值与宽高来定位,例如例如500 * 500 的图片,绝对坐标为(130,130,180,190),相对坐标则为(0.26,0.26,0.36,0.38),中心坐标为(0.31,0.32,0.10,0.12)

训练数据标签通常是基于绝对坐标,因为在卷积过程中会发生缩放,绝对坐标要转换为相对坐标。
在计算损失值时,为了平衡尺寸大的目标和尺寸小的目标对损失值的影响,就需要将矩形框表示为中心坐标的方式,以方便对矩形框的宽和高添加权重。
最后,要将归一化后的中心坐标形式转换为检测图像的原始尺度上。

https://www.cnblogs.com/wangguchangqing/p/12012508.html

anchor是用卷积后的特征图形成的,比如最后的特征图上一点的感受野是11 * 11,那么我们我们就在这个11 * 11的感受野里画anchor box,我们以感受野的中心作为anchor box的中心,这样,一个特征图上的点,可以形成多种框,后期再对这些框进行调整,这样检测到目标的概率大大增加。
在这里插入图片描述
例如特征图上的(0,0)点,感受野是19 * 19,相对于原图的位置就是(0,0,18,18),原图的中心就是(9,9),anchor就以(9,9)为中心,画框。特征图向左移动1,中心点就变为(9,9+19),向下移动1,中心点就变为(9+19,9)
我们计算anchor与ground truth的IOU,大于0.5称为正样本,小于0.3称为负样本

SSD

运用VGG-16的模型,把后面的全连接层换成4个卷积层,全连接层提取特征,提取的是全图的特征,所以一张图像中只能包含一个目标;如果有多个目标,提取出来的特征就不准确,影响最后的预测,由于全连接层的存在,网络的输入大小必须是固定的。

SSD
在这里插入图片描述

感受野计算公式:
在这里插入图片描述

例如conv3_4的感受野:r=1+2+2+2+2)x2+2+2+2)x2+2+2)x2+2+2=108
理论感受野是108,实际anchor是0.2*300=60,实际anchor是小于理论感受野的。

不同的feature map来检测不同大小的物体,具体就是:38×38,19x19,10×10,5×5,3×3,1×1,低层38 * 38的特征图预测最小目标,高层1 * 1的特征图预测最大目标。(图中conv4_3代表第四个卷积块的第三层

1.SSD300中的anchor:
每个尺度的Feature Map的anchor都有(1:1,2:1,1:2)这三种aspect ratio。
其中,19×19,10×10,5×5这三个Feature Map添加两个aspect ratio (1:3,3:1)。
并且每个Feature Map都有一个附加的anchor为1:1
共有六种不同宽高比的anchor
anchor总数=(38x38x4)+(19x19x6+10x10x6+5x5x6)+(3x3x4+1x1x4)=8732个
每个anchor的scale是(0.2~0.9)* 300不等,最底层scale是0.2,最高层的scale是0.9,scale计算公式为:
在这里插入图片描述
附加的anchor scale计算公式为根号(Sk * S(k+1))
使用6个Feature Map做预测,每一层的scale:0.2,0.34,0.48,0.62,0.76,0.9
例如最底层的scale为0.2,则anchor宽高分别为0.2,0.2;0.28,0.14;0.14,0.28;0.26,0.26

2.正负样本
训练时,先将 anchor与 ground truth做匹配,匹配成功说明这个anchor包含目标,但是和ground truth还有一些偏移,通过让anchor尽可能回归到ground truth。比如一个样本中有2个ground truth,一共有8732个anchor。有5个和10个anchor与ground truth匹配成功,匹配成功的将会作为正样本参与分类和回归训练,而未能匹配的则只会参加分类(负样本)训练。
找到最匹配的anchor放入候选正样本集;若一个anchor没有与任何ground truth进行匹配,就是负样本。那就造成了有很多负样本,正负样本及不平衡,所以然后再尝试从剩下的 anchor找IoU≥0.5,这就意味着一个ground truth会与多个anchor匹配,但是不允许一个anchor与多个ground truth匹配,若有,则应该选择最大交并比的anchor
作者采用对负例样本抽样的方法,对置信度误差进行降序排序,选择误差大的那些作为负样本(即预测背景的置信度低),使得正负样本的比率为1:3。
假设在这8732个prior box里,得到候选正样本 P个,候选负样本那就有 8732 -P个。对anchor 的置信度误差进行降序排序,选择最高的 M 个anchor,即预测背景的置信度低。如果这 P 个候选正样本里有 a 个box不在这 M 个anchor里,将这 a 个box从候选正样本集中踢出去。如果这 8732−P 个候选负样本集中包含的8732−P 有 b 个在这 M 个prior box,则将这 b 个候选负样本作为最终的负样本。总归一句话就是:选择 loss 值高的难例作为最后的负样本参与 loss 反传计算。
3.数据增强
数据增强
SSD中使用了两种数据增强的方式

  1. 放大操作: 随机crop,patch与任意一个目标的IOU为0.1,0.3,0.5,0.7,0.9,每个patch的大小为原图大小的[0.1,1],宽高比在1/2到2之间。能够生成更多的尺度较大的目标
  2. 缩小操作: 首先创建16倍原图大小的画布,然后将原图放置其中,然后随机crop,能够生成更多尺度较小的目标

4.缺点:
预测小目标效果一般,底层预测小目标,高层预测大目标,对小目标没有足够多的高层信息

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值