正负样本的定义、划分以及用于loss的计算的过程

正负样本定义

什么是正负样本?事实上,在目标检测领域正负样本的定义策略是不断变化的。正负样本是在训练过程中计算损失用的,而在预测过程和验证过程是没有这个概念的。许多人在看相关目标检测的论文时,常常误以为正样本就是我们手动标注的GT,其实不然。首先,正样本是待检测的目标,比如检测人脸时,人脸是正样本,非人脸则是负样本,比如旁边的树呀花呀之类的其他东西;其次,正负样本都是针对于算法经过处理生成的框(如:计算宽高比、交并比、样本扩充等)而言,而非原始的GT数据。

难分、易分样本定义

hard example mining(困难样本挖掘)

正负样本不平衡-引自Focal Loss

什么是正负样本不平衡?例如基于候选区域的two-stage的检测框架(比如fast r-cnn系列),基于回归的one-stage的检测框架(yolo,ssd这种)。

  1. one-stage中能够匹配到目标的候选框(正样本)个数一般只用十几个或几十个,而没匹配到的候选框(负样本)大概有 10^4 - 10^5 个。而负样本大多数都是简单易分的,对训练起不到什么作用,但是数量太多会淹没掉少数但是对训练有帮助的困难样本。
  2. two-stage目标检测是将整个检测过程分成两部分,第一部分先选出一些候选框(如faster rcnn 的rpn),大概2000个左右,在第二阶段再进行筛选,虽然这时正负样本也是存在不均衡的,但是(十几个或几十个:2000) 相对(十几个或几十个: 10^4 - 10^5 )好了很多----提取proposal阶段(例如,选择性搜索、EdgeBoxes、DeepMask、RPN)迅速将候选对象位置的数量缩小到一个小数目(例如,1-2k),过滤掉大多数背景样本。在第二个分类阶段,执行抽样启发式,例如固定的前景背景比(1:3),或在线难样本挖掘(OHEM),以保持前景和背景之间的平衡。

解决方法
1.正负样本采样器:固定的前景背景比(正负样本-随机采样)、在线难样本挖掘(OHEM-2016)、yolov5的增加网格扩展正样本等、

2.平衡loss(平衡分类、边框、置信度损失):
Focal Loss(2017-平衡分类损失):认为基于回归的one-stage的检测框架不能达到two-stage的精度的核心原因正负样本不平衡

平衡化L1损失(balanced L1 Loss–2019Libra R-CNN):目标检测损失中包含分类损失和位置损失。平衡两类损失,最普遍的做法是给位置损失加一个权重。但这种做法会有一个潜在的问题:对于训练中的少数困难样本,预测的结果和实际的位置往往偏差较大,此时权重会将大的损失放大,从而产生更大的梯度信息,严重时可能会破坏模型的收敛过程,同时弱化多数简单样本产生的梯度信息。因此,为了平衡不同难度的样本带来的位置损失,论文基于smooth L1损失,提出了balanced L1损失。(参考:Libra R-CNN

正负样本不平衡带来的问题:
由于大多数都是简单易分的负样本(属于背景的样本),使得训练过程不能充分学习到属于那些有类别样本的信息;其次简单易分的负样本太多,可能掩盖了其他有类别样本的作用(这些简单易分的负样本仍产生一定幅度的loss,数量多会对loss起主要贡献作用,因此就主导了梯度的更新方向,掩盖了重要的信息)

  1. 训练效率低下(因为大多数位置都是负样本,没有提供有用的学习信息)
  2. 模型精度变低(过多的负样本会主导训练,使模型退化)

常用算法采用的正负样本策略

1.正负样本划分策略

链接如下:
fast-rcnn、faster-rcnn、YOLOv1、v2、SSD
[faster-rcnn、YOLOv5]faster-rcnn、YOLOv5
总结:大体上所以有三种正负样本划分策略:
anchor-based

  1. 基于anchor和GT(真值框)的宽高比(yolov5)
  2. 基于anchor和GT的IOU(交并比)(yolov2、v3、v4、retinet等)

anchor-free:

  1. 将真实框内的锚点视为候选正样本,然后根据为每个金字塔等级定义的比例范围从候选中选择最终的正样本,最后那些未选择的锚点为负样本(FCOS等)
  2. 基于center的paper和FCOS有些相似,也是用中心点和宽高来表示一个物体,最大区别在于CenterNet使用的是物体的中心点。以及在实现正负样本分配的时候,引入高斯热图确定正负样本(CenterNet)

同时适用于Anchor_based和Anchor_free的正负样本定义方式
自适应训练样本选择ATSS-2020):根据目标的统计特征(方差和均值)自动划分正训练样本和负训练样本,弥合了基于锚的探测器与无锚探测器之间的差距,具体步骤如下

1.对于每个输出的检测层,选计算每个anchor的中心点和目标的中心点的L2距离,选取K(mmdetection的topK是9)个anchor中心点离目标中心点最近的anchor为候选正样本(candidate positive samples)

