Abstract摘要
本文提出了一种从图像中提取特征不变性的方法,该方法可用于在对象或场景的不同视图之间进行可靠的匹配(适用场景和任务)。这些特征对图像的尺度和旋转不变性,并且在很大范围的仿射失真、3d视点的变化、噪声的增加和光照的变化中提供了鲁棒的匹配。从某种意义上说,一个单一的特征可以与来自许多图像的特征的大型数据库进行高概率的正确匹配。本文还介绍了一种利用这些特征进行目标识别的方法。识别的过程是使用快速最近邻算法将单个特征与来自已知对象的特征数据库相匹配,然后进行hough变换以识别属于单个对象的簇,最后通过一致姿态参数的最小二乘解进行验证。这种识别方法在保证近实时性的同时,能够在杂波和遮挡中稳健地识别出目标。

1 Introduction简介
图像匹配是计算机视觉中问题的一个基础方面,包括物体或场景识别,SFM,追踪等。本文描述了具有很多属性的图像特征,能够适应一个物体或场景的不同图像上的匹配。这些特征对图像的缩放和旋转具有不变性,对光照和三维摄像机视点的变化具有部分不变性。它们在空间域和频率域都具有很好的定位,减少了被遮挡、杂波或噪声破坏的可能。利用有效的算法可以从典型图像中提取大量特征。此外,这些特征具有很强的区分性,使得单个特征能够以很高的概率与一个庞大的特征数据库进行正确匹配,为目标和场景识别提供了基础。

通过采用级联滤波方法,将提取这些特征的成本降到最低,在这种方法中,更昂贵的操作仅应用于通过初始测试的位置。以下是用于生成图像特征集的主要计算阶段:

(1)尺度-空间极值检测:计算的第一阶段搜索所有尺度和图像位置。利用高斯函数差分来识别对尺度和方向不变的潜在兴趣点,有效地实现了该算法。

(2)关键点定位:在每一个候选位置,选择一个详细的模型用来确定位置和尺度。关键点是根据它们的稳定性来选择的。

(3)方向指定:基于局部图像梯度方向,为每个关键点位置指定一个或多个方向。所有未来的操作都是对已经相对于每个特征的指定方向、比例和位置进行变换的图像数据执行的,从而为这些变换提供不变性。

(4)关键点描述子:在每个关键点周围的区域中,以选定的比例测量局部图像梯度。它们被转换成一种表示形式,允许显著程度的局部形状失真和照明变化。

这种方法被称为尺度不变特征变换(sift),因为它将图像数据转换为相对于局部特征的尺度不变坐标。

这种方法的一个重要方面是,它生成了大量的特征,这些特征在整个尺度和位置范围内密集地覆盖了图像。一个500x500像素大小的典型图像将产生大约2000个稳定的特征(尽管这个数字取决于图像内容和各种参数的选择)。特征的数量对于目标识别尤为重要,因为在杂乱的背景中检测小目标的能力要求每个目标至少有3个特征被正确匹配,以便可靠地识别。

为了进行图像匹配和识别,首先从一组参考图像中提取sift特征并存储在数据库中。通过将新图像中的每个特征与之前的数据库进行单独比较,并根据特征向量的欧几里德距离寻找候选匹配特征,来匹配新图像。本文将讨论快速近邻算法,该算法可以对大型数据库快速执行此计算。

