修改COCO评价指标 maxDets=[10,15,20]

默认的COCO评价指标 maxDets=[1,10,100]

该指标的意思是分别保留测试集的每张图上置信度排名第1、前10、前100个预测框,根据这些预测框和真实框进行比对,来计算AP、AR等值(有点复杂,具体自行百度)

在coco这种公共数据集上,需要一个统一的评价标准【用人家的数据集肯定要用人家定的评价标准】,因此可以看到许多改进算法类的论文在coco数据集上的效果都是用AP、AP50这些表示

我需要的 maxDets=[10,15,20]

但我用的是自己数据集,只是数据格式是coco的格式,评价标准还按原本的就不合适了
举个例子:如果你测试集一张图上面的目标超过100个,你还用 maxDets=[1,10,100],这结果肯定有问题了

根据我自己的数据集,测试集的图片上的目标不超过20个,我需要的 maxDets=[10,15,20],要达到这个目的只要添加一行代码即可:

找到coco_evaluation.py,在代码末尾找到coco_eval,然后参照下图进行添加一行代码即可

'''添加在此处'''
coco_eval
### 如何在YOLOv8中计算和输出AP和AR指标 为了实现这一目的,在YOLOv8框架内,可以借鉴YOLO系列其他版本的经验并利用内置工具库。对于YOLOv5而言,已经存在通过`pycocotools`来评估自定义数据集上的性能的方法[^2]。尽管直接针对YOLOv8的具体说明可能有限,但是可以根据相似的原则来进行操作。 #### 使用PyCocoTools进行评估 通常情况下,YOLO架构下的模型会依赖于`pycocotools`这样的第三方库来完成对预测结果的量化分析工作。这包括但不限于计算不同尺度下(即小、中、大型目标)的平均精度(AP)以及平均召回率(AR)。因此,在YOLOv8环境中想要获得这些统计量,建议按照如下方式: 1. **准备测试环境** 确保安装了最新的`pycocotools`包以及其他必要的依赖项。如果是在官方提供的预训练权重基础上做微调,则应参照官方文档设置好相应的开发环境。 2. **配置文件调整** 检查项目根目录下的配置文件(`*.yaml`),特别是那些涉及到验证阶段参数设定的部分。确认已指定了正确的类别映射关系,并且设置了合理的IoU阈值用于匹配真实框与预测框之间的重叠程度。 3. **编写评估脚本** 创建一个新的Python脚本来执行评估流程。此脚本应当加载经过训练后的YOLOv8模型及其对应的权重量,并读取待测图像集合。接着调用`model.val()`函数启动推理过程,最后借助`cocoapi`接口解析输出日志从而提取所需的度量信息。 ```python from ultralytics import YOLO import torch from pathlib import Path from pycocotools.coco import COCO from pycocotools.cocoeval import COCOeval def evaluate_yolov8(model_path: str, annotation_file: str): device = 'cuda' if torch.cuda.is_available() else 'cpu' model = YOLO(model_path).to(device) cocoGt=COCO(annotation_file) imgIds=sorted(cocoGt.getImgIds()) results = [] for i in range(len(imgIds)): image_info = cocoGt.loadImgs([imgIds[i]])[0] file_name = image_info['file_name'] result = model(Path(file_name)) predictions = format_predictions(result.prediction_boxes(), result.scores(), result.classes()) results.extend(predictions) cocoDt=cocoGt.loadRes(results) Evaluator = COCOeval(cocoGt,cocoDt,'bbox') Evaluator.evaluate() Evaluator.accumulate() Evaluator.summarize() evaluate_yolov8('path_to_model.pt', 'annotations/instances_val.json') ``` 上述代码片段展示了如何基于给定路径加载YOLOv8模型并对指定的数据子集实施评测的过程。注意这里假设输入的是标准格式化的JSON标注文件;实际应用时需根据具体情况作出适当修改。 4. **查看结果** 当整个程序运行完毕之后,终端将会打印出一系列有关整体表现的关键数值,其中包括各个尺寸级别上的AP@IOU=[0.50:0.95], AP@[.50], AP@[.75]等细分项,还有对应大小物体分类别的AR@(maxDets=1), AR@(maxDets=10), AR@(maxDets=100),这些都是衡量检测算法优劣的重要依据。 此外值得注意的是,在某些特定场景下,比如处理极不平衡分布或多模态特征的任务时,除了关注常规意义上的全局性评价外,还应该深入探究局部特性的影响因素,进而采取针对性措施优化现有方案。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

G果

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值