2.计算每个候选正样本和groundtruth之间的IOU,计算这组IOU的均值和方差
根据方差和均值,设置选取正样本的阈值:t=m+g ;m为均值,g为方差

3.根据每一层的t从其候选正样本中选出真正需要加入训练的正样本
然后进行训练

ATSS认为基于anchor-free和anchor-based目标检测的本质区别是正负样本的定义

SAPD(ECCV-2020):本文可以认为是anchor-free论文的改进。其首先指出目前anchor-free算法存在的问题:1.attention bias(注意力偏差),2.feature selection(特征选择),并提出了相应的soft策略。由于其主要是修改了正负样本定义策略。
attention bias说的是对于特定输出层内的正负样本定义问题
feature selection说的则是不同输出层间的正负样本定义问题,我们以前说的正负样本定义都是hard,这里解决办法都是soft 论文笔记:Soft Anchor-Point Object Detection
SAPD-Soft Anchor-Point Object Detection

总结:本文主要有两个点:
1.正样本应根据与GT中心点的距离分配不同的权重。
2.正样本应当分配到特征金字塔的多层

新的标签分配策略——Optimal Transport Assignment (OTA-2021):该策略将gt和bg的标签分配给anchor的过程转变成一个最优化的问题,使用SinkhornIter迭代求解得到最小的分配代价矩阵c,解码该分配代价矩阵c后得到最佳分配方案。

新的标签分配策略AutoAssign

2.正负样本采样策略

faster-rcnn(2016):使用随机采样器(RandomSampler)来解决样本不平衡-固定的前景背景比1:3,RPN层正负样本1:1(毕竟正负样本不可能刚好1:3,所以应该是随机取的正负样本

OHEM(2016):传统的Hard Negative Mining Method 需要迭代训练,如果我们将他使用到 end-to-end 的卷积神经网络,需要每次将网络冻结一段时间用来生成 hard negative。而这对于使用线上优化的算法来说是不可能的,例如 SGD (随机梯度下降算法)。使用 SGD 来训练网络需要上万次更新网络,如果每迭代几次就固定模型一次,这样的速度会慢得不可想象。

OHEM的过程:两个相同 的RoI网络,不同的是其中一个只可读,另一个可读可写。可读的,只对所有RoI做前向计算,所以只需分配内存给前向计算 操作,既可读也可写的对被选择的hard RoIs不仅做前向计算也做反向 传播计算。对于一次SGD迭代,计算过程如下:先计算出特征图**,可读RoI网络对所 有RoI执行前向计算并计算每个RoI的损失,然后选择hard RoIs。把这 些hard RoIs输入到可读可写的RoI网络中执行前向前向计算和反向传播更新网络,并把可读可写的RoI网络的参数赋值给只可读的网络**,一次 迭代就完成了。OHEM 详解

Libra R-CNN(CVPR2019):使用IOU平衡化采样(IoU-balanced Sampling),也可称为分层采样,根据IOU划分区间,将负样本随机放入其中,从而增大困难负样本的比例。(参考:Libra R-CNN 这篇论文主要针对的就是目标检测中的不平衡:采样、特征、损失)

参考资料

知乎 深度眸
CSDN 目标检测中正负样本的选取总结
CSDN yolov5与Faster-RCNN 训练过程正负样本和评价指标
CSDN 【论文翻译】Focal Loss for Dense Object Detection

  • 25
    点赞
  • 120
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
根据引用中提到的,小目标的检测性能差主要是由于网络模型的局限性和训练数据集的不平衡所成的。同时,引用也指出了小目标存在分辨率低的问题,可视化信息少,难以提取到具有鉴别力的特征,并且易受到环境因素的干扰。 在小目标检测中,正负样本定义是非常重要的。根据引用中提到的问题,现有的Anchor设计难以获得平衡小目标召回率与计算成本之间的矛盾。这意味着设计的锚框可能会过大,导致小目标无法被正确定位,或者过小,导致没有足够的正样本。这种情况下,正样本样本的比例可能会极度不均衡,使得模型更加关注于大目标的检测性能,而忽视了小目标的检测。 为了解决这个问题,研究人员开始探索无Anchor的机制。无Anchor的方法主要有两种。这些方法通过在特征层上应用不同的检测策略,来避免传统的Anchor设计所带来的问题。这些方法可以通过在特征层上进行密集的特征提取,以捕获小目标的更多信息,并且无需预定义的锚框。这样可以有效地平衡小目标与大目标之间的检测性能,并提高小目标的检测准确率。 综上所述,在弱小目标检测中,正负样本定义是根据目标的尺寸和分辨率来确定的。在无Anchor的方法中,为了保证对小目标的有效检测,采用了一种密集的特征提取策略,以提高小目标的检测性能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [MATLAB算法实战应用案例精讲-【图像处理】小目标检测(附matlab代码实现)](https://blog.csdn.net/qq_36130719/article/details/128676075)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值