SIFT解析(三)生成特征描述子

时间:2022-09-11 19:13:04

以上两篇文章中检测在DOG空间中稳定的特征点,lowe已经提到这些特征点是比Harris角点等特征还要稳定的特征。下一步骤我们要考虑的就是如何去很好地描述这些DOG特征点。

下面好好说说如何来描述这些特征点。许多资料中都提到SIFT是一种局部特征,这是因为在SIFT描述子生成过程中,考虑的是该特征点邻域特征点的分布情况(而没有利用全局信息)。本步骤中主要计算过程包括:确定特征点的方向生成特征描述符

确定特征点方向

在特征点的确定过程中,特征点的坐标以及尺度被确定下来(坐标很重要,尺度更重要,到后来,你会发现尺度这个参量在整个描述子生成过程中越来越重要,因为正是运用尺度参量实现的Scale-Invariant,尺度不变!),根据特征点的尺度选择高斯金字塔中的图像,然后在这幅图像上确定该特征点的方向。这里体现的正是尺度不变的思想。

特征点方向的确定基于统计信息,以该特征点为中心,考察与该特征距离为**像素的梯度方向和梯度的幅值,梯度的方向和幅值的计算公式分别为:SIFT解析(三)生成特征描述子

构造该点邻域梯度方向直方图,将一圆周360°划分成36个槽,从0°开始每槽递增10°。根据邻域点的方向、梯度的幅值以及距离特征点的远近构建上述梯度方向直方图,如下图所示:

SIFT解析(三)生成特征描述子

根据梯度直方图,直方图峰值所对应的的角度就是当前特征点A的方向,同时如果某角度的梯度幅值和>=峰值的80%,那么就产生一个新的特征点B,这个点的坐标、尺度等参数同A,但是角度不同。

至此,特征点的方向确定完毕。

生成图像局部描述符

到了本步骤,图像中每个特征点的坐标、尺度以及方向都确定了,下面开始根据这些信息获得描述子。

与上文中提到的确定特征点方向类似,生成描述子也是根据以特征点为中心的图像局部信息,首先根据特征点的尺度选择高斯金字塔中的图像,然后计算特征点邻域范围内各点的梯度方向和梯度的幅值,并根据上文得到的特征点梯度方向更新这些梯度的方向,以此达到描述子的方向不变性。

SIFT解析(三)生成特征描述子

方向不变性完成后,开始计算特征描述符了。描述符计算过程同样基于梯度方向直方图,只是这次直方图的槽是以45°划分的(因此每个直方图只有8个槽),而不是10°。具体过程如下图所示:

SIFT解析(三)生成特征描述子

统计每个4×4块的方向梯度直方图,为了去除光照对描述子的影响,对梯度直方图进行归一化处理。然后将每个直方图槽数据串联即可得到SIFT描述子,lowe提出当梯度方向直方图是4×4维的时候,SIFT描述子具有最好的区分度,因此这就诞生了老生长谈的128维SIFT特征向量,如下图所示:

SIFT解析(三)生成特征描述子

至此,SIFT特征计算过程结束。

