,

1. Introduction to object recognition

主要介绍“什么是视觉识别”以及“为什么它很难”。

  1. 不同的识别任务 (Visual Recognition Tasks):
    • 分类 (Classification): 图像中是否包含某物体?(Yes/No 问题,例如:这是一栋建筑吗?这是海滩吗?)
    • 检测 (Detection): 图像包含什么物体?它在哪里?(通常用边界框 Bounding Box 表示,例如:车在哪里?)
    • 分割/定位 (Localization/Segmentation): 更精确的像素级定位。
    • 属性估计 (Attribute Estimation): 估计语义或几何属性(例如:建筑是45度角、人是背影、警车是侧面)。
    • 活动/事件识别 (Activity recognition): 这些人在做什么?
    • 分类 vs. 单个实例识别: 区分一般类别(“塔”)与特定实例(“比萨斜塔”)。
  2. 应用场景 (Applications):
    • 计算摄影、辅助技术、监控、安防、辅助驾驶等。
  3. 面临的挑战 (Challenges):
    • 类别数量巨大(10,000 - 30,000类)。
    • 视觉变化 (Variations):
      • 视角变化 (Viewpoint variation)
      • 光照变化 (Illumination)
      • 尺度/大小变化 (Scale)
      • 形变 (Deformation)
      • 遮挡 (Occlusion)
      • 背景杂乱 (Background clutter)
      • 类内差异 (Intra-class variation): 同一类物体(如椅子)长相各异。

1.1 Representation

How to represent an object category; which classification scheme?

**采样策略:**我们应该在哪些区域进行特征提取:

  • Interest Operators(兴趣点算子):只在图像中“独特“的地方提取特征(比如角点,斑点)。优点是计算量小,特征显著

  • Dense, uniformly(密度均匀采样):不管图像内容,每隔固定的距离就采取一次特征

  • Multiple interset operators(多种兴趣点算子):结合多种不同的检测器(例如有的检测角点,有的检测圆形斑点),以获得丰富的信息

  • Randomly(随机采样):随机选取位置进行提取特征

外观与位置

  1. Appearance only(仅外观,词袋模型)

例如模型认为只有图像中包含“眼睛”、“鼻子”等特征,那么它就是人脸,不关心鼻子是否在嘴巴上面。

优点:简单,对物体变形或者遮挡有鲁棒性。缺点:容易把一对散乱的零件误判成完整物体

  1. Location and appearance(外观+位置)

模型不仅要求外观特征,还要求特征之间的几何关系正确

优点:识别更精准,能排除结构错误的误报;缺点:计算复杂,模型设计更难

1.2 Learning

这张图片紧接着上一张 PPT,深入讲解了 Object Recognition(物体识别) 三大核心步骤中的第二步:Learning(学习/训练阶段)

这一页主要探讨在设计一个机器学习系统时,开发者必须做出的关键决策和面临的挑战。我们可以将其拆解为以下几个核心要点:

1. 学习参数 (Learning Parameters): 你的目标是什么?

一个核心问题:”What are you maximizing?”(你在最大化什么指标?)

这其实是在区分两种主流的建模流派:

  • Generative (生成式模型 - Gen.):
    • 目标: 最大化 Likelihood (似然度)
    • 含义: 试图完全理解物体长什么样。比如,学习“摩托车”的颜色分布、形状分布。如果它能画出一辆摩托车,就说明它学好了。
  • Discriminative (判别式模型 - Disc.):
    • 目标: 最大化 Performances on train/validation set (训练/验证集上的性能)
    • 含义: 试图找到“摩托车”和“非摩托车”之间的界限。它不在乎摩托车具体长啥样,只在乎怎么把摩托车和背景区分开(分类边界)。这是目前深度学习(如 CNN)最主流的方法。

2. 监督级别 (Level of Supervision): 老师教得有多细?

这是指训练数据的标签质量。图片的摩托车示例非常直观地展示了不同级别的标注:

  • Manual segmentation (手动分割): 对应图中摩托车边缘的绿色轮廓
    • 这是最精细的(Pixel-level),告诉机器每一个像素是不是摩托车。成本最高。
  • Bounding box (边界框): 对应图中的红色方框
    • 告诉机器摩托车大概在这个框里。成本中等,是目前目标检测(Object Detection)的主流标注方式。
  • Image labels (图像标签):
    • 只给一张图,打个标签说“这里面有摩托车”,但不告诉具体在哪。成本最低,但也最难学。
  • Noisy labels (噪声标签):
    • 数据里可能混有标错的图(比如把自行车标成摩托车)。模型需要有抗干扰能力。

