FEATURED · 精选文章

如何评测通用目标检测性能?UniDetector在LVIS v0.5开放世界基准上的指标详解

发布时间 / 2026/8/22 14:41:37
来源 / 创域科博编辑部
栏目 / 资讯中心
如何评测通用目标检测性能?UniDetector在LVIS v0.5开放世界基准上的指标详解 如何评测通用目标检测性能UniDetector在LVIS v0.5开放世界基准上的指标详解【免费下载链接】UniDetectorCode release for our CVPR 2023 paper Detecting Everything in the Open World: Towards Universal Object Detection.项目地址: https://gitcode.com/gh_mirrors/un/UniDetectorUniDetector是 CVPR 2023 论文《Detecting Everything in the Open World: Towards Universal Object Detection》的官方开源实现。本文以LVIS v0.5 开放世界基准为例手把手讲清楚如何评测通用目标检测性能并逐一详解 AP 等核心指标的读法帮你快速看懂任何开放世界检测的评测报告。为什么选 LVIS v0.5 做开放世界评测基准传统 COCO 只有 80 个固定类别而通用目标检测要检测的是开放世界中任意类别。LVIS v0.5 正是为此设计的评测基准特性COCOLVIS v0.5类别数801200 细粒度类别类别来源人工固定从真实场景自动标注长尾分布轻微显著rare/common/frequent 三类频率适用场景闭集检测开放世界 / 零样本检测关键点LVIS 中大量类别训练时几乎见不到只有模型真正学到了视觉—语言通用表征才能在这些类别上拿到分数——这就是它能作为开放世界基准的原因。在 UniDetector 的评测配置中类别总数被设置为 1230完整类别表定义在 mmdet/datasets/lvis.py。三步完成评测数据、语言嵌入、一键推理第 1 步准备 LVIS v0.5 数据集按照 docs/datasets.md 中的目录规范将数据集放到data/lvis_v0.5/下lvis_v0.5/ ├── train2017/ ├── val2017/ └── annotations/ ├── lvis_v0.5_train.json └── lvis_v0.5_val.json评测使用的是val2017图像 lvis_v0.5_val.json标注这在配置文件的dataset_type LVISV05Dataset中指定。第 2 步准备 CLIP 语言嵌入开放世界检测的类别空间来自语言。项目已提供预计算好的 LVIS v0.5 多提示词many-prompt嵌入嵌入文件clip_embeddings/lvis_v0.5_clip_acname_rn50_manyprompt.npy生成脚本scripts/dump_clip_features_manyprompt.py内置 80 个英文提示模板取平均后得到每个类别的 CLIP 文本向量配置中的zeroshot_path和num_classes1230必须与该嵌入一一对应否则维度不匹配会直接报错。第 3 步一键运行推理评测端到端模型一条命令出分bash tools/dist_test.sh configs/inference/clip_end2end_faster_rcnn_r50_c4_1x_lvis_v0.5.py [checkpoint路径] 8 --eval bbox解耦训练模型分两阶段先提候选框再分类# 1) 第一阶段抽取区域候选框proposal bash tools/dist_test.sh configs/inference/clip_decouple_faster_rcnn_r50_c4_1x_lvis_v0.5_1ststage.py [checkpoint路径] 8 --out rp_val_ow.pkl # 2) 第二阶段加载候选框 RoI 分类头输出指标 bash tools/dist_test.sh configs/inference/clip_decouple_faster_rcnn_r50_c4_1x_lvis_v0.5_2ndstage.py [checkpoint路径] 8 --eval bbox评测入口是tools/test.py多卡版为tools/dist_test.sh--eval bbox会调用 LVISV05Dataset 继承自 COCO 数据集的评估器输出标准 AP 指标。AP 指标详解逐个看懂评测结果运行结束后你会看到一组 COCO 风格的指标含义如下指标全称怎么读APAverage Precision (IoU 0.50:0.95)综合分。在 10 个 IoU 阈值0.5→0.95上分别求 AP 再取平均最核心指标AP50 / AP75AP IoU0.50 / 0.75定位宽松 vs 严格场景下的表现AP50 高但 AP 低说明找得到但对不齐AP_S / AP_M / AP_L小/中/大目标 AP按目标面积划分AP_S 反映对小物体的开放世界召回能力AR100Average Recall每张图最多 100 个候选框时的召回率常与 AP 对照看AP 的本质对每个类别画精确率—召回率曲线并求面积再对所有类别取平均。在 LVIS 这种 1200 类别基准上AP 能同时反映模型在**头部类别车、人和长尾类别手风琴、冰鞋**上的能力比单看某几个类别的准确率公平得多。影响指标分数的 4 个关键测试设置这些参数写在configs/inference/各评测配置的test_cfg中换参数分数不可比score_thr0.0001极低的分数阈值保证长尾类别的低置信度结果不被过早丢弃soft_nms高斯核IoU 0.5软 NMS 比硬删除更温和对密集重叠框的 AP 更友好max_per_img300每张图最多保留 300 个检测框是 COCO/LVIS 评测的标准上限解耦二阶段只取 Top-100 候选框LoadProposals num_max_proposals100第一阶段第一阶段的召回能力会直接封顶最终 AP。进阶概率校准能提升多少分开放世界场景下模型对常见类天然更自信分数分布是失真的。UniDetector 提供了LVIS v0.5 概率校准推理配置configs/inference/clip_decouple_faster_rcnn_r50_c4_1x_lvis_v0.5_2ndstage_withcalibration.py其核心逻辑在 mmdet/models/roi_heads/bbox_heads/bbox_head_clip.py 的BBoxHeadCLIPInference中包含两步修正频率校准gamma0.6按该类别在结果中出现的频率做1/n^γ加权压制高频类别的虚高置信度给 rare 类别让出空间双分数融合beta0.3把分类头分数与第一阶段候选框分数按s^β · p^(1-β)融合兼顾框质量与类别证据。⚠️ 使用注意校准配置依赖未校准推理先跑出的raw_lvis_results.pkl统计各类别出现频率必须先执行不带校准的第二阶段推理。评测失败先检查这 5 个常见坑目录结构不对data/lvis_v0.5/下的train2017/、val2017/、annotations/缺一个都会加载失败见 docs/datasets.md嵌入与类别数不匹配num_classes1230必须和lvis_v0.5_clip_acname_rn50_manyprompt.npy的类别数一致漏了第一阶段的 proposal 文件解耦二阶段评测要求存在rp_val_ow.pkl否则直接报文件找不到checkpoint 格式解耦二阶段模型需要 RegionCLIP 预训练参数转换后的 mmdet 格式权重多卡数写错dist_test.sh最后一个参数是 GPU 数与显存不符会 OOM。总结评测入口tools/dist_test.shconfigs/inference/下的 LVIS v0.5 配置--eval bbox出分核心指标APIoU 0.50:0.95 平均辅以 AP50/AP75 看定位精度、AP_S/M/L 看尺度鲁棒性加分项双分数融合 频率校准是长尾开放世界场景下撬动 AP 的有效手段。按上面的步骤跑通一次完整评测你就能独立解读 UniDetector 乃至任意开放世界目标检测模型的 LVIS v0.5 性能报告了 【免费下载链接】UniDetectorCode release for our CVPR 2023 paper Detecting Everything in the Open World: Towards Universal Object Detection.项目地址: https://gitcode.com/gh_mirrors/un/UniDetector创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