特征提取(Detect)、特征描述(Descriptor)、特征匹配(Match)的通俗解释

  特征匹配(Feature Match)是计算机视觉中很多应用的基础,所以花一些时间去深入理解这个概念是不为过的。本文希望通过一种通俗易懂的方式来阐述特征匹配这个过程,以及在过程中遇到的一些问题。

概念理解:

  假设这样的一个场景,小明和小小明都在看一个图片,但是他们想知道他们看的是否是同一幅图片,于是他们就通过电话描述这个图片,来判断是否是同一个图片。比如说有下面两个图片

              

对话1:

小白:我的图片里面有五个很明显的特征,分别在图像的上下左右中五个位置。

小黑:我的图片里面也有五个很明显的特征,分别在图像的上下左右中五个位置。

对话2:

小白:我的一个特征左边是三角形,右边是圆形,上面是菱形,下面是正方形。

小黑:我也有一个特征左边是三角形,右边是圆形,上面是菱形,下面是正方形。

对话3:

小白和小黑:那我们看到的就是同一个特征了。

上述三个对话其实分别代表这特征提取,特征描述和特征匹配。

  那么来详细的分析一下,我们的问题是要匹配两张图像是否是同一个图像,比较好的方法就是找出图像中特征显著的内容然后来进行比较,如果这些特征都一致,那么就有很高的概率称他们为同一个图像。所以首先第一步就是找出图像中特征性强的内容(Feature Detect),上图中特征性强的就是五个红色的图案。但是只知道有显著特征没用,必须知道两张图像中的特征是不是一致的,如何判断特征是不是一致的,就需要我们对这个特征进行描述(Feature Descriptor),如果描述非常的相似或者说是相同,那么就可以判断为是同一特征。那么问题来了,该如何去描述一个特征,什么样的描述是一个好的描述呢。从对话2中我们可以看出,描述一个特征其实就是描述特征与他周围内容的相互关系。那么什么样的描述是一个好的描述呢,就要提到我们为什么要描述特征了?我们描述特征是为了能够更好的匹配特征,使得我们认为描述相同的特征是同一个特征的是可信的(概率高的)。所以我们的描述必须是有代表性的,具有排他性的(discriminative),而不是模棱两可泛泛而谈的。最后我们就可以根据描述的相似性来判断这对特征是否是同一个特征。

特征不变性的理解:

接下来我们将谈一下特征的不变性。

  • 旋转不变性:

再看下面两张图片:

               

于是我们在看审视三个对话,你会发现对话2就改变了。

对话2:

小白:我的一个特征左边是三角形,右边是圆形,上面是菱形,下面是正方形。

小黑:我有一个特征左边是正方形,右边是菱形,上面是三角形,下面是圆形。

  于是小黑和小白就认为他们看得并不是同一个图片。但事实上他们看得确实是同一种图片。于是我们就说这种特征不具有旋转不变性。

那么如何实现旋转不变性呢,再看下面两张图片:

       

然后我们再来审视对话2:

对话2:

小白:我的一个特征西边是三角形,东边是圆形,北边是菱形,南边是正方形。

小黑:我也有一个特征西边是三角形,东边是圆形,北边是菱形,南边是正方形。

  这时候两个特征的描述就一致了,即拥有了旋转不变性。所以只要对特征定义方向,然后在同一个方向上进行特征描述就可以实现旋转不变性。

  • 尺度不变性

接下来谈一下尺度不变性,依然看下面两张图片:

         

对话2:

小白:我的一个特征东边5个像素的地方有个圆形。

小黑:我也有一个特征东边7个像素的地方有个圆形。

  这就是尺度变化造成的特征不匹配,为了实现尺度不变性,就需要给特征加上尺度因子,比如说小白看到的是尺度为5的,小黑看到的是尺度为7的,那么在进行描述的时候,将尺度统一就可以实现尺度不变性了。

  所谓的旋转不变性和尺度不变性的原理,就是我们在描述一个特征之前,将两张图像都变换到同一个方向和同一个尺度上,然后再在这个统一标准上来描述这个特征。同样的,如果在描述一个特征之前,将图像变换到同一个仿射尺度或者投影尺度上,那么就可以实现仿射不变性和投影不变性。

