图像的边缘检测技术研究进展∗

2020-07-13 12:48赵玉涛李光旭郑洲洲
计算机与数字工程 2020年5期
关键词:算子灰度边缘

张 岩 赵玉涛 李光旭 郑洲洲 张 森

(青岛科技大学机电工程学院 青岛 266061)

1 引言

图像边缘通常是指其周围像素灰度急剧变化的那些像素的集合,集中了图像的大部分信息,是图像最基本的特征之一。边缘检测在图像处理、图像分析和计算机视觉领域等方面有着重要的研究意义,广泛应用于图像分割[1]、动作分析[2]、物体识别[3]、视觉跟踪[4]和工业检测[5]等领域。传统边缘检测方法,如Roberts算子[6]、Sobel算子[7]、Prewitt算子[8]、LoG(Laplacian of Gaussian)算子[9]和Canny算子[10]等,主要通过微分算子计算像素阶跃性变化,通过对灰度跃变的分析来确定图像中的边缘。随着机器学习技术的快速发展,基于统计机器学习的方法[29~31,34~35,37~40]被引入图像轮廓和边缘检测中,此类方法通常采用卷积或类似卷积对数字图像进行灰度分析来确定图像的边缘。然而,这些方法仍无法有效地提取受复杂图像内容影响的语义信息[11]。CNN(Convolutional Neural Network)在计算机视觉领域上取得了重大进展,如图像识别[12~13],对象检测[14~15],语义分割[16~17]等。CNN具有自动提取高质量图像语义信息的能力,在图像边缘检测方面已经提出了一系列基于 CNN 的边缘检测器[11,52,54~55,57~58]。

基于经典差分的边缘检测通过梯度算子能够识别具有亮度变化的像素位置。基于微分的边缘检测方法仅以强度的对比度来检测边缘,因此它们普遍存在噪声敏感性的缺点,在纹理区域中有很明显的边缘响应。仅使用梯度信息进行边缘检测也会导致图像的内部边缘,这就是造成图像噪声的原因。其主要致力于研究多分辨率分析,亚像素定位和确定滞后阈值,来提高其边缘检测的检测性能。基于统计学习的边界检测采用监督学习算法来对边缘和非边缘像素进行分类,可以抑制在纹理区域中广泛出现的内部边缘,比传统边缘检测算法更加精确。并且通过学习检测到的边缘更接近人类视觉感知到的图像边缘。基于CNN的边缘检测方法能够融合图像边缘的多级信息,从而提取更丰富的特征,并且这些特征可以在不同级别之间直接进行信息交互。将更有效的深度学习网络架构运用到边缘检测成为目前一个新的研究领域。

本文根据两类边缘检测方法原理的不同,将其分为基于差异化的边缘检测、基于统计学习的边缘检测和基于CNN的边缘检测分别进行分析讨论。

2 边缘检测问题的界定

传统边缘检测算法通常通过对邻域内像素灰度求一阶导数、二阶导数及梯度来实现,这些计算经过化简的结果称为算子,算子表示一种操作符号,同时也表示一种运算规则。边缘大致可以分为阶梯状边缘、脉冲状边缘和屋顶装边缘。阶梯状和脉冲状边缘两边的像素值呈阶跃性变化,而屋顶状边缘的灰度值是逐渐变化的,其边缘在灰度值变化的转折处,如图1所示。

图1 图像边缘特性

边缘检测的结果常用灰度图或者二值图来表示,源图像中的边缘部分用灰度较高的像素表示,而没有边缘的部分在灰度图中显示为黑色或灰色。边缘检测结果图中的灰度值可以直接通过算子计算原图像中对应像素的灰度差分来得到。几乎所有的边缘检测思想均是以像素灰度差分为基础的。在实现时,由于灰度差分的结果通常较小,直接转换为灰度图会使检测结果模糊,可以使用阈值因子对差分结果进行缩放,从而得到清晰的边缘图像。如图2所示。

图2 灰度图与双阈值后的图像

表1 边缘检测方法分类

3 边缘检测方法的分类

根据边缘检测方法原理的不同,将其分为基于差异化和基于机器学习的方法。其中,机器学习包括统计学习和卷积神经网络。边缘梯度的输出通常用作基于学习的方法输入。具体分类如表1所示。