关键点描述符非常独特,它允许单个特征在一个大的特征数据库中以很高的概率找到其正确匹配。然而,在一个杂乱的图像中,来自背景的许多特征在数据库中没有任何正确的匹配,除了正确的匹配之外,还会导致许多错误的匹配。通过识别与对象及其在新图像中的位置、比例和方向一致的关键点子集,可以从完整的匹配集中筛选正确的匹配。多个特征偶然同意这些参数的概率远低于任何单个特征匹配出错的概率。利用广义hough变换的高效哈希表实现,可以快速确定这些一致的簇。

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

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

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

  2. SIFT算法:特征描述子

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

  3. Distinctive Image Features from Scale-Invariant Keypoints(个人翻译+笔记)-介绍

    Distinctive Image Features from Scale-Invariant Keypoints,这篇论文是图像识别领域SIFT算法最为经典的一篇论文,导师给布置的第一篇任务就是它. ...

  4. Opencv Surf算子中keyPoints,描述子Mat矩阵,配对向量DMatch里都包含了哪些好玩的东东?

    Surf算法是一把牛刀,我们可以很轻易的从网上或各种Opencv教程里找到Surf的用例,把例程中的代码或贴或敲过来,满心期待的按下F5,当屏幕终于被满屏花花绿绿的小圆点或者N多道连接线条霸占时,内心 ...

  5. Computer Vision_33_SIFT:Distinctive Image Features from Scale-Invariant Keypoints——2004

    此部分是计算机视觉部分,主要侧重在底层特征提取,视频分析,跟踪,目标检测和识别方面等方面.对于自己不太熟悉的领域比如摄像机标定和立体视觉,仅仅列出上google上引用次数比较多的文献.有一些刚刚出版的 ...

  6. Distinctive Image Features from Scale-Invariant

    http://nichol.as/papers/Lowe/Distinctive Image Features from Scale-Invariant.pdf Abstract This paper ...

  7. 基于SIFT的点云关键点提取

    这篇博文主要介绍SIFT算法在提取点云图像关键点时的具体用法. 尺度不变特征转换(Scale-invariant feature transform,SIFT)是David Lowe在1999年发表, ...

  8. 【CV知识学习】【转】beyond Bags of features for rec scenen categories。基于词袋模型改进的自然场景识别方法

    原博文地址:http://www.cnblogs.com/nobadfish/articles/5244637.html 原论文名叫Byeond bags of features:Spatial Py ...

  9. 特征描述算子-sift

    特征描述算子-sift http://boche.github.io/download/sift/Introduction%20to%20SIFT.pdf

随机推荐

  1. 伯努利分布、二项分布、多项分布、Beta分布、Dirichlet分布

    1. 伯努利分布 伯努利分布(Bernoulli distribution)又名两点分布或0-1分布,介绍伯努利分布前首先需要引入伯努利试验(Bernoulli trial). 伯努利试验是只有两种可 ...

  2. Android——LruCache源码解析

    以下针对 Android API 26 版本的源码进行分析. 在了解LruCache之前,最好对LinkedHashMap有初步的了解,LruCache的实现主要借助LinkedHashMap.Lin ...

  3. sql limit order by and where

    1 sql limit limit size,返回前size行. limit offset , size,返回offset开始的size行,offset从0行开始. 2 sql limit with ...

  4. linux上执行mysql的脚本文件

    我们测试过程中,经常需要执行升级脚本或导入生产测试数据,对于轻量的升级脚本可以直接在客户端工具中打开执行,但是对于文件内容比较大的.sql文件,比如几百M,几G的sql文件,直接拖到客户端工具打开执行 ...

  5. MySQL-快速入门(7)索引

    1.什么是索引 索引是对数据库表中一列或者多列的值进行排序的一种结构.索引是在存储引擎中实现的,每种存储引擎中的索引不一定完全相同. MySQL中索引的存储类型有两种:btree和hash.MyISA ...

  6. [LeetCode] 203. 移除链表元素

    题目链接:https://leetcode-cn.com/problems/remove-linked-list-elements/ 题目描述: 删除链表中等于给定值 val 的所有节点. 示例: 输 ...

  7. Python 入门之 内置模块 -- time模块

    Python 入门之 内置模块 -- time模块 1.time模块 ​ time翻译过来就是时间,这个模块是与时间相关的模块 import time # 内置模块 -- 标准库 (1)time.ti ...

  8. 分布式事务解决方案汇总:2PC、3PC、消息中间件、TCC、状态机+重试+幂等(转)

    数据一致性问题非常多样,下面举一些常见例子.比如在更新数据的时候,先更新了数据库,后更新了缓存,一旦缓存更新失败,此时数据库和缓存数据会不一致.反过来,如果先更新缓存,再更新数据库,一旦缓存更新成功, ...

  9. Python yield用法浅析(stackoverflow)

    这是stackoverflow上一个关于python中yield用法的帖子,这里翻译自投票最高的一个回答,原文链接 here 问题 Python中yield关键字的用途是什么?它有什么作用?例如,我试 ...

  10. vue项目1-pizza点餐系统5-全局守卫

    一.导航守卫描述 当问我们点击主页.菜单等非登陆和注册按钮都会提示先登陆然后跳转到登陆界面. 1.在main.js中引入全局守卫 //全局守卫 //to是要进入那个路由,from是从那个路由出来,ne ...