1。2 检测方法
图像角点检测的算法发展至今,因为人们对于计算机视觉中角点的定义不同,所以根据这些不同的定义,也就出现了不同的角点检测算法。目前大致上可以分为以下三类检测方法:一种方法是基于边界曲线来完成角点检测[6-7],这一类方法的核心部分是找出图像中,目标的边缘曲线上某一区域的曲率极大值点,并将其作为角点,这种方法的检测质量与边缘检测算法的性能密切相关。比如,若在对边缘进行检测时,遇到目标的边界线突然中断等情况将会导致错误的检测结果,从而检测出虚假角点[8]。第二种方法是基于模板来完成角点检测[9-10],这一类方法尽管有着相当强的抗噪声能力和鲁棒性,但其检测的效果与模板的半径大小有着非常大的关系。模板半径越大意味着用该模板计算检测出的角点准确度就越高,并且模板种类越多自然也就能检测到越多角度类型的角点,越能减小漏检的几率。显而易见的,这么做的缺点就是半径大小越大的模板也就意味着越大的计算量,在硬件实现上即需要占用更多的资源,而为了减小漏检就需要越多的模板种类,而这样做更是加剧了硬件平台资源消耗问题。即便采取折中的办法,使用最小的3×3模板来改善硬件资源紧缺的情况,又会引入角点漏检的问题[11]。因此,这类检测方法的重点就在于设计者优化模板本身的程度,使计算量减少的同时最大限度保持模板自有的性质。但是即便这样,也不容易找到一种用较少类型的模板来减小漏检概率的方案。第三种方法是基于图像的灰度值变化来完成角点检测[12,13],这一类算法主要是通过计算图像中某一区域灰度值的曲率和梯度来判断一个点是否可以被认判定为角点,这类算法的优势就在于不用事先对图像进行分割和提取等预处理动作,并且也不用预先设计较多种类的模板,就可在设计好检测模板后直接对图像中的点逐个进行检测,相比前面的方法来说十分简便,因此这一类检测方法应用较为广泛[14],比如Moravec、Harris和Susan等著名算子都是基于图像灰度来完成角点检测[15]。
1。3 角点性能指标
尽管至今为止,对于角点的数学定义还没有一个绝对的描述,但是目前对于角点还是有下面几种数学描述:①在角点处,灰度的变化率最大②灰度和梯度的一阶导数所对应最大值的位置即是角点③角点处灰度的一阶导数最大且二阶导数为零,即角点处为灰度的极大值[14]。但是,不管使用哪种数学方法来描述角点,无论要基于什么原理来检测角点,均由下面几方面的因素来决定其检测结果的好坏[16-18]。论文网
准确性:即被检测出的角点的被检出并标记的位置与角点在图像中实际存在的位置要足够接近,若使用某种算法检测出的角点偏离该角点实际存在位置幅度过大,则可认为这种检测算法不准确。
稳定性:即要求角点检测方法要有一定的抗干扰能力,其最低要求是在没有噪声的情况下,对于位于同一场景中的目标,从不同角度观察时,角点被检出位置相对于目标的位置不应该有所变化。但是,即使是对连续的序列图像,由于灰度变化的原因,对不同的两帧应用同一种检测方法时,也不能保证检测出的角点在数目和位置方面是完全一致的,也就是说绝对稳定的算法不可能存在。
可靠性:所谓检测方法可靠就是指在没有噪声干扰的条件下,最小的点都能够被检测出来,也就意味着,假如只是改变算法中的可调整参数,也只会在最后检测结果中出现角点的数量不同,但所有被检测出的角点的质量是不会受到影响的。 FPGA视频图像角点特征提取算法的硬件实现方法研究(2):http://www.youerw.com/tongxin/lunwen_89923.html