文章目录
-
- [📚 学习路线图](#📚 学习路线图)
- 本文内容一览(快速理解)
- [一、什么是特征点(Feature Points / Interest Points):理解图像中具有显著性和可重复性的关键点](#一、什么是特征点(Feature Points / Interest Points):理解图像中具有显著性和可重复性的关键点)
-
- [1.1 图像对应问题(Image Correspondence):在两幅图像之间建立点的对应关系](#1.1 图像对应问题(Image Correspondence):在两幅图像之间建立点的对应关系)
- [1.2 好特征的特征(Characteristics of Good Features):可重复性、显著性、高效性和局部性](#1.2 好特征的特征(Characteristics of Good Features):可重复性、显著性、高效性和局部性)
- [二、角点检测的基本思想(Corner Detection: Basic Idea):理解什么是角点以及如何检测](#二、角点检测的基本思想(Corner Detection: Basic Idea):理解什么是角点以及如何检测)
-
- [2.1 角点的定义(What is a Corner):多个方向都有显著变化的点](#2.1 角点的定义(What is a Corner):多个方向都有显著变化的点)
- [2.2 角点检测的数学原理(Corner Detection: Mathematics):通过计算窗口内像素值的变化来识别角点](#2.2 角点检测的数学原理(Corner Detection: Mathematics):通过计算窗口内像素值的变化来识别角点)
- [三、Harris角点检测器(Harris Corner Detector):经典的角点检测算法](#三、Harris角点检测器(Harris Corner Detector):经典的角点检测算法)
-
- [3.1 Harris检测器的步骤(Harris Detector Steps):计算导数、平方、高斯滤波、角点响应和非极大值抑制](#3.1 Harris检测器的步骤(Harris Detector Steps):计算导数、平方、高斯滤波、角点响应和非极大值抑制)
- [3.2 二阶矩矩阵(Second Moment Matrix):通过特征值判断角点、边缘或平坦区域](#3.2 二阶矩矩阵(Second Moment Matrix):通过特征值判断角点、边缘或平坦区域)
- [四、不变性(Invariance and Covariance):理解特征点在不同变换下的稳定性](#四、不变性(Invariance and Covariance):理解特征点在不同变换下的稳定性)
-
- [4.1 光度变换不变性(Photometric Invariance):对亮度变化和对比度变化不敏感](#4.1 光度变换不变性(Photometric Invariance):对亮度变化和对比度变化不敏感)
- [4.2 几何变换(Geometric Transformations):对平移和旋转协变,对缩放不变性差](#4.2 几何变换(Geometric Transformations):对平移和旋转协变,对缩放不变性差)
- [4.3 尺度不变兴趣点(Scale Invariant Interest Points):在不同尺度的图像中都能检测到的特征点](#4.3 尺度不变兴趣点(Scale Invariant Interest Points):在不同尺度的图像中都能检测到的特征点)
- [📝 本章总结](#📝 本章总结)
- [📚 延伸阅读](#📚 延伸阅读)
📌 适合对象 :计算机视觉初学者、图像处理入门者
⏱️ 预计阅读时间 :30-40分钟
🎯 学习目标:理解特征点的概念、Harris角点检测器的原理和应用
📚 学习路线图
理解特征点
是什么 学习好特征
的特性 掌握角点检测
基本思想 学习Harris
角点检测器 理解不变性
平移/旋转/缩放 探索尺度不变
兴趣点
本文内容一览(快速理解)
- 特征点(Feature Points / Interest Points):图像中具有显著性和可重复性的关键点
- 图像对应(Image Correspondence):在两幅图像之间建立点的对应关系
- 角点检测(Corner Detection):检测图像中两个或多个方向都有显著变化的点
- Harris角点检测器(Harris Corner Detector):经典的角点检测算法
- 不变性(Invariance):特征点在不同变换下保持稳定的能力
一、什么是特征点(Feature Points / Interest Points):理解图像中具有显著性和可重复性的关键点
这一章要建立的基础:理解特征点的概念和重要性
核心问题:如何在图像中找到稳定、可重复、有意义的点?
!NOTE
📝 关键点总结:特征点(也叫兴趣点、关键点)是图像中具有显著性和可重复性的点。它们可以用来建立图像之间的对应关系,是许多计算机视觉任务的基础。
1.1 图像对应问题(Image Correspondence):在两幅图像之间建立点的对应关系
概念的本质:
图像对应问题就是:给定两幅图像,找到它们之间的对应关系。比如,第一幅图像中的某个点,在第二幅图像中的哪个位置?这就像在地图上找两个城市之间的对应关系一样。
图解说明:
图像1 建立对应关系 图像2 对应点对
Point Correspondences 稀疏对应
少量点 密集对应
所有点
💡 说明:图像对应有两种类型:稀疏对应(只对应少量关键点)和密集对应(对应所有像素点)。特征点检测主要用于稀疏对应。
类比理解:
想象你在看两张不同角度拍摄的同一座建筑的照片。图像对应就像在这两张照片中找到相同的特征点(比如窗户的角、门的边缘等),然后通过这些对应点来理解两张照片之间的关系。
实际例子:
应用场景:
1. 目标跟踪:在视频序列中跟踪物体的运动
2. 物体识别:通过特征点匹配来识别物体
3. 三维重建:通过不同视角的图像重建三维场景
4. 图像拼接:将多张照片拼接成全景图
1.2 好特征的特征(Characteristics of Good Features):可重复性、显著性、高效性和局部性
概念的本质:
不是图像中的每个点都适合作为特征点。好的特征点应该具有四个重要特性:可重复性、显著性、高效性和局部性。
图解说明:
好特征 可重复性
Repeatability 显著性
Saliency 高效性
Efficiency 局部性
Locality 几何/光度变换
下可重复检测 每个特征
都独特 特征数量
远少于像素数 占据小区域
对遮挡鲁棒
💡 说明:
- 可重复性:同样的特征点可以在多幅图像中被检测到,即使图像经过了几何变换(旋转、缩放)或光度变换(亮度变化)
- 显著性:每个特征点都是独特的,可以可靠地确定哪个点对应哪个点
- 高效性:特征点的数量远少于图像像素数,便于处理
- 局部性:特征点只占据图像的一小部分区域,对遮挡和杂乱背景有鲁棒性
类比理解:
想象你在玩"找不同"游戏。好的特征点就像那些容易识别、不会混淆的标志性位置:
- 可重复性:就像地标建筑,无论从哪个角度看都能认出
- 显著性:就像独特的标志,不会与其他地方混淆
- 高效性:就像地图上的关键地点,数量不多但信息丰富
- 局部性:就像一个小标志,即使周围有遮挡也能识别
实际例子:
选择特征点的例子:
假设你需要在图像上点击一些点,然后图像被变形了,你需要再次点击相同的点。
你会选择什么样的点?
好的选择:
- 角点(如窗户的角、门的边缘)
- 纹理丰富的区域
- 对比度高的边缘
不好的选择:
- 平坦区域(无法区分)
- 边缘上的点(沿边缘方向不唯一)
- 噪声点(不稳定)
二、角点检测的基本思想(Corner Detection: Basic Idea):理解什么是角点以及如何检测
这一章要建立的基础:理解什么是角点,以及如何检测角点
核心问题:什么样的点是角点?如何识别角点?
!NOTE
📝 关键点总结:角点是图像中在多个方向都有显著变化的点。通过滑动窗口并观察窗口内像素值的变化,可以识别角点。
2.1 角点的定义(What is a Corner):多个方向都有显著变化的点
概念的本质:
角点是图像中一个特殊的点,当你在这个点周围滑动一个小窗口时,无论窗口向哪个方向移动,窗口内的像素值都会发生显著变化。这与边缘(只在一个方向变化)和平坦区域(所有方向都不变化)不同。
图解说明:
滑动窗口 边缘
Edge 角点
Corner 平坦区域
Flat 沿边缘方向
变化小 所有方向
变化大 所有方向
变化小
💡 说明:
- 边缘:沿边缘方向移动窗口,像素值变化小;垂直边缘方向移动,变化大
- 角点:向任何方向移动窗口,像素值都有显著变化
- 平坦区域:向任何方向移动窗口,像素值变化都很小
类比理解:
想象你在看一幅画,画中有物体的轮廓。角点就像轮廓的拐角处:
- 边缘:就像一条直线,沿着直线走变化不大,但横跨直线变化大
- 角点:就像两条线的交点,无论向哪个方向走,都会遇到变化
- 平坦区域:就像一大片相同颜色的区域,向任何方向走都没有变化
实际例子:
角点的例子:
- 窗户的四个角
- 门的边缘交点
- 建筑物的拐角
- 文字笔画的交叉点
为什么角点好?
- 容易识别:在多个方向都有变化
- 稳定:即使图像有小的变化,角点位置也相对稳定
- 可重复:在不同图像中容易找到相同的角点
2.2 角点检测的数学原理(Corner Detection: Mathematics):通过计算窗口内像素值的变化来识别角点
概念的本质:
角点检测通过计算窗口内像素值的变化来识别角点。当窗口移动时,如果窗口内像素值的变化很大,说明这个位置可能是角点。这个变化可以用数学公式来量化。
图解说明:
图像I(x,y) 滑动窗口
w(x,y) 计算变化
E(u,v) 判断角点
E值大 移动向量
u,v
💡 说明:当窗口移动[u,v]时,窗口内像素值的变化E(u,v)可以通过计算窗口内像素值的平方差来得到。如果E(u,v)在所有方向上都很大,说明这是一个角点。
类比理解:
想象你在一个房间里,房间的每个位置都有一个"变化值"。角点就像房间的角落,无论你向哪个方向移动,都会遇到很大的变化(比如从墙到墙的过渡)。平坦区域就像房间的中央,向任何方向移动变化都很小。
实际例子:
角点检测的步骤(简化理解):
1. 选择一个窗口(比如3×3或5×5)
2. 在图像的每个位置放置这个窗口
3. 计算窗口向各个方向移动时的变化
4. 如果所有方向的变化都很大,这就是一个角点
数学表示(简化):
- 变化E(u,v) = 窗口内像素值的平方差
- 如果E在所有方向都大 → 角点
- 如果E在一个方向大 → 边缘
- 如果E在所有方向都小 → 平坦区域
三、Harris角点检测器(Harris Corner Detector):经典的角点检测算法
这一章要建立的基础:理解Harris角点检测器的原理和实现
核心问题:如何自动检测图像中的角点?
!NOTE
📝 关键点总结:Harris角点检测器是经典的角点检测算法,通过计算图像的二阶矩矩阵,然后根据特征值来判断是否为角点。
3.1 Harris检测器的步骤(Harris Detector Steps):计算导数、平方、高斯滤波、角点响应和非极大值抑制
概念的本质:
Harris角点检测器通过以下步骤来检测角点:
- 计算图像的导数(梯度)
- 计算导数的平方
- 用高斯滤波器平滑
- 计算角点响应函数
- 找到局部最大值
图解说明:
原始图像 计算导数
Ix, Iy 计算平方
Ix², Iy², IxIy 高斯滤波
平滑 计算角点响应
R 非极大值抑制
找到角点
💡 说明:
- 图像导数:反映像素值变化的快慢
- 平方:强调变化大的地方
- 高斯滤波:平滑处理,减少噪声影响
- 角点响应函数:根据特征值计算,值越大越可能是角点
- 非极大值抑制:只保留局部最大值,避免重复检测
类比理解:
想象你在寻找地图上的重要交叉路口。Harris检测器就像:
- 计算导数:找出道路的方向和变化
- 计算平方:强调变化大的地方
- 高斯滤波:平滑处理,去除小噪声
- 角点响应:计算每个位置的"重要性分数"
- 非极大值抑制:只保留最重要的交叉路口
实际例子:
Harris检测器的输出:
- 输入:一幅图像
- 输出:角点位置和响应值
角点响应函数R:
- R > 0 且较大 → 角点
- R < 0 → 边缘
- |R| 很小 → 平坦区域
参数α:
- 通常取值0.04到0.06
- 控制角点检测的敏感度
3.2 二阶矩矩阵(Second Moment Matrix):通过特征值判断角点、边缘或平坦区域
概念的本质:
二阶矩矩阵M总结了窗口内像素值的变化情况。通过分析M的特征值,可以判断这个位置是角点、边缘还是平坦区域。
图解说明:
图像导数
Ix, Iy 二阶矩矩阵
M 特征值
λ1, λ2 判断类型 λ1, λ2都大
→ 角点 一个λ大
→ 边缘 λ1, λ2都小
→ 平坦
💡 说明:
- 如果两个特征值都很大且相近,说明在所有方向都有显著变化 → 角点
- 如果一个特征值很大,另一个很小,说明只在一个方向有变化 → 边缘
- 如果两个特征值都很小,说明在所有方向变化都很小 → 平坦区域
类比理解:
想象你在分析一个位置的"变化椭圆":
- 角点:椭圆的两个轴都很长,说明所有方向都有很大变化
- 边缘:椭圆的一个轴很长,另一个很短,说明只在一个方向有变化
- 平坦区域:椭圆的两个轴都很短,说明所有方向变化都很小
实际例子:
特征值的解释:
- λ1 >> λ2:主要在一个方向有变化 → 边缘
- λ1 ≈ λ2 且都大:在所有方向都有变化 → 角点
- λ1 ≈ λ2 且都小:在所有方向变化都小 → 平坦区域
实际应用:
- 通过计算M矩阵和特征值,可以自动判断每个位置的类型
- 只保留角点位置,过滤掉边缘和平坦区域
四、不变性(Invariance and Covariance):理解特征点在不同变换下的稳定性
这一章要建立的基础:理解特征点在不同变换下的稳定性
核心问题:特征点检测在图像变换后还能找到相同的点吗?
!NOTE
📝 关键点总结:好的特征点检测器应该对某些变换保持不变性(invariance),对某些变换保持协变性(covariance)。不变性意味着检测结果不受变换影响,协变性意味着检测结果随变换相应变化。
4.1 光度变换不变性(Photometric Invariance):对亮度变化和对比度变化不敏感
概念的本质:
光度变换是指图像亮度的变化,比如整体变亮或变暗,或者对比度的变化。好的角点检测器应该对这些变化不敏感。
图解说明:
原始图像 亮度变化
I → I + b 对比度变化
I → aI 角点位置
不变
💡 说明:
- 亮度偏移:I → I + b(整体变亮或变暗)
- 对比度缩放:I → aI(对比度变化)
- Harris检测器只使用导数,所以对亮度偏移完全不变,对对比度缩放部分不变
类比理解:
想象你在不同光照条件下看同一幅画。光度变换就像改变房间的亮度或对比度。好的角点检测器就像你的眼睛,即使光照条件改变,你仍然能找到画中的关键点(角点)。
实际例子:
为什么Harris对光度变换不变?
- Harris只使用图像导数(梯度)
- 导数反映的是变化率,而不是绝对值
- 亮度偏移:导数不变(因为变化率不变)
- 对比度缩放:导数也按比例缩放,但相对大小不变
实际应用:
- 在不同光照条件下拍摄的图像中检测角点
- 处理曝光不同的照片
- 处理对比度调整后的图像
4.2 几何变换(Geometric Transformations):对平移和旋转协变,对缩放不变性差
概念的本质:
几何变换是指图像的空间变换,比如平移、旋转、缩放。好的特征点检测器应该对这些变换有适当的响应。
图解说明:
几何变换 平移
Translation 旋转
Rotation 缩放
Scaling 角点位置
协变 角点位置
协变 角点位置
不变性差
💡 说明:
- 平移:角点位置随图像平移,但检测结果一致(协变)
- 旋转:角点位置随图像旋转,但检测结果一致(协变)
- 缩放:角点位置可能改变,甚至可能变成边缘(不变性差)
类比理解:
想象你在看一幅画,然后画被移动、旋转或放大缩小了:
- 平移:画移动了,但角点还在相同的位置(相对于画)
- 旋转:画旋转了,但角点还在相同的位置(相对于画)
- 缩放:画放大了,原来是小角点的地方可能变成大边缘了
实际例子:
Harris检测器的几何不变性:
- ✅ 平移不变:图像平移,角点位置也平移,但检测结果一致
- ✅ 旋转不变:图像旋转,角点位置也旋转,但检测结果一致
- ❌ 缩放不变性差:图像缩放,角点可能变成边缘
为什么缩放不变性差?
- 角点的定义依赖于窗口大小
- 当图像缩放时,原来是小角点的地方可能变成大边缘
- 需要尺度不变的特征点检测器(如SIFT)
4.3 尺度不变兴趣点(Scale Invariant Interest Points):在不同尺度的图像中都能检测到的特征点
概念的本质:
尺度不变兴趣点是指在不同尺度的图像中都能检测到的特征点。这需要检测特征点的"特征尺度",然后在对应尺度上检测。
图解说明:
多尺度图像 检测特征尺度
Characteristic Scale 在对应尺度
检测角点 尺度不变
特征点 图像1
小尺度 图像2
大尺度
💡 说明:尺度不变特征点检测需要:
- 在不同尺度上检测特征
- 找到每个特征点的"特征尺度"(响应最大的尺度)
- 在特征尺度上检测特征点
类比理解:
想象你在看一幅画,但有时需要看整体(远看),有时需要看细节(近看)。尺度不变特征点就像那些无论从多远或多近看都能识别的关键点。这需要找到每个点的"最佳观察距离"(特征尺度)。
实际例子:
为什么需要尺度不变性?
- 同一物体在不同距离拍摄,在图像中的大小不同
- 需要在不同尺度的图像中找到相同的特征点
- 用于图像匹配、三维重建等应用
解决方法:
- 使用尺度空间(如高斯金字塔)
- 检测blob(斑点)而不是角点
- 使用SIFT等尺度不变特征检测器
实际应用:
- 图像匹配:在不同分辨率的图像中匹配特征
- 目标识别:识别不同大小的物体
- 三维重建:从不同距离拍摄的图像重建场景
📝 本章总结
核心要点回顾:
-
特征点的概念:
- 图像中具有显著性和可重复性的关键点
- 用于建立图像之间的对应关系
-
好特征的特征:
- 可重复性:在不同图像中可重复检测
- 显著性:每个特征都独特
- 高效性:特征数量远少于像素数
- 局部性:占据小区域,对遮挡鲁棒
-
角点检测:
- 角点是多个方向都有显著变化的点
- 通过滑动窗口观察变化来检测
-
Harris角点检测器:
- 计算图像导数和二阶矩矩阵
- 根据特征值判断角点
- 对平移和旋转不变,对缩放不变性差
-
不变性:
- 对光度变换(亮度、对比度)不变
- 对几何变换(平移、旋转)协变
- 对缩放不变性差,需要尺度不变特征
知识地图:
特征点检测 特征点概念 角点检测 Harris检测器 不变性 可重复性 显著性 高效性 局部性 角点定义 检测原理 计算导数 二阶矩矩阵 角点响应 光度不变 几何协变 尺度不变
关键决策点:
- 选择特征点类型:根据应用选择角点、blob或其他特征
- 选择检测器:Harris适合角点,SIFT适合尺度不变特征
- 处理尺度变化:当需要尺度不变时,使用尺度空间方法
- 处理噪声:使用高斯滤波平滑,减少噪声影响
- 非极大值抑制:避免重复检测,只保留局部最大值
📚 延伸阅读
推荐资源
-
Szeliski's Book: Computer Vision: Algorithms and Applications, Chapter 4.1
- 详细的特征点检测理论和实践
-
经典论文:
- Harris, C. and Stephens, M. "A Combined Corner and Edge Detector." (1988)
- SIFT: Scale-Invariant Feature Transform
-
实践项目:
- 实现Harris角点检测器
- 比较不同特征点检测器的效果
- 应用特征点进行图像匹配
本文基于PPT内容整理,适合初学者理解特征点检测的基本概念和应用。如需深入了解数学原理和公式推导,请参考相关研究资料。