1.3 2-2

👁 33 👍 0 💬 0 字数 2424 阅读 9 分钟

实验2-2 特征检测

姓名: 刘欣楠

学号: 2233310237

班级: 数学强基 2301

电子版密码: lxn-cvpr2-2

实验内容

  1. 计算基于高斯一阶微分的图像梯度(幅值图与方向图), 分析高斯方差对图像梯度的影响;

  2. 利用Canny边缘检测器, 完成图像的边缘检测实验, 并展示每个环节的处理结果;

  3. 利用Harris角点检测器, 完成图像的角点检测实验, 分析窗口参数对角点检测的影响, 并讨论角点检测的不变性、等变性与定位精度等.

实验目的

  1. 掌握基于高斯一阶微分的图像梯度计算过程;

  2. 掌握Canny边缘检测原理, 理解好的边缘检测器应具备的特性;

  3. 掌握Harris角点检测原理, 理解角点检测的不变性、等变性与定位精度等;

实验原理

基于高斯一阶微分的图像梯度

二维高斯函数: $ G_{\sigma}(x,y)=\dfrac{1}{2\pi\sigma^2} e^{-\frac{x^2+y^2}{2\sigma^2}} $

高斯一阶微分: $ \dfrac{\partial G_{\sigma}(x,y)}{\partial x} =\dfrac{1}{2\pi\sigma^2}\left(-\frac{x}{\sigma^2}\right) e^{-\frac{x^2+y^2}{2\sigma^2}} $, $ \dfrac{\partial G_{\sigma}(x,y)}{\partial y} =\dfrac{1}{2\pi\sigma^2}\left(-\frac{y}{\sigma^2}\right) e^{-\frac{x^2+y^2}{2\sigma^2}} $

基于高斯一阶微分的图像梯度: $ \nabla f_G = \nabla (G * f) = \left[ \frac{\partial G}{\partial x} * f,\; \frac{\partial G}{\partial y} * f \right] $

记 $ \frac{\partial f_G}{\partial x} = \frac{\partial G}{\partial x} * f,\quad \frac{\partial f_G}{\partial y} = \frac{\partial G}{\partial y} * f $

梯度幅度图: $ |\nabla f| = \sqrt{ \left(\frac{\partial f_G}{\partial x}\right)^2 + \left(\frac{\partial f_G}{\partial y}\right)^2 } $

相位图: $ \theta = \arctan\left( \frac{\partial f_G / \partial y}{\partial f_G / \partial x} \right) $

Canny 边缘检测原理

边缘:图像中亮度剧烈变化的位置。

检测方法:

  1. 先用高斯对图像进行滤波降噪;
  2. 再用一阶差分求滤波后图像的梯度幅值与梯度方向;
  3. 在梯度方向上对幅值进行非最大化抑制(NMS);
  4. 最后用双阈值算法检测与连接边缘。

参考文献:J. Canny, \textit{A computational approach to edge detection}. PAMI, 1986.

一阶微分算子

一阶差分算子: $ H_x = \begin{bmatrix} 1 & -1 \end{bmatrix}, \quad H_y= \begin{bmatrix} 1 \ -1 \end{bmatrix} $

Sobel 算子: $ Sobel_x = \begin{bmatrix} 1 \ 2 \ 1 \end{bmatrix} * \begin{bmatrix} 1 & 0 & -1 \end{bmatrix} = \begin{bmatrix} 1 & 0 & -1 \ 2 & 0 & -2 \ 1 & 0 & -1 \end{bmatrix} $ $ Sobel_y = \begin{bmatrix} 1 & 2 & 1 \ 0 & 0 & 0 \ -1 & -2 & -1 \end{bmatrix} $

其他可选的模板:Prewitt 算子、Roberts 模板等。

非极大值抑制(NMS)

$g(q)$ 表示 $q$ 点的梯度向量,沿梯度方向的前后方向各取一个像素步长,得点 $ r = q + \frac{g(q)}{|g(q)|},\quad p = q - \frac{g(q)}{|g(q)|} $

若 $ |g(q)| \ge |g(r)| \quad\text{且}\quad |g(q)| \ge |g(p)| $ 则保留 $q$ 点的梯度,否则抑制。

