一种自适应阈值的预筛选Harris角点检测方法(修改稿)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
An improved Harris corner detection algorithm based on auto-adaptive threshold and pre-selection
Shen Shizhe1, Zhang Xiaolong1, Heng Wei1,2 (1. School of Information Science and Engineering, Southeast University, Nanjing, 210096, China;2. National
实验,不断调整设定的 p 值,比较结果,发现 p 取
经验值 0.005-0.015 时,基本所有角点都可以被检验
出来,而且产生的错误角点和漏检角点都较少。因
为我们选取的图像上百幅,并且包括建筑图,静物
图,山水图,人物图和街景图,所以我们认为这样
其中
, ,
,
,
、
,
,,
(1)
是一阶灰度梯度,反映图
像在每个像素点的灰度变化方向; ,
角点响应函数最大值的一定比例,通过对比可以发
为高斯窗口,对图像窗口进行了高斯
现采用了自适应阈值的 Harris 角点检测方法可以比 原始的 Harris 得到更多的正确角点,同时抑制了伪 角点的数目。接着,本文又采用了预筛选的概念,
经验值 0.04。
④ 提取角点
对每个像素点利用一个以它为中心的 3*3 窗口
进行判断,如果在中心像素点的角点响应函数值是
这个窗口中的极大值,并且该极大值大于某个设定
好的阈值时,我们就提取该中心像素点为角点。
1.3 Harris 角点检测算法的局限 Harris 角点检测算法是一种经典的角点检测
算法,具有旋转和仿射不变性,但是依然存在以下 不足: a) Harris 角点检测虽然对角点度量执行非极大
此外由于之后的 Harris 检测只对备选角点进行处理, 旋转不变数,当 和 都很大时,说明局部自相关
必然将大幅减少运算时间,提高角点检测的效率。 函数有一个尖峰,则 E 沿任何方向变化都很激烈,
则该处为一角点,于是可定义如下角点响应函数
1.Harris 角点检测原理及其局限
(CRF)来描述 Harris 特征点:
2 自适应阈值的概念 2.1 自适应阈值的理论
由上述 Harris 局限可以看出,Harris 角点检测 算法的一个不利因素在于其提取角点时阈值是确 定的,所以角点提取的效果完全依赖于阈值的设定。 这样可能在对于某一幅特定的图片采用某个阈值 会得到比较好的效果,但将这个特定的阈值应用到 其他图片上时未必是最佳阈值,考虑到算法的通用 性,不可能在对每张图片进行处理时都进行比较以 得出适合不同图片自身的阈值,所以就对阈值的自 适应能力提出了要求,需要算法本身有能力计算出 适合不同图片的阈值。
一种自适应阈值的预筛选 Harris 角点检测方法
沈士喆 1 张小龙 1 衡伟 1,2 (1.东南大学信息科学与工程学院,南京,210096;2.东南大学移动通信国家重点实验室,南京,210096)
摘要:为克服 Harris 角点检测算法中漏检正确角点和提取出较多伪角点的问题,以及在对不同图像处理时, 非极大值抑制无法设置通用阈值的现象,本文在进行非极大值抑制时采用自适应阈值,从而可得较多的正 确角点。为进一步抑制角点检测中的伪角点数目并提高处理大图像的算法效率,加入预筛选得备选角点这 一步骤,通过在进行 Harris 角点检测之前就先去除部分肯定不可能是角点的点,可以减少最终得到的伪角 点数,并有效地减少了运算量,提高了效率。实验结果显示本文改进的 Harris 角点检测算法的运行时间仅 为一般算法的 30%,且可以得到更多的精确角点和更少的伪角点,具有很好的角点检测性能。 关键字:Harris 角点检测;自适应阈值;预筛选;备选角点 中图分类号:TN911.73 或 TP391.41
值抑制,但是确定局部极大值时,角点提取的 效果完全依赖于单阈值的设定,这就导致了会 出现丢失焦点信息,或者产生过多伪角点的情 况。不难理解,当阈值过大的时候,两个像素 点必须灰度值相差很大才可以被定义为角点, 这样符合条件的角点数目自然会减少,从而丢 失了很多应有的角点;而当阈值过小的时候, 灰度值差距较小的两个区域点也可能满足这 个与之条件,这样就产生了大量的伪角点。 b) Harris 角点检测虽然采用了可调窗口的高斯 平滑函数,但实际应用中高斯窗口的大小不易 控制。如选用较小窗口的高斯平滑函数,则会 因为噪声的干扰导致众多伪角点的出现;如选 用较大窗口的高斯平滑函数,则会因为卷积的 圆角效应使得角点的位置产生偏移。 c) 光滑的高斯函数对图像做平滑滤波时,会由于 过度平滑导致角点信息的丢失,而且由此产生 的角点丢失是无法用后续的措施补救的。
,,
,
,
,
,
① 计算图像方向导数
、
这里可以使用多种方法,比较正统的是使用 Gaussian 函数,因为在 Harris 角点检测的推导过程 中默认是采用了 Gaussian 函数作为其计算图像偏导 数的方法。当然也可以使用较方便的 Prewitt 或者 Sobel 算子,在此我们使用 Prewitt 算子进行计算。 ② 计算局部自相关矩阵 M
2.2 自适应阈值的实现
考虑到阈值是在提取角点时才会使用,即将角
点响应函数值 CRF 与阈值比较从而确定是否为角
点,我们想到阈值应该由图像本身的角点响应函数
值来计算,我们记录得出角点响应函数值的最大值
,随后定义该阈值由最大值
的p倍
决定。
简言之,“自适应”是指我们改进的算法中,不
同的图像采用的阈值是不同的。这和一般的 Harris
泛的是 Harris 算子,它通过计算像素点所在位置的
梯度检测角点[8],如果像素点所在位置有两个方向
,
,
,
梯度的绝对值都比较大,则判定该像素点为角点。
Schmid[9]对 Harris, Moravec 等基于图像灰度的角
点检测方法从重复率和角点周围的局部区域所包
,
,
,
含的信息量两个方面进行了对比。实验结果表明,
1.1Harris 角点检测原理 Harris 角点检测算法是在 Moravec 算法基础上
其中,
(2)
,
,k值
发展起来的,是 Harris C.和 Stephens M.J.提出的一 Harris 推荐取 0.04。如果 CRF 大于某个设定好的阈
种基于信号的点特征提取算子,Harris 通过微分运 值,则将该像素点提取为角点。
平滑滤波后再提取角点,可以提高抗噪能力;
,
称为像素点 , 的局部自相关
在处理图片时先提取一批备选角点,然后再对取出 矩 阵 , 其 中
⊗,
⊗,
的备选角点进行 Harris 角点检测。因预筛选,即备
⊗。
选角点提取这一操作能够剔除绝大部分伪角点,之
设 和 为自相关矩阵 M 的特征值, 和 与
后的 Harris 检测自然将不会再检测出大量伪角点, 局部自相关函数的主曲率成比例,构成一个对 M 的
义,角点检测的方法也不尽相同。目前的角点检测 方法可以分为两类:基于图像边缘的方法[5]和基于 图像灰度的方法[6]。前者往往需要对图像边缘进行 编码,这在很大程度上依赖于图像的分割和边缘提 取,具有相当大的难度和计算量,且一旦待检测目 标局部发生变化, 很可能导致操作的失败,因此 这种方法的使用范围很小。基于图像灰度的方法主 要通过计算点的曲率及梯度来检测角点,避开了这 些 缺 陷 , 目 前 此 类 方 法 主 要 有 Harris 算 子 [6], Moravec 算子[7]及 Susan 算子[1]等。其中使用最为广
利用步骤①这里⊗ 代
表以 x, y 为中心与高斯模板 w 做卷积,模板我们取
3*3 的窗口大小,继而得到局部自相关矩阵 M。
③ 算角点响应函数 CRF
利用公式
计算每个
像素点上的角点响应函数。其中 Det(M) = λ1λ2,
Tr(M)= λ1+ λ2,λ1 和 λ2 为 M 的特征值,k 通常取
Mobile Communications Research Laboratory, Southeast University, Nanjing, 210096, China)
Abstract:To eliminate the problems of extracting false corners and missing the information of real corners and overcome the difficulty in finding a universal threshold in the non-maximal inhibition for the processing of all pictures in the Harris corner detection algorithm, an auto-adaptive threshold is adopted in order to generate more accurate corners. To further reduce false corners and accelerate the processing of large images, a pre-selection strategy was embedded to rule out the pixels which are definitely not corners and pick out potential corners before the normal routine. This implementation reduces the amount of calculation, thus enhances the efficiency of the Harris algorithm. Experimental results show that our improved algorithm can detect more accurate corners and fewer false corners in shorter than 30% of the processing time required by the original Harris algorithm. Keywords: Harris corner detection; auto-adaptive threshold; pre-selection; potential corners
引言 角点是图像的一个重要的局部特征, 它在保留
了图像中物体的重要特征信息的同时有效地减少 了信息的数据量。角点检测在摄像机标定、虚拟场 景重建、运动估计、图像匹配等计算机视觉处理任 务中有着极其重要的应用。在计算机视觉和图像处 理中,对于角点的定义有不同的表述,如图像边界 上曲率足够大的点[1];图像边界上曲率变化明显的 点[2];图像边界方向变化不连续的点[3];图像中梯 度值和梯度变化率都很高的点[4]等。由于不同的定
角点检测算法不同,一般算法中采用的阈值对于各
种图像是一致的,如果实践中发现检测效果不佳,
需要手动设置,既麻烦又效率低下。本文中我们把
阈值设置为每一幅图像角点响应函数的一个比值,
这样对于任何图像都可以设定较好的比较基准,可
以得到较好的检测结果,而且减少了大量调整和试
验。
本文从统计的观点出发,选取一系列图像进行
算和自相关矩阵来检测角点,具有计算简单、提取
的角点特征均匀合理、可以定量提取特征点以及算 1.2 Harris 角点检测步骤
子稳定的特点。
微分算子能够反映像素点在任意方向上的灰
度强度变化,因而能够有效地区分角点和边缘点,记 像素点(x,y)的灰度值为 f(x,y),图像的每个像素点
(x,y)移动(u,v)距离后的灰度强度变化可以表示为:
Harris 角点检测法具有最好的效果。但在实际应用 中,Harris 角点检测算法须人为给出一个阈值 T 才 能得到较理想的角点,这类算法的另一个缺点是定 位精度不是太高, 同时还会漏掉一些真正角点, 且 对噪声比较敏感。
针对以上两个问题,本文采用了前人提出的自 适应阈值的概念,把每一幅图像恰当的阈值定义为