YOLOv3/v4/v4/x中正负样本的定义

1.每一个目标都只有一个正样本,max-iou matching策略,匹配规则为 IOU最大(没有阈值),选取出来的即为 正样本
2. IOU负样本;
3.除了正负样本,其余的全部为 忽略样本
比如drbox与gtbox的IOU最大为0.9,设置IOU小于0.2的为负样本。
那么有一个IOU为0.8的box,那么这个box就是忽略样本,有一个box的IOU为0.1,那么就是负样本;同样的drbox与gtbox的IOU最大为0.4,那么它也是正样本。
4.正anchor用于分类和回归的学习,正负anchor用于置信度confidence的学习,忽略样本不考虑。

YOLOv4采用了不同于YOLOv3的multi anchor策略,即 只要大于IoU阈值的anchor box,都统统视作正样本,换言之,那些原本在YOLOv3中会被忽略掉的样本,在YOLOv4中则统统成为了正样本,不难看出,YOLOv4的正样本会略微多于YOLOv3,对性能的提升也自然会有一些帮助。

GT需要利用max iou原则分配到不同的预测层yolo-head上去,然后在每个层上单独计算正负样本和忽略样本。不存在某个GT会分配到多个层进行预测的可能性,而是一定是某一层负责的。

1 yolov5输出有3个预测分支,每个分支的每个网格有3个anchor与之对应
采用。
2 没有采用IOU最大的匹配方法,而是通过计算该boundingbox和当前层的anchor的宽高比,如果最大比例大于4(设定阈值),则比例过大,则说明匹配度不高,将该bbox过滤,在当前层认为是背景;
3 计算这些box落在哪个网格内,同时利用四舍五入规则,找出最近的两个网格,将这三个网格都认为是负责预测该bbox的,所以理论上最多一个gt会分配9个正样本anchor,最少为3个(因为引入了相邻两个网格)

YOLOx正负样本是采用的标签分配策略,YOLOX的解析可以参考我上一个博客。区分正负样本大致分为三步

  • 根据中心点来判断、根据目标框来判断
    规则:寻找anchor_box中心点,落在groundtruth_boxes矩形范围的所有anchors。
  • 根据目标框来判断:
    规则:以groundtruth中心点为基准,设置边长为5的正方形,挑选在正方形内的所有锚框。
  • 精细化筛选
    上面两个步骤完成了对anchor的初步筛选,最后一步精细化筛选用的是论文中提到的SimOTA。这个步骤有点复杂,大致是现根据计算出的iou_loss挑选出10个最大的候选框,以此决定每个target会分到多少个正样本

Original: https://blog.csdn.net/weixin_43850171/article/details/123380975
Author: 折磨王
Title: YOLOv3/v4/v4/x中正负样本的定义

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/682169/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球