跳转到内容
新建笔记

coco

1)加载 COCO 数据集

from pycocotools.coco import COCO
# 加载注释文件
coco = COCO('path/to/annotations.json')
# 获取所有类别的名称
categories = coco.loadCats(coco.getCatIds())
category_names = [cat['name'] for cat in categories]
print(category_names)

2)获取图片和注释

# 获取某个类别的图片 ID
catIds = coco.getCatIds(catNms=['person'])
imgIds = coco.getImgIds(catIds=catIds)
# 加载图片信息
images = coco.loadImgs(imgIds)
print(images)
# 加载图片的标注信息
annIds = coco.getAnnIds(imgIds=imgIds, catIds=catIds, iscrowd=None)
annotations = coco.loadAnns(annIds)
print(annotations)

3)显示图片及其标注

import matplotlib.pyplot as plt
import skimage.io as io
# 显示图片
image = images[0]
img = io.imread(image['coco_url'])
plt.imshow(img)
plt.axis('off')
# 显示标注
coco.showAnns(annotations)
plt.show()

4)评估模型性能

from pycocotools.cocoeval import COCOeval
# 加载模型预测结果
coco_dt = coco.loadRes('path/to/detections.json')
# 创建 COCOeval 对象
coco_eval = COCOeval(coco, coco_dt, 'bbox')
# 评估结果
coco_eval.evaluate()
coco_eval.accumulate()
coco_eval.summarize()