找特征点的算法SIFT和SURF算法
SIFT 特征点算法动物细胞工程
通过不同模糊程度的灰度图相减找极值 ,筛选确定出真实关键点后按梯度和权重求出关键点的主⽅向,再给关键点附近的16个区块确定8⽅向⽮量,相当于给这幅图的这个位置做个特征标记【类⽐特征向量】。于是能通过这些特征标记寻找出两图对应的特征点,从⽽通过多个对应特征点确定图像变换矩阵。
即,Sift是⼀种基于尺度空间的,对图像缩放、旋转、甚⾄仿射变换保持不变性的图像局部特征描述算⼦。缺点是实时性不⾼,并且对于边缘光滑⽬标的特征点提取能⼒较弱。
尺度不变特征转换(Scale-invariant feature transform或SIFT)是⼀种电脑视觉的算法,⽤来侦测与描述影像中的局部性特征,它在空间尺度中寻找极值点,并提取出其位置、尺度、旋转不变量。SIFT所查找到的关键点是⼀些⼗分突出且不会因光照、仿射变换和噪⾳等因素⽽变化的点,如⾓点、边缘点、暗区的亮点及亮区的暗点等,对于光线、噪声、些微视⾓改变的容忍度相当⾼。
SIFT算法可以解决的问题:
⽬标的⾃⾝状态、场景所处的环境和成像器材的成像特性等因素影响图像配准/⽬标识别跟踪的性能。⽽SIFT算法在⼀定程度上可解决:
1. ⽬标的旋转、缩放、平移(RST)
2. 图像仿射/投影变换(视点viewpoint)
3. 光照影响(illumination)
豆腐汤的家常做法
4. ⽬标遮挡(occlusion)
5. 杂物场景(clutter)
浙江岛屿
其应⽤范围包含物体辨识、机器⼈地图感知与导航、影像缝合、3D模型建⽴、⼿势辨识、影像追踪和动作⽐对。
四级听力怎么练SIFT算法分解为如下四步:
6. 尺度空间极值检测:搜索所有尺度上的图像位置。通过⾼斯微分函数来识别潜在的对于尺度和旋转不变的兴趣点。【⽤⾼斯滤波获取尺度空间。(⽤两次⼀维的⾼斯卷积将消除⼆维⾼斯矩阵所产⽣的边缘,还⽐⼆维⾼斯卷积的计算量少)。将图像⾦字塔每层的⼀张图像使⽤不同参数的⾼斯模糊(这⾥的公式是关键),使得⾦字塔的每层含有多张(6-8张)⾼斯模糊图像。在⾼斯⾦字塔中⼀共⽣成O组L层不同尺度的图像,这两个量合起来(O,L)就构成了⾼斯⾦字塔的尺度空间,即给定的⼀组坐标(O,L)就可以唯⼀确定⾼斯⾦字塔中的⼀幅图像。把模糊后的图像两两相减(另外起名叫DoG空间),Dog空间⾥的图像是⽤来寻找极值点的原始数据。
依据Dog空间⾥的相邻图⽚检测极值点
极值点公式:(式中σ是尺度空间坐标)
2. 关键点定位:第⼀步检测到的极值点是作为候选的离散空间的极值点,这步通过拟合三维⼆次函数来精确确定关键点的位置和尺度
【对上图的D公式求偏导 求得连续空间下的真实极值点的像素位置(如果x、y或者σ偏离了0.5以上就换位置重新进⾏插值计算】,同时去除低对⽐度的关键点和不稳定的边缘响应点【超出迭代次数或者极值D过低属于噪声】。
3. ⽅向确定:相对像素的亮度值,梯度对光照具有更好的鲁棒性。基于图像局部的梯度⽅向,分配给每个关键点位置⼀个或多个主⽅
向。
计算关键点周围⼀定区域的梯度值,⽐如8*8区域。
1、然后将得到的⾓度值进⾏36等分。
2、在特征点对应的尺度空间计算梯度值。
3、利⽤⾼斯核对梯度进⾏计算权重。
建⽴⼀个36维的直⽅图,每次累加的值就是它的权重。⼤于主⽅向峰值80%的⽅向作为该关键点的辅⽅向【仅有15%的关键点被赋予多个⽅向】
4. 关键点描述:再在选择完主⽅向后,通过对关键点周围图像区域分块,记录16个种⼦点【在下⽂提及】的⽅向 并以主⽅向计算相对⾓
度。这样就算图像进⾏旋转,主⽅向也会进⾏旋转,相对⾓度保持相对恒定状态,即使有⽐较⼤的局部形状的变形和光照变化也不会受到影响。
左图的中央为当前关键点的位置,每个⼩格代表为关键点邻域所在尺度空间的⼀个像素,求取每个像素的梯度幅值与梯度⽅向。4*4个⼀组,依据⾼斯加权计算每个梯度⽅向的累加值,即可形成⼀个种⼦点【配图右侧是4个种⼦】,每个种⼦点有8个⽅向的向量信息。
这种邻域⽅向性信息联合增强了算法的抗噪声能⼒,同时对于含有定位误差的特征匹配也提供了⽐较理性的容错性。每个关键点使⽤4×4共16个种⼦点来描述,这样⼀个关键点就可以产⽣128维的SIFT特征向量。这个128维的SIFT特征向量就像是我们每个⼈的⾝份证⼀样,拥有绝对标识,⼏乎不可能重复,在这⾥可以对128维向量进⾏归⼀化处理,可以去除光照变化的影响。我们对模板图和⽬标图分别建⽴描述⼦集合。
5. 特征点匹配:
特征点的匹配是通过计算两组特征点的128维的特征点的欧⽒距离实现的。欧⽒距离越⼩,则相似度越⾼,当欧式距离⼩于设定阈值时,可以判定为匹配成功。
基础知识
Surf算法
与Sift算法⼀样,Surf算法的基本路程可以分为三⼤部分:局部特征点的提取、特征点的描述、特征点的匹配。 但Surf在执⾏效率上有两⼤制胜法宝——⼀个是积分图在Hessian(⿊塞矩阵)上的使⽤,⼀个是降维的特征描述⼦的使⽤。 为算法在实时计算机视觉系统中应⽤提供了可能。
Surf改进了特征的提取和描述⽅式
1. 构建Hessian(⿊塞矩阵),⽣成所有的兴趣点,⽤于特征的提取;
在构造Hessian矩阵前需要对图像进⾏⾼斯滤波,构建Hessian矩阵的过程对应于Sift算法中的⾼斯卷积过程。
降低滤波器精度
2. 构建尺度空间中国计量大学是985还是211
不在组与组之间改变图像⼤⼩,⽽是改变滤波器的模板尺⼨的⼤⼩。
3. 特征点定位
⼀样
4. 特征点主⽅向分配
统计60度扇形内所有点的⽔平、垂直haar⼩波特征总和,最后将值最⼤的那个扇形的⽅向作为该特征
点的主⽅向。该过程⽰意图如
河南思达下:
运动员的加油稿5. ⽣成特征点描述⼦
⽤4个值作为每个⼦块区域的特征向量【sift是8个】该haar⼩波特征为⽔平⽅向值之和、垂直⽅向值之和、⽔平⽅向绝对值之和以及垂直⽅向绝对值之和。⼀个特征点有16*4=64维向量。
6. 特征点匹配
Surf也是计算两个特征点间的欧式距离来确定匹配度。Surf还加⼊了Hessian矩阵迹的判断,如果两个特征点的矩阵迹正负号相同,代表这两个特征具有相同⽅向上的对⽐度变化,如果不同,说明这两个特征点的对⽐度变化⽅向是相反的,即使欧⽒距离为0,也直接排除。
基础知识
我是风