特征提取(Detect)、特征描述(Descriptor)、特征匹配(Match)的通俗解释
特征匹配(Feature Match)是计算机视觉中很多应用的基础,比如说图像配准,摄像机跟踪,三维重建,物体识别,人脸识别,所以花一些时间去深入理解这个概念是不为过的。本文希望通过一种通俗易懂的方式来阐述特征匹配这个过程,以及在过程中遇到的一些问题。
首先我通过几张图片来指出什么是特征匹配,以及特征匹配的过程。
图像一:彩色圆圈为图像的特征点

图像二:

图像一与图像二的匹配:

概念理解:什么是特征,什么是特征描述,什么是特征匹配
假设这样的一个场景,小白和小黑都在看一个图片,但是他们想知道他们看的是否是同一幅图片,于是他们就通过电话描述这个图片,来判断是否是同一个图片。比如说有下面两个图片

对话1:
小白:我的图片里面有五个很明显的特征,分别在图像的上下左右中五个位置。
小黑:我的图片里面也有五个很明显的特征,分别在图像的上下左右中五个位置。
对话2:
小白:我的一个特征左边是三角形,右边是圆形,上面是菱形,下面是正方形。
小黑:我也有一个特征左边是三角形,右边是圆形,上面是菱形,下面是正方形。
对话3:
小白和小黑:那我们看到的就是同一个特征了。
上述三个对话其实分别代表这特征提取,特征描述和特征匹配。
那么来详细的分析一下,我们的问题是要匹配两张图像是否是同一个图像,比较好的方法就是找出图像中特征显著的内容然后来进行比较,如果这些特征都一致,那么就有很高的概率称他们为同一个图像。所以首先第一步就是找出图像中特征性强的内容(Feature Detect),上图中特征性强的就是五个红色的图案。但是只知道有显著特征没用,必须知道两张图像中的特征是不是一致的,如何判断特征是不是一致的,就需要我们对这个特征进行描述(Feature Descriptor),如果描述非常的相似或者说是相同,那么就可以判断为是同一特征。那么问题来了,该如何去描述一个特征,什么样的描述是一个好的描述呢。从对话2中我们可以看出,描述一个特征其实就是描述特征与他周围内容的相互关系。那么什么样的描述是一个好的描述呢,就要提到我们为什么要描述特征了?我们描述特征是为了能够更好的匹配特征,使得我们认为描述相同的特征是同一个特征的是可信的(概率高的)。所以我们的描述必须是有代表性的,具有排他性的(discriminative),而不是模棱两可泛泛而谈的。最后我们就可以根据描述的相似性来判断这对特征是否是同一个特征。
特征不变性的理解:
接下来我们将谈一下特征的不变性。我们用过很多特征,Harris Corner、SIFT、SURF、BRIEF、BRISK等,而特征的一个重要特性就是特征不变性,常见的就是旋转不变性和尺度不变性,还有一些具有仿射不变性的特征。而这些特征该怎么理解呢?下面我就用通俗地解释一下。
- 旋转不变性:
再看下面两张图片:

于是我们在看审视三个对话,你会发现对话2就改变了。
对话2:
小白:我的一个特征左边是三角形,右边是圆形,上面是菱形,下面是正方形。
小黑:我有一个特征左边是正方形,右边是菱形,上面是三角形,下面是圆形。
于是小黑和小白就认为他们看得并不是同一个图片。但事实上他们看得确实是同一种图片。于是我们就说这种特征不具有旋转不变性。
那么如何实现旋转不变性呢,再看下面两张图片:

然后我们再来审视对话2:
对话2:
小白:我的一个特征西边是三角形,东边是圆形,北边是菱形,南边是正方形。
小黑:我也有一个特征西边是三角形,东边是圆形,北边是菱形,南边是正方形。
这时候两个特征的描述就一致了,即拥有了旋转不变性。所以只要对特征定义方向,然后在同一个方向上进行特征描述就可以实现旋转不变性。这称之为Rotation Normalization。
- 尺度不变性
接下来谈一下尺度不变性,依然看下面两张图片:

