特征提取(理论)[李明磊老师课程]

特征点

特征点由关键点描述子组成。例如,在一张图像中计算 SIFI 特征点时,是指提取 SIFI 关键点,并计算 SIFI的描述子。
关键点:特征点在该图像中的位置,方向,大小等信息。
描述子:一定维度的特征向量。原则:外观相似的特征应该由相似的描述子,通常通过计算在向量空间上的距离来判定。
本笔记参考南京航空航天大学李明磊老师的课程。
csdn文章(博客数学公式可能会有乱码,更清晰的可以参考csdn)

特征提取(关键点)

性质

Pasted image 20240919161335|400

特征描述 (描述子)

特征描述是特征提取的后续,被称为描述子(一定维度的特征向量)
(1)唯一性,即不同位置的特征点的描述结果应显著不同,否则在进行特征匹配时,很容易形成匹配歧义;
(2)独立性,即当使用高维向量作为描述子的数学表达时,其特征向量的各个维度间应该保持非相关的独立性,否则可以用降维算法对特征向量进行降维;
(3)稳定性,即在不满光照恒常或刚性结构等预设的假设条件时,描述子仍能够保证获得相似的结果;
(4)不变性,即在不同影像中,同名点对应的特征的描述子能够适应尺度、平移、旋转等变换,反映出相同或相似的数值。

边缘检测算法

梯度和边缘提取是其他特征检测的基础

梯度信息提取

  • 微分算子与最优化检测算子:
    • 微分适用于连续型
    • 差分适用于离散型
      图像梯度的模长大小是图像变化的速度。
      对于图像的边缘部分,其灰度值变化较大,梯度值也较大,对于图像中比较平滑的部分,其灰度值变化较小,相应的梯度值也较小。
      Gx和Gy分别隐含了x和y方向的灰度变化信息,也就隐含了边缘信息
      模长和方向:
      Pasted image 20240919164134|400|600

空间滤波基础

本质就是卷积:当前的一个像素点与其周围的像素点与窗口(核,算子)进行线性加权处理。
Pasted image 20240919164833|400|600

一阶微分和二阶微分对应图像中的信息
纵坐标是亮度值(灰度),横坐标是像素位置
二阶导非零值:图像中灰度急剧发生变化的值
Pasted image 20240919165736|400|600

滤波器分类

  • 低通滤波
    • 平滑图像,去除高频噪声
    • 例如 canny 边缘检测中会用高斯滤波
  • 高通滤波
    • 增强边缘和细节,提取高频分量。
    • sobel, laplacian

Roberts 交叉算子

算子就是卷积中的核,与像素点进行线性加权的方式。
Roberts交叉算子是图像处理中用于边缘检测的一种算子,它主要通过两个2x2的卷积核来计算图像的梯度。这些核分别用于检测对角线方向上的边缘。
正负并无关系,因为看的是模长。
核:
Pasted image 20241010161125|450|600
计算方式:
Pasted image 20241010161200|500|600
边缘强度的计算:
Pasted image 20241010161253|500|600

prewitt 算子

Pasted image 20240919172503|400|600
具体的计算方式:
Pasted image 20241010160802|500|600

sobel 算子

Sobel 算子是在 Prewitt 算子的基础上改进的,在中心系数上使用一个权值2,相比较 Prewitt 算子,Sobel 模板能够较好的抑制(平滑)噪声。
Pasted image 20241010161028|400|600
算子核:
Pasted image 20241010161507|600

拉普拉斯算子

Laplacian 算子的核心在于其能够通过二阶导数来响应图像的边缘,这与一阶导数的 Sobel 或 Prewitt 算子形成对比。
组成:x 方向上的二阶导,y 方向上的二阶导。
Pasted image 20240919172732|400|600

canny 边缘检测

简述:
image.png|600

