• 目标检测中几个算法的正负样本划分策略


    参考:
    yolov5与Faster-RCNN 训练过程正负样本和评价指标 https://blog.csdn.net/norman_sen/article/details/121975655
    目标检测: 一文读懂 YOLOV5 Loss 正样本采样 https://blog.csdn.net/weixin_46142822/article/details/123820031
    目标检测正负样本区分策略和平衡策略总结(一) https://zhuanlan.zhihu.com/p/138824387
    faster rcnn中RPN和后面分类器正负样本的设定? https://www.zhihu.com/question/265171400
    关于 Faster RCNN正负样本选取的问题 https://blog.csdn.net/qq_34945661/article/details/120589053


    Faster-RCNN, RetinaNet, EfficientDet
    positive_thres
    negative_thres

    RPN:
    negative_thres=0.3, positive_thres=0.7
    1.GT从所有anchors中找到与之有最大iou的那个anchor, 为正样本
    1.与某个GT的iou超过positive_thres的anchor为正样本, 负责iou最大的GT
    2.与所有GT的最大iou低于negative_thres的anchor为负样本
    4.与所有GT的最大iou在negative_thres~positive_thres之间的anchor被忽略
    5.为了解决正负样本不平衡, 随机选择256个anchors参与训练, 其中正负样本比例1:1. 如果正样本小于128, 负样本数量就算256-128
    RPN总anchors数量: (H/16)*(W/16)*9~20000

    RCNN:
    negative_thres=0.5, positive_thres=0.5
    1.从RPN输出的anchors(大概2000个), 与某个GT的iou超过positive_thres的anchor为正样本, 负责iou最大的GT
    2.剩下的anchors是负样本
    3.正样本大概选取32个, 负样本大概选取96个, 正负样本比例1:3

    RetinaNet:
    negative_thres=0.4, positive_thres=0.5
    参照RPN, 没有5

    EfficientDet:
    与RetinaNet一样?


    SSD
    default box=anchor
    1.GT从所有的default boxes找到与之有最大iou的那个box, 作为正样本
    2.default boxes与GT的iou超过阈值(0.5), 作为正样本
    3.(Hard negative mining): 剩余的default boxes, 按照confidence loss排序, 选择topN个作为负样本, 使得负样本:正样本=3:1
    每个gt一定至少匹配1个default box, 并且可能和多个default boxes匹配,


    YOLOv2, YOLOv3
    1.确定GT落在那个cell, 计算这个cell的anchor与GT的iou, 计算时只考虑wh(因为anchor没有xy坐标信息)
    2.与GT有最大iou的anchor作为正样本, 这样使得每个GT一定有唯一的anchor对应
    3.对于正样本以外的样本, 与GT的iou大于阈值(0.7)的anchor被忽略, 这个iou是每个位置的anchor预测值和所有GT计算的
    4.多尺度预测, 根据max iou原则会将GT分配到不同的预测层, 然后在每个层上单独计算正负样本)
     

    YOLOv5
    (待补充)


    采样名词
    OHEM(online hard example mining)
    Hard negative mining(SSD)








     

  • 相关阅读:
    基于单片机教室人数实时检测系统仿真及源程序
    机器学习策略篇:详解如何改善你的模型的表现(Improving your model performance)
    典型相关分析CCA计算过程
    【数据挖掘】2022年2023届秋招宏瓴科技公司机器学习算法工程师 笔试题
    ThingsBoard如何实现设备自注册
    【相机标定】opencv python 标定相机内参时不计算 k3 畸变参数
    Bootstrap Blazor Table 组件(二)手动刷新组件数据
    MVVM的构建(java&kotlin)
    python3
    Java高级——Class文件及解析
  • 原文地址:https://blog.csdn.net/ying86615791/article/details/125449791