前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Harris角点提取后怎么匹配?

Harris角点提取后怎么匹配?

作者头像
智能算法
发布2018-04-03 11:33:01
2.4K0
发布2018-04-03 11:33:01
举报
文章被收录于专栏:智能算法

对于角点匹配算法的研究本文主要采用Harris算法提取图像中的角点,通过相似测度得到粗匹配点集,然后简单分析了两种提纯匹配点的简单聚类法和视差梯度约束法。

1. Harris算法角点检测

人眼对角点的识别通常是在一个局部的小区域或小窗口完成的。如果在各个方向上移动这个特征的小窗口,窗口内区域的灰度发生了较大的变化,那么就认为在窗口内遇到了角点。如果这个特定的窗口在图像各个方向上移动时,窗口内图像的灰度没有发生变化,那么窗口内就不存在角点;如果窗口在某一个方向移动时,窗口内图像的灰度发生了较大的变化,而在另一些方向上没有发生变化,那么,窗口内的图像可能就是一条直线的线段,如下图:

由于之前写过一篇关于Harris角点检测的文章,此处不在赘述。详见链接(点击查看):

Harris角点检测原理与流程

2. 角点匹配

在得到两幅图像的角点后,下一步就要对提取出的角点粗匹配,找出两幅图像角点之间的对应关系,这是自动配准的关键步骤。通常采用不相似测度SSD(Sum of Square Differences,误差平方和)和相似测度NCC(Normalized Cross Correlation,归一化互相关)来匹配角点。使用聚类或视差梯度约束的方法预筛选经NCC后得到的匹配点以提高数据的纯度,对后面使用RANSAC算法进行精确匹配,从而极大地减少RANSAC算法的迭代次数,提高算法的效率。

2.1 NCC

提取出两幅图像I1和I2的角点后,在角点匹配部分使用NCC算法计算图像特征点的相关性,计算所得结果越趋近于1,其相关性越强,从而得到成对的相关角点。归一化相关系数定义为:

其中k、Z是相关运算的窗口大小,下公式是对应的窗口内灰度的平均值。

采用归一化互相关算法进行角点的粗匹配,寻找I1图像中角点在图像I2中所有可能的对应角点。相关系数C的取值范围为[-1,1],弱C=-1,表明两个相关窗口一点也不相似;若C=1,表明两个相关窗口完全相同。对于图像I1中的每一个角点,以该点为中心选取一个尺寸大小为(2k+I)X(2l+1)的相关窗口,再在图像I2中以某角点为中心选取一个尺寸大小为(2k+I)X(2l+1)的矩形搜索区域,对于图像I1中的任意一个角点,搜索图像I2中对应的窗口区域内与之相关系数最大的角点,以该角点作为图像I1给定角点的匹配点,这样可以得到一组匹配点集S。将S中相关系数小于等于0.9的匹配对去掉,得到新的匹配点集S’。

由于匹配所利用的灰度相关只是从一个侧面描述左右图像角点邻域之间的灰度相似性,而最大灰度相关性计算结果却非常大,故匹配点集S‘中必然存在错配。这就需要使用预筛选,精确匹配图像间的相关角点。

2.2 聚类法

聚类方法是一种无监督的学习过程,它可以以自适应的方式处理样本,探寻数据内部的一些结构与规律,完成有效的前期处理,为进一步分类打好基础。由于图像I1、I2是由摄像机有限偏移旋转得到的,正确匹配点对形成的矢量非常相似,而由于图像间的差异,错误匹配分布没有一定的规律,用聚类的方法进行分类是非常合适的。

使用聚类法预筛选匹配点的主要思路为:把尺寸同样大的两幅待匹配图像置于同一坐标系中,且重叠在一起,把两幅图像中的匹配角点用直线连接(向量),那么对于正确的匹配角点的直线,它们的斜率相同或者近似。运用简单聚类的方法,在计算时以某斜率值为中心,找到一个包含此斜率值最多的邻域。

通过此方法,在匹配点集S’中找到一个包含某斜率值数量最多的邻域构成一个子集,使用子集内的数据进行RANSAC运算,可以极大地减少迭代的次数,提高整个匹配过程的效率。直线的斜率,可以是负的无穷大到正无穷大之间的任何一个数字,难以处理。故使用atan2(Y,X)函数计算匹配点对构成的直线(向量)的倾斜角的弧度值,以此函数返回的值作为度量。

该方法的主要步骤为:用atan2函数计算S’中所有成对角点的弧度值;设定邻域阈值t(此阈值的设定将影响预选出的匹配点数目,此阈值越小说明斜率值越相近),计算得到包含某弧度值最多的邻域,保留在邻域内的匹配角点作为预选出的匹配点;使用RANSAC算法对预选出的点进行精确匹配。

2.3 视差梯度约束

为进一步去除错误的匹配点对,可以使用视差梯度约束。根据视差梯度的定义,如果图像I1中的两个相邻角点m、n分别与图像I2中的角点m’、n’匹配,若它们是相容的,则视差梯Gd应小于等于2;若Gd大于2,认为这两对角点不匹配。视差梯度公式为:

Gd=2 * ||(m’-m)一(n’一n)||/||(m’一m)+(n’一n)||

其中(m’,m)、(n’,n)为匹配点的图像坐标向量,|| P ||表示向量P的模。利用视差梯度约束进行角点匹配的方法已经得到了许多应用。S’中每一对匹配角点与其它匹配角点分别求视差梯度,然后求和值D(n),此和值反应了当前角点与其它角点的相容程度,对应(n)值大的角点可能是误匹配角点。比较所有匹配角点的视差梯度和值,去掉最大的视差梯度和值所对应的角点,再重新计算剩余角点的视差梯度和值,迭代比较,直到最大的视差梯度和值Dmax(n)与最小的视差梯度和值Dmin(m)的比值小于给定阈值a。

至此,本文从Harris角点粗匹配的两种方法进行了简单的阐述,希望能够对研究学习角点匹配的同学有一些简单的帮助。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-06-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 智能算法 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档