3.1 基于差异化的边缘检测算法

3.1.1 梯度算子

一阶微分边缘算子也称为梯度边缘算子,如图3(a)所示Prewitt算子模板和如图3(b)所示Sobel算子模板,它利用了图像在边缘处的阶跃性,即图像梯度在边缘区的极大值的特性进行边缘检测。梯度矢量的大小决定边缘信息的强度,其方向决定了边缘信息的趋势。二阶微分边缘检测算子是利用图像在边缘处的阶跃性导致图像二阶微分在边缘处出现零值这一特性进行边缘检测的,该算子称为拉普拉斯算子,如图3(c)所示算子模板。使用二阶微分算子检测边缘的方法较为简单,但它对噪声十分敏感,同时也不提供边缘方向的信息。为了实现对噪声的抑制,Marr提出了高斯拉普拉斯(LoG)的方法[9],LoG采用高斯函数作为低通滤波器对图像进行平滑。方向性差异,如OE(Oriented Energy)[18]采用一些不同方向的滤波器来获得亮度变化。在文献[6]、[8]中提出的早期边缘检测算子,为了抑制噪声的干扰,在使用高斯滤波器时为了获取最佳的整体边缘检测性能会丢失一部分边缘信息。基于差异化的边缘检测检测过程简单,但对噪声敏感,因此很少独立地用于识别边缘。较传统一阶、二阶差分边缘检测算法相比,基于三阶差分滤波器模板的边缘检测算法对图像边缘和细节信息的增强效果,因此能够得到更多的图像边缘信息[19]。

图3 基于区分的边缘检测算子模板

3.1.2 Canny算子

John Canny等人在对已有边缘检测算法进行系统总结的基础上,提出了经典的Canny边缘检测算子[10]。在对信号和滤波器做出一定假设条件下,利用数值计算方法求出最优滤波器,并对各种滤波的性能进行比较。首先,用二维高斯模板进行卷积以消除杂点,通过一维偏导数的有限差分来计算梯度的幅值和方向;其次,对梯度幅值的非极大值进行抑制,用双阈值算法检测和连接边缘;最后,利用多尺度综合技术对结果进行优化。Canny边缘检测算子因其优异的检测效果和对受白噪声影响的阶跃型边缘的最优性能仍在广泛应用。文献[20]提出了一个基于Canny的改进算法,该算法的边缘连接性较强,不仅保留了传统Canny算法的优越性,而且检测结果能够保留更加完整、全面的图像细节信息。此外,在文献[21]中将改进的Canny算法应用于图像分割,不仅能够消除复杂背景图像在边缘过程中的影响检测和字符分割,还可以获得准确的边缘位置和良好的分割效果。

3.1.3 其他

由于人类视觉是多分辨率的,多分辨率边缘检测主要通过整合不同尺度的边缘响应,利用高斯平滑与边缘跟踪相结合来检测多尺度的边缘。基于小波分析理论的Shearlet变换[22]创建了多尺度方向的图像表示,可用于定位不同尺度图像的不连续性。根据人类视觉模型能够自动选择最合适的边缘检测尺度的特性[23],采用多尺度自适应各向异性扩散方程对图像进行平滑,即去除了较高密度脉冲信号又能更好地保留边缘轮廓信息,从而获得较理想的边缘轮廓[24]。阈值选择对于二值化的边缘响应至关重要。Canny边缘检测中使用的阈值处理有助于生成完整且连续的边缘曲线。在所选区域内使用梯度直方图来得到高阈值或低阈值,确定滞后阈值并构造边缘点的子集[25]。亚像素边缘检测的主要目标在于提高边缘的定位精度。实验证明,多重插值在亚像素边缘定位中发挥着重要作用[26]。文献[27]通过在感兴趣的区域中计算矩阵,以构建用于亚像素级精度的模型。此外,色彩边缘检测也得到人们的进一步研究,颜色模型与边缘确定技术相结合应用于颜色边界的检测[28]。

3.1.4 讨论

