(一)图像特征匹配--SIFT

1.1 SIFT背景简介

SIFT算法是David Lowe在1999年提出的局部特征描述子,并在2004年深入发展和完善。

SIFT算法是在尺度空间进行特征检测并确定关键点的位置和关键点所在的尺度。

该关键点方向特征选取该点邻域梯度的主方向,以便实现算子对尺度和方向的无关性。

1.2 SIFT特征向量生成步骤

一幅图像SIFT特征向量的生成步骤主要有如下四步:

(1)检测尺度空间极值点,初步确定关键点的位置和所在尺度; [初步找出关键点群]

(2)精确确定关键点位置和尺度,同时去除低对比度的关键点和不确定的边缘响应点,以便增强匹配稳定性、提高抗噪声能力;[精确确定关键点群并择优筛选]

(3)指定每个关键点的方向参数,以便算子具有旋转不变性;

(4)生成关键点描述子,即生成SIFT特征向量;

1.2.1尺度空间

概念解释:尺度空间:尺度空间是利用高斯核对原始图像进行尺度变换,获得图像多尺度下的尺度空间表示序列,对这些序列进行尺度空间特征提取

其中,二维高斯核定义为:

其中σ被称为尺度坐标, 是高斯正态分布的方差。

注:除高斯核外,尺度函数有很多,但并不是所有的尺度函数都可以构建尺度空间。Koenderink和Lindeberg已经证明,在一些合理的约束下,高斯核是唯一可以产生尺度空间的核,而且是唯一的线性核。

二维图像 在不同的尺度空间可以通过图像与卷积核做卷积求得

这里尺度坐标σ越小表示图像被平滑的越少,σ越大表示图像被平滑的越多。大尺度反映图像概貌特征,小尺度反映图像细节特征。

选择合适的尺度因子是构建尺度空间的关键。

1.2.2 高斯金字塔构建

        1)高斯差分尺度空间(DOG scale-space);

为了在尺度空间有效检测到稳定的关键点,提出了高斯差分尺度空间,它是由不同尺度的高斯差分核与图像卷积而生成的。

图像高斯金字塔有O组,每一组有S层,在实际计算时,使用高斯金字塔每组中相邻上下两层图像相减,下一层的图像由上一层图像降采样得到,得到高斯差分图像。

           

(a)高斯金字塔                                               (b)高斯差分金字塔生成图示

图 高斯金字塔图示

(1)空间极值点检测 [关键点初步筛选]

为了寻找尺度空间极值点,需要每个采样点与它所有的相邻点比较,看其是否比它图像域和尺度域的相邻点大或小。

图 DOG尺度空间局部极值监测

图中中间的检测点与它相同尺度的8个相邻点以及上、下相邻尺度的9*2个点比较,以确保在尺度空间和二维图像空间都监测到极值点。

(2)确定极值点位置 [确定关键点]

通过你和三维二次函数来精确确定关键点位置和尺度。

由于DOG算子会产生较强的边缘效应,,所以需要去除低对比度的关键点和不问稳定的边缘响应点以增强匹配稳定性和提高抗噪声能力。

去除边缘响应点原理: 定义一个不好的高斯差分算子的极值在横跨边缘的地方主曲率大,而垂直边缘的方向主曲率小。主曲率通过一个2*2的Hessian矩阵

求出,令为最大特征值, 为最小特征值,

导数由采样点相邻差估计得到。

D的主曲率和H的特征值成正比,令α = γβ,则

此函数单调递增,可以限制比值γ达到过滤边缘响应点的目的。

(3)求关键点方向

利用关键点邻域像素的梯度方向分布特性为每个关键点制定方向参数,使算子具备旋转不变性。

由此可以求出(x,y)处的方向和梯度。 L所用的尺度是每个关键点所在的尺度。

注:一个特征点有三个属性:位置、尺度和方向

(4)生成SIFT特征向量

