EmbodiedScan评估指标与匈牙利匹配AP、AR、mIoU及损失函数体系全解析【免费下载链接】EmbodiedScan[CVPR 2024 NeurIPS 2024] EmbodiedScan: A Holistic Multi-Modal 3D Perception Suite Towards Embodied AI项目地址: https://gitcode.com/gh_mirrors/em/EmbodiedScanEmbodiedScan评估指标是如何设计出来的训练一个多模态3D感知模型你不仅要看懂AP、AR、mIoU这些数字还要理解背后的匈牙利匹配与损失函数体系。作为 CVPR 2024 与 NeurIPS 2024 收录的开源项目EmbodiedScan 提供了一套完整的多模态 3D 感知套件覆盖 3D 检测、视觉接地与占用预测三大任务每一类任务都有独立且严谨的评估方案。本文将带你逐层拆解这套评估体系让你从源码层面彻底读懂这些指标的含义与计算方式。一图看懂EmbodiedScan 的三大评估器EmbodiedScan 的评估逻辑遵循 OpenMMLab 生态的BaseMetric设计评估流程高度统一先由process()逐批收集预测与真值再由compute_metrics()汇总计算指标。整套体系由三个评估器构成分别对应三大感知任务评估器所在模块输出指标适用任务IndoorDetMetricdet_metric.pymAP、mAR3D 目标检测GroundingMetricgrounding_metric.py分组准确率3D 视觉接地OccupancyMetricoccupancy_metric.py每类 IoU 与 mIoU语义占用预测下面逐一说明这三套评估指标的细节。3D 目标检测指标AP 与 AR 的计算全流程对于 3D 检测任务EmbodiedScan 默认在IoU 阈值 0.25 和 0.5两档下计算指标。核心逻辑封装在 indoor_eval.py 中整体流程可分为四步按类别拆分将预测框与真值框按类别分别组织每个类别独立计算。计算 IoU预测框与真值框之间计算 3D 交并比预测框会先做防异常处理——过于细长的薄框会被 clamp 到最小尺寸避免数值异常。排序判定按置信度降序排列所有预测逐条判定 TP命中真值与 FP误检。绘制 PR 曲线通过累加 TP/FP 得到 Precision 与 Recall 曲线再用average_precision()计算曲线下面积得到 AP。mAP 与 mAR 的含义差异mAP平均精度均值对所有类别的 AP 取平均衡量定位分类的综合精度是检测任务的核心指标。mAR平均召回率均值取每类召回曲线末端的最大值再平均衡量模型找到目标的能力对漏检更敏感。值得一提的是EmbodiedScan 还支持按classes_split将 284 个类别划分为head / common / tail三组分别统计 mAP 与 mAR便于分析模型在常见类与罕见类上的表现差异。这一设计对长尾分布下的 3D 感知研究非常有价值。视觉接地评估指标按难度分组的准确率语言接地任务Visual Grounding评估的是给定一句自然语言指令模型能否定位到正确目标。EmbodiedScan 的评估逻辑与检测不同它不计算 AP而是对每条查询计算是否命中——取得分最高的前 10 个预测框若其中任意一个与真值框的 IoU 超过阈值则视为命中。更精妙的是grounding_metric.py 会利用标注信息将结果按多个维度分组统计Easy / Hard按查询难度分组View-Dep / View-Indep按目标是否依赖观察视角分组Unique / Multi按目标是否唯一是否存在同类别干扰物分组Overall整体准确率这种分组方式让研究者能快速定位模型在哪种困难场景下失效是诊断模型能力短板的有力工具。占用预测评估指标mIoU 的逐体素计算占用预测任务要求模型预测每个体素属于哪个语义类别含空共 80 类。评估时occupancy_metric.py 采用逐类统计TP / 预测总数 / 真值总数的方式真值占用被展开为稠密体素标签不可见区域标记为 255 并排除在评估外。对每一类分别统计交集与并集计算IoU TP / (预测数 真值数 − TP)。所有类别的 IoU 取平均得到mIoU其中空类别的 IoU 被称为几何 IoU反映场景结构重建的精度。对于 80 类的语义占用逐类 IoU 表格能清晰展示模型对家具、墙体等不同类别结构的感知质量。匈牙利匹配查询与真值的一对一分配现代 DETR 风格检测器不再使用锚框与 NMS而是让一组**可学习查询queries直接预测目标。但训练时需要明确哪个查询对应哪个真值这就是匈牙利匹配Hungarian Matching**的用武之地。EmbodiedScan 的实现位于 hungarian_assigner.py其核心是HungarianAssigner3D类匹配过程分四步默认将所有预测分配为 -1待定。计算预测与真值之间的加权代价矩阵。在 CPU 上用scipy.optimize.linear_sum_assignment求解最优一对一匹配实现全局最小代价。匹配上的预测标记为前景分配真值索引其余标记为背景0。由于预测数量通常远多于真值未匹配的查询会被当作背景参与分类损失这种设计保证了端到端训练的高效性。三种匹配代价如何组合匹配代价由 match_cost.py 中的三类代价加权求和得到FocalLossCost分类代价用 Focal Loss 形式衡量预测类别与真值类别的差异alpha0.25, gamma2。BBox3DL1Cost回归代价计算 9 维 3D 框参数中心、尺寸、旋转角之间的 L1 距离。IoU3DCost几何代价直接用 3D IoU 的负值作为代价重叠越大代价越小。三者的加权和构成最终代价矩阵权重在配置文件中可调。这种分类 回归 几何的组合让匹配同时兼顾语义与空间位置的一致性。损失函数体系四大模块协同优化匹配完成后训练损失由多个模块共同构成EmbodiedScan 的损失体系主要包含以下几类1. 旋转框 IoU 损失直接优化几何重叠rotated_iou_loss.py 中的RotatedIoU3DLoss采用1 − IoU的形式通过可微的diff_iou_rotated_3d算子直接优化预测框与真值框的空间重叠度比纯 L1 回归更能反映几何质量。2. 角点 Chamfer 距离损失约束框形状chamfer_distance.py 提供了ChamferDistance与BBoxCDLoss。后者先将 3D 框转换为 8 个角点再计算两组角点之间的 Chamfer 距离支持 g8 全体或 g4 分组两种模式对框的尺寸与朝向约束更强。3. 场景类亲和损失占用预测的利器occ_loss.py 实现了两个专为语义占用设计的损失geo_scal_loss只区分空/非空优化几何结构的 Precision、Recall 与 Specificity。sem_scal_loss逐类别计算场景类亲和度同时兼顾精确率、召回率与特异性。4. 分类与接地损失检测与接地任务还配合 Focal Loss 分类损失以及面向文本-框对齐的 Token 匹配代价TokenMapCost共同构成完整的梯度信号。总结从指标到损失的一体化设计回顾全文EmbodiedScan 的评估与训练体系呈现出高度自洽的设计评估端用 AP、AR、mIoU 和分组准确率从多维度衡量模型训练端用匈牙利匹配完成预测与真值的一对一分配再用 IoU 损失、Chamfer 距离损失与场景类亲和损失驱动优化。理解了这套体系你不仅会读指标更能读懂指标背后的每一个设计决策。如果你想亲手跑通评估流程可以参考 tools/test.py 与 tools/eval_script.py配合 det_metric.py 中默认的 IoU 阈值配置即可在自己的数据集上复现这套评估流程。希望这篇 EmbodiedScan评估指标解析能帮助你在 3D 感知研究的道路上少走弯路【免费下载链接】EmbodiedScan[CVPR 2024 NeurIPS 2024] EmbodiedScan: A Holistic Multi-Modal 3D Perception Suite Towards Embodied AI项目地址: https://gitcode.com/gh_mirrors/em/EmbodiedScan创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考