基于预训练Faster RCNN自定义数据集,如何按类别统计输出图像标签数量
按类别统计Faster RCNN检测结果的标签数量
要实现这个需求,你可以在项目的推理脚本里添加简单的统计逻辑,具体操作如下:
1. 初始化类别计数字典
先定义一个字典,用来存储每个类别的检测次数。如果项目的configs文件里已经有你的自定义类别列表CLASSES,直接调用即可:
from configs import CLASSES class_count = {cls: 0 for cls in CLASSES}
如果没有预定义的类别列表,就手动写出你的数据集类别:
CLASSES = ["类别1", "类别2", "类别3"] # 替换成你数据集的实际类别
2. 在推理循环里更新计数
找到脚本中处理单张图像检测结果的代码段,解析模型输出的类别标签,同步更新字典里的计数:
# 假设模型输出为outputs,每个output包含labels字段存储类别索引 for output in outputs: # 将标签转到CPU并转为numpy数组方便处理 labels = output['labels'].cpu().numpy() for label_idx in labels: # 注意:部分Faster RCNN实现中背景是索引0,类别从1开始,此时需改为label_idx - 1 class_name = CLASSES[label_idx] class_count[class_name] += 1
3. 输出统计结果
等所有图像推理完成后,打印统计结果即可:
print("各类别检测标签数量统计:") for cls, count in class_count.items(): print(f"{cls}: {count}")
适配项目细节
如果项目使用的是predict.py或其他推理脚本,逻辑完全通用——找到处理检测结果的代码块,插入上述统计逻辑即可。另外要注意标签索引和类别列表的对应关系,避免索引错位。

内容的提问来源于stack exchange,提问作者HzHzzz
相关产品推荐
相关产品推荐

