【学习笔记】SIFT尺度不变特征 (配合UCF-CRCV课程视频)

SIFT尺度不变特征

D. Lowe. Distinctive image features from scale-invariant key points, IJCV 2004

-Lecture 05 - Scale-invariant Feature Transform (SIFT)

https://www.youtube.com/watch?v=NPcMS49V5hg

本文是上面UCF-CRCV课程视频的学习笔记。

DOG(Difference of Gaussian)角点 / Harris point(角点) 通过z轴旋转 点位置与未旋转的点 位置重合

所以角点Harris Point具有旋转不变性

Invariance to image scale and rotation

SIFT cares Local features

Steps for Extracting Key Points

1 Scale space peak selection

Potential locations for finding features

2 Key point localization

Accurately locating the feature key points

3 Orientation Assignment

Assigning orientation to the key points

4 Key point descriptor(SIFT descriptor)

Describing the key point as a high dimensional vector

detector VS descriptor

Scales

sigma for Canny and LG edge detection?

用来做高斯平滑的sigma如何选择。mask 的 width

zero-crossing检测出来边缘点(角点),zero-cross就是二阶导数为0的点。

Scale space(尺度空间)(Witkin, IJCAI 1983)

每一个弧形弯度定点都是一个zero-crossing

小的点会被更大scale的点包围并且替代

总结:实施全光谱尺寸的扫表,然后画出具有包含关系的zero-crossing如上图。

理解尺寸空间曲线(拱形曲线,bottom开口,顶部闭合;建立区间树)。

介绍:

尺度空间的生成目的是模拟图像数据多尺度特征。高斯卷积核是实现尺度变化的唯一线性核。

对计算机视觉而言,无法预知某种尺度的物体结构是有意的,因此有必要将所有尺度的结构表示出来。

比如温度曲线的采集,不能是无限的,这里在一定温度范围进行量化采集,温度范围即是选择的尺度。

多尺度表示方法:空间金字塔

 

Laplacian-of-Gaussian(LoG)

通过 LoG平滑,得到多scale的图片空间。

如何确定该点是interest point(或者说是角点):

取得当前尺度该点p 的9个neighbors和上下两种尺度的各9各neighbors,如果p的尺度是27各点中的最大值或者最小值点,那么p是Interest point。最后得到了(x, y, sigma)代表该点。

 

Approximation of LoG by Difference of Gaussians

    (k*sigm) a Gasussian filter ~~~ LoG  是通过热传导方程推导的(Heat Equation)

typically, sigma = 1.6    k = sqrt(2);

Building  a Scale Space

高斯卷积核是实现尺度变换的唯一线性核,于是一副二维图像的尺度空间定义为:

其中 G(x,y,σ) 是尺度可变高斯函数 ;(x,y)是空间坐标,是尺度坐标。σ大小决定图像的平滑程度,大尺度对应图像的概貌特征,小尺度对应图像的细节特征。大的σ值对应粗糙尺度(低分辨率),反之,对应精细尺度(高分辨率)。为了有效的在尺度空间检测到稳定的关键点,提出了高斯差分尺度空间(DOG scale-space)。利用不同尺度的高斯差分核与图像卷积生成。

关于octave(八度)是为了实现高斯差分尺度空间,利用不同尺度的高斯差分核与图像卷积生成。每一个octave的输入都是上一层octave降采样的输出,这里因为采样的时候x , y都各减小一半,整个图像降采样之后就变为原来的1/4.

其实就是为了让每一个octave的变化差异更大,而进行认为的划分。

通过实验曲线表明

每一个octave 中有3个scale 最好。

sigma = 1.6

去掉一系列离群点的方法

Orientation Assignment

为了实现旋转不变性计算key point(x, y)的中央导数,梯度级,L(smooth image)的方向

方向上将360度分为36个bin。统计每一个key point 的邻居的方向梯度。

梯度和边缘是更加稳定的feature 相比较于 raw intensity values

Descriptor是描述特征的重要工具

上图左(并不是全部neighbors,是全部neighbors的 1/2),image中有key point找到16*16 neighbors

16 * 16 / 4 * 4 (blocks) = 16 (histograms)

each 4 * 4 = 16 blocks using 1 histogram

16 (histograms) * 8(demensions)  = 128 (demensions)  -> vector -> Sift-descriptor

然后又是实验表明:

4 x 4 blocks && 8 bins 最好

Key Point matching

foreach (d1 in A_Descriptors)

foreach (d2 in B_Descriptors)

find_minimum_Euclidean_distance_beteween(d1, d2);

0.1   0.15...  very close    best match 0.1 / second match 0.15 = ratio = 80%

if ratio low, first match looks good

if high,     could be ambiguous match

ratio 用来衡量第一近和第二近的两个点之间的相近程度,如果接近80% 那么干脆两个点都不选。因为有两个matching你不知道哪一个才是最好的!

 

Ratio 可以对correct matching  num 产生影响

最后

pagerank 和 论文cities的统计思想类似。 考察论文被人引用的次数,类似统计网站被别的网站链接的次数。

H index = 5  means 你已经写了至少5篇papers,这些文章至少被引用了5次。

时间: 2024-10-10 02:39:39

【学习笔记】SIFT尺度不变特征 (配合UCF-CRCV课程视频)的相关文章

基础学习笔记之opencv(6):实现将图片生成视频

