张芷铭的个人博客

角点

角点(Corner)

角点是图像中梯度变化剧烈的点,即局部区域内的方向梯度变化明显的特征点。角点通常用于特征检测、运动追踪、图像配准、目标识别等计算机视觉任务。


1. 角点的定义

在数学上,角点通常是图像中两个边缘的交点,具有以下特点:

局部区域内的梯度变化大:在水平、垂直、对角线方向都有明显的强度变化。

稳定性高:角点在不同尺度、视角变化下仍能保持特征一致,适用于特征匹配。

可用于运动估计和点追踪:如 KLT 追踪、SIFT、ORB 特征提取等。

直观理解

• 如果在一张图像中移动一个小窗口:

在平坦区域:像素强度变化很小。

在边缘上:在垂直于边缘方向变化大,沿着边缘方向变化小。

在角点处:无论窗口如何移动,像素强度都发生明显变化。


2. 角点检测方法

(1) Harris 角点检测器

原理

• 计算窗口内的梯度变化,通过二阶矩矩阵(结构张量)分析区域内像素变化。

• 计算角点响应函数 R

$$

R = \det(M) - k \cdot (\text{trace}(M))^2

$$

其中:

• $\det(M)$ 是矩阵行列式,表示特征值乘积(梯度变化的整体强度)。

• $\text{trace}(M)$ 是矩阵迹,表示梯度变化的总量。

• $k$ 是经验值(通常取 0.04~0.06)。

R > 0:为角点;R < 0 为边缘;R ≈ 0 为平坦区域。

优点

• 计算简单,适用于实时检测。

• 能够区分角点与边缘。

缺点

• 对旋转和尺度变化不够鲁棒。


(2) Shi-Tomasi 角点检测

• Shi-Tomasi 方法是 Harris 角点检测的改进版本。

• 直接使用最小特征值作为角点度量:

$$

R = \min(\lambda_1, \lambda_2)

$$

其中 $\lambda_1, \lambda_2$ 是二阶矩矩阵的特征值。

改进点

• 只取最小特征值,避免 Harris 方法中的超参数 $k$。

应用

KLT(Kanade-Lucas-Tomasi)光流 用于视频点追踪时,通常会先用 Shi-Tomasi 方法检测角点。


(3) SIFT(尺度不变特征变换)

• 通过 高斯差分金字塔(DoG) 在不同尺度下检测角点。

• 提供 尺度不变性,适用于特征匹配。

特点

• 计算量大,适用于高精度特征匹配。

• 能够检测到更具稳定性的角点。


(4) ORB(Oriented FAST and Rotated BRIEF)

• 结合 FAST 角点检测 + BRIEF 特征描述子。

• 计算速度快,适用于移动端和实时应用。


3. 角点 vs. 边缘 vs. 平坦区域

类型变化方向示例
角点在两个方向上都有剧烈变化物体的拐角
边缘在一个方向上变化剧烈,另一个方向变化平稳物体轮廓
平坦区域变化很小天空、光滑墙面

4. 角点的应用

  1. 视频点追踪(Point Tracking)

KLT 追踪 先检测 Shi-Tomasi 角点,然后计算光流。

TAPIR / CoTracker3 追踪视频中的特征点,多采用角点作为初始化点。

  1. 特征匹配(Feature Matching)

SIFT / ORB 用于图像配准、3D 视觉等任务。

  1. 目标检测和 SLAM(同步定位与建图)

• 角点作为关键点,帮助机器人定位。


5. 总结

• 角点是图像中梯度变化剧烈的点,适用于运动分析和特征匹配。

Harris / Shi-Tomasi / SIFT / ORB 是常用的角点检测方法。

• 角点可用于 视频点追踪、光流估计、目标检测、SLAM 等任务

💬 评论