SIFT算法详解及应用-尺度不变特征变换匹配算法
SIFT算法的介绍和应用

SIFT算法的介绍和应用SIFT(Scale-Invariant Feature Transform)算法是一种用于图像特征提取和匹配的算法,由David Lowe于1999年首次提出。
SIFT算法具有尺度不变性和旋转不变性,能够在不同尺度和旋转角度下检测并描述图像中的局部特征。
因此,SIFT算法在计算机视觉领域广泛应用于图像拼接、目标识别、图像检索、三维重建等任务。
尺度空间极值点检测是SIFT算法的关键步骤之一、该步骤通过在不同的尺度下使用高斯差分金字塔来检测图像中的关键点。
SIFT算法使用了DoG(Difference of Gaussians)来近似尺度空间的Laplacian of Gaussian(LoG)金字塔。
通过对高斯金字塔中不同尺度上的图像之间进行差分操作,我们可以得到一组差分图像。
SIFT算法通过在这些差分图像中找到局部最小值和最大值,来检测图像中的关键点。
关键点精确定位是SIFT算法的另一个重要步骤。
在粗略检测到的关键点位置附近,SIFT算法利用高斯曲率空间来精确定位关键点。
具体做法是,在检测到的关键点位置处通过Taylor展开近似曲线,并通过求解偏导数为零的方程来计算关键点的位置。
方向分配是SIFT算法的下一个步骤。
该步骤用于给每个关键点分配一个主方向,以增强特征的旋转不变性。
SIFT算法在关键点周围的像素中计算梯度幅值和方向,然后生成一个梯度方向直方图。
直方图中最大的值对应于关键点的主方向。
特征描述是SIFT算法的另一个核心步骤。
在这个步骤中,SIFT算法根据关键点周围的梯度方向直方图构建一个128维的特征向量,该特征向量描述了关键点的局部特征。
具体做法是,将关键点附近的像素划分为若干个子区域,并计算每个子区域内的梯度幅值和方向,然后将这些信息组合成一个128维的向量。
特征匹配是SIFT算法的最后一步。
在这个步骤中,SIFT算法通过比较特征向量之间的欧氏距离来进行特征匹配。
SIFT算法详解及应用

SIFT算法详解及应用SIFT(Scale-Invariant Feature Transform)是一种图像处理算法,它能够在不同尺度、旋转、光照条件下进行特征点匹配。
SIFT算法是计算机视觉领域的一个重要算法,广泛应用于目标识别、图像拼接、图像检索等方面。
首先,尺度空间极值检测是指在不同尺度上检测图像中的极值点,即图像中的局部最大值或最小值。
这样可以使特征点能够对应不同尺度的目标,使算法对尺度变化有鲁棒性。
为了实现这一步骤,SIFT算法使用了高斯差分金字塔来检测尺度空间中的极值点。
接下来是关键点定位,即确定在尺度空间极值点的位置以及对应的尺度。
SIFT算法通过比较每个极值点与其周围点的响应值大小来判断其是否为关键点。
同时,为了提高关键点的稳定性和准确性,算法还会对关键点位置进行亚像素精确化。
然后是关键点方向的确定,即为每个关键点分配一个主方向。
SIFT算法使用图像梯度方向的直方图来确定关键点的方向。
这样可以使得特征描述子具有旋转不变性,使算法在目标旋转的情况下仍能进行匹配。
最后是关键点的描述。
SIFT算法使用局部图像的梯度信息来描述关键点,即构建关键点的特征向量。
特征向量的构建过程主要包括将关键点周围的图像划分为若干个子区域,计算每个子区域的梯度直方图,并将所有子区域的直方图拼接成一个特征向量。
这样可以使得特征向量具有局部不变性和对光照变化的鲁棒性。
SIFT算法的应用非常广泛。
首先,在目标识别领域,SIFT算法能够检测和匹配图像中的关键点,从而实现目标的识别和定位。
其次,在图像拼接方面,SIFT算法能够提取图像中的特征点,并通过匹配这些特征点来完成图像的拼接。
此外,SIFT算法还可以应用于图像检索、三维重建、行人检测等领域。
总结起来,SIFT算法是一种具有尺度不变性和旋转不变性的图像处理算法。
它通过提取图像中的关键点,并构建关键点的描述子,实现了对不同尺度、旋转、光照条件下的目标识别和图像匹配。
SIFT算法原理:SIFT算法详细介绍

