读懂评估指标:action-detection 中 mAP、IoU 与时序 NMS 全解析

发布时间:2026/10/12 6:46:35

读懂评估指标:action-detection 中 mAP、IoU 与时序 NMS 全解析 读懂评估指标action-detection 中 mAP、IoU 与时序 NMS 全解析【免费下载链接】action-detectiontemporal action detection with SSN项目地址: https://gitcode.com/gh_mirrors/ac/action-detection对于时序动作检测temporal action detection项目 action-detection 而言训练出模型只是第一步真正衡量模型好坏、让结果可复现可比较的是一套严谨的评估指标。本文面向新手用通俗的语言带你彻底搞懂这个项目中三个最核心的概念mAP平均精度均值、IoU交并比与时序 NMS非极大值抑制并说明它们如何配合工作、如何读懂实验结果。一、为什么评估指标如此重要时序动作检测的任务是让模型在一段未裁剪的视频中找出什么动作在什么时间区间发生。模型输出的是一个带置信度分数的片段集合比如0.5s~3.2s打棒球置信度 0.87。光看输出还不够我们需要一把尺子来回答三个问题检测得准不准—— 时间区间和真实标注Ground Truth对得上吗排序得好不好—— 置信度高的结果真的更可靠吗重复检测了吗—— 同一个动作是否被输出了很多个重叠片段在 action-detection 中这三个问题分别由IoU、mAP和时序 NMS来回答。二、IoU衡量时间区间重合度的标尺 什么是 IoUIoUIntersection over Union交并比本来来自图像目标检测衡量两个框的重叠程度在时序动作检测中被推广到一维把每个动作片段看作数轴上的一个区间[start, end]IoU 就是两个区间的交集长度 ÷ 并集长度。在项目源码 ops/detection_metrics.py 中temporal_iou(span_A, span_B)函数就实现了这个计算逻辑非常直观IoU 交集长度 / 并集长度两个区间完全重合IoU 1.0两个区间互不相交IoU 0部分重叠IoU 在 0~1 之间IoU 阈值的作用评估时我们会设置一个IoU 阈值如 0.5当预测片段与某个真实动作片段的 IoU大于等于该阈值就认为这个检测是命中Positive否则视为误检False Positive。不同数据集采用不同的评估标准THUMOS14在 0.1~0.9 的多个 IoU 阈值上分别计算 AP见 eval_detection_results.pyActivityNet v1.2在 0.5~0.95 之间以 0.05 为步长取多个阈值阈值越高要求越苛刻mAP 自然越低这也是为什么你会看到论文中总是标注mAP0.5这样的字样。三、mAP综合评价检测精度的核心指标 从 Precision / Recall 说起在某个 IoU 阈值下我们可以统计出精确率 Precision预测为正的样本中真正命中的比例召回率 Recall所有真实动作中被正确找出的比例模型输出的每个片段都有置信度分数。把片段按分数从高到低排序每多取一个片段就得到一个 (Precision, Recall) 点连起来就得到PR 曲线曲线下的面积就是APAverage Precision一个类别的检测质量就浓缩成这一个数字。mAP 所有类别 AP 的平均值mAPmean Average Precision就是把数据集中每个动作类别如扣篮、标枪的 AP 加起来取平均mAP (AP_类别1 AP_类别2 ... AP_类别N) / N在 action-detection 中评估脚本 eval_detection_results.py 会加载模型输出的检测结果pickle 文件对每个类别、每个 IoU 阈值调用compute_average_precision_detection计算 AP输出一张漂亮的IoU 阈值 vs mean AP表格最终你会在终端看到类似这样的输出| IoU thresh | 0.10 | 0.20 | ... | 0.90 | Average | |------------|------|------|-----|------|---------| | mean AP | 0.51 | 0.42 | ... | 0.09 | 0.32 |读懂官方性能表格项目的 README.md 给出了参考模型的性能例如在 THUMOS14 上模型RGBFlowmAP0.5 IoUBNInception27.36%BNInceptionKinetics 预训练32.50%InceptionV3Kinetics 预训练33.15%可以看出双流融合RGBFlow明显优于单流Kinetics 预训练能显著提升检测性能——这就是读 mAP 表格最直接的收获。四、时序 NMS消灭重复检测的去重神器 为什么要 NMS模型可能对同一个动作输出十几个高度重叠的片段比如打棒球从 10s 到 20s模型同时输出了 [10.1, 19.8]、[10.5, 20.0]、[12.0, 18.0]……如果不处理评估时会出现大量冗余的误检拉低 mAP。NMSNon-Maximum Suppression非极大值抑制的目标就是在重叠度较高的片段中只保留分数最高的那个。时序 NMS 的工作流程在 ops/utils.py 的temporal_nms(bboxes, thresh)中流程是这样的按分数从高到低排序所有片段取出当前最高分片段直接保留计算它与其余片段的 IoU删除 IoU 超过阈值的片段因为它们与最高分片段太像了对剩余片段重复上述过程直到没有片段剩下这样密集重叠的检测结果就变成了一条条高置信度、互不重叠的干净输出。阈值怎么调看数据集配置不同数据集对 NMS 阈值的要求不同配置文件 data/dataset_cfg.yaml 中写得很清楚THUMOS14nms_threshold: 0.2即重叠超过 20% 就抑制非常严格ActivityNet v1.2nms_threshold: 0.6相对宽松因为该数据集动作长、标签稀疏评估时你也可以通过--nms_threshold参数覆盖默认值亲自感受阈值变化对 mAP 的影响这是理解 NMS 的最佳实验。五、三者的关系一条完整的评估流水线 在 action-detection 中从模型输出到最终 mAP要经历完整的后处理与评估流水线模型输出(proposal 分数) ↓ 1. 分数融合RGB Flow 加权平均 ↓ 2. 时序 NMS 去重ops/utils.py ↓ 3. 位置回归修正起止时间 ↓ 4. 按 IoU 阈值判定命中ops/detection_metrics.py ↓ 5. 逐类计算 AP → 平均得 mAPeval_detection_results.py一次完整的评估只需两步命令详见 README.mdpython ssn_test.py DATASET MODALITY CHECKPOINT RESULT_PICKLE—— 提取检测分数python eval_detection_results.py DATASET RESULT_PICKLE—— 计算并打印 mAP 表格六、新手常见疑问速查 ❓疑问解答mAP 越高越好吗是的mAP 越高说明检测越准但要结合 IoU 阈值看阈值越苛刻 mAP 越低IoU 阈值如何选择跟随数据集惯例THUMOS14 常用 0.5ActivityNet 报告多个阈值的平均NMS 阈值调大/调小有什么影响调大则保留更多重叠片段可能冗余调小则删除更多可能漏检需在配置中权衡RGB 和 Flow 结果怎么合并评估脚本支持多份分数按权重平均融合双流融合通常显著提升 mAP总结评估指标是模型进步的仪表盘 理解mAP、IoU 与时序 NMS就等于掌握了读懂 action-detection 实验结果的全部钥匙IoU定义什么算检测对了mAP用单个数字总结整体检测质量时序 NMS在评估前清理冗余输出保证指标公平可靠当你训练完自己的 SSN 模型运行一次eval_detection_results.py看到终端里那张 IoU 阈值与 mean AP 对照的表格时你就能自信地说出这张表我完全读得懂。建议动手实践把 THUMOS14 的 NMS 阈值从 0.2 调到 0.5 再评估一次观察 mAP 的变化你会对这套评估体系的理解更加深刻。祝你在时序动作检测的路上越走越顺【免费下载链接】action-detectiontemporal action detection with SSN项目地址: https://gitcode.com/gh_mirrors/ac/action-detection创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/10 1:55:10

