🎓 总站 🏠 本课目录 01 图像基础 02 空间滤波 03 频率滤波 04 彩色处理 05 神经网络 06 表征学习 07 Transformer 08 CNN 09 目标识别
视觉计算 · 第9章

目标识别

从图像分类(互斥类别、多标签、交叉熵损失、Top-1/Top-5、混淆矩阵)到目标检测(分类+定位、IoU 匹配、精度-召回曲线),再到基于语言监督的对比学习 CLIP 模型。

📚 学习进度
0%

🎯学习目标

  • 理解图像分类的形式化定义 f: 𝒳 → 𝒴,区分互斥类别与多标签分类;
  • 掌握 0-1 损失与交叉熵损失(互斥 / 多标签两种形式);
  • 掌握 Top-1 / Top-5 准确率与混淆矩阵评估方法;
  • 理解目标检测的双重任务(分类 + 定位)、边界框与背景类;
  • 掌握 IoU 匹配与精度-召回率曲线评估流程;
  • 理解基于语言监督的对比学习 CLIP(正负样本对、InfoNCE 损失、零样本分类)。

图像分类

图像分类的核心目标:在高维张量构成的输入空间 𝒳 与有限离散标签空间 𝒴 之间,从独立同分布样本中学习一个映射函数 f: 𝒳 → 𝒴,使得在未知数据分布上的分类错误期望最小。

互斥类别(Multi-class)

在 K 个类别中图像只属于一个类别。此时 f 是从 RGB 图像集映射到 K−1 维单纯形 Δ 的映射:
f: ℝℕ×ℕ×3 → Δ

单纯形 Δ 即各分量非负且和为 1 的向量(softmax 输出)。

多标签分类(Multi-label)

图像可同时具有多个标签,问题表述为 K 个二分类问题。

此时不再满足"类别之和为 1"的约束,每个类别独立用 sigmoid 判断是否出现。

对比记忆:互斥分类 → softmax(输出和为 1);多标签分类 → K 个独立 sigmoid(各输出独立 0~1)。

分类损失与评估 ⭐

损失函数

0-1 损失

预测正确为 0,错误为 1。直观但不可微,无法用梯度下降训练参数。

交叉熵损失

互斥类别:对真实类别对应的 log 概率取负:
L = −log py

其似然函数为各类别概率的对数和,最大化似然 ⟺ 最小化交叉熵。

多标签交叉熵

对 K 个二分类问题,每个类别独立计算二元交叉熵,再求和(不再有和为 1 约束)。

评估指标

Top-1 准确率

测试集中,真实标签与最高分预测值 ŷ = argmax(y) 一致的样本比例。

Top-5 准确率

真实标签出现在得分最高的前 5 个预测结果中的次数百分比。

ImageNet 类别多(1000 类),Top-5 更能反映模型真实能力。

混淆矩阵

行 = 真实类别,列 = 预测类别,单元格 = 样本数。

对角线越亮(正确)越好;非对角线揭示易混淆的类别对

目标检测 ⭐

目标检测 = 分类 + 定位两个互补任务:既要判断每个边界框里是什么类别,又要回归出边界框的精确位置。

检测的核心难点:检测输出的边界框个数往往大于真实边界框个数,需要把检测结果与真实标签关联(匹配)。

分类损失

对匹配到真实目标的预测框,优化其类别预测(含背景类 y = 0)。

定位损失

对与真实目标存在重叠的预测框,优化其边界框位置(回归 4 个坐标)。

背景类处理

与真实目标没有重叠的预测框被分配为背景类(y = 0),不参与定位损失。

匹配方法

  • IoU 匹配:按预测框与真实框的交并比配对;
  • 二分匹配(如匈牙利算法):全局最优一一配对。
局限:对于长而薄的物体、或没有明显边界的区域,用边界框表示目标位置并不合适(这类场景更适合实例分割 / 分割掩码)。

IoU 与检测评估 ⭐

