在SIFT解析(一)建立高斯金字塔中,我们得到了高斯差分金字塔;

检测DOG尺度空间极值点

SIFT关键点是由DOG空间的局部极值点组成的.以中心点进行3X3X3的相邻点比较,检测其是否是图像域和尺度域的相邻点的极大值或极小值.

(1)为了确保不是噪声我们先进型阈值二值化;

n和S一样,你想提取多少个图片的特征;(n)S表示每组提取多少层

(2)在差分金字塔中找极值点

特征点是由DOG空间的局部极值点组成的。为了寻找DoG函数的极值点,每一个像素点要和它所有的相邻点比较,看其是否比它的图像域和尺度域的相邻点大或者小。特征点是由DOG空间的局部极值点组成的。如上图,中间的检测点和它同尺度的8个相邻点和上下相邻尺度对应的9×2个点共26个点比较,以确保在尺度空间和二维图像空间都检测到极值点。

由于像素是离散的,且尺度空间也是离散的(前后尺度成k倍),有可能找到的极值点是真正极值点旁边的点,如下图:

因此需要极值点的精确定位; 利用已知的离散空间点插值得到的连续空间极值点的方法叫做子像素插值(Sub-pixel Interpolation)。

(3)极值点的精确定位

为了提高关键点的稳定性,需要对尺度空间DoG函数进行曲线拟合。利用DoG函数在尺度空间的Taylor展开式(拟合函数)为:

求导方法:就是利用相邻像素差值代替求导

可参考:sift算法原理详解(三)

检测到的极值点对应极值点的方程为:

(4)舍去低对比度的极值点

其中,代表相对插值中心的偏移量,当它在任一维度上的偏移量大于0.5时(即x或y或),意味着插值中心已经偏移到它的邻近点上,所以必须改变当前关键点的位置。同时在新的位置上反复插值直到收敛;也有可能超出所设定的迭代次数或者超出图像边界的范围,此时这样的点应该删除,在Lowe中进行了5次迭代。另外,过小的点易受噪声的干扰而变得不稳定,所以将小于某个经验值(Lowe论文中使用0.03,Rob Hess等人实现时使用0.04/S)的极值点删除。同时,在此过程中获取特征点的精确位置(原位置加上拟合的偏移量)以及尺度()。

对应公式:T取0.04,n和S一样,你想提取多少个图片的特征;(n)S表示每组提取多少层

(5)边缘效应的去除(Hessian矩阵)

具体的海森矩阵数学公式可以参考:https://blog.csdn.net/qq_33854260/article/details/69808970 和  https://blog.csdn.net/qq_39521554/article/details/78895869

其与图像的关系:https://blog.csdn.net/lwzkiller/article/details/55050275

H(x,y)就是高斯差分金字塔中对x,y的二阶导数,及

然后我们需要知道矩阵的迹(Tr(H))是矩阵的特征根之和(α和β)和行列式的计算(Det(H));

首先我们知道在OpenCV——Harris、Shi Tomas、自定义、亚像素角点检测

harris焦点检测中的特征值的变化可以检测出边缘;

同理,既然我们能检测出边缘,就可以剔除边缘点;及希望特征根α和β两个值相差不多,及没有边缘效应;故希望r小于一定的阈值;

令为α最大特征值,β为最小的特征值,则公式的值在两个特征值相等时最小,随着的增大而增大。值越大,说明两个特征值的比值越大,即在某一个方向的梯度值越大,而在另一个方向的梯度值越小,而边缘恰恰就是这种情况。所以为了剔除边缘响应点,需要让该比值小于一定的阈值,因此,为了检测主曲率是否在某域值r下,只需检测

(4-7)

式(4-7)成立时将关键点保留,反之剔除。

原文链接:https://blog.csdn.net/qq_37374643/article/details/88606351

参考:SIFT算法原理详解

转载于:https://www.cnblogs.com/fcfc940503/p/11484789.html