前面们介绍了Harris和Shi-Tomasi角检测算法,这两种算法具有旋转不变性,但不具有尺度不变性,以下图为例,在左侧小图中可以检测到角,但图像被放后,在使用同样的窗口,就检测不到角了。
所以,们来介绍一种计算机视觉的算法,尺度不变特征转换即SIFT(Scale-invariantfeaturetransform)。
它用来侦测与描述影像中的局部性特征,它在空间尺度中寻找极值,并提取出其位置、尺度、旋转不变量,此算法由DavidLowe在1999年所发表,2004年完善总结。
应用范围包含物体辨识、机器人地图感知与导航、影像缝合、3D模型建立、手势辨识、影像追踪和动作比对等领域。
SIFT算法的实质在不同的尺度空间上查找关键(特征),并计算出关键的方向。
SIFT 所查找到的关键一些十分突出,不会因光照,仿变换和噪音等因素而变化的,如角、边缘、暗区的亮及亮区的暗等。
1.1基本流程Lowe将SIFT算法分解为如下四步:尺度空间极值检测:搜索所有尺度上的图像位置。
通过高斯差分函数来识别潜在的对于尺度和旋转不变的关键。
关键定位:在每个候选的位置上,通过一个拟合精细的模型来确定位置和尺度。
关键的选择依据于它们的稳定程度。
关键方向确定:基于图像局部的梯度方向,分配给每个关键位置一个或多个方向。
所有后面的对图像数据的操作都相对于关键的方向、尺度和位置进行变换,从而保证了对于这些变换的不变性。
关键描述:在每个关键周围的邻域内,在选定的尺度上测量图像局部的梯度。
这些梯度作为关键的描述符,它允许比较的局部形状的变形或光照变化。
们就沿着Lowe的步骤,对SIFT算法的实现过程进行介绍:1.2尺度空间极值检测在不同的尺度空间不能使用相同的窗口检测极值,对小的关键使用小的窗口,对的关键使用的窗口,为了达到上述目的,们使用尺度空间滤波器。
高斯核可以产生多尺度空间的核函数。
-《Scale-spacetheory:Abasictoolforanalysingstructuresatdifferentscales》。
尺度不变特征变换算法

尺度不变特征变换算法一、前言尺度不变特征变换算法(Scale-Invariant Feature Transform,SIFT)是一种用于图像处理和计算机视觉的算法,由David Lowe于1999年提出。
SIFT算法可以在不同尺度和旋转下找到图像中的关键点,并提取出这些关键点的局部特征描述符,从而实现对图像的匹配、识别等任务。
二、SIFT算法原理1. 尺度空间构建SIFT算法首先通过高斯滤波器构建尺度空间,以便在不同尺度下检测图像中的关键点。
高斯滤波器可以模拟人眼对图像的模糊效果,使得在不同尺度下能够检测到具有相似形状但大小不同的物体。
2. 关键点检测在构建好尺度空间后,SIFT算法通过DoG(差分高斯)金字塔来寻找关键点。
DoG金字塔是由相邻两层高斯金字塔之差得到的,它可以有效地检测出具有不同尺度和方向的局部极值点。
3. 方向分配为了使得特征描述子具有旋转不变性,在确定关键点位置后,SIFT算法还需要计算每个关键点的主方向。
它通过计算关键点周围像素的梯度方向直方图来确定主方向,从而使得特征描述子能够在不同角度下进行匹配。
4. 特征描述在确定了关键点位置和主方向之后,SIFT算法通过计算关键点周围像素的梯度幅值和方向来生成特征描述子。
这个过程中,SIFT算法使用了一个16×16的窗口,并将其分成4×4个小窗口,在每个小窗口中计算8个梯度方向的直方图,最终生成一个128维的特征向量。
5. 特征匹配在提取出两幅图像中所有关键点的特征描述子后,SIFT算法采用欧氏距离来计算两个特征向量之间的相似度,并使用比率测试来判断是否为匹配点。
如果两个特征向量之间的距离小于一定阈值,并且与次近邻之间距离比例大于一定比例,则认为是匹配点。
三、SIFT算法优缺点1. 优点:(1)尺度不变性:SIFT算法可以在不同尺度下检测到具有相似形状但大小不同的物体;(2)旋转不变性:SIFT算法可以计算每个关键点的主方向,从而使得特征描述子能够在不同角度下进行匹配;(3)鲁棒性:SIFT算法对于光照、视角、噪声等因素有较好的鲁棒性。
sift算法详解

