检测器 2 输出的类标签指的是什么?

问题描述

detectron2 的文档中,它指出类标签位于 output_dict['Instances'].pred_classes 中。这一切都很好,我可以轻松访问它,但在文档(或输出字典,据我所知)中没有任何地方指定哪个整数标签指的是哪个类。我假设某处有一本包含 {0: 'Person',1: 'Bicycle',2: 'Car',... } 之类的字典,但我似乎找不到它。有谁知道在哪里可以找到这个吗?

这里是输出字典的规范:https://detectron2.readthedocs.io/tutorials/models.html

解决方法

数据集元数据类有一个属性 thing_classes,其中包含该数据集的类名列表。只需从 pred_classes 传递类 id,就可以得到类名,如 here 所示。

pred_classes = output_dict['Instances'].pred_classes.cpu().tolist()
class_names = MetadataCatalog.get("mydataset").thing_classes
pred_class_names = list(map(lambda x: class_names[x],pred_classes))