我试图解释yolov3.cfg文件中不同参数的用途,但是,我找不到对ignore_thresh和true_thresh的任何解释。
我目前的(有限的)理解是,它们与非最大抑制相关,在非最大抑制中它们充当组合边界框的阈值,或作为预测置信度的上限和下限。
找不到真正在线解释参数的人,只有找到复制粘贴配置文件部分的人。我浏览了https://blog.paperspace.com/tag/series-yolo/,在PyTorch中实现了YOLOv3,但是他们顺利地跳过了使用和解释这两个参数的过程。
yolov3.cfg的相关部分如下所示。
[yolo]
mask = 3,4,5
anchors = 10,13, 16,30, 33,23, 30,61, 62,45, ...
classes=80
num=9
jitter=.3
ignore_thresh = .7
truth_thresh = 1
random=1
我认为这并不重要,但是我正在使用AlexeyAB的darknet存储库作为框架。
答案 0 :(得分:2)
我还发现了this:
ignore_thresh = .7 :该参数确定是否需要计算IOU误差是否大于阈值,以及IOU误差是否存在于成本函数中。
truth_thresh = 1 :计算中涉及的IOU阈值的大小。
当预测检测框与地面真实IOU重叠了ignore_thresh时,检测框将不参与损耗的计算,否则它将参与。
目的是控制参与损耗计算的检测框的比例。
ignore_thresh太大时,接近1,然后参与。检测框中的回归次数会更少,并且很容易导致过度拟合。
如果ignore_thresh设置得太小,则计算中涉及的参与者数量将很大。同时,在执行检测框架回归时很容易导致拟合不足。