2、高斯模糊
SIFT 算法是在不同的尺度空间上查找关键点,而尺度空间的获取需要使用高斯模糊来 实现,Lindeberg 等人已证明高斯卷积核是实现尺度变换的唯一变换核,并且是唯一的线性 核。本节先介绍高斯模糊算法。
2.1 二维高斯函数
高斯模糊是一种图像滤波器,它使用正态分布(高斯函数)计算模糊模板,并使用该模板 与原图像做卷积运算,达到模糊图像的目的。 N 维空间正态分布方程为:
G (r ) =
1 2πσ
2
N
e −r
2
/(2 σ 2 )
(1-1)
其中, σ 是正态分布的标准差, σ 值越大,图像越模糊(平滑)。r 为模糊半径,模糊半 径是指模板元素到模板中心的距离。如二维模板大小为 m*n,则模板上的元素(x,y)对应的高 斯计算公式为:
G ( x, y ) =
1
2πσ 2
3.1 尺度空间理论
尺度空间(scale space)思想最早是由 Iijima 于 1962 年提出的,后经 witkin 和 Koenderink 等人的推广逐渐得到关注,在计算机视觉领域使用广泛。 尺度空间理论的基本思想是: 在图像信息处理模型中引入一个被视为尺度的参数, 通过 连续变化尺度参数获得多尺度下的尺度空间表示序列, 对这些序列进行尺度空间主轮廓的提 取,并以该主轮廓作为一种特征向量,实现边缘、角点检测和不同分辨率上的特征提取等。 尺度空间方法将传统的单尺度图像信息处理技术纳入尺度不断变化的动态分析框架中, 更容易获取图像的本质特征。 尺度空间中各尺度图像的模糊程度逐渐变大, 能够模拟人在距 离目标由近到远时目标在视网膜上的形成过程。 尺度空间满足视觉不变性。该不变性的视觉解释如下:当我们用眼睛观察物体时,一方 面当物体所处背景的光照条件变化时, 视网膜感知图像的亮度水平和对比度是不同的, 因此 要求尺度空间算子对图像的分析不受图像的灰度水平和对比度变化的影响, 即满足灰度不变 性和对比度不变性。另一方面,相对于某一固定坐标系,当观察者和物体之间的相对位置变 化时,视网膜所感知的图像的位置、大小、角度和形状是不同的,因此要求尺度空间算子对 图像的分析和图像的位置、 大小、 角度以及仿射变换无关, 即满足平移不变性、 尺度不变性、 欧几里德不变性以及仿射不变性。
SIFT-Algorithm

图像特征匹配
当图像的SIFT特征向量生成后,便可采用关键点特征向量 的欧式距离作为图像序列中关键点的相似性度量,计算一张 图像中每个关键点同待匹配图像中关键点集的对应特征向量 的欧式距离,距离越小表明两个关键点越相似。 一般为了排除了因为图像遮挡和背景混乱而产生的无匹配 关系的关键点, 利用最近的距离除以次近的距离比率值来判 别,。我们可以事先设置一个阙值ratio,当小于ratio时, 则 接受这一对匹配点, 认为是正确匹配,否则错误匹配。
其中,高斯差分函数是对尺度标准化的高斯拉普拉斯算子 的一种近似。
于是有: 可见,高斯差分函数仅仅是通过一个常数k来改变尺度大小, 满足了尺度不变拉普拉斯算子的 尺度标准化
寻找极值点
为了寻找尺度空间中的极值点,需要将每个采样点需同它同 尺度图像的8个邻域点和上、下相邻尺度图像的各9个邻域点, 总共8+9*2=26个点的值进行比较,如下图: 当采样点的值都大于或小于 其26点的值,才能够被选 择为候选关键点,并记录 其位置和尺度。
SIFT算法的特点
1、SFIT特征是图像的局部特征,对平移、旋转、尺度缩放、亮 度变化、遮挡和噪声等具有良好的不变性,对视觉变化、仿射 变换保持一定程度的稳定性。 2、独特性好,信息量丰富,适用于在海量特征数据库中进行快 速、准确的匹配。 3、多量性,即使少数的几个物体也可以产生大量Sift特征向量。 4、速度相对较快,经优化的Sift匹配算法甚至可以达到实时的 要求。 5、可扩展性强,可以很方便的与其他形式的特征向量进行联合。
SIFT算法
传统的匹配算法往往是直接提取角点或边缘,对环 境的适应能力较差,即当光照、位姿等发生改变后的 匹配识别能力较差。 SIFT算法是1999年由British Columbia大学的David G.Lowe教授在总结了现有的基于不变量技术的特征 检测方法首次提出的图像局部特征描述算子,这个算 法在2004年被加以善。
SIFT特征匹配处理

