计算机视觉——图像金字塔与目标图像边缘检测原理与实践

一、两个图像块之间的相似性或距离度量

1.1 平方差和(SSD)

平方差和(SSD) 是一种常用的图像相似性度量方法。它通过计算两个图像在每个对应位置的像素值差的平方和来衡量两个图像之间的整体差异。如果两个图像在每个位置的像素值完全相同,SSD 将为零,表明这两个图像是完全相同的。而如果像素值存在差异,SSD 将是一个非零值,表明这两个图像存在差异。

例如,假设我们有两个图像块 ( I_1 ) 和 ( I_2 ),它们的像素值分别为:

I 1 = [ 1 2 3 4 ] , I 2 = [ 1 2 3 5 ] I_1 = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}, \quad I_2 = \begin{bmatrix} 1 & 2 \\ 3 & 5 \end{bmatrix} I1=[1324],I2=[1325]

那么,它们的 SSD 可以计算为:

S S D = ( 1 − 1 ) 2 + ( 2 − 2 ) 2 + ( 3 − 3 ) 2 + ( 4 − 5 ) 2 = 1 SSD = (1-1)^2 + (2-2)^2 + (3-3)^2 + (4-5)^2 = 1 SSD=(1−1)2+(2−2)2+(3−3)2+(4−5)2=1

SSD 的缺点在于它对图像的平均强度非常敏感。例如,如果两个图像的整体亮度不同,即使它们的结构相似,SSD 也会产生较大的值。如下图所示:

1.2 归一化交叉相关(NCC)

归一化交叉相关(NCC) 是一种更为鲁棒的图像相似性度量方法。它通过先对两个图像的像素值进行归一化处理,然后计算它们之间的交叉相关性。归一化过程可以有效消除两个图像之间整体强度差异的影响,使 NCC 对强度变化更具鲁棒性。

NCC 的计算公式为:

N C C = ∑ i = 1 n ( I 1 ( i ) − I 1 ˉ ) ( I 2 ( i ) − I 2 ˉ ) ∑ i = 1 n ( I 1 ( i ) − I 1 ˉ ) 2 ∑ i = 1 n ( I 2 ( i ) − I 2 ˉ ) 2 NCC = \frac{\sum_{i=1}^{n} (I_1(i) - \bar{I_1})(I_2(i) - \bar{I_2})}{\sqrt{\sum_{i=1}^{n} (I_1(i) - \bar{I_1})^2 \sum_{i=1}^{n} (I_2(i) - \bar{I_2})^2}} NCC=∑i=1n(I1(i)−I1ˉ)2∑i=1n(I2(i)−I2ˉ)2 ∑i=1n(I1(i)−I1ˉ)(I2(i)−I2ˉ)

其中, I 1 ˉ \bar{I_1} I1ˉ 和 I 2 ˉ \bar{I_2} I2ˉ分别是图像 I 1 I_1 I1 和 I 2 I_2 I2 的平均像素值。

例如,对于上述两个图像块 I 1 I_1 I1 和 I 2 I_2 I2,它们的 NCC 可以计算为:

I 1 ˉ = 2.5 , I 2 ˉ = 2.75 \bar{I_1} = 2.5, \quad \bar{I_2} = 2.75 I1ˉ=2.5,I2ˉ=2.75

N C C = ( 1 − 2.5 ) ( 1 − 2.75 ) + ( 2 − 2.5 ) ( 2 − 2.75 ) + ( 3 − 2.5 ) ( 3 − 2.75 ) + ( 4 − 2.5 ) ( 5 − 2.75 ) ( ( 1 − 2.5 ) 2 + ( 2 − 2.5 ) 2 + ( 3 − 2.5 ) 2 + ( 4 − 2.5 ) 2 ) ( ( 1 − 2.75 ) 2 + ( 2 − 2.75 ) 2 + ( 3 − 2.75 ) 2 + ( 5 − 2.75 ) 2 ) ≈ 0.97 NCC = \frac{(1-2.5)(1-2.75) + (2-2.5)(2-2.75) + (3-2.5)(3-2.75) + (4-2.5)(5-2.75)}{\sqrt{((1-2.5)^2 + (2-2.5)^2 + (3-2.5)^2 + (4-2.5)^2)((1-2.75)^2 + (2-2.75)^2 + (3-2.75)^2 + (5-2.75)^2)}} \approx 0.97 NCC=((1−2.5)2+(2−2.5)2+(3−2.5)2+(4−2.5)2)((1−2.75)2+(2−2.75)2+(3−2.75)2+(5−2.75)2) (1−2.5)(1−2.75)+(2−2.5)(2−2.75)+(3−2.5)(3−2.75)+(4−2.5)(5−2.75)≈0.97

