计算机视觉常用指标(Metrics)速查与解释(持续更新)
适用范围:分类 / 检测 / 分割 / 跟踪 / 检索 / 图像复原 / 生成评估 / OCR
说明:不同论文/代码实现对细节(阈值、插值方式、忽略类、边界处理等)可能略有差异,使用前建议核对对应 benchmark 的官方实现。
0. 记号约定(Notation)
- 样本集合大小:(N)
- 真值标签:(y),预测标签:(y^\hat{y}y^)
- TP / FP / TN / FN:真正例 / 假正例 / 真负例 / 假负例
- 预测框 (BpB_pBp),真值框 (BgB_gBg),面积 (∣⋅∣|\cdot|∣⋅∣)
- 均值:(1K∑k=1K⋅\frac{1}{K}\sum_{k=1}^{K}\cdotK1∑k=1K⋅)
1) 分类(Classification)
1.1 Accuracy(准确率)
Acc=#{i:y^i=yi}N \text{Acc}=\frac{\#\{i:\hat{y}_i=y_i\}}{N} Acc=N#{i:y^i=yi}
适用 :类别均衡时直观好用。
坑:类别极不均衡(如异常检测)时会虚高。
1.2 Precision / Recall / F1
Precision=TPTP+FP,Recall=TPTP+FN \mathrm{Precision}=\frac{TP}{TP+FP},\quad \mathrm{Recall}=\frac{TP}{TP+FN} Precision=TP+FPTP,Recall=TP+FNTP
F1=2⋅Precision⋅RecallPrecision+Recall F1=\frac{2\cdot \mathrm{Precision}\cdot \mathrm{Recall}}{\mathrm{Precision}+\mathrm{Recall}} F1=Precision+Recall2⋅Precision⋅Recall
适用 :不均衡数据、关注误报/漏报权衡。
补充 :多分类时常见 macro/micro/weighted 三种平均方式。
1.3 Top-(k) Accuracy
若真值标签出现在模型预测概率最大的前 (k) 个类别中,则计为正确:
Top-k=1N∑i=1N1(yi∈TopK(p^i)) \text{Top-}k=\frac{1}{N}\sum_{i=1}^{N}\mathbf{1}\big(y_i\in \text{TopK}(\hat{\mathbf{p}}_i)\big) Top-k=N1i=1∑N1(yi∈TopK(p^i))
适用:类别数很大、次优候选也有价值(如细粒度分类)。
2) 目标检测(Object Detection)
2.1 IoU(Intersection over Union)
IoU(Bp,Bg)=∣Bp∩Bg∣∣Bp∪Bg∣ \mathrm{IoU}(B_p,B_g)=\frac{|B_p\cap B_g|}{|B_p\cup B_g|} IoU(Bp,Bg)=∣Bp∪Bg∣∣Bp∩Bg∣
用途 :判断预测框与真值框是否"匹配"。
常见阈值:VOC 常用 (0.5);COCO 用多个阈值 (0.50:0.05:0.95)。
2.2 Precision-Recall 曲线 & AP(Average Precision)
对检测置信度从高到低排序,逐步加入预测框,得到一条 PR 曲线。
AP 通常是 PR 曲线下的面积(AUC):
AP=∫01p(r) dr \mathrm{AP}=\int_{0}^{1} p(r)\,dr AP=∫01p(r)dr
其中 (p®) 表示召回率为 ® 时的精度。
实现细节:VOC07 有 11-point 插值版本;现代检测一般用更密的插值/积分实现。
2.3 mAP(mean AP)
-
VOC 风格 :对每个类别算 AP,然后对类别平均:
mAP=1C∑c=1CAPc \mathrm{mAP}=\frac{1}{C}\sum_{c=1}^{C}\mathrm{AP}_c mAP=C1c=1∑CAPc -
COCO 风格 :对多个 IoU 阈值(0.50 到 0.95)求平均:
AP=1T∑t=1TAP(IoU=t) \mathrm{AP}=\frac{1}{T}\sum_{t=1}^{T}\mathrm{AP}(\mathrm{IoU}=t) AP=T1t=1∑TAP(IoU=t)
解释:COCO 的 AP@0.50:0.95 更严格、更能反映定位质量。
2.4 AR(Average Recall)
类似 AP,但以召回为核心,常在限制检测数量(如每图最多 1/10/100 个)下统计平均召回。
3) 语义/实例/全景分割(Segmentation)
3.1 Pixel Accuracy(像素准确率)
PixAcc=∑i1(y^i=yi)#pixels \mathrm{PixAcc}=\frac{\sum_i \mathbf{1}(\hat{y}_i=y_i)}{\#\text{pixels}} PixAcc=#pixels∑i1(y^i=yi)
坑:背景像素占比大时会虚高。
3.2 IoU / mIoU(最常用)
对类别 (c):
IoUc=TPcTPc+FPc+FNc \mathrm{IoU}_c=\frac{TP_c}{TP_c+FP_c+FN_c} IoUc=TPc+FPc+FNcTPc
对所有类别平均:
mIoU=1C∑c=1CIoUc \text{mIoU}=\frac{1}{C}\sum_{c=1}^{C}\mathrm{IoU}_c mIoU=C1c=1∑CIoUc
适用:语义分割主流指标。
3.3 Dice / F1(重叠度)
二值分割常用:
Dice=2∣P∩G∣∣P∣+∣G∣ \text{Dice}=\frac{2|P\cap G|}{|P|+|G|} Dice=∣P∣+∣G∣2∣P∩G∣
与二分类 F1 在像素层面等价(在某些定义下)。
适用:医学分割、前景很小的场景。
3.4 PQ(Panoptic Quality,全景分割)
将"可匹配的实例"集合记为 TP,未匹配的预测为 FP,未匹配的真值为 FN:
PQ=∑(p,g)∈TPIoU(p,g)∣TP∣⏟SQ(Segmentation Quality)⋅∣TP∣∣TP∣+12∣FP∣+12∣FN∣⏟RQ(Recognition Quality) \text{PQ}=\underbrace{\frac{\sum_{(p,g)\in TP}\mathrm{IoU}(p,g)}{|TP|}}{\text{SQ(Segmentation Quality)}} \cdot \underbrace{\frac{|TP|}{|TP|+\frac{1}{2}|FP|+\frac{1}{2}|FN|}}{\text{RQ(Recognition Quality)}} PQ=SQ(Segmentation Quality) ∣TP∣∑(p,g)∈TPIoU(p,g)⋅RQ(Recognition Quality) ∣TP∣+21∣FP∣+21∣FN∣∣TP∣
直觉:既看分割质量(SQ),也看实例识别/计数(RQ)。
4) 多目标跟踪(MOT, Tracking)
跟踪指标很多、细节差异也大。下面列最常见的一组。
4.1 MOTA(Multi-Object Tracking Accuracy)
MOTA=1−∑t(FNt+FPt+IDSWt)∑tGTt \text{MOTA}=1-\frac{\sum_t (FN_t+FP_t+IDSW_t)}{\sum_t GT_t} MOTA=1−∑tGTt∑t(FNt+FPt+IDSWt)
其中 (IDSW) 表示 ID switch 次数,(GT) 是真值目标数。
坑:MOTA 可能在某些错误分布下"不够直观"。
4.2 IDF1(ID 一致性 F1)
基于身份匹配的 Precision/Recall 再算 F1:
IDF1=2⋅IDTP2⋅IDTP+IDFP+IDFN \text{IDF1}=\frac{2\cdot \text{IDTP}}{2\cdot \text{IDTP}+\text{IDFP}+\text{IDFN}} IDF1=2⋅IDTP+IDFP+IDFN2⋅IDTP
适用:更强调身份保持。
5) 图像检索 / 视觉-语言检索(Retrieval)
5.1 Recall@K(R@K)
对每个 query,看 Top-(K) 结果里是否包含真值匹配:
R@K=1N∑i=1N1(rank(i)≤K) \mathrm{R@K}=\frac{1}{N}\sum_{i=1}^N \mathbf{1}(\text{rank}(i)\le K) R@K=N1i=1∑N1(rank(i)≤K)
适用:image→text 或 text→image 检索非常常见。
5.2 mAP(检索版本)
对每个 query 计算 AP(把相关样本当作"正例"),再对 query 平均:
mAP=1N∑i=1NAPi \mathrm{mAP}=\frac{1}{N}\sum_{i=1}^{N}\mathrm{AP}_i mAP=N1i=1∑NAPi
其中 (\mathrm{AP}_i) 是第 (i) 个 query 的精度-召回积分(或离散加和)。
5.3 nDCG@K(排序质量)
若相关性(relevance)可取多级(0/1/2/3...),常用 nDCG:
DCG@K=∑j=1K2relj−1log2(j+1) \text{DCG@K}=\sum_{j=1}^{K}\frac{2^{rel_j}-1}{\log_2(j+1)} DCG@K=j=1∑Klog2(j+1)2relj−1
nDCG@K=DCG@KIDCG@K \text{nDCG@K}=\frac{\text{DCG@K}}{\text{IDCG@K}} nDCG@K=IDCG@KDCG@K
其中 IDCG 是"理想排序"下的 DCG。
6) 图像复原(Denoise / SR / Deblur / Inpainting)
6.1 MSE(均方误差)
MSE=1HW∑x,y(I(x,y)−I^(x,y))2 \mathrm{MSE}=\frac{1}{HW}\sum_{x,y}\big(I(x,y)-\hat{I}(x,y)\big)^2 MSE=HW1x,y∑(I(x,y)−I^(x,y))2
6.2 PSNR(峰值信噪比)
PSNR=10log10(MAX2MSE) \mathrm{PSNR}=10\log_{10}\left(\frac{\text{MAX}^2}{\mathrm{MSE}}\right) PSNR=10log10(MSEMAX2)
- (\text{MAX}) 通常为 255(8-bit)或 1.0(归一化)。
- PSNR 越大越好。
坑:PSNR 偏向像素级一致,可能不等价于"感知更好"。
6.3 SSIM(结构相似度)
对局部窗口,令均值 (\mu)、方差 (\sigma^2)、协方差 (\sigma_{xy}):
SSIM(x,y)=(2μxμy+C1)(2σxy+C2)(μx2+μy2+C1)(σx2+σy2+C2) \mathrm{SSIM}(x,y)=\frac{(2\mu_x\mu_y+C_1)(2\sigma_{xy}+C_2)}{(\mu_x^2+\mu_y^2+C_1)(\sigma_x^2+\sigma_y^2+C_2)} SSIM(x,y)=(μx2+μy2+C1)(σx2+σy2+C2)(2μxμy+C1)(2σxy+C2)
对整图取平均得到最终 SSIM。
直觉:比 PSNR 更关注结构与对比度。
6.4 LPIPS(感知相似度)
用预训练网络的多层特征差异衡量距离:
LPIPS(I,I^)=∑lwl⋅∥ϕl(I)−ϕl(I^)∥2 \text{LPIPS}(I,\hat{I})=\sum_{l} w_l \cdot \| \phi_l(I)-\phi_l(\hat{I}) \|_2 LPIPS(I,I^)=l∑wl⋅∥ϕl(I)−ϕl(I^)∥2
说明 :(ϕl\phi_lϕl) 为第 (l) 层特征,权重 (wlw_lwl) 由标定得到。
趋势:LPIPS 越小越好(越接近人类感知)。
7) 生成模型评估(GAN / Diffusion / 生成式视觉)
7.1 FID(Fréchet Inception Distance)
用 Inception 特征分布的高斯近似:
FID=∥μr−μg∥22+Tr(Σr+Σg−2(ΣrΣg)1/2) \text{FID}=\|\mu_r-\mu_g\|_2^2+\mathrm{Tr}\left(\Sigma_r+\Sigma_g-2(\Sigma_r\Sigma_g)^{1/2}\right) FID=∥μr−μg∥22+Tr(Σr+Σg−2(ΣrΣg)1/2)
- (r):真实图像特征分布;(g):生成图像特征分布。
- FID 越小越好。
坑:受样本数量、预处理方式、特征提取网络等影响很大,跨论文对比要谨慎。
7.2 IS(Inception Score,较老但仍见)
IS=exp(Ex[KL(p(y∣x) ∥ p(y))]) \text{IS}=\exp\Big(\mathbb{E}_{x}\big[\mathrm{KL}(p(y|x)\,\|\,p(y))\big]\Big) IS=exp(Ex[KL(p(y∣x)∥p(y))])
直觉 :既希望单图类别分布尖锐(可辨识),也希望整体类别丰富。
坑:不直接比较真实分布,容易"被刷分"。
8) OCR / 文档视觉
8.1 CER / WER(字符/词错误率)
编辑距离 (d(\cdot,\cdot)),真值长度为 (|g|):
CER=d(pred,gt)∣gt∣ \text{CER}=\frac{d(\text{pred},\text{gt})}{|\text{gt}|} CER=∣gt∣d(pred,gt)
WER 类似,只是以词为单位。
8.2 ANLS(常用于 TextVQA / 读图文本)
基于归一化编辑距离的相似度(常见定义之一):
NLS=1−d(pred,gt)max(∣pred∣,∣gt∣) \text{NLS}=1-\frac{d(\text{pred},\text{gt})}{\max(|\text{pred}|,|\text{gt}|)} NLS=1−max(∣pred∣,∣gt∣)d(pred,gt)
若 (\text{NLS}<\tau)(例如 0.5)则记为 0,否则取 NLS;对样本平均为 ANLS。
不同比赛/实现的阈值与细节可能不同。
9) 选指标的快速建议
- 分类:不均衡 → Precision/Recall/F1;大类数 → Top-k
- 检测:报告 COCO AP@0.50:0.95 + AP50/75;对小目标最好分尺寸统计(APS/APM/APL)
- 语义分割:mIoU 为主;前景极小 → Dice 更敏感
- 检索:R@K(直观)+ nDCG(排序质量)
- 复原:PSNR/SSIM(像素/结构)+ LPIPS(感知);论文中最好同时给
- 生成:FID 为主,注意样本量与实现一致性