跳转至

把连续的数学函数(例如高斯分布)变成可计算的离散卷积核(也叫模板 / 算子),是数字图像处理里最基础也最常用的一类“落地”操作。一个非常通用的流程是:

  • 采样(Sampling): 在整数网格上取值
  • 截断(Windowing): 选一个有限窗口,丢掉远处几乎为 0 的部分
  • 归一化(Normalization): 按任务目标施加约束(和为 1、和为 0 等)

本文按“卷积核离散化 → 多尺度表示 → 特征点检测”的逻辑,把 Gaussian / LoG / DoG、图像金字塔、尺度空间、SIFT、PMK / SPM 串起来梳理一遍。


1 从连续函数到离散卷积核

1.1 高斯滤波(Gaussian Filter)

高斯滤波的核心是二维高斯分布函数:

\[ G(x, y) = \frac{1}{2\pi\sigma^2} e^{-\frac{x^2 + y^2}{2\sigma^2}} \]

1.1.1 确定参数

首先需要确定标准差 \(\sigma\)\(\sigma\) 决定平滑的程度(\(\sigma\) 越大越模糊)。

1.1.2 采样与截断(确定窗口大小)

理论上高斯函数在无穷远处才趋于 0,但计算机无法处理无限大的矩阵:

  • 规则: 根据正态分布的 “\(3\sigma\) 法则”,在 \(3\sigma\) 之外的权重极小,可以忽略
  • 窗口大小: 通常取 \((6\sigma + 1)\times(6\sigma + 1)\) 并向上取整为奇数。例如 \(\sigma=0.8\) 可取 \(3\times 3\)\(\sigma=1.0\) 可取 \(5\times 5\)
  • 坐标赋值: 以窗口中心为原点 \((0, 0)\)。对于 \(3\times 3\) 窗口,坐标 \((x, y)\)\(\{-1, 0, 1\}\)

1.1.3 计算离散值

将每个坐标 \((x, y)\) 代入公式。以 \(\sigma=1.0\)\(3\times 3\) 核为例:

  • \(G(-1, -1)=\frac{1}{2\pi} e^{-\frac{1 + 1}{2}}\approx 0.0585\)
  • \(G(0, 0)=\frac{1}{2\pi} e^{0}\approx 0.1592\)

以此类推计算出 9 个点的数值。

1.1.4 归一化(Normalization)

这一步决定了卷积核“做什么事”:为了保证滤波后图像整体亮度不变,高斯核通常要求所有元素之和为 1。

  • 将计算出的值加总求和得到 \(S\)
  • 让每个位置的值都除以 \(S\),得到离散的高斯卷积核

1.2 LoG 算子(Laplacian of Gaussian)

LoG 的思路是:先做高斯平滑,再取拉普拉斯二阶导。利用卷积结合律,这等价于先对高斯函数求导,再用导数核去卷积图像。

1.2.1 连续函数推导

\(G(x, y)\) 关于 \(x\)\(y\) 分别求二阶偏导并相加(\(\nabla^2 G\)),得到“墨西哥草帽”函数:

\[ LoG(x, y) = -\frac{1}{\pi\sigma^4}\left[1 - \frac{x^2 + y^2}{2\sigma^2}\right] e^{-\frac{x^2 + y^2}{2\sigma^2}} \]

1.2.2 采样与离散化

与高斯滤波类似,选定 \(\sigma\) 和窗口大小。由于 LoG 既有正值又有负值,窗口通常会比纯高斯核更大一些(例如 \(5\times 5\)\(9\times 9\)):

  • 将整数坐标 \((x, y)\) 代入上面的 LoG 公式,得到离散值

1.2.3 均值归零(Zero-Sum Constraint)

与高斯核不同,LoG 的目标是检测边缘(响应高频)。在平坦区域(灰度值相同)输出应接近 0,因此离散化后的 LoG 核常要求元素和为 0:

  • 计算所有元素之和,若不为 0,通常通过微调中心点或按比例缩放使整体和为 0

