您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > Moravec算法-研究报告111
“Moravec角点检测算法”研究报告一、Moravec角点检测算法的简介Moravec在1981年提出了Moravec角点检测算子,并将它应用于立体匹配。它是一种基于灰度方差的角点检测方法。该算子计算图像中某个像素点沿着水平、垂直、对角线、反对角线四个方向的灰度方差,其中的最小值选为该像素点的角点响应值CRF(CornerResponseFunction),再通过局部非极大值抑制来检测是否为角点。二、Moravec角点检测算法思想在图像中设计一个局部检测窗口,当该窗口沿各个方向作微小移动时,考查窗口的平均能量变化,当该能量变化值超过设定的阈值时,就将窗口的中心像素点提取为角点。此检测窗口可以是3*3,也可以是5*5。现在就以3*3为例,至于平均能量用兴趣值来表示。计算每个像素点的兴趣值,就要在3*3的窗口中计算0度,45度,90度,135度四个方向灰度差的平方和,取其中最小值作为该像素点的兴趣值,具体公式为:其中(u,v)是窗口移动的位移,(x,y)表示该窗口内的像素点的坐标,w(x,y)表示方形的二值窗口,若像素点在窗口内,则取值为1,否则为0。四种移位(u,v)=(1,0),(1,1),(0,1),(-1,1),具体移位如图(原点在左上角,原点下方纵坐标为正):三、角点检测的步骤1.对于每个像素点,计算在E(u,v)的值,如果是3*3,(u,v)的值是(1,0),(1,1),(0,1),(-1,1)如果是5*5的窗口,(u,v)的取值是(1,0),(1,1),(0,1),(-1,1),(-1,0),(-1,-1),(0,-1),(1,-1)8种情况。2.计算E(u,v)的最小值minValue3,.对于每个位置minValue进行判断,是不是大于设定的阈值,如果大于设定的阈值,就进行非局部极大值抑制,判断是不是局部极大值。为什么要进行非局部极大值抑制?因为在一个窗口内,中心点附近的值也可能大于阈值,但是要在这个窗口内排除这些值,确定局部的最大值,所以要进行非局部极大值抑制。四、moravec角点检测缺点分析及检测1.它不具备旋转不变性2.对边缘点的反应比较强烈moravec只计算了一些离散的偏移产生的灰度值变化(最多是8个方向),如图下所示,旋转之后,检测到角点不一样了。moravec统计的8个方向(最多是8个方向)是0°,45°,90°,135°,180°,225°,270°,315°。如果图像上的边缘上的某个点,在旋转前刚好是处于45°方向,此时检测到不是角点(因为窗口在45°方向平移的时候,窗口内部像素值变化肯定很小),当图像旋转10°,此时该点处在55°,那么现在就很有可能变成了一个角点(因为窗口只有在55°方向平移的时候,窗口内部的灰度值变化才会取到最小值,而55°不在moravec算法的统计之内)。具体如图:下图中,是用3*3的窗口,对图像进行morave角点检测。虽然moravec算法能把所有角点都检测出来,但是把边缘上面的很多点也作为角点了,对于这种情况,我们应该是可以理解的。moravec算法对角点定义是:窗口在各个方向的移动,窗口内的灰度值都会产生较大的变化。而其实这里的“各个方向“,最多也就只有8个方向。所以,如果边缘的方向,是这8个方向以外的方向,那么,就会被认为是角点。为了达到精确估计局部灰度值的变化程度,圆形的窗口才是理想的。圆形的窗口,使得中心点到窗口的每一个边缘点的欧式距离基本是相等的。如图,左图是7*7窗口,右图是半径为7的圆形窗口,可以看出,对于圆形窗口,从中心点到各个边缘点之间的欧式距离更接近。这样更有利于评估局部灰度值的变化程度。为什么呢?“评估局部灰度值的变化程度“,注意这句话里的一个关键词”局部“,那么什么是局部?如果我们使用7*7的正方形窗口,那么这个正方形窗口就是局部,我们的评估局部灰度值的变化程度的时候,这49个元素都会参与运算;当我们使用半径为7的圆形窗口的时候,那么这个半径为7的圆形窗口就是局部,在这个圆形窗口内的灰度值都会参与运算。通常,我们认为,里中心点更近的点,对该点影响也会大一些。既然离得比较近的点对中心点的影响比较大,那么我们在评估局部灰度值的变化程度的时候,应该赋予离中心更近的点更大的权重才是合理的,而不是moravec使用的窗口值,只要在窗口内部,不管远近,权重都是1.通过上面的分析,既要使用圆形的窗口,又要赋予离中心更近的点更大的权重,那么高斯窗口就是比较好的一个选择了。5*5的高斯窗口如图所示:虽然看起来的也是方形的,但是它在四个角落上的权重是非常小的,可以近似的认为是0,那么就可以认为是一个圆形的窗口,并且,权重是离中心点越近变得越大。五、Moravec算法与其他两大主流算法比较1.Susan算法SUSAN算子的模板与常规卷积算法的正方形模板不同,它采用一种近似圆形的模板,用圆形模板在图像上移动,模板内部每个图像像素点的灰度值都和模板中心像素的灰度值作比较,若模板内某个像素的灰度与模板中心像素(核)灰度的差值小于一定值,则认为该点与核具有相同(或相近)的灰度,由满足这一条件的像素组成的区域称为吸收核同值区(UnivalueSegmentAssimilatingNucleus,USAN)。1)算法上的明显差异Susan的模板为圆形,Moravec的模板为正方形;Susan是将模板内部的点与此时模板的中心点进行对比,Moravec算法是将此时模板内部的点与移动前模板的相应点进行对比。2)定位准确性定位准确性是判断提取的特征点位置是否接近正确的角点位置。以下是通过图片进行判断各算法的定位准确性:Susan算法Moravec算法比较得出:Susan算法对角点的检测效果不太理想,检测出的点多连续,并存在严重的检漏现象。而Moravec算法检测出的角点多连续,存在较多杂点。3)参数自适应性参数自适性主要是判断提取的特征点对设置参数的反应程度,即是参数变化对特征点提取的影响程度。以下是通过图片进行测试各算法的参数自适性:Susan算法t=sum/37,g=18--------检测角点总数325t=sum/20,g=30-----检测角点总数2109Moravec算法4)稳定性稳定性主要判断提取的特征点对图像的旋转变化、对比度变化、亮度变化和噪声影响的反应程度。以下是通过图片进行测试各算法的稳定性:4.1)旋转变化:模板的大小3*3,局部抑制大小3*3,选定兴趣值100-----检测角点总数1564模板的大小5*5,局部抑制大小5*5,选定兴趣值120-----检测角点总数1904原图不旋转原图旋转30°原图旋转90°Susan不旋转Susan旋转30°Susan旋转90°Moravec不旋转Moravec旋转30°Moravec旋转90°比较得出:图像旋转后,Moravec算法提取的杂点明显减少,对角点检测的效果更好。因此这两种算法方形模板对方向具有依懒性,对于方向的改变会产生较大的影响。而对于方向性依赖不强的圆形模板Susan算子,对方向性依赖没有那么强,对于图像旋转前后角点的提取变化不大。4.2)对比度、亮度变化原图无变化对比度增强和亮度变暗对比度增强和亮度变亮Susan无变化Susan对比度增强和亮度变暗Susan对比度增强和亮度变亮Moravec无变化Moravec对比度增强和亮度变暗Moravec对比度增强和亮度增强比较得出:当图像对比度增强时,Susan算法对角点检测的效果明显变好,漏检现象减弱。而Moravec算法在检测角点时杂点变多。当亮度较暗的时候,因整体灰度值减弱,使得角点与周围点的灰度差变小,检测出的杂点数比亮度高时多。4.3)噪声影响无噪声原图加噪声原图Susan无噪声Susan有噪声Moravec无噪声Moravec有噪声比较得出:Susan算法对噪声有一定的过滤效果,噪声对其干扰较小,而Moravec算法对噪声的敏感度很高。产生此现象的原因是:Susan算法是比较USAN的区域,当噪声点加入时不一定能使区域内相似点数目达到阈值要求,对USAN无太大影响,所以噪声对其干扰较小;而Moravec算法是对梯度和灰度差进行计算比较,当噪声加入时会增大梯度和灰度差,从而影响角点的提取。2.Harris算法1)定位准确定Harris算法比较得出:Harris算法检测出的角点较为离散,局部抑制效果较好,对角点的检测效果较好,亮度较低。Moravec算法检测出的角点多连续,存在较多杂点。2)参数自适性3)稳定性3.1)高斯滤波模板的大小3*3,参数1,k=0.04,局部抑制大小3*3,选定兴趣值-100000------检测角点总数825高斯滤波模板的大小5*5,参数2,k=0.04,局部抑制大小5*5,选定兴趣值-150000-------检测角点总数356Harris不旋转Harris旋转30°Harris旋转90°比较得出:图像旋转后,Moravec算法提取的杂点明显减少,对角点检测的效果更好。对于Harris算法旋转30°时角点检测效果明显变暗。因此这两种算法方形模板对方向具有依懒性,对于方向的改变会产生较大的影响。4.2)对比度、亮度变化Harris无对比度、亮度变化Harris对比度增强、亮度变暗Harris对比度增强、亮度变亮比较得出:当图像对比度增强时,Harris算法和Moravec算法在检测角点时杂点变多。当亮度较暗的时候,因整体灰度值减弱,使得角点与周围点的灰度差变小,检测出的杂点数比亮度高时多。两者在这点差别不大。3.3)无噪声Harris有噪声Harris比较得出:Harris算法和Moravec算法对噪声的敏感度很高。而Harris算法和Moravec算法是对梯度和灰度差进行计算比较,当噪声加入时会增大梯度和灰度差,从而影响角点的提取。两者在这点差别不大。六、Moravec算法代码实现
本文标题:Moravec算法-研究报告111
链接地址:https://www.777doc.com/doc-1843377 .html