计算机视觉CV中特征点提取SIFT算法的学习笔记
1 SIFT算法介绍
SIFT算法,即 Scale-Invariant Feature Transform,尺度无关的特征变换算法。
2 SIFT算法的主要步骤
2.1 生成特征点
2.1.1生成尺度空间:DoG算法
利用高斯滤波生成不同尺度下的图像,以构建高斯图像金字塔,如图所示,
可以看到,高斯金字塔分为多层,每层都是一个octave图层,高层octave是由低层octave中的图片下采样得到的。所以不同层octave的区别就是分辨率不同。
为了在每组中检测S个尺度的极值点,则DoG金字塔每组需S+2层图像,而DoG金字塔由高斯金字塔相邻两层相减得到,则高斯金字塔每组需S+3层图像,实际计算时S在3到5之间。
这一过程即是高斯金字塔生成DoG金字塔(即高斯差分金字塔)的过程。
2.1.2 对尺度空间中的DoG图像进行极值点检测
利用三张尺度相邻的DoG图像生成空间极值点的图像,具体来说,针对于空间点(x,y),取其3*3的领域(即9个点),加上上下相邻的两个尺度图像中对应的邻域,共有27个点,比较这27个点的值,取其极值(极小值和极大值),作为新图像的值,则生成了极值点图像,其示意图如下,
对于n张DoG图像的话,经过极值点检测则会获得n-2张极值点图像数据。
2.1.3 关键点的定位
以上方法检测到的极值点是离散空间的极值点,以下通过拟合三维二次函数来精确确定关键点的位置和尺度,同时去除低对比度的关键点和不稳定的边缘响应点(因为DoG算子会产生较强的边缘响应),以增强匹配稳定性、提高抗噪声能力。
2.1.3.1 关键点的精确定位
离散空间的极值点并不是真正的极值点,图4.1显示了二维函数离散空间得到的极值点与连续空间极值点的差别。利用已知的离散空间点插值得到的连续空间极值点的方法叫做子像素插值(Sub-pixel Interpolation)。
3.1.3.2 消除边缘响应
一个定义不好的高斯差分算子的极值在横跨边缘的地方有较大的主曲率,而在垂直边缘的方向有较小的主曲率。
计算机视觉CV中特征点提取SIFT算法的学习笔记相关推荐
- 计算机视觉CV中特征点提取SURF算法的学习笔记
1 致谢 感谢网友tongle.Wang的帮助, 链接如下: https://blog.csdn.net/ecnu18918079120/article/details/78195792 2 SURF ...
- 计算机视觉CV中特征点方法相关函数的学习笔记~
1 致谢 感谢网友大奥特曼打小怪兽的帮助 原文链接如下: https://www.cnblogs.com/zyly/p/9646201.html 1 前言 特征点方法是计算机视觉传统目标检测方法中很常 ...
- 【计算机视觉】局部图像描述子:SIFT算法
文章目录 [计算机视觉]局部图像描述子:SIFT算法 1. SIFT算法的原理 1.1 SIFT算法的目标与思想 1.1.1 算法目标 1.1.2 算法思想 1.2 尺度空间的思想和表示 1.2.1 ...
- 尺度不变特征变换(SIFT算法)Matlab程序代码测试例子的说明(Lowe的代码)
目前网络上可以找到的关于SIFT算法Matlab测试代码的资源就是: 1 加拿大University of British Columbia 大学计算机科学系教授 David G. Lowe发表于20 ...
- 计算机视觉算法——Transformer学习笔记
算机视觉算法--Transformer学习笔记 计算机视觉算法--Transformer学习笔记 1. Vision Transformer 1.1 网络结构 1.2 关键知识点 1.2.1 Self ...
- 计算机视觉——一种现代方法(第二版)学习笔记
计算机视觉--一种现代方法(第二版)学习笔记 第1章 摄像机的几何模型 如上左图所示,我们需要将一个空间点X映射到一个图像点x(3维->2维)上即 根据右上图我们很容易推到处下面的变换: 这个结 ...
- SVO中 Inverse Compositional Image Alignment方法的学习笔记
SVO中 Inverse Compositional Image Alignment方法的学习笔记 这篇文章 光流法简介 逆向光流法 结尾 这篇文章 在SVO系统中的"Relaxation ...
- 聚类算法评价指标学习笔记
聚类算法评价指标学习笔记 本文列举常用聚类性能度量指标,并列出相应代码与参考资料 聚类性能度量大致分两类,一类将聚类结果与某个"参考模型"(reference model)进行比较 ...
- 数据结构与算法-链表学习笔记
数据结构与算法-链表学习笔记 链表的概念 链表是有序的列表. 链表是以节点的方式来存储,是链式存储,它在内存中并不是一定是连续的. 每个节点包含 data 域:存储数据, next 域:指向下一个节点 ...
最新文章
- /lib/lsb/init-functions
- python getchar功能_getchar函数
- java换行符分隔字符串_Java 实例 – 字符串分隔(StringTokenizer) | 菜鸟教程
- 交换两个数字的三种方式
- 容量耦合系数模型_期刊在线 | 基于ALE流固耦合方法的刷式密封泄漏特性理论与实验研究...
- 把这个写成一个类吧TREEVIEW
- 数据分析用r还是python_想要从事数据分析,选择python还是R语言呢?
- 从「蒸汽时代」到「高铁时代」,SUNMI DevOps 转型之路 | 原力计划
- opengl es3.0游戏开发学习笔记2--绘制地月星系
- 在计算机f有关快捷键,电脑快捷键大全
- Sheryl Crow Does the HSN Hustle With New Clothing Line
- 朋友圈变美靠AI:新型美颜技术实现细粒度颜值提升
- 小程序点餐系统——点餐列表页(未讲解完)
- 博客小白如何快捷而又优雅的写好一篇博客
- Java诊断工具Arthas使用说明
- java写的软件有哪些?
- ARTS总结-第2周
- unity结合MMD发布android不显示模型不播放动画问题解决方法
- CLR via C#-基元类型、引用类型和值类型
- MySQL高级---1-黑马
热门文章
- GridView 中的事件
- java9 javascript_JS(JavaScript)的j进一步了解9(更新中···)
- 数据集转josion
- Spring中的观察者模式
- HTTP请求头和响应头部包括的信息有哪些?(转)
- cssz中a标签鼠标选中去除选中边框
- LeetCode 208. Implement Trie (Prefix Tree)
- 6月3号=》66页-70页
- windows之间自动传送文件
- 【数据库系统设计】关系数据库标准语言SQL(3)