基于经典差分的边缘检测方法,通过梯度算子来识别亮度变化的像素位置,这些梯度算子现在仍然被广泛使用。基于微分的边缘检测方法利用对比度的强度进行检测,因此它们普遍存在噪声敏感的缺点。例如,边缘响应若在纹理区域中仅使用梯度信息可能导致内部产生噪声。作为进一步的图像表示的低级预处理,Canny边缘检测成为生成连接单响应边被广泛应用。

目前,基于差异化的边缘检测主要涉及三个重要问题,分别是亚像素边缘检测、多尺度边缘分析和滞后阈值处理。亚像素边缘检测是为了提高定位精度,多尺度边缘分析和滞后阈值处理是为了提高检测精度。

3.2 基于学习的边界检测

3.2.1 基于统计学习的框架

基于差异化的边缘检测侧重于检测图像灰度的阶跃性变化,但它在纹理区域产生粗糙的边缘响应,需要抑制由纹理引起的内部边缘以获得不同区域之间的边界。BSDS(Berkeley Segmentation Data⁃sets and Benchmarks)将人工标记的自然图像边界包含在数据集中。通过手动标记的边界图像作为神经网络训练图像,建立基于统计学习的边缘检测框架,提取多个低级图像特征并将其组合到模型中以进行边缘响应的训练,从而将边缘点与平滑区域区分开。我们列出了基于统计学习的边缘检测方法,其学习框架的框架如图4所示。

图4 基于统计学习的边界检测框架

3.2.2 基于边界概率的多尺度边缘检测

Pb(边界概率)[29]边缘检测在多个局部特征中提取亮度梯度、纹理梯度和颜色梯度,应用Logistic回归来组合这些线索的距离,并学习预测边缘响应的判别模型。由于边缘响应与尺度相关,因此提出了基于Pb的多尺度边缘检测器[30~31]。与基于微分的边缘检测类似,不同尺度边缘的组合和定位是目前要解决的两个重要问题。MS-Pb[30]集成了 Pb[29]的多尺度边缘响应、附加定位和相对对比度信息,以确定多尺度的图像边缘。附加定位指在各个尺度上从像素到最接近的峰值之间的Pb响应距离,相对对比度表明局部区域的归一化边缘响应程度。

gPb(全局边界概率)[31~32]将三个尺度的Pb边缘响应和全局信息线性地组合进行轮廓检测。多尺度图像被组合成一个能够确定像素之间相似性的亲和矩阵。谱聚类用于全局计算与轮廓信息对应的亲和矩阵的特征向量[33]。tPb(基于纹理的边界概率)[34]使用随机放置的窗口中纹理变化的平均值来估计边缘响应。Pb边缘特征被纳入Any Boost分类器,其基于F-measure的优化标准(即F-measure Boosting)用于边界检测[35]。

3.2.3 生成字典单词的边缘检测

除了先前定义的通道进行对比之外,也可以将现有的特征描述符(例如,Haar小波和SIFT[36])应用为字典单词,并将它们纳入到用于预测边缘响应的分类器中。基于决策树概率提升的检测方法(BEL)[37]利用Boosting决策树顺序选择在不同的位置和尺度上生成的通用特征(例如,DoG响应和Haar小波的直方图),构建用于边缘检测的判别模型。此外,基于随机决策树的检测方法(SFE)[38]将颜色和梯度通道以及成对差异输入分类器,建立映射结构化的的离散空间标签,每个结构化标签标记补丁内的边缘像素,最终随机森林的聚合引起边缘响应。基于 BEL[37]和 SFE[38]的边缘检测方法均具有相对低的计算成本,并能够将自动生成字典单词作为边缘概率输入到确定的分类器中。例如,将稀疏编码表示应用于生成边缘响应的字典单词。在文献[39]中,使用判别稀疏编码算法来学习图像的稀疏表示,训练线性分类器来组合稀疏编码的多尺度重建误差并获得边缘响应。SCG(稀疏代码梯度)检测[40]使用稀疏编码自动生成通用特征,并且支持向量机(SVM)分类用于学习模型以区分边缘和非边缘。

3.2.4 边缘跟踪和轮廓分组

