[机器视觉] SIFT特征-尺度不变特征理解
SIFT特征-尺度不变特征理解
简介
SIFT,即尺度不变特征变换(Scale-invariant feature transform,SIFT),是用于图像处理领域的一种描述。这种描述具有尺度不变性,可在图像中检测出关键点,是一种局部特征描述子。该方法于1999年由David Lowe首先发表于计算机视觉国际会议(International Conference on Computer Vision,ICCV),2004年再次经David Lowe整理完善后发表于International journal of computer vision(IJCV)。截止2014年8月,该论文单篇被引次数达25000余次。

特点
- 对旋转、尺度缩放、亮度变化保持不变性,对视角变化、噪声等也存在一定程度的稳定性
- 独特性,信息量丰富,适用于在海量特征数据中进行快速,准确的匹配
- 多量性,即使少数几个物体也可以产生大量的Sfit特征向量
- 可扩展性,可以很方便的与其他形式的特征向量进行联合
高斯图像金字塔
理解
高斯图像金字塔是把原图像先放大一倍(如150✖150到300✖300),对这个放大后的图像进行高斯滤波(之前讲过的高斯模糊,可以回去看一下),其中模糊半径分别取σ、kσ、k^2σ等等,得到若干个模糊后的图像,这是第一组,然后依次按照比例为2缩小图像,如此重复,构建一个有若干组(Octave)的金字塔,每组分为若干层。

补充
用O表示octave(第几组),用L表示layer(第几层),则(O,L)就代表高斯图像空间中的确定的一副图像。
DOG金字塔
理解
DOG金字塔(Difference of Gaussian)就是高斯金字塔同一octave下相邻两层的差分构成的金字塔。

解释
之所以要构建差分金字塔,就是为了找到在不同尺度和不同模糊程度下的不变特征,而这正式SIFT要提取的"稳定"特征。
空间极值点检测
理解
这里的空间极值点检测,其实就是在DOG空间的一个octave下比较每一个像素和它相邻点的大小,看它是否比其他点都要大。如果比周围点都大,说明它是是局部的极值点(这一点我们可以类比一个二次函数,它的最低点是不是比周围点都小,所以它是极值点,当然它也恰巧是最低点)。

补充
这里我们要计算图中打x的点是不是极值点,那么我们就要比较它与不同层以及同层的周围一共26个点的大小,才能确定它是不是空间的极值点。
关键点精确定位
理解
由于我们上面的操作都是在离散空间操作的,我们知道,离散空间取到的极值点,并不一定是真正的极值点,所以我们需要通过类似函数拟合的方式,对离散点进行拟合使之连续,在连续空间就很容易利用我们的知识求取极值点。

计算
我们将DOG空间的泰勒展开式子看成其拟合函数,就可以操作连续空间的函数了。
候选特征点x,其偏移量定义为Δx,其对比度为D(x)的绝对值∣D(x)∣,对D(x)应用泰勒展开式

由于x是D(x)的极值点,所以对上式求导并令其为0,得到

然后再把求得的Δx代入到D(x)的泰勒展开式中

设对比度的阈值为T,若∣D(x^)∣≥T,则该特征点保留,否则剔除掉。
关键方向匹配
理解
上面说了,SIFT特征具有旋转不变性,而它的旋转不变性就在于每一个关键点都有一个基准方向,而这个基准方向是由图像的局部决定和分配的。
计算
梯度的模值和方向定义如下:


利用这个公式计算以关键点为中心的领域内所有点的梯度方向(8个方向),计算完之后,我们使用直方图来统计领域内像素的梯度和方向。梯度直方图将0~360度的方向分为36个立柱,每柱10度。直方图的峰值代表的是该关键点的主方向。为了增强鲁棒性,如果由立柱的值大于峰值的80%,我们将其作为关键点的辅方向。(下图只花了8个方向)。

关键点描述
理解
关键点描述是对领域内高斯图像直方图统计结果的一种表示形式,我们找到的特征点参数有位置、尺度和方向。在关键点周围的领域内,将其分为m✖m个子块,每个子块以中间点为原点,分别计算梯度直方图,生成局部向量,对该向量进行标准高斯函数加权处理,然后对特征向量进行归一化处理。每个关键点在下图中可以产生2✖2✖8维向量作为特征向量。

David G.Lowed的实验结果表明:对每个关键点,采用448共128维向量的描述子进项关键点表征,综合效果最佳:

特征点匹配
理解
有了目标图片,对目标图片计算SIFT特征,然后用其特征向量与已知特征的特征向量进行欧式距离匹配,其欧式距离越小,匹配度越高。
[机器视觉] SIFT特征-尺度不变特征理解的更多相关文章
- paper 65 :尺度不变特征变换匹配算法[转载]
尺度不变特征变换匹配算法 对于初学者,从David G.Lowe的论文到实现,有许多鸿沟,本文帮你跨越.1.SIFT综述 尺度不变特征转换(Scale-invariant feature transf ...
- 第十二节、尺度不变特征(SIFT)
上一节中,我们介绍了Harris角点检测.角点在图像旋转的情况下也可以检测到,但是如果减小(或者增加)图像的大小,可能会丢失图像的某些部分,甚至导致检测到的角点发生改变.这样的损失现象需要一种与图像比 ...
- 【学习笔记】SIFT尺度不变特征 (配合UCF-CRCV课程视频)
SIFT尺度不变特征 D. Lowe. Distinctive image features from scale-invariant key points, IJCV 2004 -Lecture 0 ...
- OpenCV-Python SIFT尺度不变特征变换 | 三十九
目标 在这一章当中, 我们将学习SIFT算法的概念 我们将学习找到SIFT关键点和描述算符. 理论 在前两章中,我们看到了一些像Harris这样的拐角检测器.它们是旋转不变的,这意味着即使图像旋转了, ...
- Distinctive Image Features from Scale-Invariant Keypoints(SIFT) 基于尺度不变关键点的特征描述子——2004年
Abstract摘要本文提出了一种从图像中提取特征不变性的方法,该方法可用于在对象或场景的不同视图之间进行可靠的匹配(适用场景和任务).这些特征对图像的尺度和旋转不变性,并且在很大范围的仿射失真.3d ...
- SIFT算法:确定特征点方向
SIFT算法:DoG尺度空间生产 SIFT算法:KeyPoint找寻.定位与优化 SIFT算法:确定特征点方向 SIFT算法:特征描述子 目录: 1.计算邻域梯度方向和幅值 2.计算梯度方向直方图 ...
- opencv中的SIFT,SURF,ORB,FAST 特征描叙算子比较
opencv中的SIFT,SURF,ORB,FAST 特征描叙算子比较 参考: http://wenku.baidu.com/link?url=1aDYAJBCrrK-uk2w3sSNai7h52x_ ...
- SEPC:使用3D卷积从FPN中提取尺度不变特征,涨点神器 | CVPR 2020
论文提出PConv为对特征金字塔进行3D卷积,配合特定的iBN进行正则化,能够有效地融合尺度间的内在关系,另外,论文提出SEPC,使用可变形卷积来适应实际特征间对应的不规律性,保持尺度均衡.PConv ...
- 图像特征提取三大法宝:HOG特征,LBP特征,Haar特征(转载)
(一)HOG特征 1.HOG特征: 方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子.它通过计算和 ...
随机推荐
- QDUOJ 河老师的新年礼物(尺取法)
河老师的新年礼物 发布时间: 2017年1月1日 15:11 最后更新: 2017年1月1日 15:13 时间限制: 1000ms 内存限制: 256M 描述 河老师的新年礼物是一个长度为 ...
- 《剑指offer》面试题22—栈的压入、弹出序列
<程序员面试宝典>上也有经典的火车进站问题,类似. 如果12345是压栈顺序,序列45321可能是出栈顺序,但序列43512不可能. 规律:对序列中任意元素n,排在n后且比n小的元素一定是 ...
- static_cast、dynamic_cast、const_cast和reinterpret_cast总结
转自:http://www.jellythink.com/archives/205 前言 这篇文章总结的是C++中的类型转换,这些小的知识点,有的时候,自己不是很注意,但是在实际开发中确实经常使用的. ...
- python创建矩阵
创建二维数组的办法 直接创建(不推荐) 列表生产式法(可以去列表生成式 - 廖雪峰的官方网站学习) 使用模块numpy创建 举个栗子: 创建一个3*3矩阵,并计算主对角线元素之和. import nu ...
- 【转】生产环境:Nginx高可用方案
准备工作: 192.168.16.128 192.168.16.129 两条虚拟机.安装好 Nginx 安装Nginx 更新 yum 源文件: rpm -ivh http://nginx.org/pa ...
- php UTF8 转字节数组,后使用 MD5 计算摘要
Hex.encodeHexString(md5.digest);按 UTF8 转字节数组,后使用 MD5 计算摘要,得到 16 字节数组,使用 Hex 转为长度为 32 的字符串,保持小写 bin2h ...
- 2014-11-1 NOIP模拟赛1
冲刺NOIP2014复赛模拟题第六套第二试 题目名称 日历游戏 最大公约数 密码 英文代号 calendar gcd pasuwado 输入文件名 calendar.in gcd.in pasuw ...
- PAT甲级——1102 Invert a Binary Tree (层序遍历+中序遍历)
本文同步发布在CSDN:https://blog.csdn.net/weixin_44385565/article/details/90577042 1102 Invert a Binary Tree ...
- ubuntu上安装ansible
1 在最新的ubuntu系统上安装ansible : sudo ape-get install ansible 2 切换到root用户 生成ssh免密登陆 ssh-keygen -t rsa ssh- ...
- 099 Recover Binary Search Tree 复原二叉搜索树
二叉排序树中有两个节点被交换了,要求把树恢复成二叉排序树. 详见:https://leetcode.com/problems/recover-binary-search-tree/submission ...