第二章边缘检测虽然本书的主要内容为三维计算机视觉,但二维图像的特征抽取是三维计算机视觉的第一步.在Marr[Marr1982]的视觉计算理论框架中,抽取二维图像上的边缘、角点、纹理等基本特征是整个系统框架中的第三步,这些特征所组成的图被称为基元图,Yuille等[Yuille1986]指出,在不同“尺度”意义下的边缘点(详见2.4节),在一定条件下包含了原图像的全部信息.图2.1画出了一幅图像中的边缘点,仅仅根据这些边缘点,我们就能识别出三维物体,可见边缘点确实包含了图像中的大多数信息.对生物视觉系统的研究表明,在视网膜上感受野为同心圆的视神经细胞,具有边缘检测功能(详见2.1节).本章主要讲述各种边缘检测方法,其他图像处理方法,如边缘跟踪与编码,图像压缩与复原,纹理分析等,读者可参阅其他有关图像处理或计算机视觉的书,例如文献[Wu1993],[Haral-ick19927.图像上的边缘点可能对应不同的物理意义,如图2.1所示,图像上的边缘点可能对应(1)空间曲面的不连续点.如图2.1标为A的边缘线,这些边缘线为两个不同曲面或平面的交线,该点处物体表面的法线方向不连续,由第十二章中将要讲述的光照模型中可以证明,由于法线方向不连续,在A类边缘线的两边,图像的灰度值有明显的不同(2)B类边缘线是由于不同材料或不同颜色产生,本书主要讲述由黑白摄像机采集的灰度图像的处理,不同材料或相同材料但不同颜色的物体对光的反射系数不同,使它们的图像灰度不同.图2.1中桌面由两种不同材料组成,由于它们对光的反射系数不同,使B边缘线的两侧灰度有明显不同.图2.1图像中的边缘点(3)C类边缘线是物体与背景的分界线.如图2.1所示,圆柱上有两条C类边缘线,这类边缘线一般称为外轮廊线,与A类边缘点不一样,在C类边缘点上,三维物体表面的法线方向是连续的,出现边缘点是由于从一定视角看物体时,C类边界点处于物体上可见与不可见部分的交界处,或者说物体与背景的交界处,由于物体与背景在光照条件与材料反射系数等各方面差异都很大,因此在C类边缘两侧,图像的灰度也有很大差异.图中标以C的边缘,既是物体与背景的交界处,也是物体上表面法线的不连续处,但引起它两侧
12第二章边缘检测灰度联变的原因是前者(4)阴影引起的边缘.由于物体表面某一部分被另一物体遮挡,使它得不到光源的照射·从而引起边缘点两侧灰度值有较大差异,由以上讨论可见,虽然图像边缘点产生的原因不同,但它们都是图像上灰度的不连续点,或灰度变化剧烈的地方.本章所述的边缘检测方法都是基于这一现象的.2.1节中将表明,边缘一般用滤波方法得到,由于“灰度变化剧烈”意味着在边缘点附近,信号具有空间域的高频分量,因此,所有的边缘抽取方法在本质上都是检测信号的高频分量,但信号的高频分量与信号的噪声很难区别开来,这就使看来很简单的边缘检测变得很难,或者说,变成一个定义不清的问题.以一维信号为例(该一维信号可以是二维图像上的某一行或某一列),如图2.2所示,如果将A点处看作是信号的边缘点(信号在该处有一个跃变),那么在B点C点处,是否也是边缘点呢?事实上,B点C点处很可能不是边缘点,而是信号与某个噪声的合成,但也可能是有定意义的边缘点B图2.2边缘点与噪声点2.2节将说明,边缘检测实际上是一个不适定(ill-posedproblem)问题(或称病态问题),该节还将介绍解不适定问题的正则化方法.2.3节的内容为边缘检测的多尺度(multiscale)方法.以不同尺度的滤波器抽取图像信号的边缘点,能使我们从不同的分辨率的角度去观察信号,对于理解与识别信号有重要意义,近10年来,有不少人提出了各种边缘抽取的最优滤波器,他们从不同角度给出了边缘检测的最优化准则,并用变分方法推出最优滤波器,2.4节将介绍这些内容.2.5节介绍一些与边缘抽取有关的快速算法。2.1边缘检测与微分滤波器本节首先介绍对理想无噪声信号边缘检测的一般原理,然后介绍在有噪声情况下边缘检测的滤波方法.2.1.1边缘检测与微分运算首先我们必须明确地定义边缘,如前所述,边缘点是信号“变化剧烈”的地方,但这么说并不准确,需要一个定义准确的边缘的数学模型.以一维信号为例,如图2.3所示,图2.3(a)是一种阶跃信号,我们当然认为A点处为边缘点,在实际情况中,物理信号不可能
132.1边缘检测与微分滤波器有理想的突变,而是如图2.3(b)所示,是一种逐渐增大的信号,对图2.3(b)中所示B,A,C三点,一般我们称A点为边缘点(图2.3(a)是图2.3(b)的特例,即当BC→0时,图2.3(b)趋于图2.3(a)),在图2.3(c)和2.3(d)中,如果台阶比较窄,我们既可以认为B点处为边缘点,也可以认为该信号有两个边缘点A与C.BCA(a)(b)BCCYB(d)(c)图2.3不同的边缘信号在以下讨论中,我们一般都以图2.3(b)为边缘信号模型.因此,用图2.3(b)为边缘模型检测边缘时,图2.3(c)与图2.3(d)所示的信号有两个边缘点(即图中A,C两点)。图2.4表示图2.3(b)所示的信号(曲线α)及其一阶微分(曲线6)与两阶微分(曲线c),可见,在边缘处,信号的一阶微分有最大值,其两阶微分过零点对于二维图像信号f(α,),一阶导数应理解为f(α,y)的梯度的模(见图2.5),f(,y)的梯度为如下向量:af afig=f-aray而两阶导数应理解为沿梯度方向的两阶方向导数,但方向导数计算复杂性较高(每幅二维图像一般有512×512个点,须计算每一点的梯度方向,及每一点沿梯度方向的两阶方向导数),因此,一般采用一种各向同性的两阶微分算子,即拉普拉斯(Laplace)算子:af+afVf=a+ay
14第二章边缘检测0.80.60.4 0.20-0.2--10-826图2.4信号的边缘及其微分图2.5二维图像信号的梯度可以证明,拉普拉斯算子具有各向同性,即图像作任何角度旋转后,又f不变,也就是说,在抽取边缘时,用拉普拉斯算子计算的两阶微分值与图像边缘的方向无关,检测一阶导数局部最大值或者两阶导数过零点是边缘检测的基本方法.虽然,这两种方法是等同的,但在实际算法实现上,检测过零点的算法比检测局部最大值的算法简单2.1.2微分滤波器虽然边缘抽取的基本思想如此简单,但在实际实现时却碰到很大困难,许多研究者已指出,边缘检测是一个病态问题,其根本原因是,实际信号都是有噪声的。为图示方便,我们仍以一维信号为例说明,图2.3(b)所示的信号是一种理想信号,如果有噪声,则应是如r图2.6所示.在图2.6中,我们将实际信号与图2.3(b)的无噪声的理想信号画在一起,如Usu果用以上所述的一阶导数(局部)最大值或二阶导数过零点的方法检测边缘点,检测出来的都是噪声引起的假的边缘点,而真正我们希望检测出来的C点,却可能不会被检测出来,这是因为噪声一般是高频信号,在噪声的前沿或后沿,噪声信号的导数一般要高于C点处信号的导数.解决这一问题的办法是先对信号进行平滑滤波,以滤去噪声,如平滑滤波器的脉冲传递函数用h()表示,我们可对信号先滤波,滤波后的信号为g(α)=(z)?h(α)(?表示卷积运算),然后再对g)求一阶或两阶导数以检测边缘点,由于滤波运算..与卷积运算次序有以下互换的关系:
152.1边缘检测与微分滤波器g(a) = df(c)@h(α) =是["+f(s)h(as)dsdrdrf(s)h'(α-s)ds=f(a)?h(r)图2.6一维有噪声的信号因此,我们可以将先平滑、后微分的两部运算合并,并将平滑滤波器的导数h'(α)称为-阶微分滤波器,将h"(z)称为两阶微分滤波器,于是,边缘检测的基本方法为设计平滑滤波器h(r),检测f(r)?h'(r)的局部最大值或f(r)?h"(r)的过零点.平滑滤波器h(z)应满足以下条件:(1)当,lα/→00,h(r)→0,h(r)为偶函数;h(a)dr=l;(3)h(α)一阶及两阶可微容易证明,上述第二个条件保证了信号经平滑滤波器h(z)滤波后,其均值不变,常用的平滑滤波器为高斯函数,我们有:1e-(2.1)h(x) =-2元g(2.2)h(α)=2元g1(2.3)h"(r)=2a212元g3其中,为高斯函数的方差,越大,平滑效果越强,但。太大,噪声虽然被平滑了,但信号的突变部分(即边缘点处的信号)也被平滑了,这一点是边缘检测的基本困难,我们将在以后进一步论述.式(2.1),(2.2),(2.3)表示的函数的图形分别为图2.7中的go,g1-g2高斯滤波器是常用的滤波器,还有其他各种滤波器,我们将在以后的章节中介绍,并将比较高斯滤波器与其他滤波器的性能.在1.1.2节中我们曾提到,图2.7所示的两阶高3斯微分滤波器(也称高斯-拉普拉斯算子)在生物视觉系统中已得到验证[Marr1982].1f al对于两维图像信号,采用各向同性的两维高斯平滑滤波器: