尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

YOLOv7 mAP@0.5与mAP@0.5:0.95别再搞混:1个判断标准选对评估指标

YOLOv7 mAP@0.5与mAP@0.5:0.95别再搞混:1个判断标准选对评估指标 YOLOv7 mAP0.5与mAP0.5:0.95别再搞混1个判断标准选对评估指标【免费下载链接】yolov7Implementation of paper - YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors项目地址: https://gitcode.com/GitHub_Trending/yo/yolov7跑完 test.py 对 YOLOv7 模型做完评估终端最后一行会打印一串数字其中两个格外扎眼mAP0.5 和 mAP0.5:0.95。前者永远比后者高出一截周报里到底该填哪个说实话官方文档和论文里这两个数都是并列报出来的但没人告诉你什么时候该信哪个。这篇文章不打算从头推公式而是回答一个实际项目里必须做决策的问题这两个数字怎么读、怎么选、哪次该重点看哪个。跑完test.py后的两个数字该信哪个想象你拿到一个检测模型第一反应肯定是它找得准不准。但准字拆开其实是两件事找到了没有以及框画得贴不贴边。mAP0.5 和 mAP0.5:0.95 恰好分别对应这两件事。问题在于很多人只记住了一个数就去做决策了——用 mAP0.5 高的模型上线结果上线后发现框画得很松或者拿着小数据集上跑出来的 mAP0.5:0.95 去跟 COCO 榜单比得出我的模型不行的错觉。这两行数字不是给你看个心情的它们背后各有明确的判断用途用错了代价不小。把两个指标讲成人话考一次试和考十次先建立直觉。IoU 衡量的是预测框和真实框的重合比例可以理解为考试里答对了几分。mAP0.5 的判定规则是重合度达到 50% 就算这道题做对——相当于只设一条 60 分及格线考一次出个结果。mAP0.5:0.95 则狠得多它从 0.5、0.55 一路到 0.95每 0.05 一档共考 10 次然后把 10 次成绩取平均。及格线从 60 分一路抬到 95 分你能不能稳定拿高分全看框画得够不够贴。所以 mAP0.5 回答的是找没找到mAP0.5:0.95 回答的是找得准不准前者主要奖励召回能力后者同时给定位精度投了票。对应到代码里test.py 第 78 行的torch.linspace(0.5, 0.95, 10)就是在生成这 10 个阈值真正的逐档 AP 计算在 utils/metrics.py 的ap_per_class函数里完成这里知道位置就够了。对比项mAP0.5mAP0.5:0.95考几次试1 次IoU0.510 次0.5~0.95步长 0.05对定位严不严宽松重合过半就算命中严格框贴得越紧分越高回答什么问题找没找到目标找得精不精准通常报给谁看业务方、部署评审论文、SOTA 对比 MS COCO 官方榜单用的正是 mAP0.5:0.95 这套标准下面这张图就是按它画出来的YOLOv7 在同速度下明显压过其他检测器怎么选一条判断流程不靠拍脑袋选择逻辑其实很简单顺着这条流程走就行if 部署到边缘设备、追求实时主要看 mAP0.5 FPS elif 要发论文、跟 SOTA 对表mAP0.5:0.95 是硬指标 else两个都看并盯住二者的差距第一个分支的逻辑是边缘场景里召回和速度是生死线框松一点可以后处理兜底但漏检和掉帧不行。第二个分支没有商量余地COCO 生态的默认语言就是 mAP0.5:0.95你报 mAP0.5 基本等于没说。第三个分支有个实用经验值健康模型的两个指标通常差 10~20 个点差距明显超过这个区间说明能找到但画不精该修的是定位而不是召回。另外提一句如果要做正经的 SOTA 对比可以先用 scripts/get_coco.sh 把标准 COCO 数据集拉下来这是对表的前提不然数据集本身就不在一个起跑线上。跑起来一条最小评估命令和三个要看的眼评估本身一条命令就能跑python test.py --weights yolov7.pt --data data/coco.yaml \ --img-size 640 --iou-thres 0.65结果落在runs/test/exp目录下有三个文件值得养成看的习惯confusion_matrix.png混淆矩阵回答模型把哪些类别互相搞混、把哪类目标整个漏掉了。PR_curve.png精确率-召回率曲线回答模型在哪个召回水位上精度掉得最快帮你定位它失守的置信度区间。results.txt指标记录回答这次比上次好在哪方便把多轮评估的结果排开对比。两个参数各说一句--iou-thres是 NMS 合并重复框的阈值调低会保留更多框、调高更激进地去重别和评估用的 IoU 阈值搞混--augment开启测试时增强用多视角推理挤出零点几个点的指标适合最终定版时用。两个最容易踩的坑⚠️坑一只盯 mAP0.5 就宣布模型够用。现象map500.52 看着挺像样可 mAP0.5:0.95 只有 0.25——从 0.5 往上每个档位都在失血说明框大致对了位置但画得不精这类模型在工业质检、医疗影像这类对定位有硬要求的场景里基本不可用。规避方式很简单任何部署决策前把两个数并排看差距异常就先修定位再谈上线。坑二拿 COCO 的标准去量自己的小数据集。现象数据集只有几个类、标注也偏粗硬按 mAP0.5:0.95 一评指标低得吓人。原因是 0.75~0.95 那几档对小数据集来说几乎在惩罚标注本身的抖动高阈值放大了噪音而非反映真实能力。规避方式小数据集以 mAP0.5 加分类别 mAP 为主口径mAP0.5:0.95 留到 COCO 标准集或同分布大测试集上再做正式对比。下次再看到终端里打印的两行数字你知道该信哪个也知道能信到什么程度了。【免费下载链接】yolov7Implementation of paper - YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors项目地址: https://gitcode.com/GitHub_Trending/yo/yolov7创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表