5.4 基于缺席重要性的特征检测算法
本节将定义的缺席重要性特征应用于构建一个新的特征检测算法,并和经典的检测算子做对比。当应用于边缘检测时,为了测试缺席重要性的性能,首先用MAI能量图代替图像的高斯梯度幅值。然后,通过阈值处理初步获得基于MAI能量图的边缘检测结果,但为了获得更好的边缘检测结果,我们在基于MAI能量图的边缘结果上执行后期细化等处理,从而获得单像素边缘。对于角点检测,首先计算图像中各个像素的SDAI值,然后通过进行阈值处理和进一步局部极大值检测来获得图像的角点。下面,模拟图像和真实图像均被用来计算新提出的边缘和角点检测算法的性能。
5.4.1 基于缺席重要性的特征线检测
图5-5a给出了一幅示例图片,该图片同时包含屋脊型边缘和阶跃型边缘。图5-5b和c是分别基于Canny和缺席重要性的边缘检测结果。很明显,Canny检测算子对于阶跃型边缘生成了单边缘响应,但对于屋脊型边缘则生成了双边缘响应并且在边缘的钝角处产生了断点现象。与此相反,基于缺席重要性的算法则对于两种类型的边缘均给出了单边缘响应,并且检测得到的边缘是连续的和完整的。
图5-5 边缘检测
a)原始图像 b)Canny边缘检测 c)AI边缘检测
如图5-6a所示,一幅经典的用于边缘和角点检测的模拟图像被用来计算本章所提出的缺席重要性(Absence Importance,AI)理论的性能。该算法与SUSAN和Canny的对应对比结果如图5-6b~d所示。不难看出,SUSAN和AI算法均能在钝角处获得连续的边缘。但对于在图中用圆圈标记的短边缘,边缘检测结果将发生弯曲现象,该现象可以在SUSAN和Canny边缘检测结果中观察到。相对地,本章提出的AI理论不仅不会产生该现象,反而给出了精确的边缘检测结果,如图5-6d所示。换句话说,本章提出的AI理论能够更精确地定位图像中的边缘。这是缺席重要性检测算法的另一个优势。
图5-6 不同理论的边缘检测结果
a)原始图像 b)SUSAN c)Canny d)AI
图5-7 给出了一个关于SUSAN和AI边缘检测的更清楚的例子。当SUSAN检测算子的模板中心像素落于图5-7a中的红色区域时,USAN的面积是21或25,并且在红色区域的像素被定义为边缘像素。当模板的中心像素落于图5-7a中的灰色区域时,USAN面积是11或15,相应的像素被定义为角点。很明显,SUSAN在角点附近产生了一个弯曲的边缘。现在给出关于AI理论的一个分析。当模板的中心像素落于图5-7b中的红色区域时,MAI缺席重要性是0,并且这些像素将被定义为平坦区域像素。当模板的中心像素落于图5-7b中的深灰色区域时,MAI缺席重要性是更大的,并且这些像素将被定义为边缘像素。很明显,基于缺席重要性理论的检测结果没有弯曲现象发生。
图5-8给出了基于Canny和AI的几幅真实图像的边缘检测结果。它进一步验证了本章所提出的AI理论相对于Canny检测算子的两个明显优势:
图5-7 SUSAN和AI的边缘检测结果
a)SUSAN b)AI
图5-8 检测结果
a)原始图像 b)Canny c)MAI
1)无论是屋脊型边缘还是阶跃型边缘,基于AI理论算法都给出了单边缘响应,然而对于屋脊型边缘,Canny则给出了双边缘响应,同时对于阶跃型边缘,Canny给出了单边缘,如图5-8用红色矩形标记所示。
2)基于AI理论算法相对于Canny算子给出了更连续的边缘,如图5-8中红色矩形标记所示。
5.4.2 基于缺席重要性的特征点检测
为了验证本章所提出基于AI理论的角点检测算法的性能,一个与SUSAN角点检测算子对比的实验在图5-6a中的经典模拟图像上实现。
图5-9给出了角点检测结果。可以看出,SUSAN角点检测算子丢失了一个角点,并且检测出很多的冗余点,然而基于AI理论的角点检测算法则检测出了所有的角点,并且除了有一个误检点外没有冗余角点。因此,基于AI的检测算法在检测精度方面展现了更优越的性能。
图5-9 角点检测
a)SUSAN结果 b)AI结果
表5-2 SUSAN、MAI、SDAI角点检测耗时对比
表5-2给出了SUSAN角点检测和基于AI理论的角点检测(分别命名为MAI和SDAI)在时间消耗方面的对比结果。通过平均多次实验的运行时间来获得平均时间消耗。可以看出,基于MAI理论的检测算法消耗了更少的时间,SUSAN算法第二,而基于SDAI理论的检测算法是最耗费时间的。因此,从某种意义上来说,在角点检测方面,基于AI理论的算子在运行时间方面更优于SUSAN算子。总体来说,本章提出的基于AI理论的算法在检测精度和运行时间消耗方面均展现了比SUSAN更好的结果。
更多的图片被用来计算本章所提出理论算法的性能,如图5-10a所示。四组图像分别是国际棋盘、栅栏、壁画和二维码。基于MAI算法的边缘检测结果如图5-10b所示。图5-10c、d和e分别展现了基于MAI、SDAI和SUSAN的角点检测结果。表5-3给出了上述三种算法角点检测数目的统计信息和角点检测的平均正确率。可以看出,基于MAI和SDAI理论的算法都可用于角点检测,并且后者展现出了比前者更好的性能。很明显,基于MAI和SDAI的角点检测的平均正确率比SUSAN检测算法的高。此外,基于MAI理论的算法也能很好地进行边缘检测。
图5-10 基于缺席重要性的角点检测和SUSAN比较结果
a)原始图像 b)MAI边缘检测 c)MAI角点检测 d)SDAI角点检测 e)SUSAN角点检测
表5-3 图5-10中检测结果统计信息
由表5-2可知,某种意义上,在角点检测方面,基于AI理论的算法在时间消耗方面优于SUSAN算子;由表5-3可知,基于MAI和SDAI算法的角点检测准确率明显高于SUSAN算子。基于AI理论的角点检测算法虽然具有这些优势,但也有其不足之处,在实验中发现基于AI理论的角点检测算法对椒盐噪声较为敏感。对图5-10的部分图像添加椒盐噪声,然后进行角点检测,实验结果如图5-11所示。
图5-11 椒盐噪声实验结果
a)加椒盐噪声原图像 b)基于MAI的角点检测结果 c)基于SDAI的角点检测结果
图5-11的实验结果证实了基于AI理论的角点检测算法对椒盐噪声较为敏感。其原因在于:椒盐噪声无疑是一个个孤立的点,假设一个3×3平坦区域的中心像素是一个椒盐噪声点,那么该区域如图5-12所示。计算该局部邻域的局部均值缺席重要性和标准差缺席重要性,如表5-4所示。图5-12的均值缺席重要性和标准差缺席重要性均明显高于图5-1c,即椒盐噪声点的均值缺席重要性和标准差缺席重要性均高于角点附近的点。因此,在局部极大值检测的过程中容易将椒盐噪声点误认为角点,这是算法对椒盐噪声敏感的主要原因。
图5-12 含椒盐噪声点的3×3平坦区域
表5-4 图5-12所示局部邻域的局部均值和标准差