先讲怎么做,再讲源码层面的东西
-
数据集
方便起见,请自行转化为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
- annotations
- coco
- datasets
-
以训练行人为例【只有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最开始的
- 我是做行人检测,所以修改的是

最低0.47元/天 解锁文章
5432

被折叠的 条评论
为什么被折叠?



