5.3 目标检测与分割指标关卡


5.3 目标检测与分割指标关卡

检测与分割考点:IoU 手算、mAP 的统计口径、两阶段与一阶段路线的取舍、分割任务的输出形态。通关标准:给出框坐标立刻算出交并比,给出检出清单手工推出平均精度。视觉编队收官关:定位与度量的大账,全部算给你看。

标靶校射:关卡题目

关卡一(计算):预测框左上角坐标 (零, 零)、右下角坐标 (四, 四);真实框左上角 (一, 一)、右下角 (五, 五)。求交并比,并判断它在常用阈值下算不算命中。

关卡二(单选):某类目标的平均精度是怎么统计的?

A. 该类所有检出框与真实框交并比的平均值 B. 以置信度为序,精确率对召回率曲线下的面积 C. 该类所有图上正确分类的比例 D. 召回率与精确率的乘积

关卡三(简答):两阶段与一阶段检测的核心差异是什么?各自的精度与速度账怎么算?

关卡四(多选):关于分割任务的说法,正确的包括:

A. 全卷积网络把分类骨干的全连接头换成卷积,输出与原图对齐的逐像素判断
B. 分割的评价常用逐像素交并比或类平均交并比,不再用框指标
C. 分割就是检测换了个说法,指标完全通用
D. 编解码结构里的跳跃连接把浅层细节补给深层语义,边界更准

先攻提示

  • 关卡一先画两个正方形再算交集:交集边长 = 两框在横竖向重叠段的长度;
  • 关卡二抓住"按置信度排序"与"曲线下面积"这两个关键词;
  • 关卡三想"候选区域这道工序删不删":删了快、留了稳;
  • 关卡四对照输出形态:分类出标签、检测出框、分割出逐像素掩码。

后核:标准解析

关卡一:交集:横向重叠段为零到四与一到五的公共部分,即一到四,长度三;纵向同理长度三;交集面积九。并集:十六加十六减九 = 二十三。交并比 = 九除以二十三,约零点三九一。在零点五的常用阈值下不算命中——定位质量不足,尽管分类可能是对的。手算流程用代码钉死:

# IoU 手算全流程(框格式:左上 x1,y1;右下 x2,y2) def iou(a, b): ix = max(0, min(a[2], b[2]) - max(a[0], b[0])) # 交集宽 iy = max(0, min(a[3], b[3]) - max(a[1], b[1])) # 交集高 inter = ix * iy union = (a[2]-a[0])*(a[3]-a[1]) + (b[2]-b[0])*(b[3]-b[1]) - inter return inter, union, inter / union A = (0, 0, 4, 4) B = (1, 1, 5, 5) inter, union, r = iou(A, B) print(f"交集面积: {inter}") # 输出: 交集面积: 9 print(f"并集面积: {union}") # 输出: 并集面积: 23 print(f"IoU: {r:.4f}") # 输出: IoU: 0.3913 print(f"阈值 0.5 命中? {r >= 0.5}") # 输出: 阈值 0.5 命中? False

结果解读:交并比是检测指标的地基——既当匹配判据(超过阈值才算检出),又当回归目标(框微调就是要抬高它)。变式:把预测框整体平移一个单位(变成 (一, 零, 五, 四))重算,交并比升到约零点五七,刚好越过阈值——动手感受"框挪一格、判据翻面"的敏感性。

关卡二选 B。 流程:按置信度从高到低逐个采纳检出,每采纳一个就算一对(精确率,召回率):每采纳一个就把召回的分母(该图该类真实目标总数)当不变量、分子按命中数累加,精确率按"命中数除以已采纳数"更新;把这些点连成曲线,曲线下面积即该类的平均精度。再把各类的平均精度取平均,得到平均精度均值。A 错在交并比只是匹配判据,不参与精度统计;C 是分类准确率;D 的乘积(即 F 的倒数族近亲)是单点指标,丢掉了整条排序信息。

用一份迷你检出清单把平均精度手工推一遍,这是全编队最值得练熟的一笔账:

# 迷你 AP 手算:单类八次检出,置信度降序,IoU 过阈值才记命中 import math # (置信度, 是否命中) dets = [(0.95, True), (0.90, False), (0.85, True), (0.70, True), (0.60, False), (0.50, True), (0.35, False), (0.20, False)] total_gt = 4 # 该类真实目标总数 hits = 0 points = [] for conf, hit in dets: if hit: hits += 1 prec = hits / (len(points) + 1) rec = hits / total_gt points.append((conf, prec, rec)) print(f"置信度 {conf:.2f} 命中={str(hit):<5} 精确率={prec:.3f} 召回率={rec:.3f}") # 逐点平均(召回率取满档前的等间隔近似,此处取曲线在召回 0.25/0.50/0.75/1.00 处的精确率) ap = 0.0 for rq in [0.25, 0.50, 0.75, 1.00]: p = max(prec for _, prec, rec in points if rec >= rq - 1e-9) ap += p ap /= 4 print(f"AP ≈ {ap:.3f}") # 输出: # 置信度 0.95 命中=True 精确率=1.000 召回率=0.250 # 置信度 0.90 命中=False 精确率=0.500 召回率=0.250 # 置信度 0.85 命中=True 精确率=0.667 召回率=0.500 # 置信度 0.70 命中=True 精确率=0.750 召回率=0.750 # 置信度 0.60 命中=False 精确率=0.600 召回率=0.750 # 置信度 0.50 命中=True 精确率=0.667 召回率=1.000 # 置信度 0.35 命中=False 精确率=0.571 召回率=1.000 # 置信度 0.20 命中=False 精确率=0.500 召回率=1.000 # AP ≈ 0.771

结果解读:排序是命门——命中项越靠前,曲线越"高瘦",面积越大;把置信度零点九五与零点五零的两次命中对调,面积立刻缩水。这也解释了训练为什么要把分类分支的置信度校准好:它直接决定排序质量。变式:把真实目标总数改成三重跑,观察召回率爬升更快、AP 如何变化,体会分母口径对指标的影响。

关卡三:核心差异在"候选区域这道工序保不保留"。两阶段路线先生成可能含目标的候选区,再对候选区分类并精修框——查得专注、精度高,但工序多、速度慢;一阶段路线在密集网格或锚框上直接回归类别与框,把检测改成"单趟前向",速度快、部署友好,早期精度稍逊,后来靠训练技巧与特征融合大幅追平。答题口诀:两阶段先挑后判,一阶段一眼定全部。

关卡四选 A、B、D。 全卷积网络把全连接头换成卷积,保留空间结构,输出直接对齐原图逐像素;分割评价用像素级交并比及其类平均,框指标退场;跳跃连接把浅层的高分辨率细节与深层的语义在网络内相融,边界刻画明显变好。C 错在输出形态与指标体系完全不同:检测出框、分割出掩码,考题常拿这点设陷阱。

复盘:易错点与变式

易错点一:并集面积忘了减交集。两框面积直接相加把重叠部分数了遍,交并比被系统性高估——这是 IoU 手算的第一大坑,画图再算就能免疫。

易错点二:把平均精度均值说成"所有框交并比的平均"。前者是按类统计的排序质量指标,后者只是几何重叠度;两者量纲都不同。面试里混用这两个词,基本等于宣告没做过检测评估。

易错点三:以为非极大值抑制在所有类之间横着做。它按类别独立执行:同类候选按分数排序、逐个压制与其交并比过阈的余者;跨类目标本就允许框重叠。

变式一:问"为什么小目标难检出,从指标上怎么看"。答:小目标像素少,框挪一动交并比剧烈波动,匹配判据更苛刻;指标层面常见做法是在多种交并比阈值下取平均,避免单阈值口径偶然性。

变式二:问"分割的类别不均衡怎么在指标上暴露"。答:背景像素占绝对多数时,逐像素准确率虚高;类平均交并比对每个类一视同仁,小类掉点立刻显形——这正是分割评测偏爱类平均交并比的原因。

复盘产出:决策卡"视觉度量"一栏补齐:交并比管匹配、平均精度管排序、像素交并比管分割,三套口径分家。视觉编队至此通关,骨干与指标同时入库;下一编队转场决策阵地——把感知接上行动,用奖励信号学出最优策略。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U