总结:

  特征匹配的方法是先找出特征显著的特征点(Feature Detect),然后再分别描述两个特征点(Feature Descriptor),最后比较两个描述的的相似程度来判断是否为同一个特征(Feature Match)。而在特征描述之前如果能够做到确定特征的方向,则可以实现旋转不变性(Rotation invarient),如果能确定尺度,则可以实现尺度不变性(Scale invarient)。

下面是我根据上面的方式对常用的Feature所做的总结。

 
SIFT


SURF


BRIEF


ORB


BRISK


提点方法


DoG的最值点位置在通过二次拟合来确定位置


Hessian矩阵的行列式最值



使用FAST提点,使用Harris Corner去除非角点


使用FAST或AGAST提点


确定方向


特征邻域的梯度直方图的最值方向


特征邻域对Haar wavelet的最大响应方向



使用Intensity centroid方法来确定方向


使用邻域随机抽样点对,对远点对做梯度确定方向


确定尺度


通过建立确定尺度空间,尺度空间中DoG最值所在尺度为特征尺度


尺度空间中Hessian矩阵行列式最值所在尺度




尺度空间中FAST提点最显著的尺度


描述方法


在特征周围取一个region,分成4*4的sub-region,对每个sub-region使用八方向的梯度表示,总共128维


在特征周围取一个region,分成4*4的sub-region,对每个sub-region计算haar wavelet响应,分别取x方向响应和,x方向响应绝对值之和,y方向响应和,y方向绝对值之和四个值描述,总共64维


在特征点周围随机抽取随机点对,比较两个点的像素强度,根据结果的大小记为1或0,取256组组成256位的二进制字符串


通过贪心方法抽取符合正态分布的随机点对,其他同BRIEF


使用短距离点对进行强度匹配,组成512位的二进制字符串

时间: 2024-10-07 06:33:12

特征提取(Detect)、特征描述(Descriptor)、特征匹配(Match)的通俗解释的相关文章

【综述】(中科院)樊彬老师-“局部图像特征描述概述”

[综述](中科院)樊彬老师-“局部图像特征描述概述” 这次我们荣幸地邀请到中国科学院自动化研究所的樊彬老师为我们撰写图像特征描述符方面的最新综述.樊彬老师在图像特征描述方面已连续发表了包括TPAMI.PR.ICCV.CVPR在内的多篇高质量论文.他的个人主页为:http://www.sigvc.org/bfan/ 以后我们将持续邀请国内外众多老师做最新的视觉计算专业综述报告,如特征提取和描述.稀疏表达.人体跟踪.三维衣服布料动画.轻量级Web3D等,并陆续在学术论坛上发布.各位老师会尽量使综述通

GIST特征描述符使用

来源:http://www.cnblogs.com/justany/archive/2012/12/06/2804211.html 一种场景特征描述 场景特征描述? 通常的特征描述符都是对图片的局部特征进行描述的,以这种思路进行场景描述是不可行的. 比如:对于“大街上有一些行人”这个场景,我们必须通过局部特征辨认图像是否有大街.行人等对象,再断定这是否是满足该场景.但这个计算量无疑是巨大的,且特征向量也可能大得无法在内存中存储计算. 例如即使使用GIST进行1MB的图像数据搜索,也需要3.8GB

OpenCV中特征点提取和匹配的通用方法