SIFT特征匹配处理⼀、SIFT算法特征原理SIFT即尺度不变特征转换,它⽤来检测图像的局部性特征,在空间尺度中寻找极值点,提取这点的位置、尺度、旋转不变量。
这些关键点是⼀些⼗分突出,不会因光照和噪⾳等因素⽽变化的点,如⾓点、边缘点、暗区的亮点及亮区的暗点等,所以与影像的⼤⼩和旋转⽆关,对光线、噪声、视⾓改变的容忍度也很⾼。
SIFT特征检测有四步:1.尺度空间的极值检测:搜索所有尺度空间上的图像,通过⾼斯微分函数来识别潜在的对尺度和选择不变的兴趣点。
2.特征点定位:在每个候选的位置上,通过⼀个拟合精细模型来确定位置尺度,关键点的选取依据他们的稳定程度。
3.特征⽅向赋值:基于图像局部的梯度⽅向,分配给每个关键点位置⼀个或多个⽅向,后续的所有操作都是对于关键点的⽅向、尺度和位置进⾏变换,从⽽提供这些特征的不变性。
4.特征点描述:在每个特征点周围的邻域内,在选定的尺度上测量图像的局部梯度,这些梯度被变换成⼀种表⽰,这种表⽰允许⽐较⼤的局部形状的变形和光照变换。
⼆、SIFT特征匹配处理 对两张图⽚进⾏SIFT特征匹配处理 1.两张差异较⼤的集美⼤学尚⼤楼 原图: 图1 图2 SIFT特征匹配: 图3 2. 两张差异较⼩的集美⼤学尚⼤楼 原图: 图4 图5 SIFT特征匹配:代码:1import io2from PIL import Image, ImageTk3import tkinter as tk45import cv26import numpy as np7 MIN_MATCH_COUNT = 489 img1 = cv2.imread("C:/Users/w/PycharmProjects/sift/picture/1.jpg")10 img2 = cv2.imread("C:/Users/w/PycharmProjects/sift/picture/16.jpg")11 g1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)12 g2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)13 sift = cv2.xfeatures2d.SIFT_create()14 match = cv2.FlannBasedMatcher(dict(algorithm =2, trees =1), {})15 kp1, de1 = sift.detectAndCompute(g1,None)16 kp2, de2 = sift.detectAndCompute(g2,None)17 m = match.knnMatch(de1, de2, 2)18 m = sorted(m,key = lambda x:x[0].distance)19 ok = [m1 for (m1, m2) in m if m1.distance < 0.7 * m2.distance]20 med = cv2.drawMatches(img1, kp1, img2, kp2, ok, None)2122 cv2.imwrite("C:/Users/w/PycharmProjects/sift/picture/b.jpg", med)23#24# cv2.imshow("0", med)25# cv2.waitKey()26# cv2.destroyAllWindows()272829def resize(w, h, w_box, h_box, pil_image):30 f1 = 1.0 * w_box / w # 1.0 forces float division in Python231 f2 = 1.0 * h_box / h32 factor = min([f1, f2])33 width = int(w * factor)34 height = int(h * factor)35return pil_image.resize((width, height), Image.ANTIALIAS)3637 root = ()38# size of image display box you want39# 期望图像显⽰的⼤⼩40 w_box = 80041 h_box = 10004243# 以⼀个PIL图像对象打开44 pil_image = Image.open(r'C:/Users/w/PycharmProjects/sift/picture/b.jpg')4546# get the size of the image47# 获取图像的原始⼤⼩48 w, h = pil_image.size4950# resize the image so it retains its aspect ration51# but fits into the specified display box52# 缩放图像让它保持⽐例,同时限制在⼀个矩形框范围内53 pil_image_resized = resize(w, h, w_box, h_box, pil_image)5455# convert PIL image object to Tkinter PhotoImage object56# 把PIL图像对象转变为Tkinter的PhotoImage对象57 tk_image = ImageTk.PhotoImage(pil_image_resized)5859# put the image on a widget the size of the specified display box60# Label: 这个⼩⼯具,就是个显⽰框,⼩窗⼝,把图像⼤⼩显⽰到指定的显⽰框61 label = bel(root, image=tk_image, width=w_box, height=h_box)62# padx,pady是图像与窗⼝边缘的距离63 label.pack(padx=5, pady=5)64 root.mainloop()SIFT Code三、SIFT和Harris特征匹配处理的对⽐ 例如,下图是福建省厦门市集美⼤学的尚⼤楼的图⽚:⽤sift算法和Harris算法找到关键点并绘制关键点: SIFT 算法 Harris 算法SIFT 代码:1 import cv22 import numpy as np34 img = cv2.imread('C:/Users/w/PycharmProjects/untitled2/11.jpg')5 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)6 sift = cv2.xfeatures2d.SIFT_create()78 kp = sift.detect(gray, None) # 找到关键点910 img = cv2.drawKeypoints(gray, kp, img) # 绘制关键点1112 cv2.imshow('sp', img)13 cv2.waitKey(0)SIFT CodeHarris 代码:1 import cv22 import numpy as np34 filename = 'C:/Users/w/PycharmProjects/sift/picture/11.jpg'56 img = cv2.imread(filename)7 gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)8 gray = np.float32(gray)9 #图像转换为float3210 dst = cv2.cornerHarris(gray,2,3,0.04)11 #result is dilated for marking the corners, not important12 dst = cv2.dilate(dst,None)#图像膨胀13 # Threshold for an optimal value, it may vary depending on the image.14 #print(dst)15 #img[dst>0.00000001*dst.max()]=[0,0,255] #可以试试这个参数,⾓点被标记的多余了⼀些16 img[dst>0.01*dst.max()]=[0,0,255]#⾓点位置⽤红⾊标记17 #这⾥的打分值以⼤于0.01×dst 中最⼤值为边界1819 cv2.imshow('dst',img)20 if cv2.waitKey(0) & 0xff == 27:21 cv2.destroyAllWindows()Harris Code SIFT 特征检测:SIFT 从理论上说是⼀种相似不变量,即对图像尺度变化和旋转是不变量。
SIFT算法详解及应用(课件)

