YOLOv5的置信度阀值与iou阀值及P R详解

本文详细介绍了YOLO目标检测算法中的关键参数,包括置信度阈值(conf_thres)、交并比阈值(iou_thres)及其对检测效果的影响,并解析了精确率(Precision)、召回率(Recall)、F1值(F-Measure)的概念,同时阐述了平均精度(AP)和平均精度均值(mAP)的计算方法。
部署运行你感兴趣的模型镜像

conf_thres

Confidence Threshold,置信度阈值。
  只显示预测概率超过conf_thres的预测结果。
  想让YOLO只标记可能性高的地方,就把这个参数提高。
iou_thres

Intersect over Union Threshold,交并比阈值。
IOU值:预测框大小∩真实框大小 / 预测框大小∪真实框大小。(预测框与真实框的交集与并集的取值。)
iou_thres在detect.py中:
越大,则容易将对于同一个物品的不同预测结果 当成 对多个物品的多个预测结果,导致一个物品出现了多个预测结果。
越小,则容易将对于多个物品的不同预测结果 当成 对同一个物品的不同预测结果,导致多个物品只出现了一个预测结果。
如下面对甜甜圈的预测一般,多个甜甜圈重叠在一起的图片中:
图1:iou-thres = 0.65 (将iou阈值设为0.65,检测出了18个甜甜圈。)
在这里插入图片描述
图2:iou-thres = 0 (设为0,检测出了6个甜甜圈,并且检测区域都没有重复。)

在这里插入图片描述
图3:iou-thres = 0.98
在这里插入图片描述

P
Precision,精确率
对类A来说(下面提到的都是被预测成A的):
P = 正确数 / 预测总数
或 P = 正确数/ 正确数+错误数
即,预测的东西正确了多少百分比。
R
Recall,召回率
对类A来说(下面提到的都是被归为A类的):
R = 预测正确数 / 真实A类总数。
或 R = 预测正确数 / 被预测到的A + 未被预测到的A
即,预测的东西找到了多少百分比。
F1
F-Measure,F值,P与R的调和平均
F=1/(λ1P+(1−λ)1R),λ = 0.5时,简化为F1
F1 = 2PR / (P + R)
例:对于一个二分类问题来说:
要对动物进行分类,分为猫与非猫两类。样本中,猫有350份,非猫有150份。
预测出了400份被认为是猫,其中,正确的有300份,错误的有100份。则:
P = 300 / 400 = 0.75
R = 300 / 350 ≈ 0.86
PR图

横坐标是R值,纵坐标是P值,曲线表示当召回率为R时,精确率P的大小。
例:
假设测试集图片数量为一百张,且测试了一百张。
当A类的R值设为0.1时,表示以某精确度P2计算,检测到了A类总数的10%。
以此类推,当A类的R值设为1时,表示以某精确度P11计算,检测到了所有的A类标签。
可以看出,随R值的升高,A被预测到的数量也会增加,即那些可能性较低的A类也逐渐被预测出来。
因此,可以判断P值是随着R的升高而降低。
P值如果设为100,即要求被标记出来的区域一定属于A类,这种概率非常低,所以可能一个A类都识别不出来,进而导致R值为0。
而若P值设为0.1,则要求被标记出来的区域只要有百分十的概率属于A类即可,那么将有很多A类被标记,R值也进一步提高。
因此,PR图左下方的面积越大,则表示模型对该数据集的效果越好。
AP

Average Precision
以某种方式计算AP值来表达PR图的面积
下面提到的是PASCAL VOC竞赛于2010年前的计算方式,
根据我查到的资料,也是YOLOv3的计算方式(目标检测中常提到的IoU和mAP究竟是什么?)。
但我没有在YOLOv5的github wiki上找到相关资料,也没有在其它地方找到。
使用平均,以R in range(0 : 1 : 0.1)作为IOU,满足这个R值的最大P值作为Pi,求11个Pi的平均数。
这里的R是以0为起点,1为终点,0.1为步长的十一个值,1也算。
即上面解释PR图时的例子里R与P的关系。
mAP

mean Average Precision
每个类的AP值的平均数。
用于表达多类标签预测的性能,如AP一样,mAP越高,性能越好。
mAP@.5
当IoU为0.5时的mAP
mAP@.5 : .95
当IoU为range(0.5 : 0.95 : 0.05)时的mAP的平均数。
如何提高mAP
   优化数据集:
      YOLO官方推荐数据集需求:
        每类图片数量:每类大于1500张图片
        每个类的实例:每类实例(标签)大于一万份。
        图像多样性:确保图片来自不同环境。对于现实世界物体的识别,推荐使用来自不同时间、不同季节、不同天气、不同光照度、不同角度、不同来源的图片。
        标签一致性:所有类中所有实例必须都被标签标记,不要遗漏。
        标签准确性:标签能准确标记对象,不要在对象与标记框之间留下缝隙。没有对象可以不用标记(背景图片)。
        背景图片:背景图片是指没有对象的图片,用来减少误报。YOLO推荐0~10%的背景图片来减少误报(COCO数据集包含1000张背景图片,占据总数1%)。