图像配准SIFT的更多相关文章

  1. 图像配准:从SIFT到深度学习

      图像配准(Image Registration)是计算机视觉中的基本步骤.在本文中,我们首先介绍基于OpenCV的方法,然后介绍深度学习的方法. 什么是图像配准 图像配准就是找到一幅图像像素到另一 ...

  2. Opencv探索之路(二十):制作一个简易手动图像配准工具

    近日在做基于sift特征点的图像配准时遇到匹配失败的情况,失败的原因在于两幅图像分辨率相差有点大,而且这两幅图是不同时间段的同一场景的图片,所以基于sift点的匹配已经找不到匹配点了.然后老师叫我尝试 ...

  3. CV 两幅图像配准

    http://www.cnblogs.com/Lemon-Li/p/3504717.html 图像配准算法一般可分为: 一.基于图像灰度统计特性配准算法:二.基于图像特征配准算法:三.基于图像理解的配 ...

  4. 【计算机视觉】图像配准(Image Registration)

    (Source:https://blog.sicara.com/image-registration-sift-deep-learning-3c794d794b7a)  图像配准方法概述 图像配准广泛 ...

  5. 非刚性图像配准 matlab简单示例 demons算法

    2011-05-25 17:21 非刚性图像配准 matlab简单示例 demons算法, % Clean clc; clear all; close all; % Compile the mex f ...

  6. 经典的图像匹配算法----SIFT

    经典的图像匹配算法----SIFT  http://mp.weixin.qq.com/s?__biz=MzIzNDM2OTMzOQ==&mid=2247484319&idx=1& ...

  7. 图像配准建立仿射变换模型并用RANSAC算法评估

    当初选方向时就由于从小几何就不好.缺乏空间想像能力才没有选择摄影測量方向而是选择了GIS. 昨天同学找我帮他做图像匹配.这我哪里懂啊,无奈我是一个别人有求于我,总是不好意思开口拒绝的人.于是乎就看着他 ...

  8. 【图像配准】基于互信息的图像配准算法:MI、EMI、ECC算法

    简单介绍: 基于互信息的图像配准算法以其较高的配准精度和广泛的适用性而成为图像配准领域研究的热点之中的一个.而基于互信息的医学图像配准方法被觉得是最好的配准方法之中的一个.基于此.本文将介绍简单的基于 ...

  9. Opencv中使用Surf特征实现图像配准及对透视变换矩阵H的平移修正

    图像配准需要将一张测试图片按照第二张基准图片的尺寸.角度等形态信息进行透视(仿射)变换匹配,本例通过Surf特征的定位和匹配实现图像配准. 配准流程: 1. 提取两幅图像的Surf特征 2. 对Sur ...

随机推荐

  1. .NET Conf 2019 大会上发布.NET Core 3.0

    北京时间今天凌晨如期在.NET Conf 上发布.NET Core 3.0,Keynotes 由Scott Hunter 主演,主要围绕.NET Core 3.0的新特性和社区展开. 多功能性是.Ne ...

  2. Tomcat下java普通类IO文件路径问题

    由于在windows和linux下文件路径的表示方式存在差异 而我们的项目大多是在windows下的eclipse中完成测试 然后部署到linux的tomcat服务器中 这个时候我们既不能把地址写死( ...

  3. 原来python如此神奇

    一.优缺点分析 1.缺点: ① 数学问题的生成中只考虑了消除乘除法加括号的无效情况(例如3*(4+5)或(6*5)/2这样的计算),但没有去掉加减法加括号的无效情况(例如(4+(7+8))或(3-(2 ...

  4. Redis 主从,哨兵,集群实战

    下载地址及版本说明 Redis 各版本下载地址: http://download.redis.io/releases/ 版本说明:一般来说版本号第二位,偶数是稳定版本,奇数是在开发中的版本 本文基于R ...

  5. 为什么不使用SOAP进行点对点联系,而使用ESB呢

    图片截至: https://www.zhihu.com/question/29475224

  6. java进阶文章优选链接,面试干货集合

    Java多线程: java多线程详细总结:https://blog.csdn.net/chenruijia170707/article/details/78505351 ThreadLocal 用法及 ...

  7. mybatis collection和association使用区别

    1. association-关联,用于一对一(如人与身份证)和多对一(如班级和学生) 2. collection-集合,用于一对多(如学生和班级)的关系

  8. centos7 Apache开启URL重写组件并配置.htaccess实现伪静态

    第一.修改httpd.conf文件 A - 在etc/httpd/conf/目录下的httpd.conf 文件,找到: LoadModule rewrite_module modules/mod_re ...

  9. css实现斜角效果

    重点代码: 使用一张图片盖住div,实现斜角效果 .triangle { position: absolute; top:; left:; width: 36px; height: 36px; bac ...

  10. Spring5源码解析3-refresh方法初探

    接上回分析完register(annotatedClasses);后,现在来看一下refresh();方法. // new AnnotationConfigApplicationContext(App ...