YOLOv8使用pycocotools进行评估

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

YOLOv8使用pycocotools进行评估_第1张图片

 而且这里是看不到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文件的方式,但是需要注意的是这里需要进行一下改动:

YOLOv8使用pycocotools进行评估_第2张图片

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

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

YOLOv8使用pycocotools进行评估_第3张图片

 成功!!!

你可能感兴趣的:(YOLO)