yolov3.cfg 中 YOLO 层中的ignore_thresh 和truth_thresh 的用途是什么?

Jon*_*nas 5 threshold darknet yolo

我试图解释 yolov3.cfg 文件中不同参数的用途,但是,我找不到对ignore_thresh和truth_thresh的任何解释。

我目前(有限)的理解是,它们要么与非最大抑制有关,它们充当组合边界框的阈值,要么与预测置信度的上限和下限有关。

找不到任何人真正在线解释参数,只有复制粘贴部分配置文件的人。我浏览了https://blog.paperspace.com/tag/series-yolo/,其中 YOLOv3 是在 PyTorch 中实现的,但是,他们顺利地跳过了使用和解释这两个参数。

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
Run Code Online (Sandbox Code Playgroud)

我认为这并不重要,但我使用 AlexeyAB 的 darknet 存储库作为框架。

Anu*_*ngh 4

我还发现了这个

ignore_thresh = .7:该参数决定是否需要计算IOU误差大于thresh,并且IOU误差不被捏在成本函数中。

true_thresh = 1:参与计算的IOU阈值大小。

当预测的检测框通过ignore_thresh与地面真实IOU重叠时,检测框不参与loss的计算,否则参与loss的计算。

目的是控制参与损失计算的检测框的规模。

当ignore_thresh太大,接近1时,则参与检测框的回归次数会较少,很容易造成过拟合。

如果ignore_thresh设置得太小,那么参与计算的参与者数量就会很大。同时,在进行检测框回归时,很容易造成欠拟合。