NCC 的值范围为 ([-1, 1]),其中 1 表示两个图像完全相同,-1 表示两个图像完全相反,0 表示两个图像之间没有相关性。

1.3 SSD 与 NCC 对比

特性 SSD NCC
计算速度
对强度变化的敏感性 非常敏感 鲁棒
适用场景 适用于强度一致的图像块比较 适用于强度变化较大的图像块比较

二、 图像金字塔

2.1 图像金字塔概述

图像金字塔 是一种多分辨率的图像表示方式,它通过构建一个包含不同分辨率图像的层次结构来表示原始图像。图像金字塔的每一层都是原始图像的一个下采样版本,从最高分辨率的图像(位于金字塔顶部)到最低分辨率的图像(位于金字塔底部)。这种多分辨率表示方法在图像处理和计算机视觉中具有广泛的应用,例如目标检测、图像融合和特征提取等。

2.2 高斯金字塔

高斯金字塔 是一种常见的图像金字塔构建方法。它通过反复对图像应用高斯模糊滤波器并以 2 的因子进行下采样来生成不同分辨率的图像。高斯滤波器是一种低通滤波器,可以有效去除图像中的高频细节,使图像更加平滑。因此,高斯金字塔中的每一层图像都比上一层图像更平滑且分辨率更低。

高斯金字塔的构建过程如下:

  1. 对原始图像 ( I ) 应用高斯模糊滤波器,得到模糊后的图像 ( I_{\text{blur}} )。
  2. 对 ( I_{\text{blur}} ) 进行下采样,即每隔一个像素取一个像素,得到下采样后的图像 ( I_{\text{down}} )。
  3. 重复步骤 1 和 2,直到达到所需的分辨率层次。

例如,假设我们有一个原始图像 ( I ),其高斯金字塔的构建过程如下图所示:

高斯金字塔的主要应用包括:

  • 多分辨率图像分析:在不同的空间尺度上寻找目标。例如,在目标检测中,可以在不同分辨率的图像上分别检测目标,从而提高检测的鲁棒性。
  • 粗到细的图像处理:在非常低分辨率的图像上进行模糊估计或运动分析,然后上采样并重复。这种方法可以有效避免复杂估计任务中的局部最小值问题。

2.3 拉普拉斯金字塔

拉普拉斯金字塔 是另一种图像金字塔构建方法。它通过从原始图像中减去下采样版本的图像来生成每一层的图像。生成的图像是原始图像的高通滤波版本,突出了细节和边缘。

拉普拉斯金字塔的构建过程如下:

  1. 构建高斯金字塔 G G G。
  2. 对高斯金字塔的每一层 G i G_i Gi 进行上采样,得到上采样后的图像 G i up G_i^{\text{up}} Giup。
  3. 计算 G i up G_i^{\text{up}} Giup 与下一层高斯金字塔图像 G i + 1 G_{i+1} Gi+1 之间的差异,得到拉普拉斯金字塔的第 i i i 层图像 L i L_i Li。

例如,假设我们有一个高斯金字塔 G G G,其拉普拉斯金字塔的构建过程如下图所示:

拉普拉斯金字塔的主要应用包括:

  • 纹理合成:通过操作拉普拉斯金字塔的每一层,可以生成具有特定纹理的图像。
  • 图像压缩:拉普拉斯金字塔可以用于图像压缩,通过保留重要的细节信息,减少存储空间。
  • 噪声去除:通过操作拉普拉斯金字塔的每一层,可以去除图像中的噪声,同时保留重要的细节信息。

2.4 上采样与重建算法

上采样是将低分辨率图像恢复为高分辨率图像的过程。在拉普拉斯金字塔中,上采样通常通过在像素之间插入零,然后应用低通滤波器来实现。例如,假设我们有一个低分辨率图像 ( I_{\text{low}} ),其上采样过程如下图所示:

重建算法是将拉普拉斯金字塔的每一层图像重新组合成原始图像的过程。通过将每一层的拉普拉斯图像与上一层的高斯图像相加,可以逐步恢复出原始图像。例如,假设我们有一个拉普拉斯金字塔 ( L ) 和一个高斯金字塔 ( G ),其重建过程如下图所示:

2.5 使用图像金字塔进行模板匹配

图像金字塔可以用于加速模板匹配过程。通过在不同分辨率的图像上分别进行模板匹配,可以快速定位目标的大致位置,然后在高分辨率图像上进行精确匹配。这种方法可以有效提高匹配的效率和鲁棒性。

例如,假设我们有一个模板图像 ( T ) 和一个目标图像 ( I ),其使用图像金字塔进行模板匹配的过程如下图所示:

2.6 图像融合

图像融合是指将两张图像的信息进行融合,生成一张新的图像。图像金字塔可以用于图像融合,通过将两张图像的拉普拉斯金字塔分别进行融合,然后重建出融合后的图像。

图像融合的步骤如下:

  1. 为两张图像分别构建拉普拉斯金字塔 ( LA ) 和 ( LB )。
  2. 为蒙版构建高斯金字塔 ( G )。
  3. 构建组合拉普拉斯金字塔 ( L(j) = G(j) \cdot LA(j) + (1-G(j)) \cdot LB(j) )。
  4. 将组合拉普拉斯金字塔 ( L ) 压缩以获得融合后的图像。

例如,假设我们有两张图像 ( A ) 和 ( B ),以及一个蒙版 ( M ),其图像融合过程如下图所示:

三、 边缘检测

3.1 边缘检测概述

边缘检测 是图像处理和计算机视觉中的一个重要任务,其目标是识别图像中的突然变化(不连续性)。边缘通常对应于物体的轮廓、纹理的变化或光照的变化。通过边缘检测,我们可以提取图像中的重要结构信息,为后续的图像分析和目标识别提供基础。

3.2 导致边缘的原因

边缘的形成通常与以下因素有关:

  • 反射率变化:物体表面的反射率发生变化,例如从光滑表面到粗糙表面,会导致边缘的出现。
  • 表面方向变化:物体表面的方向发生变化,例如从平面到曲面,会导致边缘的出现。
  • 深度不连续性:物体的深度发生变化,例如从前景到背景,会导致边缘的出现。
  • 投影阴影:光照的变化会导致投影阴影的出现,从而形成边缘。

例如,以下图展示了不同类型的边缘:

3.3 图像梯度

图像梯度是边缘检测中的一个重要概念。它反映了图像中像素值的变化率,可以通过计算像素值在水平方向和垂直方向上的差分来得到。图像梯度的大小和方向可以用于检测边缘的位置和方向。

例如,以下图展示了图像梯度的计算方法:

3.4 噪声的影响

噪声会对边缘检测产生很大的影响。差分滤波器对噪声的响应很强,图像中的噪声会导致像素与其邻居看起来非常不同,从而产生虚假的边缘。因此,在进行边缘检测之前,通常需要对图像进行平滑处理,以去除噪声。

例如,以下图展示了噪声对边缘检测的影响:

3.5 解决方案:先平滑

为了减少噪声对边缘检测的影响,可以在进行边缘检测之前对图像进行平滑处理。常用的平滑方法是使用高斯滤波器对图像进行卷积,从而去除图像中的高频噪声。

例如,以下图展示了使用高斯滤波器进行平滑处理的效果:

3.6 σ 对导数的影响

高斯滤波器的尺度参数 ( \sigma ) 对边缘检测的结果有重要影响。较大的 ( \sigma ) 值可以检测到较大尺度的边缘,而较小的 ( \sigma ) 值可以检测到更细微的特征。因此,在进行边缘检测时,需要根据具体的应用场景选择合适的 ( \sigma ) 值。

例如,以下图展示了不同 ( \sigma ) 值对边缘检测的影响:

3.7 平滑滤波器与导数滤波器

平滑滤波器和导数滤波器是图像处理中的两种常用滤波器。平滑滤波器用于减少图像中的噪声和其他变化,从而生成更平滑、更均匀的图像。导数滤波器用于通过计算图像相对于其一个或多个维度的导数来突出图像中的特征。

平滑滤波器和导数滤波器的主要区别如下:

特性 平滑滤波器 导数滤波器
作用 减少噪声,生成平滑图像 突出特征,增加对比度
常见类型 均值滤波器、中值滤波器、高斯滤波器 Sobel 滤波器、Prewitt 滤波器、Roberts 交叉滤波器

例如,以下图展示了平滑滤波器和导数滤波器的效果:

3.8 高斯拉普拉斯(LoG)

