You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mmdetection加载自定义COCO数据集出现-1背景标注错误如何解决

MMDetection数据集统计异常问题根因

1. 配置文件类别映射不匹配

  • 数据集配置里的classes字段和自定义标注JSON中categories字段的顺序、ID、名称没有完全对齐。MMDetection加载COCO格式数据集时,会优先采用配置指定的classes列表做映射,JSON标注里的category_id如果匹配不到配置类别的对应索引,就会被标记为-1(背景类),同时匹配失败的原有类别标注数会被统计为0。
  • 例如某3类数据集JSON的categories按ID排序为[类别1, 类别2, 类别3],但配置里的classes写为[类别1, 类别3, 类别2],就会出现ID对应错位,导致类别2、3的统计数异常。

2. 自定义标注残留冗余ID

  • 生成标注JSON时没有完全过滤掉不属于当前数据集类别的COCO原有标注,或者生成的category_id存在跳号、超出当前数据集类别ID范围的情况。MMDetection的CocoDataset默认会把不在配置classes范围内的category_id对应的标注全部标记为-1背景类,统计时就会出现大量JSON中不存在的背景类数据。
  • 例如制作3类数据集时,标注里残留了COCO原有ID大于3的标注,这些标注都会被识别为背景。

3. 背景类追加逻辑未显式关闭

  • 部分MMDetection版本的CocoDataset初始化时,如果没有显式将with_background参数设为False,会自动在类别列表末尾追加背景类,对应ID就是-1,统计时就会出现JSON里不存在的-1类。

快速定位方法

调用build_dataset后添加以下代码,对比输出和JSON的categories字段即可快速定位映射问题:

# 打印数据集实际生效的类别列表
print(dataset.CLASSES)
# 打印数据集的类别ID到标签索引的映射关系
print(dataset.cat2label)

内容的提问来源于stack exchange,提问作者Victor Lundgren

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 17:45:05