• 高斯模糊具有线性可分的性质,也可以在二维图像上对两个独立的一 维空间分别进行计算。这样可以大大减少了运算的次数。
• 对一幅图像进行多次连续高斯模糊的效果与一次更大的高斯模糊可以 产生同样的效果,大的高斯模糊的半径是所用多个高斯模糊半径平方 和的平方根。例如,使用半径分别为 6 和 8 的两次高斯模糊变换得 到的效果等同于一次半径为 10 的高斯模糊效果, 62 82 10 根据这个关系,使用多个连续较小的高斯模糊处理不会比单个高斯较 大处理时间要少。
SIFT
Scale Invariant Feature Transform
Octave 5 Octave 4 Octave 3
…
8
…
4
…
2
…
Octave 2
…
Octave 1
2013/7/11
17
关键点检测的相关概念
• 高斯图像金字塔共o组、s层, 则有:
SIFT
Scale Invariant Feature Transform
SIFT
Scale Invariant Feature Transform
0.00002292 0.00078633 0.00655965 0.01330373 0.00655965 0.00078633 0.00002292
0.00000067 0.00002292 0.00019117 0.00038771 0.00019117 0.00002292 0.00000067
高斯函数
( x xi )2 ( y yi )2 G xi , yi , exp 2 2 2 2 1
L x, y, G x, y, * I x, y
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Gr212
r2
exp22
r为模糊半径, r= x2 y2
在减小图像尺寸的场合经常使用高斯模糊。在进行欠采样的时, 通常在采样之前对图像进行低通滤波处理。这样就可以保证在采样图 像中不会出现虚假的高频信息。
2020/6/5
14
关键点检测的相关概念
SIFT
Scale Invariant Feature Transform
目标的特 征点集
特征点匹 配
匹配点矫 正
SIFT算法实现物体识别主要有三大工序,1、提取关键点;2、对关键点附加
详细的信息(局部特征)也就是所谓的描述器;3、通过两方特征点(附带上
特征向量的关键点)的两两比较找出相互匹配的若干对特征点,也就建立了
景2物020间/6/5的对应关系。
8
SIFT算法实现细节
og2 S
2og2sS
由此可见,相邻两组的同一层尺度为2倍的关系
2020/6/5
20
… …
…
…
…
关键点检测的相关概念
• 最后可将组内和组间尺度 归为:
8
2i 1( ,k,k2 ,Lkn 1 ) 4
尺度空间中各尺度图像的模糊程度逐渐变大,能够模拟人在距离目 标由近到远时目标在视网膜上的形成过程。
尺度越大图像越模糊。
2020/6/5
11
关键点检测的相关概念
SIFT
Scale Invariant Feature Transform
根据文献《Scale-space theory: A basic tool for analysing structures at different scales》我们可知,高斯核是唯一可以产生 多尺度空间的核,一个图像的尺度空间,L(x,y,σ) ,定义为原始图像 I(x,y)与一个可变尺度的2维高斯函数G(x,y,σ) 卷积运算。
2020/6/5
15
关键点检测的相关概念
高斯模糊的性质
SIFT
Scale Invariant Feature Transform
• 高斯模糊具有圆对称性。
• 高斯模糊具有线性可分的性质,也可以在二维图像上对两个独立的一 维空间分别进行计算。这样可以大大减少了运算的次数。
• 对一幅图像进行多次连续高斯模糊的效果与一次更大的高斯模糊可以 产生同样的效果,大的高斯模糊的半径是所用多个高斯模糊半径平方 和的平方根。例如,使用半径分别为 6 和 8 的两次高斯模糊变换得到 的效果等同于一次半径为 10 的高斯模糊效果, 62 82 10 根据这个关系,使用多个连续较小的高斯模糊处理不会比单个高斯较大 处理时间要少。
2
s——sub-level层坐标;
σ0——初始尺度;
S——每组层数(一般为3~5)。
SIFT
Scale Invariant Feature Transform
Octave 5 Octave 4 Octave 3 Octave 2
Octave 1
2020/6/5
18
关键点检测的相关概念
• 高斯金字塔的初始尺度
… …
… …
…
s
(s) 0g2 S
组内尺度是指同一组(octave)内的 8 尺度关系,组内相邻层尺度化简为: 4
1
s1 sg2 S
2
Octave 5 Octave 4 Octave 3
Octave 2
组间尺度是指不同组直接的尺度关
系,相邻组的尺度可化为:
o1(s)og2sSS
Octave 1
sS
Vancouver, B.C., V6T 1Z4, Canada
E-mail: lowecs.ubc.ca
• 2019年British Columbia大学大卫.劳伊(David G.Lowe)教授总结了现 有的基于不变量技术的特征检测方法,并正式提出了一种基于尺度空间的、 对图像缩放、旋转甚至仿射变换保持不变性的图像局部特征描述算子-SIFT (尺度不变特征变换),这种算法在2019年被加以完善。
3. 高斯模糊
高斯模糊是在Adobe Photoshop等图像处理软件中广泛使用的处理 效果,通常用它来减小图像噪声以及降低细节层次。这种模糊技术生成 的图像的视觉效果是好像经过一个半透明的屏幕观察图像。
2020/6/5
13
关键点检测的相关概念
SIFT
Scale Invariant Feature Transform
2020/6/5
2
SIFT简介
SIFT
Scale Invariant Feature Transform
传统的特征提取方法
• 成像匹配的核心问题是将同一目标在不同时间、不同 分辨率、不同光照、不同位姿情况下所成的像相对应。 传统的匹配算法往往是直接提取角点或边缘,对环境的 适应能力较差,急需提出一种鲁棒性强、能够适应不同 光照、不同位姿等情况下能够有效识别目标的方法。
尺度
方向
大小
2020/6/5
10
关键点检测的相关概念
SIFT
Scale Invariant Feature Transform
2. 什么是尺度空间(scale space )?
我们要精确表示的物体都是通过一定的尺度来反映的。现实世界的 物体也总是通过不同尺度的观察而得到不同的变化。
尺度空间理论最早在1962年提出,其主要思想是通过对原始图像进 行尺度变换,获得图像多尺度下的尺度空间表示序列,对这些序列进行 尺度空间主轮廓的提取,并以该主轮廓作为一种特征向量,实现边缘、 角点检测和不同分辨率上的特征提取等。
这些点是一些十分突出的点不会因光照条件的改变而消失,比如角点、 边缘点、暗区域的亮点以及亮区域的暗点,既然两幅图像中有相同的景物, 那么使用某种方法分别提取各自的稳定点,这些点之间会有相互对应的匹配 点。
所谓关键点,就是在不同尺度空间的图像下检测出的具有方向 信息的局部极值点。 根据归纳,我们可以看出特征点具有的三个特征:
BEIJING INSTITUTE OF TECHNOLOGY
尺度不变特征变换匹配算法 Scale Invariant Feature Transform (SIFT)
宋丹
10905056
2020/6/5
1
提纲
SIFT
Scale Invariant Feature Transform
1. SIFT简介 2. SIFT算法实现细节 3. SIFT算法的应用领域 4. SIFT算法的扩展与改进
2020/6/5
6
SIFT简介
SIFT
Scale Invariant Feature Transform
SIFT算法可以解决的问题
目标的自身状态、场景所处的环境和成像器材的成像特性等因素影响 图像配准/目标识别跟踪的性能。而SIFT算法在一定程度上可解决:
• 目标的旋转、缩放、平移(RST) • 图像仿射/投影变换(视点viewpoint) • 光照影响(illumination) • 目标遮挡(occlusion) • 杂物场景(clutter) • 噪声
2020/6/5
3
SIFT简介
SIFT提出的目的和意义
SIFT
Scale Invariant Feature Transform
David G. Lowe Computer Science Department
2366 Main Mall University of British Columbia
Back
2020/6/5
7
SIFT算法实现细节
SIFT
Scale Invariant Feature Transform
SIFT算法实现步骤简述
SIFT算法的实质可以归为在不同尺度空间上查找特征点(关键点)的问题。
原图像 目标图像
特征点 检测
特征点 描述
SIFT
特征点 检测
特
0.00000067 0.00002292 0.00019117 0.00038771 0.00019117 0.00002292 0.00000067
• 在实际应用中,在计算高斯函数的离散近似时,在大概3σ距离之外的 像素都可以看作不起作用,这些像素的计算也就可以忽略。
• 通常,图像处理程序只需要计算 (61)(61)
当图像通过相机拍摄时,相机的镜
头已经对图像进行了一次初始的模 8
糊,所以根据高斯模糊的性质:
4
0 init init pre pre
2
i n i t ——第0层尺度
p r e ——被相机镜头模糊后的尺度
• 高斯金字塔的组数
O lo g 2m in M ,N 3
M、N分别为图像的行数和列数
2020/6/5
16
关键点检测的相关概念
4. 高斯金字塔
• 高斯金子塔的构建过程可分为
两步:
8
(1)对图像做高斯平滑; 4
(2)对图像做降采样。
2
为了让尺度体现其连续性,在简单
下采样的基础上加上了高斯滤波。
一幅图像可以产生几组(octave)
图像,一组图像包括几层
(interval)图像。
… …
… …
…
SIFT
Scale Invariant Feature Transform
Octave 5 Octave 4 Octave 3 Octave 2
Octave 1
2020/6/5
17
… …
… …
…
关键点检测的相关概念
• 高斯图像金字塔共o组、s层, 则有:
s
8
(s) 0g2 S
4
σ——尺度空间坐标;
高斯函数