步骤:

  1. 使用高斯滤波,平滑图像,滤除噪声。
  2. 利用算子,计算每个像素点的梯度强度与方向。Pasted image 20241010182308|450|600
  3. 利用 NMS, 消除杂散相应。
    1. 将当前的梯度强度与正负梯度方向的两个像素比较
    2. 选择强度最大的,作为边缘点。
  4. 利用双阈值确定真实与潜在的边缘。
    1. 设置一个高阈值,一个低阈值
    2. 高于高阈值,则为强边缘像素,
    3. 低于低阈值,则舍去
    4. 在两者之间,则为弱边缘像素。
  5. 连接分析,一直孤立的弱边缘
    查看弱边缘附近的八个像素点,若其中有一个强边缘像素点,则保留。
    PPT详解
    image.png|600
  • 应用
    • 通常用于预处理,比如边缘提取、物体轮廓识别等。
    • Canny 边缘检测本身不会检测关键点或生成描述子,更多是提供边缘结构信息。
      Canny 边缘检测不直接用于特征点匹配,属于基础图像处理的一部分。

霍夫变换检测直线

基本原理:将图像空间中的直线检测问题转换到参数空间的峰值检测问题。
直线的表现形式:
图像空间(笛卡尔坐标系):图像中由点 (x, y)表示。
参数空间(极坐标系):直线用极坐标方程 ρ=xcos⁡θ+ysin⁡θ表示,其中:

  • ρ:直线到原点的垂直距离。

  • θ:直线与 x 轴正方向的夹角。
    Pasted image 20241010183217|450|600
    推导过程:
    Pasted image 20241010183237|400|600

  • 转换逻辑

    • 在笛卡尔坐标系中,一个点 (x, y)对应于参数空间中的一条曲线(通常是正弦曲线)。
    • 笛卡尔坐标系中的一条直线对应参数空间中的一个点。参数空间中的每个点 (ρ,θ) 唯一对应笛卡尔坐标中的一条直线
    • 同时在笛卡尔坐标系中,一条直线的不同点,在参数坐标系中,表示为不同直线有一个交点。
      所以在检测直线的判定标准
      是投票器+阈值,也就是参数坐标系中交于同一点的直线越多,那么该点越有可能是直线,所以可以设定一个阈值,判断是否为直线。Pasted image 20241010184155|450|600

点特征提取

Harris 角点检测

先验知识 :

特征值:线性空间变换时,特征向量变换的倍数。
特征向量:在线性变换中,特征向量指向变换影响最显著的方向。这些向量只是长度发生变化,方向不变。
[3 blueBrown 线性代数的本质](【熟肉】线性代数的本质 - 10 - 特征向量与特征值_哔哩哔哩_bilibili)
如果特征值越大,对应特征向量的梯度变化越大
Pasted image 20241010201600|450|600

定义与方法

假想(便于理解):
一个检测框在一个图片沿着 u,v 方向检测灰度的梯度变化,我们根据梯度变化值来确定是否为角点。
Pasted image 20241011154007|450|600
难点:阈值的确定,以及如何去量化梯度值的变化。
量化梯度值的变化:构造了 Harris 矩阵
Pasted image 20241011154242|450|600 Pasted image 20241011154337|450|600
Pasted image 20241011154418|450|600

阈值的确定
利用特征值与特征向量在线性变化中的含义。
Pasted image 20241011154627|450|600

具体流程 :

Pasted image 20241011155030|450|600

缺点:

1,光亮和对比度的影响很大
2,尺度不变性。由于近大远小,同一个物体再图片中占到不同的大小,所以可能同一个物体,在不同图像中识别可能是角点,可能也不是角点。

SIFT 特征检测

特点:

克服了尺度缩放亮度变化以及方向视角变化带来的影响。

流程

  1. 生成尺度空间-->高斯金字塔
    1. 用高斯平滑处理图像
    2. 对图像进行下采样
  2. 生成高斯差分金字塔
  3. 空间极值点的定位
  4. 关键点主方向的确定
  5. 描述特征符

生成尺度空间-高斯金字塔

先验知识 :

上采样-->细节增加-->高频信息增加
下采样-->尺度增加-->低频信息增加【信息相对不连续】(平滑处理)【信息相对连续】

构建高斯金字塔

两步:
对图像进行高斯平滑(尺度信息具有连续性)
下采样
每组(Octave)都是先高斯平滑再下采样。
纵坐标是高斯平滑的尺度空间因子。越小表示平滑越小,尺度越小,对应细节特征越多。
Pasted image 20241012162331|450|600
Pasted image 20241012162229|450|600
高斯平滑:
实际就是卷积核。|600
image.png|600
Pasted image 20241012162450|450|600

高斯差分尺度空间