对话2:
小白:我的一个特征东边5个像素的地方有个圆形。
小黑:我有一个特征东边7个像素的地方有个圆形。
这就是尺度变化造成的特征不匹配,为了实现尺度不变性,就需要给特征加上尺度因子,比如说小白看到的是尺度为5的,小黑看到的是尺度为7的,那么在进行描述的时候,将尺度统一就可以实现尺度不变性了。这过程称为Scale Normalization。
所谓的旋转不变性和尺度不变性的原理,就是我们在描述一个特征之前,将两张图像都变换到同一个方向和同一个尺度上,然后再在这个统一标准上来描述这个特征。同样的,如果在描述一个特征之前,将图像变换到同一个仿射尺度或者投影尺度上,那么就可以实现仿射不变性和投影不变性。分别称为Affine Normalization 和 Projected Normalization.
总结:
特征匹配的方法是先找出特征显著的特征点(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位的二进制字符串 |
特征提取(Detect)、特征描述(Descriptor)、特征匹配(Match)的通俗解释的更多相关文章
- 第十六节、特征描述符BRIEF(附源码)
我们已经知道SIFT算法采用128维的特征描述子,由于描述子用的是浮点数,所以它将会占用512字节的空间.类似的SUFR算法,一般采用64维的描述子,它将占用256字节的空间.如果一幅图像中有1000 ...
- GIST特征描述符使用
来源:http://www.cnblogs.com/justany/archive/2012/12/06/2804211.html 一种场景特征描述 场景特征描述? 通常的特征描述符都是对图片的局部特 ...
- GIST特征描述符使用(转)
GIST特征描述符使用 一种场景特征描述 场景特征描述? 通常的特征描述符都是对图片的局部特征进行描述的,以这种思路进行场景描述是不可行的. 比如:对于“大街上有一些行人”这个场景,我们必须通过局部特 ...
- Opencv 特征提取与检测-图像特征描述
图像特征描述 什么是图像特征 可以表达图像中对象的主要信息.并且以此为依据可以从其它未知图像中检测出相似或者相同对象 常见的图像特征 常见的图像特征 边缘 角点 纹理 图像特征描述 描 ...
- BRIEF 特征描述子
Binary Robust Independent Elementary Features www.cnblogs.com/ronny 1. BRIEF的基本原理 我们已经知道SIFT特征采用了128 ...
- opencv学习之路(35)、SURF特征点提取与匹配(三)
一.简介 二.opencv中的SURF算法接口 三.特征点匹配方法 四.代码 1.特征点提取 #include "opencv2/opencv.hpp" #include < ...
- OpenCV特征描述
特征描述 目标 在本教程中,我们将涉及: 使用 DescriptorExtractor 接口来寻找关键点对应的特征向量. 特别地: 使用 SurfDescriptorExtractor 以及它的函数 ...
- 图像特征提取三大法宝:HOG特征,LBP特征,Haar特征(转载)
(一)HOG特征 1.HOG特征: 方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子.它通过计算和 ...
- 图像特征提取三大法宝:HOG特征,LBP特征,Haar特征
(一)HOG特征 1.HOG特征: 方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子.它通过计算和 ...
随机推荐
- sqlserver2012关于allwayson和复制结合起来的做法以及需要注意的问题
allwayson的自动故障转移需要它对应的windows故障转移群集有仲裁设置,这样相当于三台以上的服务器做allwayson才比较合适 1.首先安装sqlserver的时候需要勾选上“复制” ...
- 从epoll构建muduo-11 单线程Reactor网络模型成型
mini-muduo版本传送门 version 0.00 从epoll构建muduo-1 mini-muduo介绍 version 0.01 从epoll构建muduo-2 最简单的epoll ver ...
- android手机内存大小获取
//获取手机中文件管理器中存储大小 File datadir = Environment.getExternalStorageDirectory(); //获取手机内部的存储大小 File datad ...
- Android开发编码规范(自用)
转载请注明本文出自Cym的博客(http://blog.csdn.net/cym492224103),谢谢支持! Android开发编码规范 目的及指导原则 目的 统一规范 Eclipse编辑环境 ...
- 用Ant实现Java项目的自动构建和部署(转)
Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能.在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作. 一. ...
- c - 比较字符串的大小
c的标准库中当然有现成的比较字符串的函数<string.h>中的 strcmp int __cdecl strcmp(_In_z_ const char * _Str1, _In_z_ c ...
- 初学Java ssh之Spring 第四篇
今天我来学习学习Spring中Bean. 在Spring中原来还有<beans.../>标签啊,它相当于<bean.../>标签的老爸,老爸可以有很多个儿子,但是老爸只有一个哦 ...
- 树形dp入门
poj2057 某公司的上下级关系是一颗树状结构,每个人不能与他的上司同时出现,每个人有一个值,求最大值. 这个题需要注意的是如果不保存状态会超时,这似乎也是大部分dp应该注意的事情啊 #includ ...
- The Suspects
算法:并查集 严重急性呼吸系统综合症( SARS), 一种原因不明的非典型性肺炎,从2003年3月中旬开始被认为是全球威胁.为了减少传播给别人的机会, 最好的策略是隔离可能的患者. 在Not-Spre ...
- ubuntu 快捷键和安装知识知识
本文节选自“The Official Ubuntu Book, 7th Edition.pdf” 快捷键部分直接引用原书中图片. Linux Folders Learning Unity Keyboa ...