YOLOv8使用pycocotools进行评估

文章讲述了YOLOv8模型在COCO数据集上的评估问题,发现官方评估结果与pycocotools计算的不同。为了解决这个问题,作者提供了更新pycocotools的方法,包括在Linux环境下安装和修改val.py文件以适应COCO的标签范围。通过这些步骤,可以正确地使用pycocotools进行模型评估。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

随着YOLOv8的到来,相信各位伙伴已经开始对v8进行魔改了,但是v8的评估代码在COCO数据集上与pycocotools有一定差距,如果使用官方的yolov8s.pt进行验证v8的评估体系给出的评估结果仅为44.7AP但是官方给出的结果是44.9,于是在github上问了一下,作者说结果是在pycocotools上进行评估的。

 而且这里是看不到AP75 sml这些指标的,于是探索了一下v8里如何用pycocotools进行评估:

首先v8要求pycocotools版本大于>2.0.6

linux如何安装?

一个稳妥linux安装的方式:

pycocotools官网

 去官网下载离线安装包然后解压到目录下

linux解压命令tar -xzf all.tar.gz 

解压后cd到该目录执行命令:

python3 setup.py build
python3 setup.py install

执行这里的时候可能报错:

gcc: error: pycocotools/_mask.c:

解决方案:

pip install cython

验证方式我使用的是python脚本方式:

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8s.pt')  # load an official model
# Validate the model
metrics = model.val(data='ultralytics/datasets/coco.yaml', iou=0.7, conf=0.001, half=False, device=0,save_json=True)

 关键点在于save_json=True,因为pycocotools需要用json进行评估,这里官方给了生成json文件的方式,但是需要注意的是这里需要进行一下改动:

 val.py文件要将self.is_coco手动设置为True,不知道为什么这里结果是False,手动设置为True的话会执行下面coco80->91的函数,因为coco标签文件是到91的,如果不转评估结果都是0。

到这里执行一下上面的python脚本看一下结果:

 成功!!!

评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值