对不同尺度的高斯核进行差分,然后将差分结果和影像结合进行卷积生成高斯差分尺度空间 D (x, y, zou)。
|600
Pasted image 20241012162818|450|600

极值点--特征点的定位

上下三层相邻的高斯差分空间尺度的图像,以中间的图像为一个点,观察其周围 8 个,以及上下两层图像的 9 个,进行比较。

Pasted image 20241012163114|350|600
利用拟合进行精确定位极值点:
Pasted image 20241012163254|450|600
去处对比度低的以及不稳定的边缘影响点:
Pasted image 20241012163346|450|600

确定主方向:

梯度方向从 0 度到 360 度,可以按照 36°划分,也可以按照 45°进行划分。
累计每个度数区间的特征点个数,取最多个数的就是主方向
![[Pasted image 20241012164326.png#lcenter|figure1 图像的方向和模长|450]]

计算方式:
Pasted image 20241012164357|450|600

特征点描述

以特征点为中心,取16 * 16 的窗口,方向为主方向。在计算特征描述子时,将窗口中的像素旋转到这个方向,使描述子具有旋转不变性
将 16×16 的窗口划分为 16 个4×4 的子区域,每个小块独立处理。
求取每个像素的梯度模长与方向。
每个 4×4 的小块用一个 8-bin 的方向直方图 来统计梯度方向。
- 将方向角度(0°–360°)划分为 8 个区间(每个区间 45°)。
- 根据像素的梯度方向和模长,对应累加到直方图中。
- 如果像素方向夹角在两个区间之间,则按比例分配。
16 个小块的直方图(每个 4×4 小块有 8 个方向 bin)组合成一个向量:这样一个关键点就可以构成 128 维的 sift 的特征向量。Pasted image 20241012165315|450|600 Pasted image 20241012165336|450|600

SURF (Speeded Up Robust Features)

先验知识

SIFT: 使用 DOG(高斯差分)近似 LOG(拉普算子) 建立尺度空间
SURF:使用 Box Filter (盒子滤波器) 近似 LOG
Hessian Matrix 9 (海森矩阵):
Pasted image 20241012172849|450|600
Pasted image 20241012172937|450|600

高斯滤波构建 Hessian 矩阵

  1. 对图像进行高斯滤波 G * I,构建 Hessian 矩阵。
    Pasted image 20241012190255|600 Pasted image 20241012185341|480|600
  • Lxx​, Lyy​:分别是图像在 x 和 y 方向的二阶导数。
  • Lxy​=Lyx​:是图像在 x 和 y 方向的混合二阶导数。
    当Hessian矩阵的判别式取得局部极大值时,判定当前点是比周围邻域内其他点更亮或更暗的点,由此来定位关键点的位置。
  1. 采用 box filter 替代高斯差分
    Pasted image 20241012185828|450|600
    为什么盒式滤波器会提高运算速度呢?
    使用了积分图, 对图像的滤波转化为计算图像上不同区域像素和的加减运算问题。

构建尺度空间

SURF算法不需要通过降采样的方式得到不同尺寸大小的图像建立金字塔,而是借助于盒子滤波和积分图像,不断增大盒子滤波模板,通过积分图快速计算盒子滤波的响应图像。然后在响应图像上采用非极大值抑制,检测不同尺度的特征点。SIFT算法的LoG金字塔和SURF算法的近似DoH金字塔如下图所示:
Pasted image 20241012191404|600

关键点定位

同 sift 算法

主方向的确定

统计特征点圆形邻域内 Haar 小波特征。以特征点为中心,计算半径为6s(s 为特征点所在的尺度值)的圆形邻域内的点在 x, y 方向上的 Haar 小波响应。
Pasted image 20241012192206|450|600
计算出影像在 Harr 小波的 x, y 方向的响应值后,对两个值进行因子为 2 s 的高斯加权。加权后的值分别表示在水平和垂直方向的方向分量。
Harr 特征值反应了灰度的变化情况,主方向就是描述灰度变化特别强烈的方向。
以特征点为中心,张角为 60°的扇形滑动,计算窗口内的 Harr 小波响应值 DX, DY, 的累加。在所有的向量中最长的,即为该特征点的方向。

特征描述

在特征点的一个方向区域内进行,大小 20* 20 s.也是划分为 4* 4 的小块,每个小块是 5* 5s,
统计每个子块内的像素点 Haar 模板沿主方向和垂直方向上的相响应,并统计响应值。
Pasted image 20241012193008|500|600
对不同模式图像下的描述子:Pasted image 20241012193147|600
下图是用SURF进行特征点匹配的实验结果
Pasted image 20241012193541|450|600

Fast(不具有尺度不变性和方向不变性)

方法

若某像素与附近邻域内足够多的像素点相差较大,则为像素点。

步骤

  • 海选
  • 筛选
  • [I] 对于海选的改进:
  • [&] step 1:
  • [*] step 2:
  • [!] step 3:
    • 当有连续的 N 个像素值,大于或小于这个阈值时,则为候选点。
    • 根据 N 的不同,可以分为 FAST 9 ,12,16
  • [#] 采用 NMS, 利用点 p 与他 16 个像素点的绝对偏差的和与其他特征点比较。较小的则会被删除。

ORB

  • 尺度不变性:利用图像金字塔解决
  • 旋转不变性:可以用质心标定方向解决
  • [!] 尺度不变性:
  • [!] 旋转不变性: (灰度质心法)
点击查看代码 - [ ] 在一个小的图像块中,定义图像的矩 - **普通矩公式:** ![](https://img2024.cnblogs.com/blog/3010991/202412/3010991-20241210113956456-250017965.png#pic_center =50%x50%)
 找到图像块的质心

连接图像块的质心与几何中心,得到一个方向向量。这就是特征点的方向。
 **几何中心的计算**:	

连接质心与几何中心

**方向向量归一化**

BRIEF 特征点描述子

  • 作用 :对已经得到的特征点进行描述,是一种二进制编码的描述子,舍弃了利用灰度直方图描述方法,采用二进制,位异或运算。

[!info]
FAST 改善了特征点的速度问题,BRIEF 解决了空间冗余的问题

  • 方法:与周围的像素值进行比较,得到的结果是二进制。
    • 高斯滤波

    • 以特征点为中心,取 S* S 的窗口,随机选取一对点,进行比较像素值,再进行赋值。

      • (在这个过程中比较的是 像素值,而如果图像是灰度图,这些像素值就是灰度值。如果是彩色图像,具体是比较 RGB 还是灰度值,要看描述符的具体实现方式。不过通常为了简化计算,会先将彩色图像转换为灰度图,从而直接比较灰度值。)
    • 在窗口中随机选取N对随机点,重复步骤2的二进制赋值,形成一个二进制编码,这个编码就是对特征点的描述,即特征描述子。(一般N=256)

      • 这个特征可以由n位二进制测试向量表示,BRIEF描述子
      • Pasted image 20241014173603|600
    • 随机特征对的选取 Pasted image 20241014173651|450|600

改进 BRIEF 描述子(添加旋转不变性)

根据特征点的方向角,构建一个旋转矩阵 Pasted image 20241014195300|600
N 对采样点 Pasted image 20241014195316|600
两者相乘,得到改进后的:Pasted image 20241014195333|600

特征匹配技术

思路

对原图像和目标图像进行特征点检测,特征点描述,构建特征点集,然后进行特征点匹配,最后进行纠正。
Pasted image 20241014195551|600

特征匹配技术

  • 暴力匹配
    • 对左图中的每个特征点,计算他和右图中所有的特征点的相似程度,取相似程度最大的作为匹配点。
    • 计算复杂度高,误差大
  • 握手匹配
    • 在暴力匹配基础上,又从右图向左图计算。
  • 快速近似,最近邻匹配
    • 最近邻距离与次近邻距离的比小于一定值。
    • image.png|600

相似性的量化

  • 平方差和(SSD)。直接衡量两个图像区域间不相似性的方法,但容易受光照变化的影响。
  • SSD 越小,相似性越高。 Pasted image 20241014203156|450|600
  • 零均值归一化互相关(NCC)
    • 为了减轻光照变化对相似性计算的影响,使用 NCC,可以归一化像素值,使其与均值和标准差无关。
    • NCC 接近于 1,高度相似
    • NCC 接近于-1,表示连个区域高度不相似
    • NCC 接近于 0,表示两个区域无关
posted @ 2024-12-10 11:44  边走边唱如诗如理想  阅读(20)  评论(0编辑  收藏  举报