【PYTHON】COCO数据集中的物品ID
最常用的是 COCO 2017 数据集。其目标检测/实例分割任务包含 80个物品类别。
下面是这80个类别的完整ID、名称及对应中文翻译的详细列表。
COCO 2017/2014 数据集 80个类别ID对照表
(注意:在2017版本中,ID是从1 开始连续到90,但中间有缺失,实际只有80个类别。2014版本中有一个"背景"类ID为0,但2017年官方提供的标注文件中已不含ID 0。)
| ID | 英文名称 | 中文名称 |
|---|---|---|
| 1 | person | 人 |
| 2 | bicycle | 自行车 |
| 3 | car | 汽车 |
| 4 | motorcycle | 摩托车 |
| 5 | airplane | 飞机 |
| 6 | bus | 公交车 |
| 7 | train | 火车 |
| 8 | truck | 卡车 |
| 9 | boat | 船 |
| 10 | traffic light | 交通信号灯 |
| 11 | fire hydrant | 消防栓 |
| 12 | stop sign | 停车标志 |
| 13 | parking meter | 停车计时器 |
| 14 | bench | 长椅 |
| 15 | bird | 鸟 |
| 16 | cat | 猫 |
| 17 | dog | 狗 |
| 18 | horse | 马 |
| 19 | sheep | 羊 |
| 20 | cow | 牛 |
| 21 | elephant | 大象 |
| 22 | bear | 熊 |
| 23 | zebra | 斑马 |
| 24 | giraffe | 长颈鹿 |
| 25 | backpack | 背包 |
| 26 | umbrella | 雨伞 |
| 27 | handbag | 手提包 |
| 28 | tie | 领带 |
| 29 | suitcase | 行李箱 |
| 30 | frisbee | 飞盘 |
| 31 | skis | 滑雪板 |
| 32 | snowboard | 单板滑雪板 |
| 33 | sports ball | 运动球 |
| 34 | kite | 风筝 |
| 35 | baseball bat | 棒球棒 |
| 36 | baseball glove | 棒球手套 |
| 37 | skateboard | 滑板 |
| 38 | surfboard | 冲浪板 |
| 39 | tennis racket | 网球拍 |
| 40 | bottle | 瓶子 |
| 41 | wine glass | 红酒杯 |
| 42 | cup | 杯子 |
| 43 | fork | 叉子 |
| 44 | knife | 刀 |
| 45 | spoon | 勺子 |
| 46 | bowl | 碗 |
| 47 | banana | 香蕉 |
| 48 | apple | 苹果 |
| 49 | sandwich | 三明治 |
| 50 | orange | 橙子 |
| 51 | broccoli | 西兰花 |
| 52 | carrot | 胡萝卜 |
| 53 | hot dog | 热狗 |
| 54 | pizza | 披萨 |
| 55 | donut | 甜甜圈 |
| 56 | cake | 蛋糕 |
| 57 | chair | 椅子 |
| 58 | couch | 沙发 |
| 59 | potted plant | 盆栽植物 |
| 60 | bed | 床 |
| 61 | dining table | 餐桌 |
| 62 | toilet | 马桶 |
| 63 | tv | 电视 |
| 64 | laptop | 笔记本电脑 |
| 65 | mouse | 鼠标 |
| 66 | remote | 遥控器 |
| 67 | keyboard | 键盘 |
| 68 | cell phone | 手机 |
| 69 | microwave | 微波炉 |
| 70 | oven | 烤箱 |
| 71 | toaster | 烤面包机 |
| 72 | sink | 水槽 |
| 73 | refrigerator | 冰箱 |
| 74 | book | 书 |
| 75 | clock | 钟 |
| 76 | vase | 花瓶 |
| 77 | scissors | 剪刀 |
| 78 | teddy bear | 泰迪熊 |
| 79 | hair drier | 吹风机 |
| 80 | toothbrush | 牙刷 |
重要说明
-
版本一致性:
- COCO 2014 和 COCO 2017 的这80个类别ID和名称完全一致。
- COCO 2015/2020 等后续版本在目标检测/实例分割任务上也沿用这个类别体系。
- 在代码中(如使用PyTorch的
torchvision.datasets.CocoDetection),类别ID就是如上所示的1到90之间的不连续数字。
-
索引转换 :
在训练模型时,经常需要将不连续的COCO ID(1,2,3...90)映射为连续的训练索引(0,1,2...79)。这是模型实现中常见的步骤。
-
其他任务:
- 全景分割 :COCO还有一个Panoptic 数据集,包含了133个类别(80个"thing"类别 + 53个"stuff"类别,如天空、草地、墙壁等)。
- 图像描述:用于此任务的数据使用相同的图片,但标注是句子,不涉及物品ID。
如何以编程方式获取
如果你使用COCO官方提供的Python API (pycocotools),可以轻松获取这个列表:
python
from pycocotools.coco import COCO
# 加载标注文件
annFile = 'instances_train2017.json'
coco = COCO(annFile)
# 获取所有类别信息
cats = coco.loadCats(coco.getCatIds())
# 按ID排序
cats.sort(key=lambda x: x['id'])
# 打印
for cat in cats:
print(f"ID: {cat['id']:>2}, Name: {cat['name']:<20} (Super: {cat['supercategory']})")
总结 :最常用的COCO物体检测数据集包含80个物品类别 ,其ID范围是1到90(不连续)。上表提供了完整的对应关系,在进行数据加载、结果可视化或模型评估时至关重要。