一句话:IoU 管"这一个框画得准不准",mAP 管"整个模型整体好不好"。
IoU:两个框有多重合
IoU(Intersection over Union,交并比)衡量两个矩形框的重叠程度,算法就一句话:交集面积 ÷ 并集面积。两个框完全重合是 1,完全不挨着是 0。
打个比方:桌上两张便利贴,一张是你猜的位置,一张是真实位置。IoU 问的不是"你猜对没有",而是"这两张纸叠在一起的面积,占它们整体铺开面积的比例有多大"。叠得越整齐,比例越高。
检测里通常约定一个门槛:IoU ≥ 0.5 就算"框对了",要求严一点会用 0.75;业界常见做法是在 0.5 到 0.95 之间取多个阈值再平均,避免单一门槛太宽松。所以看到指标时,先确认门槛是多少,否则数字没法比。
从 IoU 到 mAP
光有 IoU 还不够。一个预测框要被判为"正确"(True Positive),一般要同时满足三件事:类别对、IoU 达标、且这个真实目标没有被另一个分数更高的预测框抢走。否则算误检(False Positive);真实目标没人认领,则是漏检(False Negative)。
有了这三类计数,就能算查准率(Precision,报出来的里面有多少是对的)和查全率(Recall,该找的里面找到了多少)。麻烦在于:调低置信度阈值,召回上去了、查准掉下来;调高则相反。单点数字没法公平比较,于是把不同阈值下的结果连成一条曲线,曲线下的面积就是 AP(Average Precision,平均精度)。mAP(mean Average Precision)就是所有类别 AP 的平均值。
| IoU | mAP | |
|---|---|---|
| 衡量对象 | 单个预测框与真实框的重叠度 | 整个模型在数据集上的综合表现 |
| 取值 | 0~1 | 0~1,越高越好 |
| 依赖什么 | 两个框的坐标 | IoU 阈值、置信度阈值、类别划分、数据集 |
| 典型用途 | 判定是否算命中、NMS 去重 | 模型选型、评测排名 |
区别与实际意义
IoU 是纯几何量,不关心类别;它在工程里还常被拿去做非极大值抑制(NMS),把同一个目标上重叠的多个框删掉。mAP 则是"聚合指标",把成千上万个框的表现压成一个数字——方便比较,代价是掩盖细节:可能小目标很差、或某一类拖后腿,但总分看着还行。
对从业者:报告结果时最好把 IoU 口径、类别范围、数据集一起写清楚。对普通人:听到"mAP 提升几个点"时,值得追问一句"在什么 IoU 阈值、哪个数据集上算的"。不同设定下的 mAP 不能直接横向比较,具体评测口径以官方页面为准。
