ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 低调看直播体育app软件下载 >> Pythonjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播 >> Programming Computer Vision with Python (学习笔记十一)

Programming Computer Vision with Python (学习笔记十一)(1/3)

来源:网络整理     时间:2015-12-15     关键词:

本篇文章主要介绍了" Programming Computer Vision with Python (学习笔记十一)",主要涉及到方面的内容,对于Pythonjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播感兴趣的同学可以参考一下: 尺度不变特征变换(Scale-invariant feature transform, 简称SIFT)是图像局部特征提取的现代方法——基于区域/图像块的分析。在...

尺度不变特征变换(Scale-invariant feature transform, 简称SIFT)是图像局部特征提取的现代方法——基于区域/图像块的分析。在上篇笔记里我们使用的图像之间对应点的匹配方法,不适用于不同尺度的图像。有许多应用场景需要对不同尺度(即分辨率、缩放、旋转角度、亮度等都可能存在不同)的图像进行特征识别和匹配,这就需要一种特征提取方法,通过这种方法提取出来的特征描述,可以不受尺度的影响,SIFT算法就是这种方法的实现。SHIT算法有如下的特点:

  1. SIFT特征是图像的局部特征,其对旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性;

  2. 独特性(Distinctiveness)好,信息量丰富,适用于在海量特征数据库中进行快速、准确的匹配;

  3. 多量性,即使少数的几个物体也可以产生大量的SIFT特征向量;

  4. 高速性,经优化的SIFT匹配算法甚至可以达到实时的要求;

  5. 可扩展性,可以很方便的与其他形式的特征向量进行联合。

SIFT算法的应用非常广泛,包括物体识别、机器人地图感知与导航、全景拼接、3D建模、手势识别、影像追踪和动作比对等,原书后面章节的算法也会多次用到它。SIFT算法的过程较复杂,本文只是粗略介绍其关键步骤,以便引出SURF——基于SIFT的改进算法。

SIFT的算法还是比较复杂的,但也让人大开眼界,权威的和详细的介绍应该直接看英文论文,我的笔记记录的也只是其算法的要点,目的是为了理解算法的思想,为了对涉及到的数学有一个大概的了解。

SIFT算法要点

降采样
降采样或隔点采样,将一幅图像降为一半大小的图像,连续使用几次降采样,每次得到的图像大小都降为前一张大小的一半,最后得到一组降采样的图像。降采样的目的是为了综合所有不同清晰度的图像进行关键点提取,这种关键点携带了不同清晰度的信息,对缩放具有不变性。

高斯差分算子(Difference of Gaussians,简称DOG)
在之前的笔记介绍过,原图像与高斯核(2维高斯算子)作卷积(高斯滤波)的结果即为模糊图像,实为平滑效果,高斯滤波属于低通滤波,它可以过滤掉一定的噪声。如果把两张使用不同sigma的模糊图像记为Bσ和Bkσ, DOG操作即为两张模糊图像之差,记:

Gσ = Bkσ - Bσ

Gσ为DOG图像,它包含的特征是目标的轮廓。

SIFT先对降采样后的每张图像使用不同的sigma进行高斯模糊,结果是每个降采样图像对应一组模糊图像:

然后对每组模糊图像的相邻图像作DOG,结果是每个降采样图像对应一组DOG图像,如图:

把每一组图像堆叠起来,位于塔底的是第一组(first octave),往上是第二组,第三组...每一组的图像大小为前一组的一半,看起来像金字塔:

如图Gaussian列(左边)称为高斯金字塔,DOG列(右边)称为DOG金字塔

关键点检测
SIFT分别对每组DOG图像提取关键点,以第一组为例,将第一组DOG图像上下对齐叠加在一起,形成DOG空间,DOG空间有两个域:图像域和尺度域。图像域指图像本身的二维平面像素,尺度域指垂直于图像域的第三维度构成的像素。SIFT使用局部极值检测来定位找到关键点,如下图所示:

X位置所在像素即为当前要检测的点,以X为中心的周围像素(包括图像域和尺度域)形成了一个局部空间(像3X3魔方),如果X为此局部空间的极值(最大值或最小值),那么X即为关键点之一。

相关图片

相关文章