1.3 小结:Gaussian vs LoG

特性 高斯滤波(Gaussian) LoG 算子
数学形状 钟形曲线(Bell shape) 墨西哥草帽(Mexican Hat)
主要用途 去噪、平滑 边缘检测、斑点检测
核元素总和 必须等于 1(保持亮度) 通常等于 0(抑制平坦区)
中心点值 最大正值 极大的正值或负值
边缘表现 模糊边缘 提取二阶导数零交叉点

1.3.1 实际开发中的简化

在 OpenCV / MATLAB 中通常不需要手动推导离散值:

  1. 直接调用: 例如 OpenCV 的 getGaussianKernel
  2. 整数化近似: 为加速计算,有时会把浮点卷积核乘以系数(例如 16 或 256)并取整,例如 \(3\times 3\) 近似核:

$$ \frac{1}{16} \begin{bmatrix} 1 & 2 & 1 \ 2 & 4 & 2 \ 1 & 2 & 1 \end{bmatrix} $$

这种形式在嵌入式或实时视觉系统中很常见,因为可用移位运算替代除法。


2 DoG(Difference of Gaussians)

DoG(Difference of Gaussians),中文常称 “高斯差分”。它的核心操作非常简单:同一张图像分别用两个不同的 \(\sigma\) 做高斯模糊,再相减。

2.1 核心原理