边缘跟踪主要是链接孤立和待识别的边缘点。轮廓分组利用全局信息改善边界检测性能,从而能够获得连续的曲线和封闭的区域边界。在轮廓分组中需要考虑分散边缘片段的空间关系,在轮廓分组模型中使用诸如邻近度和连续性的Gesalt因子。图模型已广泛应用于分组因子的制定,比如将基于图模型的学习算法用于训练边缘片段的空间和共现关系。在文献[35]中探索了归一化的轮廓显着性,并将轮廓分组用于解决离散优化问题。马尔可夫随机场和条件随机场(CRF)模型[41~42]是广泛应用的分割技术,用于捕获相邻轮廓之间的相互作用并建立轮廓连接。顺序贝叶斯框架则是对边缘片段进行分组,在文献[43]中,原始边缘片段通过形状信息被分类为边缘,在离线步骤中学习了多种边缘类型的检验和判定,为轮廓元素分组构造了粒子滤波框架。

边缘跟踪和轮廓分组是生成连续边缘线或曲线的步骤。边缘跟踪是在将孤立的边缘点连接到边缘线或曲线,轮廓分组则是获得不同对象之间的边界。连接和分组边缘对于对象识别和图像理解有重要作用,从连接边缘的分析中能够直接获取形状信息。因此,Canny和Pb边缘检测器的响应被广泛用作具有形状的对象类识别的基础,其中检测到的响应被视为目标边界信息,准确度和精密度是评估边缘检测性能的重要指标。

3.3 基于CNN的边缘检测

3.3.1 CNN网络构架

有四种基本的CNN,包括广泛用于计算机视觉 的 VGGNet[44],GoogLeNet[45],ResNet[46]和DenseNet[47]。其中,VGGNet和 GoogLeNet分别有16层和22层,由于VGGNet具有简单和多级的网络架构,而且对其他数据集具有良好的泛化能力。因此它广泛用于边缘检测[52,54,56~57]。ResNet是一种极其深入的网络结构,在数据集上能够实现比VGG⁃Net更好的检测性能。DenseNet拥有一个更复杂的卷积网络架构,它直接连接到密集块内的每个前层,因此它在图像分类方面比VGGNet和ResNet的速度慢。另外,HybridNet[48]是一种混合卷积网络,以VGGNet和ResNet作为两个基本卷积网络,将VGGNet的低级层和ResNet的高级层组合在一起,使用 VGGNet的 conv1_2,conv2_2和 conv3_3提取低级功能,使用ResNet的res3d,res4f和res5c的高级层作为辅助分支的基础层。HybridNet的架构如图5所示。

图5 混合卷积网络HybridNet的架构

3.3.2 基于CNN的边缘检测器

一些早期基于CNN的方法利用最后的完全连接层作为对边缘和非边缘像素进行分类。为了融合多级信息,有两种典型的CNN架构,完全卷积网络(FCN)[51]和整体嵌套网络(HED)[52]。FCN最初设计用于语义分割,并且在边缘检测方面也实现了高性能。该方法首先从最后一层CNN产生概率图,然后通过将概率图与从较低级别特征逐级产生的概率图相加来更新概率图。HED是一种比FCN更有效的边缘检测架构,它结合了以并行方式生成的多个概率图来融合多级信息。FCN和HED都以基于概率图的方式融合多级信息。但是,在这些方法中,不同级别的特征不能直接进行交互。

最新的边缘探测器利用更深的CNN,可以自动提取图像中的多级特征。Ganin和Lempitsky提出了第一个基于 CNN 的边缘检测器 N4-Fields[53],它采用CNN来提取图像块的特征,并使用最近邻点将提取的特征与边缘块的预定义特征进行匹配。沉等人[54]将边缘检测作为分类问题,并将每个图像块分类为若干预定义形状类别之一。Bertasius等人[55]提出了一种级联边缘检测器,首先使用结构化边缘(SE)[56]生成候选轮廓点,并采用CNN生成最终边缘图。这些早期基于CNN的方法主要预测补丁到类范例中的边缘图。谢等[52]提出了一种新颖的方法,即整体嵌套网络(HED),以图像到图像的方式检测边缘。HED是一种多尺度网络,它结合了多个侧面输出,能够融合图像多级信息,并以极快的速度预测边缘图。杨等[57]将边缘检测扩展到物体轮廓检测,旨在检测更高级别的物体轮廓。他们还提出了一种新颖的架构,可以通过编码器-解码器网络来检测物体轮廓。Maninis等[58]提出了一种基于ResNet的HED式边缘探测器,用于预测轮廓的强度和方向。这是一种基于概率图的方法。在文献[48]中提出了一种新的基于CNN的网络构架,使用VGGNet(16层)和ResNet(50层)作为基本CNN构架来执行边缘检测,它以基于特征图的方式融合多层信息,并生成高质量的混合卷积特征(HCF),用于检测图像到图像中的边缘,没有任何后期处理的方式。同时,添加一个辅助分支,以帮助主分支提取强大的高级功能。并且提取的丰富特征可以在不同级别之间直接进行信息交互,如图5所示。

