参考:
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)