简单来说:
   增加不同角度/光照度的数据集。
   增加不同环境的数据集。
   增加背景图片(无目标的图片)。
   增加数据集大小。
   确保标签标定准确。

————————————————
版权声明:本文为优快云博主「MWHLS」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/asd123pwj/article/details/117171868

您可能感兴趣的与本文相关的镜像

Yolo-v5

Yolo-v5

Yolo

YOLO(You Only Look Once)是一种流行的物体检测和图像分割模型,由华盛顿大学的Joseph Redmon 和Ali Farhadi 开发。 YOLO 于2015 年推出,因其高速和高精度而广受欢迎

<think>我们正在处理用户的问题:用户想知道YOLOv8模型中置信度IOU阈值的默认值。 根据我们已有的引用资料,虽然没有直接给出YOLOv8的默认值,但我们可以参考YOLO系列的一般设置以及引用中提到的相关信息。 在引用[3]中提到了yolov5的推理参数,其中可能包含置信度IOU阈值。而YOLOv8作为YOLO系列的最新版本,其设计理念和参数设置往往YOLOv5相似。 引用[4]和[5]也提到了YOLOv3和YOLOv5中关于置信度IOU阈值的一些信息,特别是引用[5]中提到了mAP50-95的计算使用了从0.5到0.95的多个IOU阈值,并且提到了mAP50(即IOU阈值为0.5时的mAP值)。 通常,在目标检测模型中,置信度阈值(confidence threshold)用于过滤掉置信度低于该阈值的预测框,而IOU阈值(NMS IOU threshold)用于非极大值抑制(NMS)过程中,以合并重叠的边界框。 根据YOLO系列(特别是YOLOv5)的常见设置,我们可以推测YOLOv8的默认置信度阈值可能是0.25IOU阈值可能是0.45。但需要确认。 然而,在引用[5]中,我们看到在YOLOv8的学习笔记中提到了mAP50-95,但没有明确给出默认的推理阈值。 为了给出准确答案,我们可以参考YOLOv8的官方文档或源代码。但根据常见的实践和YOLOv5的默认设置(在yolov5的detect.py中,默认置信度阈值为0.25IOU阈值为0.45),YOLOv8很可能也采用了相同的默认值。 因此,我们可以回答: YOLOv8默认的置信度阈值(confidence threshold)为0.25IOU阈值(NMS IOU threshold)为0.45。 但是,请注意,这些阈值可以在推理时通过参数进行调整。用户可以根据需要调整这些阈值以平衡精确率和召回率。 根据引用[1]中关于IOU阈值的影响,我们可以知道: - 较低的IOU阈值(如0.1-0.3)会保留更多的检测框,定位精度一般,误检处理宽松。 - 中等IOU阈值(0.4-0.5)则平衡了定位精度和误检处理。 - 较高的IOU阈值(0.6-0.7)则定位精确,但检测框数量较少,处理严格。 因此,默认选择0.45IOU阈值是为了在定位精度和误检之间取得平衡。 另外,置信度阈值0.25是一个相对较低的阈值,可以保证较高的召回率,然后通过NMS进一步过滤。 如果用户需要更精确的答案,建议查阅YOLOv8的官方文档或源代码。 生成相关问题: 1. 如何调整YOLOv8的置信度IOU阈值? 2. 置信度IOU阈值对检测结果有什么影响? 3. YOLOv8中除了置信度IOU阈值,还有哪些重要的推理参数?</think>### YOLOv8置信度IOU阈值默认值 根据YOLO系列的通用设计原则及引用资料分析,YOLOv8的默认阈值设置如下: 1. **置信度阈值(confidence threshold)** 默认值为 **0.25** - 该阈值用于过滤低置信度的预测框,低于此值的检测结果会被丢弃。 - 引用[3][5]表明YOLO系列通常使用0.25作为基础置信度阈值,以平衡精确率和召回率。 2. **IOU阈值(NMS IOU threshold)** 默认值为 **0.45** - 在非极大值抑制(NMS)过程中使用,用于合并重叠的检测框。 - 引用[1][4]指出IOU阈值在0.4-0.5区间可实现定位精度误检率的平衡,符合YOLOv8的设计目标。 #### 阈值影响分析 | 阈值类型 | 低值影响(<0.3) | 高值影响(>0.6) | 默认值优势 | |----------|-------------------|------------------|------------| | 置信度 | 召回率↑,误检↑ | 漏检↑,精确率↑ | 平衡F1分数[^5] | | IOU | 框数量↑,定位↓ | 框数量↓,定位↑ | 精度误检平衡[^1] | > 示例代码:Python中修改阈值 > ```python > from ultralytics import YOLO > model = YOLO("yolov8n.pt") > results = model.predict(source="image.jpg", conf=0.25, iou=0.45) # 默认参数 > ``` #### 阈值选择建议 - **调高置信度**(如0.5):减少误检,适用于高精度场景(医疗检测) - **调低IOU**(如0.3):增加重叠目标检出,适用于密集场景(人群计数) - **联合调参**:通过PR曲线选择最优组合(引用[4][5])
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值