SIFT解析(三)生成特征描述子的更多相关文章

  1. SIFT算法:特征描述子

    SIFT算法:DoG尺度空间生产  SIFT算法:KeyPoint找寻.定位与优化 SIFT算法:确定特征点方向  SIFT算法:特征描述子 目录: 1.确定描述子采样区域 2.生成描述子 2.1 旋 ...

  2. BRIEF 特征描述子

    Binary Robust Independent Elementary Features www.cnblogs.com/ronny 1. BRIEF的基本原理 我们已经知道SIFT特征采用了128 ...

  3. 图像的特征工程:HOG特征描述子的介绍

    介绍 在机器学习算法的世界里,特征工程是非常重要的.实际上,作为一名数据科学家,这是我最喜欢的方面之一!从现有特征中设计新特征并改进模型的性能,这就是我们进行最多实验的地方. 世界上一些*数据科学家 ...

  4. Distinctive Image Features from Scale-Invariant Keypoints(SIFT) 基于尺度不变关键点的特征描述子——2004年

    Abstract摘要本文提出了一种从图像中提取特征不变性的方法,该方法可用于在对象或场景的不同视图之间进行可靠的匹配(适用场景和任务).这些特征对图像的尺度和旋转不变性,并且在很大范围的仿射失真.3d ...

  5. 特征描述子(feature descriptor) —— HOG(方向梯度直方图)

    HOG(Histogram of Oriented Gradients),描述的是图像的局部特征,其命名也暗示了其计算方法,先计算图像中某一区域不同方向上梯度的值,然后累积计算频次,得到直方图,该直方 ...

  6. ColorDescriptor software v4.0 一个提取颜色特征描述子的软件包

    ColorDescriptor software v4.0 Created by Koen van de Sande, (c) University of Amsterdam Note: Any co ...

  7. SIFT解析(二)特征点位置确定

    最近微博上有人发起投票那篇论文是自己最受益匪浅的论文,不少人说是lowe的这篇介绍SIFT的论文.确实,在图像特征识别领域,SIFT的出现是具有重大意义的,SIFT特征以其稳定的存在,较高的区分度推进 ...

  8. 第十六节、特征描述符BRIEF(附源码)

    我们已经知道SIFT算法采用128维的特征描述子,由于描述子用的是浮点数,所以它将会占用512字节的空间.类似的SUFR算法,一般采用64维的描述子,它将占用256字节的空间.如果一幅图像中有1000 ...

  9. BRIEF特征点描述子

    简介 BRIEF是2010年的一篇名为<BRIEF:Binary Robust Independent Elementary Features>的文章中提出,BRIEF是对已检测到的特征点 ...

随机推荐

  1. &lbrack;hadoop in Action&rsqb; 第3章 Hadoop组件

    管理HDFS中的文件 分析MapReduce框架中的组件 读写输入输出数据   1.HDFS文件操作   [命令行方式]   Hadoop的文件命令采取的形式为: hadoop fs -cmd &lt ...

  2. 【迁移】—Entity Framework实例详解

    好久没有在博客园更新博客了,如今都换了新公司.前段时间写了关于EF迁移的文档,今天拿出来作为这个系列的一篇吧. 一.Entity Framework 迁移命令(get-help EntityFrame ...

  3. VS中遇到的奇怪问题

    8.错误 C2440: “static_cast”: 无法从“void (__thiscall CView::* )(UINT,LONG)”转换为“LRESULT (__thiscall CWnd:: ...

  4. ajax--参数默认值问题

    注:通过参数默认值,能让参数映射更加灵活,有些参数可以不必传递,如果传递则 覆盖默认.并且永远都是后面的覆盖前面的内容 通过$.extend合并对象 语法1: var newobj= $.extend ...

  5. Mybatis插件使用-统计sql执行时间

    背景介绍:最近由于产品数据量较大,sql执行十分低效,正在做数据库优化,所以想在日志中看到每个sql执行的时间,以方便针对性的优化. 查找相关资料,了解到Mybatis有一款插件,是基于interce ...

  6. Html 列表 li ul使用

    html中偶尔会使用到列表,记录一下. <!DOCTYPE html> <html> <head> <meta charset="UTF-8&quo ...

  7. js动态创建HTML&lpar;radio、checkbox&period;&period;&period;&rpar;&lbrack;摘抄&rsqb;

    function create(parentId,eleType,eleName,eleId,eleValue){ var board = document.getElementById(parent ...

  8. python yaml文件读写

    import yaml yaml_dict={"} with open("a.yaml", "w") as f: yaml.safe_dump(yam ...

  9. 横向文本框 cursor&colon;pointer 出现手型

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. jauery-layer弹出框的使用

    一布局: <div id="detailLayer"> <div class="box-header"> <div class=& ...