高斯拉普拉斯(LoG) 是一种常用的边缘检测方法。它通过将高斯滤波器与拉普拉斯算子结合,可以有效检测图像中的边缘和线条。LoG 核对图像中的边缘和其他不连续性非常敏感,通常用于检测图像中的边缘和线条。它还可以用于识别诸如角点和斑点等特征。

LoG 核的计算公式为:

L o G ( x , y ) = ∂ 2 ∂ x 2 G ( x , y ) + ∂ 2 ∂ y 2 G ( x , y ) LoG(x, y) = \frac{\partial^2}{\partial x^2} G(x, y) + \frac{\partial^2}{\partial y^2} G(x, y) LoG(x,y)=∂x2∂2G(x,y)+∂y2∂2G(x,y)

其中, G ( x , y ) G(x, y) G(x,y) 是高斯滤波器。

LoG 核的一个优点是它具有旋转不变性,这意味着它可以检测图像中任意方向的特征。它对噪声相对不敏感,因此适用于检测噪声图像中的特征。然而,LoG 核的计算成本可能较高,因为它需要对图像进行多次卷积。

例如,以下图展示了 LoG 核的应用效果:

3.9 设计边缘检测器

设计边缘检测器需要考虑以下几个因素:

  • 边缘的定义:边缘是指图像中像素值的突然变化,可以通过计算图像的梯度来检测。
  • 噪声的抑制:在进行边缘检测之前,需要对图像进行平滑处理,以去除噪声。
  • 边缘的定位:边缘检测器需要能够准确地定位边缘的位置。
  • 边缘的方向:边缘检测器需要能够检测边缘的方向。

例如,以下图展示了边缘检测器的设计过程:

3.10 Canny 边缘检测器

Canny 边缘检测器 是一种经典的边缘检测算法,它通过多个步骤来检测图像中的边缘,同时抑制噪声和其他无关信息。Canny 边缘检测器的主要步骤如下:

  1. 高斯模糊:应用高斯滤波器对图像进行平滑处理,以消除噪声和其他变化。
  2. 梯度幅度和方向:使用 Sobel 算子或其他导数滤波器计算图像中每个像素的梯度幅度和方向。
  3. 非极大值抑制:通过比较每个像素的梯度幅度与其邻居的梯度幅度来抑制不属于边缘的像素。
  4. 滞后阈值处理:应用两个阈值来确定哪些像素属于边缘。梯度幅度高于较高阈值的像素被认为是强边缘,梯度幅度在两个阈值之间的像素被认为是弱边缘。只有强边缘和连接到强边缘的弱边缘才会被保留。

例如,以下图展示了 Canny 边缘检测器的各个步骤:

Canny 边缘检测器的一个优点是它能够产生相对细且连续的边缘,这使其在目标识别和图像分割等任务中非常有用。它对噪声相对不敏感,因此适用于检测噪声图像中的边缘。然而,Canny 边缘检测器对阈值的选择较为敏感,如果阈值设置不当,可能会遗漏一些边缘。

相关推荐
LIUDAN'S WORLD1 小时前
YOLOv3实践教程:使用预训练模型进行目标检测
人工智能·深度学习·yolo·计算机视觉
驼驼学编程4 小时前
目标检测与分割:深度学习在视觉中的应用
人工智能·深度学习·目标检测·计算机视觉
2401_878624795 小时前
opencv 形态学变换
人工智能·opencv·计算机视觉
编程见习者6 小时前
OpenCV的详细介绍与安装(一)
c++·人工智能·opencv·计算机视觉
CH3_CH2_CHO6 小时前
DAY06:【pytorch】图像增强
人工智能·pytorch·计算机视觉
Blossom.11811 小时前
边缘计算与隐私计算的融合:构建数据经济的“隐形护盾“
人工智能·深度学习·神经网络·目标检测·计算机视觉·数据挖掘·边缘计算
Clocky711 小时前
图像预处理-色彩空间补充,灰度化与二值化
人工智能·计算机视觉
温文尔雅透你娘12 小时前
摄像头在自动驾驶中的核心应用:感知算法与技术方案深度解析
人工智能·算法·计算机视觉·目标跟踪·自动驾驶
3DVisionary14 小时前
3D-DIC技术:煤层开采瓦斯防治的精准监测解决方案
人工智能·计算机视觉·3d·安全生产·3d-dic技术 煤层开采·瓦斯防治 裂隙演化·物理模拟实验 数字图像相关算法
2401_8786247914 小时前
opencv 灰度实验
人工智能·opencv·计算机视觉