Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >图像特征点匹配算法_bf模式匹配算法

图像特征点匹配算法_bf模式匹配算法

作者头像
全栈程序员站长
发布于 2022-11-04 02:52:42
发布于 2022-11-04 02:52:42
2.4K0
举报

摘要:现阶段,基于特征点匹配的算法,如SIFT,SURF等著名匹配算法,都是基于一个尺度空间来进行描述的,那么了解尺度空间是什么将是全面了解特征点匹配的关键性基础知识。网上基于尺度空间的基础知识有很少的介绍,所以本章将主要介绍尺度空间,我们将从最底层了解怎么提取特征点,为啥用这种特征点具有较强的鲁棒性。

网上基于尺度空间的基础知识有很少的介绍,所以本文将主要介绍尺度空间,使读者在运用基于SIFT等特征匹配算法时,能从最基本的理论上思考问题和解决问题。本文涉及很多理论数学公式,本来想着要不要就这种很数学的理论进行讲解,但是本公众号本着“知其所以然”的精神还是决定将这种“难啃的骨头”解释一遍,使大家能更加透彻。

01 背景及概念

同一个物体在成像时,由于远近不同,会导致在图像中的大小、细节性(模糊)等方面产生差异,但是该物体又是同一个物体,所以我们不知道到底哪个是真实的,该如何去衡量。于是在1994年由Lindeberg[1]提出来的尺度空间来衡量物体在图像中和现实中的一个关联。这其实就是地图上的距离尺标一样,用来表示不同大小成像物体和真实大小的一种关系。 [外链图片转存失败(img-qslwUMs2-1562988897683)(https://raw.githubusercontent.com/FutureIsM/blog_img/master/尺度空间/不同尺度空间的效果.JPG)] 以原图作为基准,最后一幅图就像是在距离很远的距离看的一大幅图中的部分截图。所以可以用一个尺度空间来表示距离和大小的相互关系。

02 尺度空间

Koenderink[2]等人用精准的数学形式通过不同的途径都证明了高斯核实实现尺度变换的唯一变换核。

尺度空间的最原始的形式是由热传导方程演变而来,热传导方程式是一个用来描述热量随着时间变化在空间的分布过程,具有下面的形式:

$$ \frac{\partial μ}{\partial t}= k \left( \frac{\partial ^2 μ}{\partial t^2} + \frac{\partial ^2 μ}{\partial t^2} +\frac{\partial ^2 μ}{\partial t^2} \right )= k \nabla^2 μ $$

其中μ描述的是热量在空间的分布,k是一个长寿。在信号处理领域中,如果把信号函数 f : R → R f: \mathbb R \to R f:R→R视成“温度”在空间中的初始分布,那么,尺度空间出生成过程则可以看作是尺度t的函数,是信号随着t变化的热扩散空间分布。这样信号的尺度空间L,有类似热扩散的方程表达式:

$${\partial _t}L = \frac{1}{2}{\nabla ^T}\nabla L = \frac{1}{2}\sum\limits_{i = 1}^N {

{\partial _{x_i^2}}L} $$

微分方程的初始条件为 L ( ⋅ ; 0 ) = f ( ⋅ ) L\left( { \cdot ;0} \right) = f\left( \cdot \right) L(⋅;0)=f(⋅),t∈R(+)是尺度参数。该偏微分方程可以解析得到尺度空间表达L:R(N)xR(+)->R:

$$L\left( {x;t} \right) = g\left( {x;t} \right) * f\left( x \right) = \int_{\xi \in {R^N}} {f\left( {x – \xi } \right)g\left( \xi \right)} d\xi $$

式中,g是R(N)xR(+){0}->R高斯函数。上式定义了一个关于(x,t)的曲面函数,包含一个具有尺度变量t的高斯核,我们称为高斯尺度空间。其中高斯核表达式为:

$$g\left( {x,t} \right) = \frac{1}{

{

{

{\left( {2\pi t} \right)}^{N/2}}}}{e^{ – {x^T}x/\left( {2t} \right)}}\left( {x \in {R^N}} \right)$$

式中N表示维度,例如N=1为一维基本高斯函数。 在尺度空间的任一尺度上,都可以应用局部微分算子:

$${L_{

{x^\alpha }}}\left( { \cdot ;t} \right) = {\partial _{

{x^\alpha }}}L\left( { \cdot ;t} \right) = {\partial _{x_1^{

{\alpha _1}}}} \cdots {\partial _{x_D^{

{\alpha _D}}}}L\left( { \cdot ;t} \right)$$

式中,x=(x1,…,xD);α=α1+…+αD。由于微分算子和高斯平滑算子可以互换,即

$${L_{

{x^m}{y^n}}}\left( {x,y;t} \right) = {\partial _{

{x^m}{y^n}}}\left( {

{g_t} * f} \right) = \left( {

{\partial _{

{x^m}{y^n}}}{g_t}} \right) * f$$

所以,尺度空间微分算子可以等效为原始图像与高斯微分算子的卷积。因此,尺度空间微分算子有时候也被称为高斯微分算子。

03 高斯尺度空间特性

高斯核作为唯一具有线性尺度不变的变换核,由于我们在很多的图像处理中应用高斯核,例如高斯模糊核等,所以高斯核具有相关主要特性将在下面介绍。

  • 加权平均性 由于高斯函数的特性,高斯尺度空间有平滑作用,也就是会抑制一些精细结构。
  • 层叠平滑性

$$g\left( { \cdot ;t} \right) * g\left( { \cdot ;s} \right) = g\left( { \cdot ;t + s} \right)$$

  • 局部极值递减性 (1)如果在某个尺度t0上,函数L(x,t0)在点x0上取得局部极大值,则该点拉普拉斯运算Δ L(x0,t0)是负值,也就意味着∂L(x0,t0)<0; (2)如果在某个尺度t0上,函数L(x,t0)在点x0上取得局部极小值,则该点拉普拉斯运算Δ L(x0,t0)是正值,也就意味着∂L(x0,t0)>0; 以上可以看出,函数L的各阶导数极值点数量不会增加,同样,意味着零点数量也不增加。 我们以某特定频率w0正弦信号为例,对这个性质作进一步探讨。为例简单介绍,仅考虑一维情况,f(x)=sin(w0x)。其尺度空间的解析解为:

$$L\left( {x;t} \right) = \int {\sin \left( {

{w_0}\left( {x – \xi } \right)} \right)\frac{1}{

{\sqrt {2\pi t} }}} {e^{ – \frac{

{

{\xi ^2}}}{

{2t}}}}d\xi = {e^{ – w_0^2t/2}}\sin {w_0}x$$

所以上式尺度t上的振幅表达式为:

$${L_{\max }}\left( t \right) = {e^{ – w_0^2t/2}}$$

m阶导数的振幅表达式为:

$${L_{

{x^m},\max }}\left( t \right) = {w_0}^m{e^{ – w_0^2t/2}}$$

这两个表达式都表明振幅会随着尺度的增加而指数级减少。

  • 尺度伸缩不变性 假设有两个信号有一定的伸缩变换关系如下式:
{f\left( x \right) = {f^{‘}}\left( {sx} \right)}

则它们各自的尺度空间表达式为:

$$L\left( { \cdot ;t} \right) = g\left( { \cdot ;t} \right) * f$$

$${L^{‘}}\left( { \cdot ;{t^{‘}}} \right) = g\left( { \cdot ;{t^{‘}}} \right) * {f^{‘}}$$

其中,x’=sx;t’=s2t,空间变量 x 和尺度变量 t 有如下转换:

$${L^{‘}}\left( {

{x^{‘}};{t^{‘}}} \right) = {g^{‘}}\left( {

{x^{‘}};{t^{‘}}} \right) * {f^{‘}}\left( {

{x^{‘}}} \right) = g’\left( {sx;{s^2}t} \right) * {f^{‘}}\left( {sx} \right) = \frac{1}{s}g\left( {x,t} \right) * f\left( x \right) = \frac{1}{s}L\left( {x;t} \right)$$

这是本文推导的式子,和常见的推导结果有所不同,值得探讨。根据对应关系,我们可以知道对应的伸缩尺度上会有个相同的极值,只是幅度上会有一定的伸缩。除非g为广义高斯,没有前置系数。 假设如下公式成立

$${L^{‘}}\left( {

{x^{‘}};{t^{‘}}} \right) = L\left( {x;t} \right)$$

则有

$$\frac{

{\partial {L^{‘}}\left( {

{x^{‘}};{t^{‘}}} \right)}}{

{\partial {x^{‘}}}} = \frac{

{\partial L\left( {x;t} \right)}}{

{\partial x}}\frac{

{\partial x}}{

{\partial {x^{‘}}}}$$

$${\partial _{

{x^m}}}L\left( {x;t} \right) = {s^m}{\partial _{

{x^{‘m}}}}{L^{‘}}\left( {

{x^{‘}};{t^{‘}}} \right)$$

为了去除尺度参数对特征响应的影响,我们引入一个γ——坐标规范化的概念。那么,规范化后的变量为

$$\xi = \frac{x}{

{

{\sigma ^r}}} = \frac{x}{

{

{

{\left( {\sqrt t } \right)}^r}}}$$

则有

$$\frac{

{\partial L\left( {x;t} \right)}}{

{\partial \xi }} = \frac{

{\partial L\left( {x;t} \right)}}{

{\partial x}}\frac{

{\partial x}}{

{\partial \xi }}$$

$${\partial _{

{\xi ^m},\gamma – norm}}L\left( { \cdot ;t} \right) = {t^{\gamma m/2}}{\partial _{

{x^m}}}L\left( { \cdot ;t} \right)$$

$${\partial _{

{\xi ^{‘m}},\gamma – norm}}{L^{‘}}\left( { \cdot ;{t^{‘}}} \right) = {t^{‘\gamma m/2}}{\partial _{

{x^{‘m}}}}{L^{‘}}\left( { \cdot ;{t^{‘}}} \right)$$

引入规范化后有

$${\partial _{\xi ,\gamma – norm}}L\left( { \cdot ;t} \right) = {s^{m\left( {1 – \gamma } \right)}}{\partial _{

{\xi ^{‘}},\gamma – norm}}{L^{‘}}\left( { \cdot ;{t^{‘}}} \right)$$

所以为了去除这种因为尺度带来的指数性衰减,我们一般都是用一个规范化的γ=1来达到尺度不变性。由于s(m)是尺度变化本身带来的,我们只需要设定一个t(rm/2)的系数去抵消尺度。 下面在斑点检测中进行实验说明,我们设定一个斑点的宽度为4,则它的图像形式则为 [外链图片转存失败(img-yp7jPWMq-1562988897684)(https://raw.githubusercontent.com/FutureIsM/blog_img/master/尺度空间/光斑信号.JPG)] 假如不用规范化的二阶高斯核去卷积,卷积的结果为

上图左边为未规范前不同方差大小的二阶高斯核,右边为二阶高斯核和斑点信号卷积后的响应结果。为了去除方差导致的衰减现象,应用高斯函数的导数时,对其进行规范化处理,其中γ=1:

$$\frac{d}{

{dx}}\bar g = \sigma \frac{d}{

{dx}}g = \sqrt t \frac{d}{

{dx}}g,\frac{

{

{d^2}}}{

{d{x^2}}}\bar g = {\sigma ^2}\frac{

{

{d^2}}}{

{d{x^2}}}g = t\frac{

{

{d^2}}}{

{d{x^2}}}g$$ 响应结果为: [外链图片转存失败(img-hBgK0HU4-1562988897685)(https://raw.githubusercontent.com/FutureIsM/blog_img/master/尺度空间/规范后响应.JPG)] 上图实验结果可以看到,规范化后,能够在正确的尺度下找到峰值。

03 图像特征检测

最后再来看看图像特征提取中的应用,最经典的就是sift,它就是构建了一个尺度空间来寻找最合适的峰值。 [外链图片转存失败(img-mW7UNGz8-1562988897685)(https://raw.githubusercontent.com/FutureIsM/blog_img/master/尺度空间/尺度空间特征.JPG)] 由上图可以看到,同样一个物体,由于远近导致在同一个图片中的尺度不一样,而我们通过拉普拉斯求得某个点在尺度空间遍历的峰值,我们就认为这个尺度就是该物体的尺度。如左边的路灯是远景,尺寸比较小,所以拉普拉斯的峰值相对于右边近景横轴尺度t要小。 那么需要判断什么是特征点呢?前人总结了很多角点和斑点的特征,他们会在尺度上有一个峰值,这个峰值存在而且具有超过阈值的响应,我们就认为这个点鲁棒性很强,又具有尺度不变性,加上设计的方向描述子,这就是一个完整的尺度不变性,旋转不变性,鲁棒性强的特征点,这就是基本的sift设计思维。

小结:简单的原理下面是复杂的数学推理和公式计算,而通透这些理论公式是非常枯燥乏味的过程,但同时也是最基础最能给予人最深刻体会的过程。通过了解尺度空间,我们可以知道尺度不变性是什么样的概念,那么特征点匹配算法等是怎么利用这种特性来建立鲁棒性强的特征提取算法的,感谢阅读,如有任何疑问请向我们留言,我们下章见!

[1] Lindeberg T. Scale-space theory incomputer vision[M]. Springer Science & Business Media, 2013. [2] Koenderink J J. The structure of images[J]. Biologicalcybernetics, 1984, 50(5): 363-370.

闲在写了个公众号《算故为法》,本公众号其实主打夯实基础,也许后期后做些视野型的文章写些关注发展前言,本公众号将分享和梳理基础理论知识,也许有错误的地方,也请同行多指点。最后,欢迎大家关注,你的关注是我不断更新的动力!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/182202.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月14日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【机器学习与实现】支持向量机SVM
图中深蓝色线便是决策边界,也称分离超平面;两条虚线之间宽度叫做间隔 (margin)。支持向量机的优化目标为——间隔最大化。
Francek Chen
2025/01/23
2180
【机器学习与实现】支持向量机SVM
经典的图像匹配算法----SIFT
一. SIFT简介 1.1 算法提出的背景: 成像匹配的核心问题是将同一目标在不同时间、不同分辨率、不同光照、不同位姿情况下所成的像相对应。传统的匹配算法往往是直接提取角点或边缘,对环境的适应能力较差,急需提出一种鲁棒性强、能够适应不同光照、不同位姿等情况下能够有效识别目标的方法。1999年British Columbia大学大卫.劳伊( David G.Lowe)教授总结了现有的基于不变量技术的特征检测方法,并正式提出了一种基于尺度空间的、对图像缩放、旋转甚至仿射变换保持不变性的图像局部特征描述算子-SI
智能算法
2018/04/02
24.7K1
经典的图像匹配算法----SIFT
图像特征点|SIFT特征点之图像金字塔
计算机视觉中的特征点提取算法比较多,但SIFT除了计算比较耗时以外,其他方面的优点让其成为特征点提取算法中的一颗璀璨的明珠。SIFT算法的介绍网上有很多比较好的博客和文章,我在学习这个算法的过程中也参看网上好些资料,即使评价比较高的文章,作者在文章中对有些比较重要的细节、公式来历没有提及,可能写博客的人自己明白,也觉得简单,因此就忽略了这些问题,但是对刚入门的人来说,看这些东西,想搞清楚这些是怎么来的还是比较费时费力的。比如SIFT算法中一个重要的操作:求取描述子的主方向。好多文章只是一提而过或忽略,然后直接给出一个公式,SIFT算法的原作者也提使用抛物线插值,但是具体怎么插的就不太详尽了,对于初学者来说更是不知所云。因此本文打算在参看的文章上对有关这些细节给出一些比较详细的说明,还有本文尽量对操作过程配备对应图片或示意图说明,同时附上robwhesss开源SIFT C代码对应程序块并给予注解,方便理解。
小白学视觉
2019/10/24
2K0
图像特征点|SIFT特征点之图像金字塔
SIFT–尺度空间、高斯金字塔
SIFT成名已久,但理解起来还是很难的,一在原作者Lowe的论文对细节提到的非常少,二在虽然网上有许多相应博文,但这些博文云里雾里,非常头疼,在查看了许多资料了,下面贴出我自己的一些理解,希望有所帮助。
全栈程序员站长
2022/11/04
8220
图像特征点|SIFT特征点位置与方向
关键点是由DOG空间的局部极值点组成的,关键点的初步探查是通过同一组内各DoG相邻两层图像之间比较完成的。为了寻找DoG函数的极值点,每一个像素点要和它所有的相邻点比较,看其是否比它的图像域和尺度域的相邻点大或者小。如图下图所示,中间的检测点和它同尺度的8个相邻点和上下相邻尺度对应的9×2个点共26个点比较,以确保在尺度空间和二维图像空间都检测到极值点。
小白学视觉
2019/10/23
2.1K0
特征提取——局部特征
https://blog.csdn.net/coming_is_winter/article/details/72850511 https://blog.csdn.net/zouxy09/article/details/7929348/
AomanHao
2022/01/14
1.3K0
特征提取——局部特征
详解计算机视觉中的特征点检测:Harris / SIFT / SURF / ORB
本文详细论述了四个特征点检测算法:Harris, SIFT,SURF以及ORB的思路步骤以及特点,分析了它们的局限性,并对几个重要问题进行了探讨。
3D视觉工坊
2020/11/19
5K0
机器学习算法|支持向量机(Support Vector Machine,SVM)
机器学习(MachineLearning),作为计算机科学的子领域,是人工智能领域的重要分支和实现方式。
阿巴阿巴-
2025/03/03
9010
关于图像配准(Image Registration)的基础知识汇总1.0
(1)图像配准(Image registration)是将同一场景拍摄的不同图像进行对齐的技术,即找到图像之间的点对点映射关系,或者对某种感兴趣的特征建立关联。
江夏四卯
2023/09/26
16.6K0
图像局部特征提取
图像特征可以包括颜色特征、纹理特征、形状特征以及局部特征点等。其中局部特点具有很好的稳定性,不容易受外界环境的干扰。图像特征提取是图像分析与图像识别的前提,它是将高维的图像数据进行简化表达最有效的方式,从一幅图像的的数据矩阵中,我们看不出任何信息,所以我们必须根据这些数据提取出图像中的关键信息,一些基本元件以及它们的关系。
范中豪
2019/09/30
3K0
图像局部特征提取
北邮通信原理知识点笔记小结-上半部分
数字通信比模拟通信有着更强的抗干扰能力,可以消除噪声积累,便于集成化、加密性能好,但是代价是什么呢?
Fisherman渔夫
2020/02/19
2K0
SIFT特征点提取「建议收藏」
计算机视觉中的特征点提取算法比较多,但SIFT除了计算比较耗时以外,其他方面的优点让其成为特征点提取算法中的一颗璀璨的明珠。SIFT算法的介绍网上有很多比较好的博客和文章,我在学习这个算法的过程中也参看网上好些资料,即使评价比较高的文章,作者在文章中对有些比较重要的细节、公式来历没有提及,可能写博客的人自己明白,也觉得简单,因此就忽略了这些问题,但是对刚入门的人来说,看这些东西,想搞清楚这些是怎么来的还是比较费时费力的。比如SIFT算法中一个重要的操作:求取描述子的主方向。好多文章只是一提而过或忽略,然后直接给出一个公式,SIFT算法的原作者也提使用抛物线插值,但是具体怎么插的就不太详尽了,对于初学者来说更是不知所云。因此本文打算在参看的文章上对有关这些细节给出一些比较详细的说明,还有本文尽量对操作过程配备对应图片或示意图说明,同时附上robwhesss开源SIFT C代码对应程序块并给予注解,方便理解。
全栈程序员站长
2022/07/02
2.5K0
SIFT特征点提取「建议收藏」
图像特征点|Harris特征点
小白在之前的为小伙伴在前面的推送中带来了moravec算子,忘记了的小伙伴可以回过去看一下《图像特征点|moravec特征点》,但是moravec算子也具有很多不足之处。接下来小白将介绍Harris角点中针对其不足之处进行的改进地方。
小白学视觉
2019/10/24
1.1K0
基于特征点的视觉全局定位技术
作者简介:英年早肥,美团无人配送平台,地图与定位组成员,负责视觉定位、里程计相关算法,致力于在流浪地球前实现自动驾驶
美团无人配送
2019/04/26
3.9K0
基于特征点的视觉全局定位技术
图像特征点|ORB特征点
ORB特征包括特征点和描述子。特征点用于筛选比较“特殊”的点,而描述子用来描述某个点周围的特征。接下来将分别介绍这两部分。
小白学视觉
2019/10/24
1.2K0
SEPC:使用3D卷积从FPN中提取尺度不变特征,涨点神器 | CVPR 2020
论文: Scale-Equalizing Pyramid Convolution for Object Detection
VincentLee
2020/05/26
9490
计算机视觉方向简介 | 图像拼接
作者戴金艳,公众号:计算机视觉life, 编辑部成员.首发原文链接计算机视觉方向简介 | 图像拼接
用户1150922
2019/08/01
1.4K0
图像处理之特征提取
知乎上看到一个话题—— 目前火热的 Deep Learning 会灭绝传统的 SIFT / SURF 特征提取方法吗? ---- 由于之前研究过SIFT和HOG这两种传统的特征提取方法,故本篇文章先对SIFT和HOG作一综述,并比较二者优缺点。之后,将SIFT和HOG同神经网络特征提取做一对比,浅谈对上述问题的看法。如果能写得快一些,再简单介绍其他几种传统的特征提取的方法——SURF、ORB、LBP、HAAR等等。 ---- 目录 [1] SIFT(尺度不变特征变换) [2] HOG(方向梯度直方图)
echobingo
2018/04/25
5.7K0
图像处理之特征提取
harris角点检测_那就更详细一点吧
在现实世界中,角点对应于物体的拐角,道路的十字路口、丁字路口等。从图像分析的角度来定义角点可以有以下两种定义:
全栈程序员站长
2022/11/07
1.3K0
SIFT特征提取分析(附源码)
SIFT(Scale-invariant feature transform)是一种检测局部特征的算法,该算法通过求一幅图中的特征点(interest points,or corner points)及其有关scale 和 orientation 的描述子得到特征并进行图像特征点匹配,获得了良好效果,详细解析如下: 算法描述 SIFT特征不只具有尺度不变性,即使改变旋转角度,图像亮度或拍摄视角,仍然能够得到好的检测效果。整个算法分为以下几个部分: 1. 构建尺度空间 这是一个初始化操作,尺度空间理论目的是模
机器学习AI算法工程
2018/03/12
2K0
SIFT特征提取分析(附源码)
相关推荐
【机器学习与实现】支持向量机SVM
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档