3.3.3 讨论

基于学习的边缘检测是一个值得我们关注的热点。伯克利分割数据集和基准的出现推动了它的发展。边缘检测被建模为分类边界点的分类问题,使用统计学习算法和多图像数据集来构建用于确定边缘响应的模型。基于传统学习的方法可以利用多个图像进一步训练,通过边缘检测器和距离函数公式来测量颜色、纹理、亮度通道中的区域差异。分类算法用于组合多个距离测量,由于距离测量与边界点直接相关,因此简单的线性算法就能满足性能需求。现有实验表明,通过平均成对子窗口中的纹理距离,也可以实现相当的性能。其他基于学习的方法将自动生成的字典单词(即稀疏代码、密集定义的Haar特征、成对比较特征)馈送到分类器中。在某些情况下,需要使用分类算法(例如Boosting和随机森林)来选择有效的字典单词,选择简单的计算字典单词可以减少计算量。

这些方法仍无法有效地提取受复杂图像内容影响的语义信息。为了提高性能,基于卷积神经网络的边缘检测方法利用基本CNN网络构架的优势,能够融合图像边缘的多级信息,从而提取更丰富的特征。同时,从VGGNet和ResNet开发的混合卷积网络,利用网络各自的优势,以基于特征图的方式有效地融合多级信息,并产生高质量的混合卷积特征,用于图像到图像的边缘检测。

4 边缘检测的评估

视觉特征检测的评估非常重要,虽然可以通过人工观察直观地评估视觉特征检测[49],但它不具备大规模数据库的功能。边缘检测一般需要对检测精度、定位误差和计算效率这三个标准进行评估。计算效率可以通过检测时间成本来衡量;定位误差可以从二维空间中的误差距离进行计算;检测精度的测量是多种多样的,其关键思想是找到对应关系。不同之处在于对应的定义,第一种对应指基于将检测到的响应与人类标记的实况相匹配,第二种指匹配相关图像中检测到的响应。

图6 人工标记(Human)的标准图像边缘

BSDS用于评估边缘检测[50]。该数据集的早期版本包含300个图像,具有200个训练图像和100个测试图像。之后又添加了200个地测试图像,数据集总共扩展到500个图像。为每个图像提供5~10个带有分数的带标记的边界,并提供公共基准,基准测试的目标是为算法的边界生成分数。通过发现检测到的边缘响应与人工标记(Human)的真实图像边缘之间的对应关系来实现边缘检测的评估,如图6所示。典型的BSDS数据库为每个图像提供几个人工标记的边界图,附加实值(F-measure)测量的参数曲线用于评估边缘检测性能[59]。利用固定阈值,可以通过边缘检测方法获得二进制检测响应,检测到的响应与人工标记的真实边界匹配。

真阳性Ntp被定义为匹配响应的数量。假阳性Nfp定义为检测到的响应的数量,其不能与人工标记图像相匹配。假设有Np个标记的边缘点。精度(Precision)定义为真阳性与所有检测到的响应数之间的比率。回忆(Recall)是确定真阳性和人工标记的真实边界之间的比例。

当存在多个实况图时,二进制检测到的响应与每个人类标记的边界图匹配。回忆(Recall)定义为通过匹配每个地图获得的召回率的平均值。假阳性被定义为检测到的响应的数量,其不能与任何人类标记的真实边缘匹配。通过式(1)、(2)进一步计算,得到更高精度和召回率的检测。常用的F-measure定义为