基础学习笔记之opencv(6):实现将图片生成视频 在做实验的过程中.难免会读视频中的图片用来处理,相反将处理好的图片又整理输出为一个视频文件也是非经常常使用的. 以下就来讲讲基于opencv的C++版本号中图片输出视频是怎么实现的. 本次试验的数据为摇摆的树枝树叶图片,Waving Trees,其来源网址为: http://research.microsoft.com/en-us/um/people/jckrumm/WallFlower/TestImages.ht 该数据全由bmp图片组成.

[ExtJS5学习笔记]第二十节 Extjs5配合数组的push方法,动态创建并加载组件

本文地址:http://blog.csdn.net/sushengmiyan/article/details/39226773 官方例子:http://docs.sencha.com/extjs/5.0/apidocs/#!/api/Array-method-push 本文作者:sushengmiyan -------------------------------------------------------------------------------------------------

机电传动控制第六周学习笔记——《机电传动控制》和其他课程的联系

机电传动控制就目前学习的情况来看电学方面的东西比较多,但是与其他非电类的课程也有很多联系. 1.电机原理的部分主要是和基础物理学里面的内容有很大关系,比如电磁感应,楞次定律等等,从基础的物理原理讲起: 2.进入控制部分以后我们见到了很多电机,建模的时候有数学建模的思想,利用自定义的参数的变化得到电机随时间的运行状况仿真,并通过探讨这些参数的敏感性牺牲不敏感参数找到整体的最优解: 3.编程的思想和C语言很类似.逻辑性和面向过程编程都很重要: 4.控制时使用的继电器-接触器控制电路与电路的分析很类似

MYSQL进阶学习笔记九:MySQL事务的应用!(视频序号:进阶_21-22)

知识点十:MySQL 事务的应用 (21-22) 为什么要引入事务: 为什么要引入事务这个技术呢?现在的很多软件都是多用户,多程序,多线程的.对同一表可能同时有很多人在用,为保持数据的一致性,所以提出了事务的概念.这样很抽象,举个例子: A给B要划钱,A的账户是-1000元,B的账户是+1000元,这两个UPDATE语句必须作为一个整体来执行,不然A扣钱了,B没有加钱这种情况很难处理. 什么存储过程类型支持事务: 1.查看数据库下面支持的事务(InnoDB支持): SHOW ENGINES; 2

【官方文档】Nginx模块Nginx-Rtmp-Module学习笔记(三)流式播放Live HLS视频

HTTP Live Streaming(HLS)是由Apple Inc.实施的非常强大的流视频协议.HLS使用穿过防火墙,代理的HTTP事务,并可以轻松地通过CDN进行分发.因此,该技术能够比RTP或其他基于UDP的协议达到更大的观众观众.今天在线直播的许多视频都是由使用HLS的昂贵系统进行托管,但它们通常很昂贵,需要大量的服务器资源.本教程将向您展示如何设置一个非常实惠的Ubuntu 14.04 VULTR VPS,只使用开源软件来进行HLS直播流事件. 第一步是根据Vultr Doc" Ub

MYSQL进阶学习笔记五:MySQL函数的创建!(视频序号:进阶_13)

知识点六:MySQL函数的创建(13) 内置函数: 自定义函数: 首先查看是否已经开启了创建函数的功能: SHOW VARIABLES LIKE '%fun%'; 如果变量的值是OFF,那么需要开启 set global log_bin_trust_function_creators=1; 创建函数的语法: CREATE FUNCTION 函数名(变量1,变量2--) RETURNS 数据类型 BEGIN --执行的程序代码 RETURN 数据; END; 1 --默认数据 2 CREATE T

Excel 学习笔记——排序,筛选,查找,定位,分类汇总和数据有效性及 细节操作技巧

Excel 学习笔记   课程内容:查找.替换.定位 想要实现的目标内容: 1.       替换指定内容,例:苏州 <- 苏州市  红色背景色<- 黄色背景色 将"张某某"替换为"经理的亲戚" 2.       定位特定位置的单元格,类似筛选功能(mac 系统中 暂时未发现定位按钮) 3.       批注 修改 删除 变换形状 隐藏命令 利用的工具,手段(操作按钮的名称,位置): 1.1   查找和替换-选项-单元格匹配 用来锁定指定单元格,避免类似

spring data jpa学习笔记一:helloworld

在学习 JPA Spring Data之前,我们有必要了解一下JPA和Spring Data. JPA JPA全称Java Persistence API.即java持久化规范.JPA通过注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中. Spring Data Spring Data是Spring框架的一个子项目,就像Spring MVC是Spring的一部分一样.使得数据库访问变得方便和快捷.Spring Data 支持JPA. JPA Spring Data J

【CS】尺度不变特征变换匹配算法SIFT(2)

尺度不变特征变换匹配算法SIFT(2) e-mail:[email protected] SIFT算法 在10月初,草草学习了一下SIFT(可以戳这里查看),主要是调用opencv函数库了的函数进行了实践,而并没有深入了解SIFT描述子的原理以及opencv中相关函数的用法和参数说明.本篇blog作为LZ的小笔记,记录一下opencv中相关函数的说明,对于SIFT特征的原理后续将花时间继续了解. C++代码 环境:vs2010+opencv2.3.1+win7 ×64 这部分代码还是使用上一篇S