首页 > 其他分享 >YOLO的正负样本分配策略

YOLO的正负样本分配策略

时间:2024-10-17 20:50:51浏览次数:9  
标签:样本 阈值 YOLO 分配 GT 正负 anchor

在目标检测中,正负样本分配策略通常用于训练期间为每个样本分配一个权重,以便模型模型更加关注困难的样本和重要的样本。

静态分配策略

在训练开始之前确定的,固定为一组预先定义的权重,这些权重不会在训练过程中改变,这种分配策略通常基于经验得出。不够灵活,可能无法充分利用样本 信息,导致训练效果不佳。

动态分配策略

可以根据训练的进展和样本的特点动态地调整权重。随着训练的进行,模型逐渐变得更加强大,可以更好地区分样本,因此应该逐渐减小困难样本的权重,同时增加易分样本的权重。缺点是会增加训练的计算量和时间成本,频繁的改正正负样本的比例,导致过拟合,结果难以复现。

simOTA

通过计算anchor和ground truth之间的相似度,动态分配正负样本。传统的目标检测算法中,通常使用 Iou 来度量 anchor 和 ground truth 之间的重叠程度,然后根据设定的阈值来判断是否将 anchor 分配为正样本或负样本。对于一些尺寸较小的目标,由于它们的 IoU 值通常比较低,因此很容易被分配为负样本,从而影响了检测性能。

simOTA的核心思想是:根据目标的相似度来确定正负样本的阈值,进而实现样本的自适应分配。首先将所有的目标两两配对,并计算它们的相似度得分,通过对相似度分数进行统计,得到一个阈值范围,用于确定正负样本的分配阈值。相似度得分越高,对应的Iou 阈值就越高,.样本就越容易被视为正样本;相反,相似度得分越低,对应的IoU 阈值就越低,样本就更容易被视为负样本。

优点是:能够更好的处理尺寸较小的目标,从而提高了检测性能。

YOLOv1

YOLOv1根据预测框与GT框的IOU值来进行正负样本分配。在训练过程中,每个网格会输出B个预测框,对于包含物体的网格,选择与GT框具有最大IOU的预测框作为正样本,忽略剩下的B-1个预测框。对于不包含物体的网格,其中的B个预测框都作为负样本。

由于在图像中不包含物体的网格占大多数,会导致正负样本不平衡,引入损失函数缓解这个问题。

YOLOv3

基于anchor和GT的IOU进行分配正负样本的。

每一个目标都只有一个正样本,max-iou matching策略,匹配规则为IOU最大(没有阈值),选取出来的即为正样本。IOU<0.2(人为设定阈值)的作为负样本,除了正负样本,其余的全部为忽略样本,正anchor用于分类和回归的学习,正负anchor用于置信度confidence的学习,忽略样本不考虑。

YOLOv4

在训练中,若只取一个IOU最大为正样本,则可能导致正样本太少,而负样本太多的正负样本不均衡问题,这样会大大降低模型的精确度。yolov4为了增加正样本,采用了multi anchor策略,即只要大于IoU阈值的anchor box,都统统视作正样本。利用max iou原则分配到不同的预测层yolo-head上去,然后在每个层上单独计算正负样本和忽略样本。不存在某个GT会分配到多个层进行预测的可能性,而是一定是某一层负责的。

YOLOv5

对每一个GT框,分别计算它与9种anchor的宽与宽的比值、高与高的比值;每个层级每个格子有三个anchor;在宽比值、高比值这2个比值中,取最极端的一个比值,作为GT框和anchor的比值;得到GT框和anchor的比值后,若这个比值小于设定的比值阈值,那么这个anchor就负责预测GT框,这个anchor的预测框就被称为正样本,所有其它的预测框都是负样本。

YOLOv8
  • 在训练过程中动态的调整正负样本的分配比例,以更好的适应不同的任务和数据分布

  • 基于一个关键的假设,即在不同的任务和数据集中,正负样本的分布情况可能会有所不同,因此需要针对具体的任务和数据分布,调整正负样本的分配比例,从而达到更好的检测效果。

提出了一种任务自适应的正负样本分配方法。

思路:

  • 使用一个任务感知的分配模块来估计不同任务下正负样本的分布情况,并基于这个分布情况动态调整正负样本的分配比例。

  • 首先计算每个 Anchor 和每个 Ground Truth Box之间的相似度,然后通过一个多任务学习框架,将相似度与正负样本标签的分布情况进行建模。

  • 通过这个分布情况来动态地调整正负样本的分配比例,以更好地适应不同的任务和数据分布。

  • 计算每个 Anchor 和每个 Ground Truth Box之间的IOU时,采用一个基于任务自适应的动态阈值来判断正负样本的分配

