携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第31天,点击查看活动详情
前言
在上一篇文章中,我们介绍了图像分割问题,包括图像分割的概念、图像分割问题方法、图像分割评价指标、图像分割问题难点。
今天,我们来介绍COCO数据集、Detectron框架、coco数据集标注文件解析。
-
1.1 COCO数据集介绍
-
COCO图像分割数据集介绍
- 数据集
- 微软发布的图像分类、对象检测、实例分割、图像语义的大规模数据集
- 图像包括91类目标,328000影像和2500000个label。其中语义分割的最大数据集,提供的类别有80类,有超过333万张图片,其中20万张有标注,整个数据集中个体的数据超过150万个。
- mscoco.org/
- 其他数据集
- passcal VOC、SiftFlow、Standford background、Vistas
- Cityscapes、DAVIS、MINC、KITTI、ADE20K等
- 数据集
-
COCO数据格式介绍
- json格式存放标注信息
- “info”:存储数据集的一些基本信息
- “licenses”:存储license信息
- “categories”:存储数据集的类别信息,包括类别的超类、类别id、类别名称
- “images”:存储这张图片的基本信息,包括图片名、场、宽、id等重要信息
- “annotatioins”:存储这张图片的标注信息
- json格式存放标注信息
-
2.1 Detectron框架介绍
-
2018年初,Facebook AI研究院(FAIR)公开了一个目标(视觉)检测平台,名叫Detectron。他是一个软件系统,由Python语言和Caffe2深度学习框架构建而成。
-
包括了:Mask RCNN,RetinaNet,Faster RCNN,RPN,Keypoints,Panoptic Segmentation等一系列优秀算法框架
-
支持数据集:COCO,PasscalVOC,Cityscapes,LVIS等不同数据集
-
为什么会选择Detectron/MM-detection这些框架,而不是自己去写呢?
- 快速的验证现代主流深度学习算法
- 不仅仅模块化搭建网络,而且是模块化优化算法框架
- 节省寻找和测试深度学习模型效果的时间
- 我们需要更多的时间,跟进最新的研究进展
- 使用yacs来定义配置文件内容
- github.com/facebookres…
-
3.1 coco数据集标注文件解析
from pycocotools.coco import COCO
from skimage import io
from matplotlib import pyplot as plt
anno_file = "coco/annotations/instances_val2017.json"
coco = COCO(anno_file)
catIds = coco.getCatIds(catNms=['person'])
print(catIds)
imgIds = coco.getImgIds(catIds=catIds)
print(imgIds)
for i in range(len(imgIds)):
image = coco.loadImgs(imgIds[i])[0]
I = io.imread(image["coco_url"])
plt.imshow(I)
anno_id = coco.getAnnIds(imgIds=image["id"], catIds=catIds, iscrowd=None)
annotation = coco.loadAnns(anno_id)
coco.showAnns(annotation)
plt.show()