首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >detectron2训练键错误

detectron2训练键错误
EN

Stack Overflow用户
提问于 2020-08-25 15:33:31
回答 1查看 2.6K关注 0票数 2

我试图用detectron2来训练我自己的COCO数据集,但是当我开始自己的培训时,我遇到了一个关键的错误。

KeyError:'category_id

代码语言:javascript
复制
error code : https://i.stack.imgur.com/yO5IO.png

//this is the code i am training with 
from detectron2.engine import DefaultTrainer
from detectron2.config import get_cfg
import os

cfg = get_cfg()
cfg.merge_from_file(model_zoo.get_config_file("COCO- 
InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml"))
cfg.DATASETS.TRAIN = ("coco_train_new",)
cfg.DATASETS.TEST = ()
cfg.DATALOADER.NUM_WORKERS = 2
cfg.MODEL.WEIGHTS = "detectron2://COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x/137849600/model_final_f10217.pkl"  
cfg.SOLVER.IMS_PER_BATCH = 2
cfg.SOLVER.BASE_LR = 0.00025  # pick a good LR
cfg.SOLVER.MAX_ITER = 1000    # 300 iterations seems good enough for this toy dataset; you may need to train longer for a practical dataset
cfg.MODEL.ROI_HEADS.BATCH_SIZE_PER_IMAGE = 512   # faster, and good enough for this toy dataset (default: 512)
cfg.MODEL.ROI_HEADS.NUM_CLASSES = 1  # only has one class (ballon)

os.makedirs(cfg.OUTPUT_DIR, exist_ok=True)
trainer = DefaultTrainer(cfg) 
trainer.resume_or_load(resume=False)
trainer.train()

所以我回去检查我的COCO json文件,但是json文件是用标准COCO格式输出的,有什么可能导致问题的?

我正在用detectron2示例代码训练数据,所以我认为应该没有问题

EN

回答 1

Stack Overflow用户

发布于 2020-08-27 01:31:45

我猜测(没有查看您的json构造代码)您在注释中缺少了“category_id”。您可以按照下面的步骤为一节课学习。

代码语言:javascript
复制
 # Main dict
    dataset_dicts = {"images": [],
                     "type": "Balloon-detection",
                     "annotations": [],
                     "categories": []
                     }
    # Adding categories. At the moment only for balloon.
    category = {'supercategory': 'object', 'id': 1, 'name': 'balloon'}
    dataset_dicts['categories'].append(category)

    for <iterate for all images>:
    ....
    ....
        for <iterate for all objects>:
        ....
        ....
            # Save annotation
            annotation = {
                    'image_id': index,
                    "bbox": [xmin, ymin, o_width, o_height],
                    "area": o_width*o_height,
                    "bbox_mode": BoxMode.XYWH_ABS,

                    "category_id": 1,
                    "iscrowd": 0,
                    'id': annotation_id
                }
                dataset_dicts['annotations'].append(annotation)

希望你有这个想法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63582319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档