实现方法:

  • s和u分别为分类得分和 IoU 值,α 和 β为权重超参。

  • 对每个实例,选择m个具有最大t值的Anchor作为正样本,选择其余的Anchor作为负样本。然后,通过损失函数(针对分类与定位的对齐而设计的损失函数)进行训练

YOLOv11

双标签分配策略:标签分配策略对于目标检测器来说是至关重要的。核心思想便是在训练阶段使用一对多的检测头提供更多的正样本来丰富模型的训练;而在推理阶段则通过梯度截断的方式,切换为一对一的检测头,如此一来便不在需要 NMS 后处理,在保持性能的同时减少了推理开销。

标签:样本,阈值,YOLO,分配,GT,正负,anchor
From: https://blog.csdn.net/weixin_43826536/article/details/143000073

相关文章

  • YOLOv8融合创新 | CCFM与Dyhead结合实现性能极限突破【附保姆级代码】
    本文收录于专栏:精通AI实战千例专栏合集https://blog.csdn.net/weixin_52908342/category_11863492.html从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。每一个案例都附带关键代码,详细讲解供大家学习,希望可以帮到......
  • 基于yolov5的手机屏幕缺陷检测系统,支持图像、视频和摄像实时检测【pytorch框架、pytho
     更多目标检测和图像分类识别项目可看我主页其他文章功能演示:yolov5,手机屏幕缺陷检测系统,支持图像、视频和摄像实时检测【pytorch框架、python源码】_哔哩哔哩_bilibili(一)简介基于YOLOv5的手机屏幕缺陷检测系统是在PyTorch框架之下得以实现的。这是一个完备的项目,涵盖......
  • YOLOv8改进 - 注意力篇 - 引入ShuffleAttention注意力机制
    一、本文介绍作为入门性篇章,这里介绍了ShuffleAttention注意力在YOLOv8中的使用。包含ShuffleAttention原理分析,ShuffleAttention的代码、ShuffleAttention的使用方法、以及添加以后的yaml文件及运行记录。二、ShuffleAttention原理分析ShuffleAttention官方论文地址:文章Sh......
  • opencv yolo11 onnx c++代码
    1.exportonnx,opset我设置的是12,其它值或许也可以2.opencv使用的4.10【其他版本或许也可以,4.7.0版本是不行的】3.代码核心参考yolo之前版本的实现即可。 model.setInput(blob);model.forward(outputs,outnames);constintdimensions=84;constintrows=......
  • 玩手机检测数据集 YOLO玩手机检测数据集yolo ,10000多张 ,用lableimg标注,标注真实场景高
      yolo玩手机检测YOLO玩手机检测数据集,近一万多张使用lableimg标注软件,标注好的真实场景的高质量图片数据,图片格式为jpg,标签有两种,分别为VOC格式和yolo格式,分别保存在两个文件夹中,可以直接用于YOLO玩手机行为的识别,数据场景丰富,类别名为phone;:YOLO玩手机检测数据集(......
  • 人行道斑马线红绿灯检测数据集 4900张 带标注 voc yolo 7类
     分类名:(图片张数,标注个数)crossing:(4635,4637)stop:(1341,1374)countdown_blank:(837,849)countdown_go:(925,940)go:(1239,1251)blank:(148,148)countdown_stop:(4,8)总数:(4950,9207)总类(nc):7类 人行道斑马线红绿灯检测数据集介绍数据集......
  • 基于YOLO V11的车辆检测与追踪与车道计数项目
    基于YOLOV11的车辆检测与计数项目概述本项目使用最新的YOLOV11模型实现了一个实时车辆检测与计数系统。该系统能够准确地在多条车道(车道A、车道B、车道C)上检测并计数车辆,为交通监控和管理提供有价值的信息。问题陈述在现代城市环境中,监控车辆流量和计数对于有效的交......
  • YOLO11涨点优化:原创自研 | 自研独家创新BSAM注意力 ,基于CBAM升级
     ......
  • 机器学习笔试面试之图像数据不足时的处理方法、检验方法、不均衡样本集的重采样、数据
    机器学习笔试面试之图像数据不足时的处理方法、检验方法、不均衡样本集的重采样、数据集分布是否一致一、图像数据不足时的处理方法1.在图像分类任务中,训练数据不足会带来什么问题?如何缓解数据量不足带来的问题?回答1回答2二、检验方法1.KS检验(Kolmogorov-SmirnovTest)......
  • yolov10环境配置
    安装 Anaconda(一直点下一步安装即可,记住安装的目录。)https://www.anaconda.com/download/success  配置系统环境变量D:\anaconda3D:\anaconda3\Library\binD:\anaconda3\Scripts在命令行中执行conda--version显示如下图即为成功创建虚拟环境首先新建......