OpenCV在新版本中把很多C语言的代码都重新整理成了C++代码,让我们在使用的时候更加方便灵活.其中对于特征点的提取和匹配,充分体现了C++的强大.下面直接用例子来说明.假设我们有两幅图:1.bmp和2.bmp,要从中提取体征点并匹配,代码如下: // Load image from file IplImage *pLeftImage = cvLoadImage("1.bmp", CV_LOAD_IMAGE_GRAYSCALE);IplImage *pRightImage = cvL

BRIEF 特征描述子

Binary Robust Independent Elementary Features 1. BRIEF的基本原理 我们已经知道SIFT特征采用了128维的特征描述子,由于描述子用的浮点数,所以它将会占用512 bytes的空间.类似地,对于SURF特征,常见的是64维的描述子,它也将占用256bytes的空间.如果一幅图像中有1000个特征点(不要惊讶,这是很正常的事),那么SIFT或SURF特征描述子将占用大量的内存空间,对于那些资源紧张的应用,尤其是嵌入式的应用,这样的特征描述子显然是

Opencv 各种特征点提取和匹配

opencv 特征点的提取和匹配 1. 当中的数据结构 KeyPoint这数据结构中有如下数据结构: class KeyPoint { Point2f pt; //坐标 float size; //特征点邻域直径 float angle; //特征点的方向,值为[零,三百六十),负值表示不使用 float response; int octave; //特征点所在的图像金字塔的组 int class_id; //用于聚类的id angle:角度,表示关键点的方向,SIFT算法通过对关键点周围邻域

图像特征提取三大法宝:HOG特征,LBP特征,Haar特征

(一)HOG特征 1.HOG特征: 方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子.它通过计算和统计图像局部区域的梯度方向直方图来构成特征.Hog特征结合 SVM分类器已经被广泛应用于图像识别中,尤其在行人检测中获得了极大的成功.需要提醒的是,HOG+SVM进行行人检测的方法是法国研究人员Dalal 在2005的CVPR上提出的,而如今虽然有很多行人检测算法不断提出,但基本都是以HOG+SVM

8.2 特征描述子

8.1 尺度空间 图像特征中尺寸空间的相关理论基础. 8.1.1尺度与旋转不变性 局部不变性:尺度不变性(视觉远近与目标认知分析无关)和旋转不变性(旋转操作与目标认知分析无关) 特征描述 目标特征分析:关键点检测与关键点提取 8.2.1 SIFT特征 关键点检测和描述算法 优点:旋转.尺度.平移.视角及亮度不变性:对参数调整鲁棒性好(根据场景调整适宜特征点数量) 该算法对图像局部特征点提取包括4个步骤:疑似关键点检测.去除伪关键点.关键点梯度与方向匹配及特征向量生成 SIFT特征检测及匹配: h

图像特征提取:图像的矩特征

1. 矩的概念 图像识别的一个核心问题是图像的特征提取,简单描述即为用一组简单的数据(图像描述量)来描述整个图像,这组数据越简单越有代表性越好.良好的特征不受光线.噪点.几何形变的干扰.图像识别发展几十年,不断有新的特征提出,而图像不变矩就是其中一个. 矩是概率与统计中的一个概念,是随机变量的一种数字特征.设X为随机变量,c为常数,k为正整数.则量E[(x−c)k]称为X关于c点的k阶矩. 比较重要的有两种情况: 1. c=0.这时ak=E(Xk)称为X的k阶原点矩 2. c=E(X).这时μk

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

以上两篇文章中检测在DOG空间中稳定的特征点,lowe已经提到这些特征点是比Harris角点等特征还要稳定的特征.下一步骤我们要考虑的就是如何去很好地描述这些DOG特征点. 下面好好说说如何来描述这些特征点.许多资料中都提到SIFT是一种局部特征,这是因为在SIFT描述子生成过程中,考虑的是该特征点邻域特征点的分布情况(而没有利用全局信息).本步骤中主要计算过程包括:确定特征点的方向和生成特征描述符. 确定特征点方向 在特征点的确定过程中,特征点的坐标以及尺度被确定下来(坐标很重要,尺度更重要,