yolov3中需要经常回顾的知识点
1.正负样本选择
预测框一共分为三种情况:正例(positive)、负例(negative)、忽略样例(ignore)。
正例:任取一个ground truth, 与上面计算的10647个框全部计算IOU, IOU最大的预测框, 即为正例。并且一个预测框, 只能分配给一个ground truth。 例如第一个ground truth已经匹配了一个正例检测框, 那么下一个ground truth, 就在余下的10646个检测框中, 寻找IOU最大的检测框作为正例。ground truth的先后顺序可忽略。正例产生置信度loss、检测框loss、类别loss。预测框为对应的ground truth box标签(使用真实的x、y、w、h计算出); 类别标签对应类别为1, 其余为0; 置信度标签为1。
注意正例和gt的关系是:一对一,不存在多对一或者一对多
忽略样例:正例除外, 与任意一个ground truth的IOU大于阈值(论文中使用5), 则为忽略样例。忽略样例不产生任何loss。
为什么要有忽略样例?
由于YOLOv3采用了多尺度检测, 那么再检测时会有重复检测现象. 比如有一个真实物体,在训练时被分配到的检测框是特征图1的第三个box,IOU达0.98,此时恰好特征图2的第一个box与该ground truth的IOU达0.95,也检测到了该ground truth,如果此时给其置信度强行打0的标签,网络学习效果会不理想。
负例:正例除外(与ground truth计算后IOU最大的检测框,但是IOU小于阈值,仍为正例), 与全部ground truth的IOU都小于阈值(0.5), 则为负例。负例只有置信度产生loss, 置信度标签为0。
参考:
https://blog.csdn.net/rh8866/article/details/123620540
本文来自博客园,作者:海_纳百川,转载请注明原文链接:https://www.cnblogs.com/chentiao/p/16312202.html,如有侵权联系删除