Pytorch——Detectron框架

102

携手创作,共同成长!这是我参与「掘金日新计划 · 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”:存储这张图片的标注信息
  • 2.1 Detectron框架介绍

  • 2018年初,Facebook AI研究院(FAIR)公开了一个目标(视觉)检测平台,名叫Detectron。他是一个软件系统,由Python语言和Caffe2深度学习框架构建而成。

  • 包括了:Mask RCNN,RetinaNet,Faster RCNN,RPN,Keypoints,Panoptic Segmentation等一系列优秀算法框架

  • 支持数据集:COCO,PasscalVOC,Cityscapes,LVIS等不同数据集

  • github.com/facebookres…

  • 为什么会选择Detectron/MM-detection这些框架,而不是自己去写呢?

    • 快速的验证现代主流深度学习算法
    • 不仅仅模块化搭建网络,而且是模块化优化算法框架
    • 节省寻找和测试深度学习模型效果的时间
    • 我们需要更多的时间,跟进最新的研究进展

1.png

2 (2).png

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()

9JQ4ZCQY3M({Q$KEN%9BFQX.png