【BUG】‘DetDataSample‘ object has no attribute ‘_gt_sem_seg‘

发布于:2025-05-07 ⋅ 阅读:(14) ⋅ 点赞:(0)

问题: 使用mmdetection框架使用COCO格式训练自定义数据集时,其中模型使用HTC模型时出现如下问题:

AttributeError: ‘DetDataSample’ object has no attribute ‘_gt_sem_seg’. Did you mean: ‘gt_sem_seg’?
results = self(**data, mode=mode)

阅读Hybrid Task Cascade for Instance SegmentationMMDetection的指导文档中数据集准备中发现,需要我们在COCO格式数据集基础上,提供一个stuffthingmaps文件夹,包含原始图像对应的语义分割标签。

解决方法:

  1. 新建文件夹存储原始图像对应的语义分割标签;
  2. train_dataloaderval_dataloaderdata_prefix=dict(img='train_img/', seg='train_seg/')处补充seg=‘your_path’
    • train_img是图像地址
    • train_seg是图像对应语义分割标签地址

mmdet/configs/_base_/datasets/coco_instance.py文件中修改train_dataloaderval_dataloader部分,具体如下:

train_dataloader = dict(
    batch_size=8,
    num_workers=2,
    persistent_workers=True,
    sampler=dict(type='DefaultSampler', shuffle=True),
    batch_sampler=dict(type='AspectRatioBatchSampler'),
    dataset=dict(
        type=dataset_type,
        data_root=data_root,
        ann_file='annotations/annotation_train.json',
        data_prefix=dict(img='train_img/', seg='train_seg/'),
        filter_cfg=dict(filter_empty_gt=True, min_size=32),
        pipeline=train_pipeline,
        backend_args=backend_args))
        
val_dataloader = dict(
    batch_size=1,
    num_workers=2,
    persistent_workers=True,
    drop_last=False,
    sampler=dict(type='DefaultSampler', shuffle=False),
    dataset=dict(
        type=dataset_type,
        data_root=data_root,
        ann_file='annotations/annotation_valid.json',
        data_prefix=dict(img='val_img/', seg='val_seg/'),
        test_mode=True,
        pipeline=test_pipeline,
        backend_args=backend_args))

网站公告

今日签到

点亮在社区的每一天
去签到