![image-20260108120319062](/Users/arnold/Library/Application Support/typora-user-images/image-20260108120319062.png)

3. 训练模式 (Batch / Incremental)

  • Batch (批量学习): 收集好所有 1 万张图,一次性扔给模型训练。这是最常见的。
  • Incremental (增量学习/在线学习): 数据是一点点来的。今天学 10 张,明天又来 10 张,模型需要不断更新自己,且不能忘了以前学的(这很难,容易发生 Catastrophic Forgetting)。

4. 先验知识 (Priors)

  • 在开始学习之前,我们是否要给模型灌输一些人类的常识
  • 例如:告诉模型“摩托车通常在路面上,不会飞在天上”或者“人脸通常是椭圆的”。引入 Priors 可以让模型在数据较少时学得更好。

5. 训练图像的问题 (Training Images)

这里列出了两个实际训练中的经典坑:

  • Issue of overfitting (过拟合问题):
    • 模型太聪明了,把训练集的每一张图都“背”下来了,导致考试(测试集)时遇到没见过的图就不认识了。
  • Negative images for discriminative methods (判别式方法的负样本):
    • 这是一个非常关键的概念。如果你用判别式方法(如 SVM 或 CNN),你不能只给模型看“摩托车”的照片。
    • 你必须给它看大量的**“非摩托车”**(Negative images),比如风景、猫、桌子。
    • 为什么? 因为判别式模型学的是边界。如果只看正样本,它无法建立边界,它会认为全世界所有东西都是摩托车。

1.3 Recognition

Task:classification,detection

搜索策略: 滑动窗口

  • 十分简单
  • 计算复杂度$x,y,S \text{(尺度)},\theta \text{(角度)},N\text{(类别数量)}$

Localization(定位问题)

  • Objects are not boxes:狗的轮廓是不规则的星座,用矩形虽然很方便,但是包含了很多背景噪声
  • False Positive:由于背景错乱,滑动窗口很容易把一块像狗的石头认为是狗

NMS

只保留分数最高的框,把其他跟他重叠的其他框都删掉

2. Bag of Feature models

Origin 1: Texture recognition,统计学的方法来识别纹理之间的相似性

Origin 2: Bag of word model

2.1 Bag of Feature Steps

  1. 提取特征
  2. 学习 “visual vocabulary”——与文本不同,”word”是未知的
  3. 用“visual words” 的频率表示图像

2.2 Feature Extraction

用网格或者兴趣区域来确定特征提取的区域

在区域内检测 patches,再归一化patch,最后计算patch 向量

2.3 Learning the visual vocabulary

将所有的图像提取的特征向量放在一起,利用K-Means聚类算法,每个聚类中心就代表一个”Visual Word”,K个中心就形成了我们的码本(Codebook)

Issue:

  1. 如何选择词汇量的大小
  • Too Small:不能代表所有的patch
  • Too Big:容易过拟合
  1. 计算效率
  • Vocabulary Tree

2.4 Bag of word representation

用统计直方图来描述一张新图像

过程:

  1. 对于一张新图像,提取其所有局部特征。

  2. 计算每个特征与码本中哪个“视觉单词”最相似(欧氏距离最近)。

  3. 将该特征归类到那个单词下(这一步叫向量量化)。

  4. 统计频率: 统计这张图中,每个视觉单词出现了多少次。

  5. 输出: 得到一个长度为 K 的直方图向量(例如:[单词1出现5次, 单词2出现0次, …, 单词K出现12次])。

2.5 Spatial pyramid representation

为了解决丢失空间信息的问题,课件中提到了 Lazebnik 等人 (CVPR 2006) 提出的空间金字塔方法:

  • 做法: 不直接统计整张图,而是将图像切分成 1*1 2*2 3*3 的网格。
  • 统计: 在每个小网格内分别计算 BoF 直方图。
  • 合并: 将所有层级、所有网格的直方图拼接起来。
  • 结果: 这样既保留了局部特征的统计特性,又引入了粗略的空间位置信息,显著提升了场景分类的准确率。