梯度方向量化处理后,比较 $q$$3\times3$ 邻域对应方向的大小。

NMS 目的:抑制非极大值,保留局部最大值,从而细化边缘。

边缘连接

使用双阈值法区分强边缘与弱边缘,并进行连接:

设高阈值为 $TH$,低阈值为 $TL$$TH > TL$):

  • 梯度幅值 $>TH$ 的点为强边缘;
  • $<TL$ 的点被抛弃;
  • 介于其中的点为弱边缘,若连接到强边缘则保留,否则丢弃。

Harris 角点检测原理

角点定义:在图像中某点处窗口向任意方向移动后,移动前后图像灰度差变化剧烈,则该窗口中心处为角点。

参考文献: C. Harris and M. Stephens. \textit{A combined corner and edge detector}. 1988.

窗口移动前后灰度变化量

$ E(u,v) = \sum_{(x,y)\in W} \left[ I(x+u,y+v) - I(x,y) \right]^2 $

使用泰勒展开: $ I(x+u,y+v)=I(x,y)+\frac{\partial I}{\partial x}u +\frac{\partial I}{\partial y}v+\text{高阶项} $

忽略高阶项,则: $ E(u,v) = \sum_{(x,y)\in W} \left[ I_x u + I_y v \right]^2 = \begin{bmatrix} u & v \end{bmatrix} \left[ \sum \begin{bmatrix} I_x^2 & I_x I_y \ I_x I_y & I_y^2 \end{bmatrix} \right] \begin{bmatrix} u \ v \end{bmatrix} $

定义二阶矩阵: $ M = \sum_{(x,y)\in W} w(x,y) \begin{bmatrix} I_x^2 & I_x I_y \ I_x I_y & I_y^2 \end{bmatrix} = \begin{bmatrix} a_{11} & a_{12} \ a_{21} & a_{22} \end{bmatrix} $

Harris 响应函数

$ R = \det(M) - \alpha \cdot \operatorname{trace}(M)^2 = \lambda_1 \lambda_2 - \alpha (\lambda_1+\lambda_2)^2 $

其中 $\alpha\in[0.04,0.06]$

$\det(M)=a_{11}a_{22}-a_{12}^2$, $\operatorname{trace}(M)=a_{11}+a_{22}$

非最大值抑制(NMS)

$R$ 在局部邻域内做最大值选择: $ x^0 = \arg\max_{x_n\in \Omega} p(x_n) $

实验步骤及结果

求基于高斯一阶微分的图像梯度(幅值图与方向图)

  • 选择 $\sigma\in\{0.5,1.0,2.0\}$,计算 $G_x, G_y$ 卷积后的 $I_x,I_y$,再求幅值与方向;
  • 幅值图随 $\sigma$ 增大而更平滑,细节与噪声被抑制;方向图用色相编码,平滑后方向更连续。

图

图

图

图

从图\ref{fig:task1-sigma05}、图\ref{fig:task1-sigma1} 与图~\ref{fig:task1-sigma2} 可以观察到: - 当 $\sigma=0.5$ 时,梯度图($I_x,I_y$)中保留了大量细节,高频纹理(如帽子边缘与头发)表现明显,但噪声同样被强化,因此幅值图存在较多零碎细节; - 当 $\sigma=1.0$ 时,细节适度平滑,边缘更为连续,梯度方向图中色相分布较规则,说明方向估计稳定; - 当 $\sigma=2.0$ 时,图像被强烈平滑,细节大量丢失,但主要结构(轮廓、大型边缘)依然清晰,使得梯度幅值图呈现为大范围、低噪声的响应;

从方向图可以看出角度编码更加连续,这表明较大的 $\sigma$ 能有效提升方向估计的稳定性。 - 小 $\sigma$:纹理清晰,但噪声敏感; - 大 $\sigma$:更稳定、平滑,适合后续边缘检测与角点检测;

利用 Canny 边缘检测器,完成图像的边缘检测

  • 对平滑尺度做对比:$\sigma\in\{0.8,1.0,1.6\}$,观察模糊、梯度、NMS 与边缘图;
  • 在基准 $\sigma=0.8$ 上,遍历三组双阈值(高/低比例):$(0.25,0.10)$$(0.35,0.15)$$(0.15,0.07)$
  • 输出包含:模糊图、梯度幅值、方向、NMS 与对应边缘图,文件名带有参数后缀便于直接比对。

