研究 旧 .com 迁移

计算机视觉:实验报告 / 2-2

从旧 .com 全量搬运的历史内容,来源路径:/ai-kb/课程/计算机视觉/chapters/实验报告/2-2/

迁移来源

实验2-2 特征检测

姓名: 刘欣楠

学号: 2233310237

班级: 数学强基 2301

电子版密码: lxn-cvpr2-2

实验内容 #

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

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

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

实验目的 #

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

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

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

实验原理 #

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

二维高斯函数: Gσ(x,y)=12πσ2ex2+y22σ2G_{\sigma}(x,y)=\dfrac{1}{2\pi\sigma^2} e^{-\frac{x^2+y^2}{2\sigma^2}}

高斯一阶微分: Gσ(x,y)x=12πσ2(xσ2)ex2+y22σ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}}, Gσ(x,y)y=12πσ2(yσ2)ex2+y22σ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}}

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

fGx=Gxf,fGy=Gyf\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

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

相位图: θ=arctan(fG/yfG/x)\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 =

[11],\begin{bmatrix} 1 & -1 \end{bmatrix},

\quad H_y=

[11]\begin{bmatrix} 1 \\ -1 \end{bmatrix}

$

Sobel 算子: $ Sobel_x =

[121]\begin{bmatrix} 1 \\ 2 \\ 1 \end{bmatrix}
[101]\begin{bmatrix} 1 & 0 & -1 \end{bmatrix}

=

[101202101]\begin{bmatrix} 1 & 0 & -1 \\ 2 & 0 & -2 \\ 1 & 0 & -1 \end{bmatrix}

Sobel_y =

[121000121]\begin{bmatrix} 1 & 2 & 1 \\ 0 & 0 & 0 \\ -1 & -2 & -1 \end{bmatrix}

$

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

非极大值抑制(NMS)

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

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

梯度方向量化处理后,比较 qq3×33\times3 邻域对应方向的大小。

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

边缘连接

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

设高阈值为 THTH,低阈值为 TLTLTH>TLTH > TL):

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

Harris 角点检测原理 #

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

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

窗口移动前后灰度变化量

E(u,v)=(x,y)W[I(x+u,y+v)I(x,y)]2E(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)+Ixu+Iyv+高阶项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

[uv]\begin{bmatrix} u & v \end{bmatrix}

\left[ \sum

[Ix2IxIyIxIyIy2]\begin{bmatrix} I_x^2 & I_x I_y \\ I_x I_y & I_y^2 \end{bmatrix}

\right]

[uv]\begin{bmatrix} u \\ v \end{bmatrix}

$

定义二阶矩阵: $ M = \sum_{(x,y)\in W} w(x,y)

[Ix2IxIyIxIyIy2]\begin{bmatrix} I_x^2 & I_x I_y \\ I_x I_y & I_y^2 \end{bmatrix}

=

[a11a12a21a22]\begin{bmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{bmatrix}

$

Harris 响应函数

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

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

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

非最大值抑制(NMS)

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

实验步骤及结果 #

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

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

图

图

图

图

从图~\ref{fig:task1-sigma05}、图~\ref{fig:task1-sigma1} 与图~\ref{fig:task1-sigma2} 可以观察到:

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

从方向图可以看出角度编码更加连续,这表明较大的 σ\sigma 能有效提升方向估计的稳定性。

  • σ\sigma:纹理清晰,但噪声敏感;
  • σ\sigma:更稳定、平滑,适合后续边缘检测与角点检测;

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

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

图

图

图~\ref{fig:task2-sigma} 展示了不同平滑尺度 σ\sigma 对 Canny 三个关键结果(梯度、NMS、最终边缘)的影响。

  • σ=0.8\sigma=0.8 时,弱边缘和纹理大量保留,但也更易出现伪边缘;
  • σ=1.0\sigma=1.0 时,纹理部分被抑制,边缘清晰且连贯,是视觉上最均衡的结果;
  • σ=1.6\sigma=1.6 时,图像结构简化,大边缘更加突出,但曲线与细小细节处容易出现断裂;

图~\ref{fig:task2-thresholds} 展示双阈值对 Canny 的影响:

  • 高阈值较大时(如 0.35/0.15),边缘数量明显减少,仅保留最显著结构;
  • 高阈值较小时(如 0.15/0.07),弱边缘大量保留,但噪声显著增加;
  • 高/低阈值比例越大(例如 0.35/0.15),滞后阈值的连接效果越弱,可能切断边缘;

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

总体而言,Canny 在图像质量良好并保持适当平滑时效果最佳。其性能依赖于:

  • 高斯平滑质量;
  • 梯度方向估计;
  • 阈值对比度选择;

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

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

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

图

图

图~\ref{fig:task3-windows} 显示窗口方差对 Harris 响应的影响:

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

图~\ref{fig:task3-variants} 显示经过缩放与旋转处理后的角点分布:

  • 多数角点在几何变换后仍能保持对应关系,说明 Harris 对平移和旋转具有良好的等变性;
  • 小尺度平滑(如 σw=0.8\sigma_w=0.8)在缩放后产生的角点数量更不稳定,说明 Harris 对尺度变换并不严格不变,需要尺度空间方法(如 Harris-Laplace)才能稳定支持尺度变化;
  • 旋转 3030^\circ 后角点整体随图像旋转而变化,说明 Harris 角点的方向响应稳定;

整体而言:

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

结论与思考 #

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

讨论

评论

正在加载评论...