从零部署本地AI智能体:基于WorkBuddy与Ollama的实战指南

在实际项目中,将大语言模型(LLM)的能力从简单的对话问答扩展到能够执行复杂、多步骤任务,是提升AI应用价值的关键。WorkBuddy作为一个开源的本地AI智能体框架,正是为了解决这个问题而生。它允许开发者基于本地部署的模…

2026/10/8 23:25:08

电路黑箱网络分析:从戴维南等效到考研解题实战

这类考研强化课最值得先看的不是它讲了多少知识点,而是它能不能帮你把“黑箱网络”这种抽象概念,转化成考场上能直接套用的解题思路。很多同学复习电路定理时,公式背得熟,但一遇到只给端口特性、内部结构未知的“黑箱”题就发懵&a…

2026/10/6 21:26:50

PROFINET与以太网:从协议差异到工业通信故障排查实战

最近在调试一个工业设备时,遇到了一个让我思考良久的问题:一个基于PROFINET的从站设备,明明物理链路是通的,但控制器就是死活“看”不到它。排查了半天,最后发现是设备制造商在GSDML文件中,将一个关键模块的…

2026/10/12 6:45:08

集成与验证实战指南:策略、测试与面试高频考点解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 6:45:08

AI芯片软硬件协同设计:架构探索、编译器与性能优化实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 6:45:08

SQL练习题刷题指南:从单表查询到窗口函数的避坑与进阶

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 6:45:08

SpringBoot高校党建系统实战:状态机、权限控制与Docker部署

这项目我前后做了将近两个月,真正交付那天,反而没有太多兴奋感,就是觉得这类系统做完,人对“业务流程”这四个字的理解会完全不一样。高校大学生党建系统,听起来是一个行政味很重的项目,但它本质上是一套非…

2026/10/12 6:45:08

AI芯片软硬件协同设计:从算子特征到硬件架构的映射与优化

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 0:02:13

Python调用Gemini Structured Outputs实现工单路由门禁

客服工单最怕的不是模型“答错一句话”,而是它给出一段看起来合理的说明,程序却从中猜错优先级。通俗做法是:要求模型只交 JSON(JavaScript Object Notation,轻量数据格式),再让代码验证它。Gem…

2026/10/11 0:02:13

Spring Boot超市进销存系统毕设实战:从需求拆解到答辩通关

最近带的一个学生项目组里,有A同学跑来问我:选什么毕设题目最稳妥,既能让评审老师觉得工作量够,又不会在答辩时被问到语无伦次。我第一反应就是推荐基于Spring Boot的超市仓库管理系统——也就是超市进销存系统。这个题目乍一看平…

2026/10/11 0:02:13

Flutter StatefulWidget 生命周期核心解析

很多刚开始接触 Flutter 的朋友,在看完一堆“Hello World”和基础组件之后,大概率都会撞上同一堵墙:StatefulWidget 里那堆 initState、build、dispose 方法,到底什么时候被调用?为什么顺序是那样?在里面到…

2026/10/12 0:04:22

绝缘子缺陷检测数据集清洗与工业级训练实战指南

简介:本资源是面向电力AI研发人员、工业视觉工程师及智能巡检系统开发者的绝缘子缺陷检测专用YOLO格式数据集,解决无人机航拍场景下绝缘子破损、污闪、积雪等9类典型缺陷的精准识别与定位难题。数据集共2139张真实巡检图像(含训练/验证/测试集…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