DoG 的计算过程:

  1. 高斯模糊 1: 用标准差 \(\sigma_1\) 滤波得到 \(L_1\)
  2. 高斯模糊 2: 用标准差 \(\sigma_2\) 滤波得到 \(L_2\)(通常 \(\sigma_2>\sigma_1\)
  3. 相减: \(DoG = L_1 - L_2\)

直观上,高斯滤波是“低通滤波器”(保留低频,滤掉高频):

  • \(L_1\) 丢失少量细节
  • \(L_2\) 丢失更多细节
  • \(L_1 - L_2\) 提取的是两者之间的一段频带信息,近似“带通滤波器”

2.2 为什么要用 DoG(与 LoG 的关系)

DoG 最著名的一点:它是 LoG 的一个高效近似。

  • LoG 的问题: 二阶导数计算量大且对噪声敏感
  • DoG 的巧妙之处: 当两个高斯核的尺度比例 \(k=\sigma_2/\sigma_1\) 接近 1.6 时,DoG 的响应形状与 LoG 非常接近

因此在工程里,经常用 DoG 代替 LoG 去寻找图像中的特征点。


2.3 DoG 的典型应用

2.3.1 SIFT 关键点检测

SIFT(尺度不变特征变换)会构建 “高斯差分金字塔”:

  • 对图像做一系列不同程度的高斯模糊
  • 相邻模糊图像相减得到 DoG 图像
  • 在 DoG 的尺度空间中搜索局部极值点,作为候选关键点(斑点)

2.3.2 斑点检测(Blob Detection)

DoG 对圆形、明暗变化明显的斑点响应强。当斑点半径与 \(\sigma\) 匹配时响应最大。

2.3.3 边缘检测与增强

DoG 也能提取边缘,在一些艺术化处理里可用于模拟素描效果或增强细节(锐化)。


2.4 小结:DoG vs LoG vs 高斯滤波

算子 操作 作用 形象比喻
高斯滤波 平滑 / 模糊 去噪、提取低频 磨皮
LoG 二阶导数 边缘 / 斑点检测(精准但慢) 寻找轮廓和突变
DoG 相减 高效近似 LoG 用减法模拟求导

一句话总结:DoG 通过“两次模糊 + 一次相减”高效提取关键结构,是许多传统特征方法的基础组件。


3 图像金字塔(Image Pyramid)

图像金字塔是一幅图像在不同分辨率下的一组表示:越往上分辨率越低,视觉上像一座金字塔。

3.1 为什么需要图像金字塔

视觉任务里目标大小不确定:

  • 例如人脸可能占满屏幕(近处),也可能只有几个像素(远处)
  • 固定大小的卷积核(例如 \(3\times 3\))只能捕捉固定尺度的模式

图像金字塔的目的,是为算法提供 “多尺度视角”。


3.2 金字塔的结构

底层(Level 0)是原图,向上层层下采样:

  • 向下采样(Downsampling): 从底层到顶层,分辨率降低、信息减少
  • 向上采样(Upsampling): 从顶层到低层,为重建或融合服务,通常会更模糊

3.3 常见的两种金字塔

3.3.1 高斯金字塔(Gaussian Pyramid)

制作方法:

  1. 对当前层进行高斯滤波(平滑去噪)
  2. 删除所有偶数行和偶数列(降采样),图像缩小为原来的 \(1/4\)

用途:多尺度目标检测、早期特征匹配等。

3.3.2 拉普拉斯金字塔(Laplacian Pyramid)

拉普拉斯金字塔记录的是残差(丢失的高频信息)。

制作方法:

  1. 用高斯金字塔第 \(n\) 层减去第 \(n+1\) 层上采样后的结果
  2. \(L_i = G_i - \text{Upsample}(G_{i+1})\)

用途:

  • 图像压缩:平坦区域接近 0,利于编码
  • 图像重建:用残差与顶层小图可还原原图
  • 图像融合:多尺度无缝拼接(经典例子是苹果与橙子融合)

3.4 现代视觉中的应用

  • SIFT 的尺度空间: DoG 就是在高斯金字塔相邻层之间做差
  • FPN(特征金字塔网络): 深度网络里多层特征天然构成金字塔,FPN 把深层语义传回浅层,增强小目标检测能力
  • 粗到精(Coarse-to-fine): 光流 / 配准等问题里先在小图估位移,再逐层精修

4 尺度空间(Scale Space)

尺度空间是同一幅图像在不同模糊程度(不同 \(\sigma\))下的连续表示。

4.1 为什么需要尺度

物体只有在特定尺度下才“有意义”:

  • 微观尺度看叶脉纹理
  • 中观尺度看树冠形状
  • 宏观尺度可能只是一个绿色斑点

相机不知道目标距离:同一物体在图像里可能大也可能小。尺度空间提供了跨尺度的鲁棒表征。


4.2 高斯尺度空间的定义

在图像处理里(数学上有严格论证),构建尺度空间的基本手段是高斯模糊:

\[ L(x, y, \sigma)=G(x, y, \sigma) * I(x, y) \]
  • \(I(x, y)\) 是原始图像
  • \(G(x, y, \sigma)\) 是高斯核
  • \(\sigma\) 是尺度参数

关键点:

  • \(\sigma\) 小:模糊弱,代表精细尺度(细节多)
  • \(\sigma\) 大:模糊强,代表粗略尺度(结构多)

4.3 两个常见维度:Octave 与 Layer

  • Octave(八度): 对应图像金字塔的分辨率层级,每个 Octave 让分辨率减半
  • Layer(层): 在同一分辨率下使用不同 \(\sigma\) 的多次高斯模糊

4.4 为什么必须用高斯核(因果性)

高斯核的关键性质是:随着尺度增大,只会“丢失结构”,不会凭空产生新结构(避免伪边缘与振铃)。这保证了尺度空间的单调性 / 因果性。


4.5 尺度空间的应用:特征检测

尺度空间最重要的用途之一,是 自动选择尺度。例如在 SIFT 中:

  • \(x, y\) 平面上比较邻域像素
  • \(\sigma\) 轴上比较相邻尺度层

若某点在 \((x, y, \sigma)\) 三维邻域内是局部极值,则视为关键点,同时得到它的 “特征尺度”(例如在 \(\sigma=3.2\) 时响应最强)。


5 SIFT:尺度不变特征变换

SIFT(Scale-Invariant Feature Transform)由 David Lowe 1999 年提出、2004 年完善。它在深度学习普及前是特征匹配与识别的工业标准之一。

5.1 四个不变性

  1. 尺度不变性
  2. 旋转不变性
  3. 光照不变性
  4. 视角不变性(一定范围内)

5.2 四个步骤

5.2.1 尺度空间极值检测(候选点)

  • 构建高斯金字塔(平滑 + 降采样)
  • 计算 DoG(相邻高斯层做差)
  • 对每个像素,与 **26 个邻居**比较(本层 8 个 + 上层 9 个 + 下层 9 个),找局部极值点

5.2.2 关键点精确定位(剔除坏点)

  1. 子像素补偿:用泰勒展开把坐标从整数像素精确到亚像素
  2. 剔除低对比度点:响应太小的点多半来自噪声
  3. 剔除边缘响应点:利用 Hessian 主曲率,去掉不稳定边缘点

5.2.3 方向分配(实现旋转不变性)

  1. 计算梯度幅值与方向
  2. 统计 36-bin 方向直方图(覆盖 360 度,每 10 度一柱)
  3. 取主峰为主方向;若次峰达到主峰 80%,可额外生成一个方向关键点

5.2.4 生成描述子(128 维向量)

  1. 对齐到主方向
  2. \(16\times 16\) 窗口,划分为 \(4\times 4\) 个小块
  3. 每个小块统计 8 个方向的梯度直方图:\(4\times 4\times 8=128\)
  4. 对 128 维向量归一化,提高光照鲁棒性

5.3 匹配策略与优缺点

匹配通常用欧氏距离,再用 Lowe’s Ratio Test 过滤不可靠匹配:对图 A 的一个点,在图 B 找最近两点距离 \(d_1, d_2\),若 \(d_1/d_2<0.8\) 则保留。

优点:

  • 稳定:在噪声、遮挡、仿射变化下仍较鲁棒
  • 区分度高:128 维描述子信息丰富

缺点:

  • 速度慢:金字塔 + 描述子计算耗时
  • 专利曾限制使用(2020 年后专利到期)

6 从 BoW 到空间信息:PMK 与 SPM

传统 BoW(词袋模型)丢弃空间结构,只保留“有什么”,不保留“在哪里”。PMK 与 SPM 是把多尺度思想引入匹配与分类的重要桥梁。

6.1 PMK(Pyramid Match Kernel)

PMK 解决 “不等长特征集如何比较” 的问题:在特征空间中建立金字塔,并用直方图交集统计重合程度,越细层级的重合权重越高。

6.2 SPM(Spatial Pyramid Matching)

SPM 把 PMK 的思想搬到图像空间:把图像递归划分为 \(1\times 1\)\(2\times 2\)\(4\times 4\) 等网格,在每个网格统计特征直方图,再按层级加权拼接为长向量用于分类(例如 SVM)。

6.3 对比:PMK vs SPM

特性 PMK(Pyramid Match Kernel) SPM(Spatial Pyramid Matching)
划分对象 特征空间(Feature Space) 图像空间(Spatial / Image Space)
主要目的 快速比较不等长特征集 在分类中引入空间结构
层级意义 相似程度的粗细刻画 空间位置精确度(局部 vs 整体)

6.4 为什么后来不那么常提

随着 CNN 的普及:

  • 网络的层级结构天然形成多尺度特征
  • FPN 等结构可以视为 SPM 思想的现代版本
  • “手工特征 + 码本” 被“端到端学习特征”替代

7 总结

  • 卷积核离散化的关键是 “采样 + 截断 + 归一化”,不同任务对应不同约束
  • DoG 是 LoG 的高效近似,是多尺度特征检测的经典组件
  • 图像金字塔解决分辨率尺度,尺度空间解决模糊尺度,两者结合支撑了 SIFT 等传统方法
  • PMK / SPM 把多尺度思想引入匹配与分类,是从 BoW 走向结构感知的关键一步