第14章 计算机视觉与传统机器学习

在深度学习爆发之前,计算机视觉(Computer Vision, CV)领域的主要研究方向,是如何让机器从图像中“提取可用于机器学习的特征”,并用这些特征配合传统算法(如 SVM、KNN、Random Forest 等)完成分类、检测、识别等任务。

本章系统介绍传统机器学习在计算机视觉中的关键方法、特征工程技巧与经典应用案例。


14.1 图像特征(SIFT、HOG、LBP)

📷 1️⃣ 图像特征的概念

图像的像素本身只是数值(亮度、颜色),并不能直接代表“语义”。 图像特征提取的目标是:

将原始像素数据转化为对机器学习算法有意义的数值向量表示。

特征要尽可能:

  • 稳定(对光照、旋转、尺度变化不敏感)
  • 判别性强(不同类别的图像差异大)
  • 可压缩(维度较低,便于计算)

🔹 2️⃣ SIFT(Scale-Invariant Feature Transform)

发明人:David Lowe(1999) 目标:找到图像中不随尺度、旋转、亮度变化而改变的关键点。

核心思想:

  1. 构建高斯金字塔(多尺度图像);
  2. 在不同尺度的图像中寻找局部极值点;
  3. 计算关键点周围梯度方向分布;
  4. 用 128 维向量描述关键点(描述符);
  5. 在图像匹配、拼接、目标识别中广泛应用。

优点:鲁棒性强、匹配效果好。 缺点:计算开销大,速度慢。


🔹 3️⃣ HOG(Histogram of Oriented Gradients)

发明人:Dalal & Triggs(2005) 经典用途:行人检测(Pedestrian Detection)

基本思路:

  1. 将图像分为小块(Cell);
  2. 统计每个 Cell 的梯度方向直方图;
  3. 对多个 Cell 归一化,形成 Block;
  4. 拼接成整体特征向量。

优点:对光照、阴影变化不敏感,计算效率高。 缺点:不具备旋转、尺度不变性。


🔹 4️⃣ LBP(Local Binary Pattern)

核心思想: 比较中心像素与周围像素亮度,大于中心像素记为 1,小于记为 0,形成二进制模式。

LBP 特征用途:

  • 人脸识别(经典)
  • 纹理分类
  • 场景识别

特点:

  • 简单快速;
  • 对光照变化鲁棒;
  • 但对旋转和噪声敏感。

🔹 5️⃣ 其他传统特征

特征 说明
SURF SIFT 的加速版,使用积分图和近似滤波器
Gabor 模仿视觉皮层神经元响应的滤波器
Color Histogram 颜色分布特征
Edge/Corner Features 如 Harris、FAST、Canny 边缘检测等

14.2 图像分类与目标检测

🧩 图像分类的传统流程

在深度学习之前,图像分类几乎都遵循以下流程:

  1. 图像预处理:灰度化、归一化、去噪;
  2. 特征提取:如 SIFT、HOG;
  3. 特征编码:Bag of Visual Words(BoVW)、Fisher Vector;
  4. 分类器训练:SVM、KNN、Random Forest;
  5. 评估预测

📌 BoVW 模型(经典)

  • 借鉴 NLP 的「词袋模型」;
  • 将局部特征(如 SIFT)聚类成“视觉词汇表”;
  • 图像用这些词频统计表示;
  • 最后用 SVM 分类。

🎯 目标检测的传统方法

目标检测需要找出“图像中目标的位置 + 类别”。

深度学习前的主流方法:

  • Sliding Window + Classifier 在图像上滑动窗口,对每个区域提取 HOG 特征,使用 SVM 分类;
  • DPM(Deformable Part Model) 模拟物体由多个部分组成的结构(Felzenszwalb, 2008);
  • Selective Search + SVM 在深度学习出现之前,R-CNN 就是基于这种候选区域思想发展的。

这些方法计算量大,但为后来的 CNN 检测算法(如 Faster R-CNN)奠定了基础。


14.3 人脸识别中的机器学习

人脸识别是计算机视觉最早的成功领域之一。

📷 经典流程:

  1. 人脸检测

    • Viola-Jones 算法(2001):基于 Haar 特征 + AdaBoost 分类器
    • 经典、实时、高效,被广泛用于早期相机“人脸框检测”
  2. 人脸特征提取

    • PCA(Eigenfaces)
    • LDA(Fisherfaces)
    • LBP(纹理特征)
  3. 分类与识别

    • KNN 或 SVM 分类
    • 最近邻匹配 + 阈值判断

📘 在深度学习出现前,人脸识别主要依靠统计学习(PCA/LDA)与纹理特征。 而 2014 年之后(DeepFace, FaceNet),深度学习彻底取代了这些传统方法。


14.4 视觉特征与深度学习的衔接

传统视觉算法与深度学习之间并非割裂,而是连续演化:

阶段 特征提取方式 分类器 典型方法 特点
早期(1990s) 手工特征(SIFT, HOG) SVM / KNN BoVW, DPM 特征依赖人工经验
过渡期(2010s) 特征学习(Autoencoder, Sparse Coding) SVM / Softmax Deep Feature + SVM 尝试自动学习特征
深度学习时代(2012-) 端到端 CNN Softmax / Transformer Head AlexNet, ResNet, ViT 特征自动学习、性能爆发

💡 深度学习的本质突破:

  • 不再手工提取特征,而是通过反向传播自动学习“最佳特征”
  • 从“人工设计特征” → “数据驱动学习特征”的范式转变。

✅ 小结

模块 关键思想 代表算法
图像特征提取 提取可判别的局部/全局特征 SIFT, HOG, LBP
图像分类 特征 + 分类器(SVM/KNN) BoVW, HOG+SVM
目标检测 滑窗 + 分类器 DPM, Viola-Jones
人脸识别 特征降维 + 分类 PCA, LDA, LBP
深度衔接 从人工特征 → 自动学习特征 CNN, ViT