detectron2训练自己的数据集

先讲怎么做,再讲源码层面的东西

  1. 数据集
    方便起见,请自行转化为coco样式,我是在这个基础上修改的,如果不想转数据集,那参照后面的例子自己写data_loader

    coco数据集样式:[假设都在detectron2的工程目录下]

    • datasets
      • coco
        • annotations
          • instances_train2017.json
          • instances_val2017.json
        • train2017
          • image001.jpg
          • image002.jpg
          • image004.jpg
        • val2017
          • image003.jpg
          • image005.jpg
  2. 以训练行人为例【只有person这一个类别】
    修改./detectron2/data/datasets/builtin_meta.py中的_get_coco_instances_meta()函数。
    在最后的return ret之前,直接注释这个函数的前面代码,把ret改成自己需要的部分,下面是我的代码:

    def _get_coco_instances_meta():
    #thing_ids = [k["id"] for k in COCO_CATEGORIES if k["isthing"] == 1]
    #thing_colors = [k["color"] for k in COCO_CATEGORIES if k["isthing"] == 1]
    #assert len(thing_ids) == 80, len(thing_ids)
    ## Mapping from the incontiguous COCO category id to an id in [0, 79]
    #thing_dataset_id_to_contiguous_id = {k: i for i, k in enumerate(thing_ids)}
    #thing_classes = [k["name"] for k in COCO_CATEGORIES if k["isthing"] == 1]
    #ret = {
    #    "thing_dataset_id_to_contiguous_id": thing_dataset_id_to_contiguous_id,
    #    "thing_classes": thing_classes,
    #    "thing_colors": thing_colors,
    #}
    
    ret = {
        "thing_dataset_id_to_contiguous_id": {1:0},
        "thing_classes": ["person"],
        "thing_colors": [[220,20,60]],
    }
    #print("my ret: ",ret)
    return ret
    

    注意点:

    • 我是做行人检测,所以修改的是_get_coco_instances_meta()函数,做分割和关键点的小伙伴绕行,可以看懂下面原理后自己修改;
    • ret的那二个字段就是我的行人标签,第一和第三个字段可以去builtin_meta.py最开始的
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sophia_xw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值