SIFT算法原理(2)-极值点的精确定位相关推荐

  1. 【SIFT算法】极值检测关键点精确定位

    文章链接:https://blog.csdn.net/q_z_r_s 机器感知 一个专注于SLAM.机器视觉.Linux 等相关技术文章分享的公众号 从论文摘要中可以知道,SIFT算法的第一步就是进行 ...

  2. 【图像配准】SIFT算法原理及二图配准拼接

    前言 本篇开始,将进入图像配准领域的研究. 图像拼接主要有SIFT, BRISK, ORB, AKAZE等传统机器学习算法以及SuperPoint等深度学习算法,在后续将一一进行研究和实验.本篇主要来 ...

  3. SIFT算法特征描述子构建---关键点定位原理及代码

    0.引言 sift针对局部特征进行特征提取,在尺度空间寻找极值点,提取位置,尺度,旋转不变量,生成特征描述子. 总共分四个步骤: 尺度金字塔生成 关键点/极值点提取 生成梯度直方图 特征描述子构建 s ...

  4. SIFT算法原理详解

    通过<图像局部不变性特征与描述>学习SIFT,遇到各种Issue,总结了这篇博客和另外九篇博客.感谢关注,希望可以互相学习,不断提升.转载请注明链接:https://www.cnblogs ...

  5. 非常详细的sift算法原理解析

    尺度不变特征变换匹配算法详解 Scale Invariant Feature Transform(SIFT) Just For Fun 转自:http://blog.csdn.net/zddblog/ ...

  6. 图像局部特征(六)--斑点检测之SIFT算法原理总结补充

     原文: http://www.cnblogs.com/cfantaisie/archive/2011/06/14/2080917.html 主要步骤  1).尺度空间的生成:     2).检测 ...

  7. 图像局部特征(五)--斑点检测之SIFT算法原理总结

     尺度不变特征变换匹配算法详解 Scale Invariant Feature Transform(SIFT) Just For Fun zdd  zddmail@gmail.com 对于初学者, ...

  8. SIFT算法原理(不带公式)

    尺度不变特征转换(Scale-invariant feature transform或SIFT)是David Lowe于1999年提出的局部特征描述子,并于2004年进行了更深入的发展和完善.Sift ...

  9. opencv经典算子原理总结+SIFT算法原理+特征匹配用于图像拼接

    此文总结一下opencv中的一些常见算子,如SIFT.Canny.及霍夫变换等原理,可用于深度理解特征提取数学原理 1.SIFT(尺度不变性特征转换) SIFT算法的实质是在不同的尺度空间上查找关键点 ...

最新文章

  1. 一位入行4年的优化师是怎么写出一本信息流广告入门书的?
  2. ubuntu安装node.js
  3. pythonurllib微博登陆是什么_而不是使用urllib登录网站http.clien
  4. Django框架(9.Django中的配置使用MySQL数据库以及页面重定向)
  5. 使用iOS手势UIGestureRecognizer
  6. Python中import模块的两种模式
  7. 如何有效解决C与C++的相互调用问题
  8. TensorFlow笔记(10) CheckPoint
  9. 二分求值(二分适合求答案在两个数之间的题目)
  10. PowerDesigner模型分类
  11. 通过Keepalived实现Redis Failover自动故障切换
  12. [翻译]在SQL Server中使用CLR调用.NET方法
  13. colorpicker插件和使用(直接能用真美好)
  14. 巧用Procexp找出弹窗广告真凶
  15. Open Robotics 十周年(2012-2022)
  16. Android 中Goolgle 相关服务的移植[转]
  17. [AHK]通达信联动到同花顺下单
  18. 从零写一个操作系统之booting
  19. 关于亚马逊开店需要做哪些准备
  20. 360下载win2003

热门文章

  1. 52单片机定时器0-2实现1ms定时
  2. opencv两张图片叠加显示
  3. qnap raid5升级raid6_实践出真知!100TB的RAID5到底能否重建成功?
  4. Google Earth Engine(GEE)——美国近地表高精度实时气象数据集(2500米分辨率)
  5. SQL优化步骤(建议收藏)
  6. 抗渗等级p6是什么意思_混凝土防水等级S6,P6分别是什么意思
  7. linux安装frps服务,ubuntu搭建frps服务
  8. 毛刺的危害及常见去毛刺方法技巧整理
  9. php最大的论坛,phpwind论坛史上最大漏洞 -电脑资料
  10. 邓俊辉《数据结构》-向量学习笔记