threshold - yolov3.cfg中YOLO层中ignore_thresh和truth_thresh的目的是什么?

标签 threshold yolo darknet

我试图解释 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

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

最佳答案

我还发现了 this :

ignore_thresh = .7 :该参数决定需要计算的IOU误差是否大于thresh,IOU误差在代价函数中没有被夹住。

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

当预测检测框通过ignore_thresh与ground true IOU重叠时,检测框不参与loss的计算,否则参与。

目的是控制参与损失计算的检测框的尺度。

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

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

关于threshold - yolov3.cfg中YOLO层中ignore_thresh和truth_thresh的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56199478/

相关文章:

image-processing - 模糊图像的阈值 - 第 2 部分

algorithm - C4.5 为连续属性选择分割点(阈值)

deep-learning - YOLOv4 中的损失和 mAP 图表

ubuntu - RTX 3060 无法使用 cuda 11.4 运行 Pytorch Yolov4

machine-learning - 微小的 YOLOv3(暗网)训练 "too quickly"并产生不同的输出

neural-network - Yolo v3 不能设置少于三个的边界框吗?

python - 在 numpy 二维数组中按行查找值大于阈值的索引

c++ - Opencv C++ 阈值在 absdiff、条码检测后不起作用

python - 在 DARKNET 训练期间得到 -NaN,我做错了什么?

opencv - cv2.dnn.readNetFromDarknet 错误 : (-212:Parsing error) Unsupported activation: relu in function 'cv::dnn::darknet::ReadDarknetFromCfgStream'