在大屏或电脑上体验更佳——动画和操作区域更宽敞。
输入

目标检测

目标检测为每个预测实例给出类别、分数和边界框。同类对象可以位于不同位置。分数筛选移除弱候选,非极大值抑制移除可能的重复框。提高分数阈值会拒绝更多候选,提高重叠阈值却会容忍更多重复。

把框看成贴在照片上的便签:“这里可能有一只猫。”两张便签可指同一只猫,删冗余框有用,删另一只猫唯一的框则造成漏检。框消失不代表猫从照片消失。

检测输出与后处理

分类器对一张给定图像或裁剪输出类别分数;检测器还输出每个实例的位置,记录数可变。两条 cat 记录可能是两只猫,不能只凭同类就判重复。

本课使用 Torchvision 的 SSDLite320、MobileNetV3 主干与 COCO 权重的一次记录。模型接收缩放后的 320×320 RGB,提取特征、预测类别和框偏移,再解码矩形。训练建立特征、类别、位置的关系,调整阈值不会重训。参见 Torchvision 模型说明。

框用对角 (x1,y1)、(x2,y2) 表示,已映回 1280×853 源图像素,x 向右、y 向下。矩形不是动物轮廓;轮廓属于分割任务。

分数筛选

候选须严格大于分数阈值。阈值 0.50 时 0.33 失败、0.98 通过。只改候选资格,不改原分数或坐标。多个近似框都能高分,分数不是正确、唯一或定位准确的保证。

交并比 IoU

IoU = 交集面积 / (A 面积 + B 面积 − 交集面积)

减去交集避免重复计数。不相交为零,完全相同为一。不同物体的框也能相交,IoU 衡量矩形重叠,不识别动物身份。

贪心非极大值抑制

NMS 从待定候选中保留最高分,抑制与它同类且 IoU 超过阈值的低分框,再对剩余最高分重复。“待定”尚未决定,“抑制”已排除。硬 NMS 选择现有框,不平均坐标、不合并形状,规则见 Torchvision NMS。

提高分数阈值要求更高分;提高 IoU 阈值则需要更大重叠才抑制,两个方向不同。

逐步演示

照片有并排两只猫。记录保留 NMS 前分数 大于 0.20 的全部 31 个前景候选。0.20 是这份记录的下限,不是检测原理的限制。默认分数阈值 0.50、IoU 阈值 0.50,字母始终指向同一个原始候选。

候选类别分数位置
Acat99.3%右猫
Bcat98.6%左猫
Ccat97.8%与 A 近似的右猫框
Ubench33.1%弱模型预测
  1. 读 A:源坐标约 (639.2,161.4) 到 (1200.8,731.5)。99.3% 是另一个字段,不表示覆盖了猫身体的 99.3%。
  2. 分数筛选:31 中 17 通过,U 被拒绝,A、B、C 都通过,重复仍在。
  3. 保留 A、比较 C:交集约 317,207 px²,并集约 325,699 px²,IoU ≈ 0.9739 > 0.50,同为 cat,所以抑制 C。A 坐标不变。
  4. 比较 A 与 B:IoU ≈ 0.0402,未超过 0.50,B 保持待定,还没有被选为下一保留框。
  5. 继续 A 的比较:再抑制八个候选。接着 B 成为待定最高分,保留它,并抑制周围六个重叠框。动画合并重复节拍,但每次移除都有计算和原因。
  6. 结果:保留 A、B 两个同类、不同位置的检测。NMS 共移除 15 个,与此前分数拒绝的 14 个分开计数。
  7. 只提高分数到 0.99:B 的 98.6% 失败,只剩一个框,但猫仍有两只。
  8. 恢复分数 0.50,只提高 IoU 到 0.90:留下 A、B、P 三框,P 是右猫的另一个重复框。结尾恢复默认两框,并展示两项对照。模型从未改变。

阈值选择与诊断

分数阈值IoU 阈值输出含义
0.500.50A、B两只猫各一框
0.990.50AB 低于分数门槛,漏一猫
0.500.90A、B、P放宽重叠容忍后重复存活
0.500.00A任何同类正重叠就抑制,B 被错删
0.300.50A、B、U弱 bench 预测也留下
1.000.50无没有分数严格大于一

这些是单图测量,不是部署建议。应在标注的代表性图像上比较漏检与误检成本,每次改一个参数。相邻物体的框可能重叠,过强抑制会误删;重复框重叠不足则可能逃过。

缺框时先看筛选前候选。低分被拒看分数阈值;已通过却被高分同类框抑制看 NMS。降低分数阈值不能救回本来就通过却被抑制的框,两个控制也都造不出模型未预测的框。

重复时检查成对 IoU,降低 IoU 阈值使该对更容易被抑制,但可能伤及邻近对象。“Too much suppression”的 0.00 就因 A/B 小幅重叠而删 B。

后处理成本

n 个候选的分数筛选 O(n),排序 O(n log n),直接贪心 NMS 最坏 O(n²),工作列表空间 O(n)。这不包括神经网络推理。本播放器最多处理 31 个记录,真实检测器可有更多候选。

边界情况

  • 输出空:照片仍可能有对象。降低阈值只能改变记录中已有候选的存活情况。
  • 等于阈值:分数相等时失败,IoU 相等时不抑制,两处都是严格比较。
  • 不同类:类别感知 NMS 不因跨类重叠抑制,可能保留同一区域的冲突标签。
  • 相同框:同类、IoU 阈值小于一时低分框被抑制;阈值一时严格规则连完全相同框也保留。
  • 同分:本课按源 ID 打破并列保证回放一致,其他实现或设备可能选择不同。
  • 最大密度:分数 0.20、IoU 1.00 保留全部 31。列表最多显示活动候选附近六行,或最终前六行,并注明范围与总数;计算仍包含全部。

常见错误

  • 把框数当物体数。一个对象可能多框,另一个可能无框,需与标注匹配。
  • 把类别分数当定位质量。高分框也可能位置不准。
  • 因同类就全删。两只猫需要两条记录,同类只是 NMS 比较条件。
  • 期待 NMS 修正角点或平均 A、C;硬 NMS 只选已有框。
  • 以为所有检测器都采用相同去重流程;这里限定为 SSDLite 与类别感知贪心 NMS。

模型范围与来源

一张照片、一个预训练检测器、分数大于 0.20 的记录。省略训练、特征细节、锚框回归运算、校准、跟踪、分割和数据集评估。模型离线运行,浏览器在未编辑的预测上重算两种阈值,重复比较按节奏分组。

两只交叉前腿坐着的猫由 Irshath 25 发布,许可为 CC0。生成程序和导出元数据保存图像、模型哈希与运行版本。可继续阅读图像分类与混淆矩阵,区分输入约定、预测和真实标签。