目标检测值faster rcnn、SSD和yolo系列的样本标定

本文详细解析了FasterRCNN、SSD及YOLO系列目标检测算法中的正负样本标定原则,包括RPN流程、match策略、NMS处理及Anchor使用,为深度学习目标检测提供理论指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1、faster rcnn的正负样本标定原则

2、SSD中的正负样本标定原则

 3、YOLO系列的标定原则

4、三个网络的Anchor详解 


1、faster rcnn的正负样本标定原则

主要是体现在faster rcnn中的RPN中,标定原则(RPN流程)如下:

  1. 最后一个卷积层输出的特征图再进行一次卷积后得到新的特征图(这是针对RPN前的CNN后得到的特征图进行的);
  2. 新的feature map的平面上有40 \times 60=2400个点,每个点都可以对应到原始的特征图上,得到9个anchor,所以总共可以得到40 \times 60\times9个候选区域(大约20000个左右)(超出边界的候选区域限定在边界处);
  3. 通过softmax计算得到所有候选区域的scores;
  4. 选出scores最大的12000个候选区域;
  5. 这些区域中有些候选区域与其他区域有大量重叠,所以采用NMS,固定NMS的阈值为0.7,过滤掉一些候选区域;再选出scores最大的2000个候选区域,这2000个候选区域如果与某个标定区域(GT)的IOU大于0.7,则记为正样本,如果与任意一个标定区域的IOU小于0.3,则记为负样本,其余的区域不作为样本。
  6. 在训练RPN层分类回归任务时,会随机抽取256个区域进行训练,正负候选区域的比例为1:1,如果正样本数小于128,用负样本填充;
  7. (这指的是最后一步,不是RPN中的)训练最后输出的分类回归任务时,随机抽取64个与真实标注框IOU大于等于0.5的区域作为前景,256-64个IOU小于0.5且大于0.1的区域作为背景进行训练
RPN(前两个不是)

 

2、SSD中的正负样本标定原则

主要是match策略的细节(SSD300中通过“特征金字塔”,结合了6层特征图,共得到8732个预选框)。(参考:08《SSD: Single Shot MultiBox Detector》论文学习笔记

将默认框和真实框(ground truth box)按IOU进行匹配,匹配成功则这个默认框就是正样本(positive example),如果匹配不上,就是负样本(negative example),论文中作者选用的IOU为0.5

在training中,GT boxes与prior boxes按照以下方式进行配对:寻找每一个与GT boxes有最大IOU的prior boxes,以保证每一个GT boxes与唯一的prior boxes对应起来;SSD之后再将剩余的没有配对的prior boxes与任意的GT boxes配对,只要IOU大于阈值,就认为match(SSD300的阈值为0.5),配对到GT的prior box就是positive,没有配对到的为negative。

SSD算法中的Hard negative mining:一般情况下negative default boxes数量要远远大于positive default boxes的数量,直接训练会导致网络过于重视负样本,从而loss不稳定。所以SSD在抽样时按照置信度误差(置信度越大,误差越小)降序排列,选取误差较大的top_k作为训练的负样本,控制positive:negative=1:3

 3、YOLO系列的标定原则

YOLO-v1共得到7 \times 7 \times 2=98个边界框(bounding boxes),最后输出为7*7*(2*5+20类);YOLO-v2共得到13 \times 13 \times 5个边界框,最后输出13*13*(5*(5+20类));YOLO-v3共得到3 \times (13 \times 13 + 26 \times 26 + 52 \times 52)个边界框(因为应用了多尺度的方法,每个尺度对应3个不同尺寸的anchor box)。用为YOLO系列中是目标的中心落在那个网格内,该网格则负责检测该物体,所以不用进行正负样本的标定,直接用NMS进行处理即可,如下:

NMS方法并不复杂,其核心思想是:选择得分最高的作为输出,与该输出重叠的去掉,不断重复这一过程直到所有备选处理完。YOLO的NMS计算方法如下:(参考网址:YOLO v1深入理解 9))

网络输出的7*7*30的张量,在每一个网格中,对象位于第j个bounding box的得分:它代表着某个对象存在于第j个bounding box的可能性。

每个网格有:20个对象的概率*2个bounding box的置信度,共40个得分(候选对象)。49个网格共1960个得分。Andrew Ng建议每种对象分别进行NMS,那么每种对象有 1960/20=98(49*2) 个得分。

NMS步骤如下:

1)设置一个Score的阈值,低于该阈值的候选对象排除掉(将该Score设为0)

2)遍历每一个对象类别

2.1)遍历该对象的98个得分

2.1.1)找到Score最大的那个对象及其bounding box,添加到输出列表

2.1.2)对每个Score不为0的候选对象,计算其与上面2.1.1输出对象的bounding box的IOU

2.1.3)根据预先设置的IOU阈值,所有高于该阈值(重叠度较高)的候选对象排除掉(将Score设为0)

2.1.4)如果所有bounding box要么在输出列表中,要么Score=0,则该对象类别的NMS完成,返回步骤2处理下一种对象

3)输出列表即为预测的对象

4、三个网络的Anchor详解 

作者针对这三种网络讲解非常详细 

参考网址:目标检测 1 : 目标检测中的Anchor详解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值