评估流程(逐步)

  1. 对每幅图像,依置信度分值 ŷ 对所有检测结果排序(从高到低);
  2. 遍历排序结果,对每个边界框计算其与所有真实框的 IoU
  3. 选择 IoU 值最高的真实边界框;
  4. 若该 IoU ≥ 阈值(通常 0.5)→ 标记正确,并移除该真实框(避免重复计数);
  5. 若 IoU < 阈值 → 标记错误,保留真实标签;
  6. 遍历结束后,剩余的真实框标记为漏检

IoU(交并比)

IoU = 预测框与真实框的交集面积 / 并集面积。取值 0~1,越大越好。常用阈值 0.5 判定检测是否"命中"。

精度-召回率曲线(P-R 曲线)

衡量检测性能随决策阈值 β 变化的函数关系。每个边界框附带置信度分值 ŷ,用阈值 β 判断该位置是否存在目标:

  • 检测数量 = Σ 𝟙(ŷ > β)
  • 正确检测数量 = Σ 𝟙(ŷ > β) × y

改变 β 得到不同(精度, 召回率)点,连成曲线。曲线下面积即 AP / mAP

基于语言监督的识别(CLIP)

传统分类只能预测固定类别;CLIP(Contrastive Language-Image Pre-training)用自然语言监督,实现零样本开放类别识别。

三种语言监督方式

  • 图像分类:给定图像,预测其类别名;
  • 图像描述:给定图像,预测其描述文本;
  • 对比学习:对齐描述同一事物的图像与文本嵌入(CLIP 选用)。

CLIP 的对比学习

正样本对

图像与它自己的描述文本配对。

负样本对

图像与另一张图像的描述文本配对。

学习目标

学习一种表示:正样本被拉近,负样本被推远

双向 InfoNCE 损失:CLIP 用对称的对比损失,同时优化"图像→文本"和"文本→图像"两个方向的匹配。在一个 batch 内,N 个图文对构成 N×N 的相似度矩阵,对角线为正样本。

用 CLIP 构造分类器(零样本)

把候选类别名编码成文本嵌入,与图像嵌入计算相似度,取最相似的类别作为预测——无需任何标注训练样本即可分类任意新类别。

重点例题

例1 互斥分类中 softmax 输出和为什么等于 1?
答案
softmax 对每个 logit 取指数再归一化(除以指数和),由定义保证各分量之和为 1,因此可解释为概率分布。
例2 IoU = 0.6,阈值 0.5,该检测框被判为?
答案
正确(命中)。因为 IoU 0.6 ≥ 阈值 0.5。同时该真实框被移除,防止后续检测框重复计数。
例3 CLIP 中一个 batch 有 N 个图文对,正负样本各多少?
答案
N 个正样本对(对角线),N²−N 个负样本对(非对角线)。
例4 为什么 0-1 损失不能直接用于训练?
答案
0-1 损失不可微(阶梯函数),无法用梯度下降反向传播更新参数;实际训练用可微的交叉熵作为 surrogate。

🎯自测(点击展开)

互斥分类的输出空间是什么?
K−1 维单纯形 Δ(各分量非负且和为 1,即 softmax 输出)。
多标签分类为什么不满足"和为 1"?
因为图像可同时有多个标签,每个类别是独立的二分类问题(sigmoid),各输出互不约束。
Top-5 准确率衡量什么?
真实标签出现在得分最高的前 5 个预测中的比例,类别多时更反映真实能力。
目标检测为什么要做匹配?
检测框数往往多于真实框数,需把每个预测框关联到一个真实标签或背景,才能计算损失和评估。
IoU 低于阈值时检测结果如何处理?
标记为错误(误检),但保留对应的真实标签,等待后续更高置信度的框继续匹配。
CLIP 的正负样本对分别是什么?
正样本 = 图像与自己的描述文本;负样本 = 图像与别人的描述文本。目标:拉近正、推远负。

📝强化题库

选择题点选即时判分;填空题输入后"检查"或"显示答案"。

已答 0/0答对 0正确率
已答 0/0答对 0