图

图

图~\ref{fig:task2-sigma} 展示了不同平滑尺度 $\sigma$ 对 Canny 三个关键结果(梯度、NMS、最终边缘)的影响。 - 当 $\sigma=0.8$ 时,弱边缘和纹理大量保留,但也更易出现伪边缘; - 当 $\sigma=1.0$ 时,纹理部分被抑制,边缘清晰且连贯,是视觉上最均衡的结果; - 当 $\sigma=1.6$ 时,图像结构简化,大边缘更加突出,但曲线与细小细节处容易出现断裂;

图~\ref{fig:task2-thresholds} 展示双阈值对 Canny 的影响: - 高阈值较大时(如 0.35/0.15),边缘数量明显减少,仅保留最显著结构; - 高阈值较小时(如 0.15/0.07),弱边缘大量保留,但噪声显著增加; - 高/低阈值比例越大(例如 0.35/0.15),滞后阈值的连接效果越弱,可能切断边缘;

由于 NMS 在梯度方向上进行极细化,高质量的方向估计能够保证边缘单像素宽度;若 $\sigma$ 太小或量化过粗,则会导致“毛刺状”边缘。

总体而言,Canny 在图像质量良好并保持适当平滑时效果最佳。其性能依赖于: - 高斯平滑质量; - 梯度方向估计; - 阈值对比度选择;

利用 Harris 角点检测器,完成图像的角点检测

  • 使用高斯导数求梯度,窗口平滑方差做对比:$\sigma_w\in\{0.8,1.5,2.5\}$$\alpha=0.05$
  • 以响应最大值的 1\% 作为阈值并做 3$\times$3 NMS;
  • 生成原图角点可视化、缩放 0.7 倍以及旋转 $30^\circ$ 后的角点可视化,用于观察尺度与旋转等变性;
  • 窗口越大,响应更平滑、角点更稀疏,定位偏移也更明显;小窗口则角点密集但容易受噪声影响。

不同窗口的响应与角点可视化见图\ref{fig:task3-windows},等变性实验见图\ref{fig:task3-variants}。

图

图

图~\ref{fig:task3-windows} 显示窗口方差对 Harris 响应的影响: - 窗口方差 $\sigma_w=0.8$ 时:角点密集,图像细节处(头发、帽檐)检测丰富,但噪声也导致部分伪角点; - $\sigma_w=1.5$ 时:响应图更平滑,角点集中在结构明显的区域(眼睛、帽子的边缘),效果更加稳定; - $\sigma_w=2.5$ 时:角点数量大幅减少,仅保留大结构交汇处,定位偏移变得明显;

图~\ref{fig:task3-variants} 显示经过缩放与旋转处理后的角点分布: - 多数角点在几何变换后仍能保持对应关系,说明 Harris 对平移和旋转具有良好的等变性; - 小尺度平滑(如 $\sigma_w=0.8$)在缩放后产生的角点数量更不稳定,说明 Harris 对尺度变换并不严格不变,需要尺度空间方法(如 Harris-Laplace)才能稳定支持尺度变化; - 旋转 $30^\circ$ 后角点整体随图像旋转而变化,说明 Harris 角点的方向响应稳定;

整体而言: - Harris 适用于检测局部结构变化明显的区域; - 但其尺度不变性有限,需要匹配的平滑尺度才能维持检测稳定性; - 过小窗口导致噪声敏感,过大窗口导致角点稀疏与定位偏移明显;

结论与思考

  • 高斯方差在梯度计算、Canny 与 Harris 中都体现为噪声抑制与细节保持的权衡;
  • Canny 通过 NMS 与滞后阈值实现单一响应与连通性,但阈值选择需要结合图像对比度;
  • Harris 角点具有一定的平移、旋转等变性,尺度变化需要匹配的平滑尺度以维持响应;
  • 所有结果可通过运行脚本重新生成,便于针对不同参数进行扩展实验。
评论 0
评论加载中...