使用内置数据集

可以通过访问 DatasetCatalog 获取其数据,或访问 MetadataCatalog 获取其元数据(类名等)来使用数据集。本文档介绍了如何设置内置数据集,以便它们可以被上述 API 使用。 使用自定义数据集 详细介绍了如何使用 DatasetCatalogMetadataCatalog,以及如何在其中添加新的数据集。

Detectron2 内置支持一些数据集。假设这些数据集存在于环境变量 DETECTRON2_DATASETS 指定的目录中。在此目录下,detectron2 将在需要的情况下,根据下面描述的结构查找数据集。

$DETECTRON2_DATASETS/
  coco/
  lvis/
  cityscapes/
  VOC20{07,12}/

你可以通过 export DETECTRON2_DATASETS=/path/to/datasets 设置内置数据集的位置。如果未设置,默认情况下为相对于当前工作目录的 ./datasets

模型库包含使用这些内置数据集的配置和模型。模型库 中包含使用这些内置数据集的配置和模型。

预期用于 COCO 实例/关键点检测 的数据集结构:

coco/
  annotations/
    instances_{train,val}2017.json
    person_keypoints_{train,val}2017.json
  {train,val}2017/
    # image files that are mentioned in the corresponding json

你也可以使用数据集的 2014 版本。

一些内置测试 (dev/run_*_tests.sh) 使用 COCO 数据集的缩小版,你可以使用 ./datasets/prepare_for_tests.sh 下载。

预期用于 PanopticFPN 的数据集结构:

将全景注释从 COCO 网站 提取到以下结构中

coco/
  annotations/
    panoptic_{train,val}2017.json
  panoptic_{train,val}2017/  # png annotations
  panoptic_stuff_{train,val}2017/  # generated by the script mentioned below

通过以下方式安装 panopticapi

pip install git+https://github.com/cocodataset/panopticapi.git

然后,运行 python datasets/prepare_panoptic_fpn.py,从全景注释中提取语义注释。

预期用于 LVIS 实例分割 的数据集结构:

coco/
  {train,val,test}2017/
lvis/
  lvis_v0.5_{train,val}.json
  lvis_v0.5_image_info_test.json
  lvis_v1_{train,val}.json
  lvis_v1_image_info_test{,_challenge}.json

通过以下方式安装 lvis-api

pip install git+https://github.com/lvis-dataset/lvis-api.git

要使用 LVIS 注释评估在 COCO 数据集上训练的模型,请运行 python datasets/prepare_cocofied_lvis.py 来准备“cocofied” LVIS 注释。

预期用于 cityscapes 的数据集结构:

cityscapes/
  gtFine/
    train/
      aachen/
        color.png, instanceIds.png, labelIds.png, polygons.json,
        labelTrainIds.png
      ...
    val/
    test/
    # below are generated Cityscapes panoptic annotation
    cityscapes_panoptic_train.json
    cityscapes_panoptic_train/
    cityscapes_panoptic_val.json
    cityscapes_panoptic_val/
    cityscapes_panoptic_test.json
    cityscapes_panoptic_test/
  leftImg8bit/
    train/
    val/
    test/

通过以下方式安装 cityscapes 脚本

pip install git+https://github.com/mcordts/cityscapesScripts.git

注意:要创建 labelTrainIds.png,请首先准备上述结构,然后使用以下方式运行 cityscapesescript:

CITYSCAPES_DATASET=/path/to/abovementioned/cityscapes python cityscapesscripts/preparation/createTrainIdLabelImgs.py

这些文件对于实例分割来说是不必要的。

注意:要生成 Cityscapes 全景数据集,请使用以下方式运行 cityscapesescript:

CITYSCAPES_DATASET=/path/to/abovementioned/cityscapes python cityscapesscripts/preparation/createPanopticImgs.py

这些文件对于语义分割和实例分割来说是不必要的。

预期用于 Pascal VOC 的数据集结构:

VOC20{07,12}/
  Annotations/
  ImageSets/
    Main/
      trainval.txt
      test.txt
      # train.txt or val.txt, if you use these splits
  JPEGImages/

预期用于 ADE20k 场景解析 的数据集结构:

ADEChallengeData2016/
  annotations/
  annotations_detectron2/
  images/
  objectInfo150.txt

目录 annotations_detectron2 是通过运行 python datasets/prepare_ade20k_sem_seg.py 生成的。