0<α<1是平衡精确度(P)和回忆(R)重要性的权重,通常α=0.5,即F=2P*R(/R+P)。我们将算法的精确回忆曲线中最大的F-measure值作为其汇总统计量,如图7所示。此外,在文献[60~61]中,还提出其他边缘检测的测量评估方法。

图7 边界基准算子在Berkeley分割数据集(BSDS500)基准上的精确度-回忆曲线

表2 边缘检测方法及其数据测量

我们列出了表2中代表性方法的最大F-mea⁃sure。从表中可以发现,传统基于梯度的边缘检测算子Roberts、Sobel、Prewitt在BSDS300数据集上实现的F-measure值约为0.48,Canny边缘检测的F-measure为0.58。而通过基于统计学习的方法,F-measure从0.63变化到0.74。通过gPb[31]和SCG[40]获得具有灰度信息的最高F-measure值为0.74。根据 BEL[37],gPb[31]和 SCG[40]提供的经验评估及颜色信息的整合将F-measure值提升约0.02~0.03。基于tPb边缘响应预测和基于顺序标记的边缘链接,在BSDS500数据集上的最高F-measure值为0.74[34]。此外,SFE算法的BSDS500数据集的最高F-mea⁃sure值为0.74[38]。因此,基于统计学习的边界检测比基于差异化的边缘检测更加精确。除了测量精度,计算效率也是评估的一个关键问题。在所有基于学习的方法中,只有 SFE[38]是实时的。BEL[37]和SFE[38]是基于通用描述符和特征选择分类算法(即用于BEL的Boosting和用于SFE的随机森林),它们具有相对低的计算成本,但该算法不适用于基于稀疏码计算的SCG[40]。SFE是计算成本最高的方法[38],其全局信息和边缘链接的整合虽然增加了F-mea⁃sure值,但计算时间也增加了。

早期基于CNN的边缘检测器,包括N4-Fields[53],DeepContour[54]和 DeepEdge[55],主要预测补丁到类范例中的边缘,以及最近的基于CNN的方法,如HFL[62],HED[52],CEDN[57]等等,以图像到图像的方式推断图像边缘,以图像到图像方式执行的方法拥有更大的感受域、多级的CNN特征以及完全卷积的网络架构[52]。HCF[48]利用一种新的卷积网络,以基于特征图的方式有效地融合多级信息,并产生高质量的混合卷积特征。同时从VGGNet和ResNET开发的HybridNet中提取高级和低级功能。通过人工标记边缘获得的理想F-measure值为0.803。因此,HCF能够达到0.806的F-measure值,优于人类标注的边缘。

因此我们可以得出,与基于差异的方法相比,由于基于差异化的边缘检测没有区分纹理边缘,基于统计学习的边缘检测可以实现更好的检测效果。而基于CNN的边缘检测通过深度学习检测到的边缘更接近人类视觉感知到的图像边缘,最新的深度学习检测方法甚至优于人类标注的边缘。

5 结语

边缘检测通常用作其他视觉任务的基础技术,因此应该简单有效。所提出的方法应符合这一目的,使其更容易参与其他视觉系统。我们应当将新方法、新观念和先进有益的成果引入图像边缘检测的领域,促进边缘检测的进一步发展。

从研究现状来看,首先,我们需要为蓬勃发展的计算机视觉应用设计更有效的边缘检测方法。整合有效的学习边缘检测方法能够在检测精度和检测速度上取得平衡。再者,我们应考虑扩展所提出的方法以实现更快的速度。在新的数据集上探索和设计新的CNN构架,能够在提取高质量的高级和低级特征之间取得良好的折衷,并开发能够进行实时检测的方法。

猜你喜欢
算子灰度边缘
航空滤光片阵列多光谱图像条带灰度调整算法
采用改进导重法的拓扑结构灰度单元过滤技术
有界线性算子及其函数的(R)性质
天津港智慧工作平台灰度发布系统和流程设计
Domestication or Foreignization:A Cultural Choice
Arduino小车巡线程序的灰度阈值优化方案
QK空间上的叠加算子
一张图看懂边缘计算
在边缘寻找自我
走在边缘