detector2导入语义分割数据集

1.调整数据集文件目录

参考ADEChallengeData2016数据集的目录结构

	ADEChallengeData2016
			annotation
					training(存放所有训练标签png图片)
					validation(存放所有验证标签png图片)
			images
					training(存放所有训练jpg图片)
					validation(存放所有验证jpg图片)
	有这些足够,其余不重要
	注:图片和标签明明方式需对应

2. 生成detector2专用的数据集标签格式

下载安装detector2库,使用./detectron2/datasets/prepare_ade20k_sem_seg.py即可完成。
该代码会先找寻环境变量DETECTRON2_DATASETS作为数据集根目录,若找不到默认路径./datasets。个人建议,可以更改datasets为自己数据集存储路径,或者在数据集存储路径和datasets建立一个软链接。后面ADEChallengeData2016为数据集名,可根据自己数据集修改,其余部分均不用修改。

至此,数据集准备完毕。

3. 导入数据集

此过程均在detectron2/detectron2/data/datasets目录下完成

接下来以gid数据集为例
(1)在builtin_meta.py文件中,添加如下内容,位置不限:

GID_SEM_SEG_CATEGORIES = ["building", "field", "forest", "grassland", "water"]


代码内容为:数据集名和数据集对象类别
(2) 在builtin.py文件中,先导入在builtin_meta.py文件中定义的GID_SEM_SEG_CATEGORIES:

from .builtin_meta import GID_SEM_SEG_CATEGORIES

然后开始注册

def register_all_gid(root):
    root = os.path.join(root, "gid")
    for name, dirname in [("train", "training"), ("val", "validation")]:
        image_dir = os.path.join(root, "images", dirname)
        gt_dir = os.path.join(root, "annotations_detectron2", dirname)
        name = f"gid_sem_seg_{name}"
        DatasetCatalog.register(
            name, lambda x=image_dir, y=gt_dir: load_sem_seg(y, x, gt_ext="png", image_ext="jpg")
        )
        MetadataCatalog.get(name).set(
            stuff_classes=GID_SEM_SEG_CATEGORIES[:],
            image_root=image_dir,
            sem_seg_root=gt_dir,
            evaluator_type="sem_seg",
            ignore_label=255,
        )’

根据此函数修改即可(此函数是我根据本文件内的register_all_ade20k()函数修改的),两个函数对比,修改几个参数即可,不再赘述。
最后,将该注册函数加入到该文件的主函数中
在这里插入图片描述

    至此,数据集注册已经完成。

4. 配置数据集

配置数据集相当简单,只需找到配置文件中的

DATASETS:
  TRAIN: ("ade20k_sem_seg_train",)
  TEST: ("ade20k_sem_seg_val",)

字段,若参考官方的命名方式,应该只需将ade20K改为gid即可
在这里插入图片描述

5. 特别说明

看了半天官方文档,导入数据集好像很复杂,又很简单,也没有具体的例子,我这种菜鸟看不懂,所有自己根据官方文件试出来了这种方法,希望对大家有所帮助,有不足之处希望大家批评指正。
要完整详细导入,建议大家还是好好参考官方文档:https://detectron2.readthedocs.io/en/latest/modules/data.html#detectron2.data.DatasetCatalog

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值