(一)图像特征匹配--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. Aspose.Cell导出带chart图表

    最终实现的效果就是这样,代码比较多,我放在了CSDN上了,是无需模板的,别听网上瞎吹,说什么要模板,地址是:https://download.csdn.net/download/chanelwtt/1 ...

  2. 记录工作中groovy动态生成Flink任务

    工作中的痛点:有一个计算的任务,需要配置成前端配置好一些简单的信息,例如名字,计算间隔,计算规则(这个是需要提前写好,开放给用户选择的),然后通过提交到我们的计算引擎中心生成对应的任务jar包提交到服 ...

  3. C++基础之适配器

    什么是容器适配器? ”适配器是使一种事物的行为类似于另外一种事物行为的一种机制”,适配器对容器进行包装,使其表现出另外一种行为.例如,stack<int, vector<int> & ...

  4. 程序猿——踩bug之路

    从开始这就是一个新的坑,还好今天我们爬上了: 带着Ui界面的编程,最想感谢的是我的搭档乔美萱:此处我觉得需要掌声和尖叫,一路带我从走到飞: 一.结对编程项目:带UI的小初高数学学习软件 1.用户注册功 ...

  5. 从SpringMVC获取用户信息谈起

    Github地址:https://github.com/andyslin/spring-ext 编译.运行环境:JDK 8 + Maven 3 + IDEA + Lombok spring-boot: ...

  6. Google AppCrawler初探

    AppCrawler是什么 你可以把它想成类似monkey一样的工具,调起你的应用程序并执行各种动作(点击,输入,滑动等)来通过这种方式 来查看各种情况下应用程序的状态 官方文档链接:AppCrawl ...

  7. Linux 查看端口状态netstat

    netstat命令参数: -t : 指明显示TCP端口 -u : 指明显示UDP端口 -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序) -p ...

  8. 【ADO.NET基础-Login】带验证码验证的登录界面(用于简单的基础学习)

    以下代码如果有不对或者不妥之处,还望大神们指点一二 或者有同学者有问题或建议,一定要提出来,共同探讨 小弟在此感谢! 前台代码: <!DOCTYPE html> <html xmln ...

  9. 使用.NET Core中创建Windows服务(一) - 使用官方推荐方式

    原文:Creating Windows Services In .NET Core – Part 1 – The "Microsoft" Way 作者:Dotnet Core Tu ...

  10. Stanford公开课《编译原理》学习笔记(2)递归下降法

    目录 一. Parse阶段 CFG Recursive Descent(递归下降遍历) 二. 递归下降遍历 2.1 预备知识 2.2 多行语句的处理思路 2.3 简易的文法定义 2.4 文法产生式的代 ...