杨红菊,王昱蓉
1(山西大学 计算机与信息技术学院,太原 030006)2(山西大学 计算智能与中文信息处理教育部重点实验室,太原 030006) E-mail:yhju@sxu.edu.cn
计算机视觉通过对图像的数字感知和理解来模拟人类视觉.边缘检测作为低层视觉任务中的一项,在各种计算机视觉任务中有着巨大的应用,如图像高阶特征提取及描述、目标提议框生成、目标检测和图像分割等.
自2014年起,由于深度学习的快速发展,许多基于深度学习的边缘检测方法被提出.这些方法利用深度学习卓越的分层特征学习能力,在BSDS500和NYUD数据集上展示出高精度的性能优势.深度学习边缘检测方法的ODS (Optimal Dataset Scale)指标已达到0.828,而传统方法却只能达到0.59.自此,基于深度学习的边缘检测方法已经取得了很好的效果,但因模型复杂度高而阻碍了其实际应用.因此,边缘检测的研究趋势开始转变为设计一种高效的神经网络架构.其要求是在保持边缘检测质量的前提下,使模型具有更低的计算复杂度.
受传统边缘检测方法的启发,Wibisono J K 等[1,2]先后提出两个轻量级边缘检测模型——TIN、FINED.它们的网络结构主要包括Feature Extractor、Enrichment和Summarizer,分别对应于传统边缘检测方法中的梯度、低通滤波器和像素连接.轻量级边缘检测方法在计算复杂度上占绝对优势(相较于经典的HED[3]方法,其参数量减少了十倍左右),却也存在预测边缘模糊、不细致以及定位不准确的问题(图1).Huan等[4]提出一种上下文感知跟踪策略(CATS),其包括跟踪损失和上下文感知融合块,前者使模型获得更好的侧边学习,后者可以有效地处理侧边混合而导致的边缘模糊问题.
大多数深度边缘检测方法[5]均以分层方式表示多尺度特征.为了达到较高的检测精度,分层方式提取多尺度特征会导致参数量的直线式递增.本文提出一种轻量级边缘检测方法——FMLED.该模型以细粒度多尺度特征表示方式,增大每个网络层的感受野范围并缓解了分层式特征表示致使模型复杂度变高的情况.在不增加计算负载的情况下,由于特征提取能力变得更强大,使检测到的边缘更细致并具有全局性.同时,通过对中间特征图的联合学习,使每个像素带有不同权重,从而有效地缓解现有轻量级边缘检测模型预测边缘模糊的问题.
图1 不同轻量级边缘检测模型的检测结果Fig.1 Results of different lightweight edge detection models
图像边缘检测是图像处理和计算机视觉领域中一个关键的技术挑战.根据图像处理技术的不同,边缘检测方法可分为两类:传统方法和深度学习方法.
边缘检测的本质是识别和定位图像中发生突变的位置,而突变部分表示图像的重要信息.基于梯度的方法是通过得到一阶导数的最大值或二阶导数为零的信息来得到图像灰度的变化情况.如Sobel算子[6]、Prewitt 算子[7],以及至今仍被广泛使用的Canny算子[8]等.Li等[9]使用混合滤波器代替Canny算子中的高斯滤波器,并使用最大类间方差法对图像的高低阈值进行确定,提出了一种改进Canny的边缘检测算法.
但仅考虑图像梯度特性,忽略颜色、亮度和纹理信息,将使检测到的图像边缘模糊.因此研究者们提出基于人工特征提取的边缘检测方法.此类方法通常采用复杂的学习范式来预测具有低级别特征的边缘强度,如Pb算法[10]、gPb-owl-ucm算法[11]、SE算法[12]、OEF[13]等.由于未包含高层的物体级别信息,致使传统方法检测效果不佳.
由于深度模型具有强大的学习能力和高效的特征表达能力,可以从原始像素级数据到抽象的语义概念逐层提取信息,所以其在提取图像的全局特征和上下文信息方面具有突出优势,为图像边缘检测带来新思路.
N4-Fields[14]、DeepEdge[15]和DeepContour[16]方法均使用卷积神经网络进行边缘检测,但由于未使用高层语义信息,得到的效果并不理想.Saining Xie等[3]提出一种基于全卷积网络架构的HED算法,其采用多尺度、多层级的特征学习方法进一步改善了边缘检测效果.Maninis等[17]提出一种卷积定向边界结构COB.其从一个卷积神经网络开始,产生多尺度定向轮廓和区域层次,并在层次分割中使用了一种新的稀疏边界表示方法.Akbarinia等[18]提出一种受生物学启发的SED模型,其方向选择性神经元通过高斯函数的一阶导数来表示,其类似于初级视觉皮层中的double opponent cells.Wang等[19]发现卷积神经网络具有良好的边缘像素分类能力,但定位能力较差,因而提出一种新的细化架构CED.其利用自上而下的后向细化方式逐步提高特征图的分辨率以得到清晰的边缘.Liu等[20]在VGG16网络结构基础上提出一种使用更丰富卷积特征的RCF方法,充分利用对象的多尺度和多层级信息来实现边缘预测,取得了很好的效果.YANG等[21]提出生成对抗支持的轮廓检测方法ContourGAN,其生成器是使用Encoder-Decoder框架来提取轮廓;鉴别器使用标签图和预测轮廓图作为输入.He等[22]提出BDCN方法并引入尺度增强模块.前者使每个层的输出都被特定尺度的标签图监督(特定尺度由网络自身学习得到);后者用于丰富BDCN框架学习到的多尺度特征.Soria等[23]提出一种鲁棒的边缘检测架构DexiNed,其受Xception框架[24]及HED方法的启发.由于公开的用于边缘检测的数据集较少,而构建了一个带详细标注的BIPED数据集.
虽然以上方法的检测精度远超于传统边缘检测方法,但却存在网络过于复杂的问题.因此,Wibisono等[1]提出一种受传统边缘检测方法启发的轻量级边缘检测框架TIN.虽然该方法在很大程度上有效地降低了网络复杂度,但在BSDS500数据集上的ODS指标仅达到0.772(HED[3]为0.788).因此,Wibisono等[2]又提出FINED模型.其在TIN方法基础上,对Enrichment和Summarizer修改、扩充,使检测效果得到了极大提升;其还引入training helper概念,有效地控制了网络的计算复杂度.
深度学习边缘检测方法是使用大量图像及标签对(源于边缘检测的数据集中)联合训练深度网络模型,使其具有更强的鲁棒性.检验边缘检测模型好坏的方法是给定一个待检测图像,将其输入到已训练好的模型中,查看检测到的边缘图与标签图是否接近以及得到的边缘是否清晰、准确.
FMLED网络总体架构如图2所示.本模型受经典的边缘检测方法HED和ResNet[25]网络启发.ResNet50网络包括7*7卷积层、4个块以及平均池化层,其中每个块都由若干Residual Block搭建而成.ResNet50是在VGG 网络基础上增加“跳跃连接”而构成.所有Residual Block中均不存在池化层,而是通过控制卷积层的步长来实现池化操作.网络最后,通过平均池化层代替全连接层来得到最终特征.
本模型在7*7卷积层、block1及block2后输出特征图,并连接上采样块得到中间边缘图(所有上采样块不共享权重).接着,将上采样块产生的所有边缘图拼接,并输入到网络最末端的学习滤波器中.最终,得到融合中间特征的边缘图.网络中所有卷积层后均要进行规范化处理以及ReLU操作(仅学习滤波器中的最后一个卷积层后无Relu激活).最大池化设置kernel_size=3,stride=2,padding=1.尽管本文框架受ResNet启发,但相似之处仅在于部分主要模块及其连接方式.与ResNet50模型相比,FMLED修改部分可总结如下:
1)使用Res2Net Module[26]替代Residual Block.Res2Net Module使用一个较小的3*3过滤器组代替Residual Block中的单分支3*3卷积核,并以层级残差方式连接过滤器组.这种残差分层架构增加了块内感受野,从根本上改变了提取图像特征的分层表示方式.
2)去除block3、block4及平均池化层部分.去除block3、block4是在保证边缘检测质量的前提下,极大地减少了网络复杂度.而添加平均池化层会出现边缘定位不精准的问题.
3)将ResNet50中的7*7卷积层、block1及block2输出连接到卷积核大小为1*1、通道深度为1的卷积层上,以将不同阶段特征减小至单通道.此操作简称降维.
4)增加Upsampling层.为便于中间结果的融合,对不同阶段特征进行上采样使特征图与输入图像尺寸相同(FMLED模型选用双线性插值法对特征图进行上采样).每个上采样层后,需连接交叉熵损失层(具体计算见3.2节).
5)增加学习滤波器.拼接各阶段特征图,并使用3*3卷积层组学习每个像素的权重.最后,根据像素权重融合各阶段边缘图.
为便于本模型在训练阶段对图像的批量操作,须将输入图像大小调整至1024×1024.由于输入均为彩色图像,可将调整后的图像尺寸表示为(3,1024,1024).以BIPED数据集中的图像(720×1280)为例,边缘预测过程如下:首先,对图像进行预处理,将其大小调整为(3,1024,1024);其次,使用模型中的7*7卷积层、block1及block2提取图像特征,得到尺寸分别为(64,512,512)、(256,256,256)、(512,128,128)的特征图;然后,使用降维及上采样操作得到不同阶段的中间边缘图(尺寸与输入图像尺寸相同,均为(1,720,1280));接着,将所有中间边缘图拼接(尺寸为(3,720,1280))并输入到学习滤波器中,得到相应的像素权重(尺寸为(3,720,1280)).最后,联合中间边缘图与像素权重并对维度0进行“sum”操作,得到融合边缘图((1,720,1280)).
大多数现有的深度学习边缘检测方法是通过分层来表示多尺度特征学习,而FMLED模型使用Res2Net Module的残差分层架构,在细粒度层级上提高了神经网络的多尺度表示能力,并增加了每个网络层输出特征能代表的尺度数量.在特征融合阶段,HED、RCF、DexiNed等模型均通过1*1卷积融合各阶段的边缘图;而FMLED模型通过使用学习滤波器组来学习不同像素相对应的权重,使得到的边缘图可以更好的融合中间特征.
深度学习边缘检测方法已达到较高的检测精度,但网络参数量偏高.而FMLED模型(见图2)参数量仅1.43MB,极大地增加了其实际应用.现有的轻量级神经网络虽然很大程度上减少了计算复杂度,但检测效果不佳;而FMLED模型不增加计算负载但可以得到更细致且定位更准确的边缘 (见图1).
图2 FMLED模型结构图Fig.2 FMLED model structure
在边缘检测任务中,损失函数是用于表现预测边缘图与标签图之间的差距程度,是一个非负实数函数.损失函数越小,模型的鲁棒性则越好.
(1)
其中,Xi、yi分别表示输入图像第i个像素值及相应的ground-truth;W为模型权重.通过设置η,忽略部分可能混淆网络的弱边.α和β的计算方法如公式(2)所示.
(2)
|Y+|表示边缘图中正样本数量,|Y-|为负样本数量.参数λ用于平衡正负样本数差距大的情况.
综上,训练阶段总损失的计算如公式(3)所示.
(3)
其中,|I|为输入图像的像素总数,N-1为模型中间边缘图数量.
(4)
(5)
通过使用Pytorch架构进行深度学习来实现本文边缘检测方法,并使用反向传播和随机梯度下降来训练网络.其中包括训练超参数初始学习率、权重衰减和β.在训练阶段设置初始学习率为1e-2,并使用公式(6)不断调整训练中的学习率.
(6)
在梯度下降求解神经网络参数过程中,使用Momentum优化方法来加快收敛速度,设置Momentum中参数β为0.9、权重衰减(weight decay)为5e-4.实验在一块NVIDIA GTX 1080Ti(11GB)显卡上完成.整个实验过程中,使用Python语言完成网络搭建、训练和测试;并使用Matlab对测试结果进行评估.
BSDS500:Berkeley Segmentation Data Set是由伯克利大学提供的数据集.其可用来图像分割和物体轮廓检测.该数据集包含200张训练图、100张验证图、200张测试图;所有ground-truth均用.mat文件保存.HED、RCF、BDCN等经典的边缘检测方法在训练阶段使用对初始训练集及验证集的300张图片进行数据扩充(旋转、翻转、尺度缩放)而得到的28800张训练图.距离容差d (即控制预测边缘和ground-truth之间匹配的最大间距)设置为0.0075.
图3 不同数据集的原图、GT以及FMLED模型生成的边缘图对比Fig.3 Comparison of the original images GTs and the edge images generated by FMLED model of differenct datasets
BIPED:该数据集由Xavier Soria等人提出,其包含200张训练图和50张测试图.由于初始训练集偏少,会使训练所得模型出现过拟合现象,使模型不具备较强的鲁棒性.因此,对初始训练集采用数据扩充(旋转、翻转、尺度缩放)得到57600张训练图.距离容差d仍设为0.0075.在当前工作中,仅使用数据扩充后的BIPED数据集进行训练.
NYUD:New York University Dataset是一组1449张的RGB-D图像(包含464个室内场景),其用于图像分割.该数据集被分成3个部分,即训练集、验证集和测试集.测试集包含654张图像,剩余的795张图像被用于训练及验证.与HED、RCF、ContourGAN等工作相同,将其距离容差d设为0.011.
3个数据集的部分图像、对应的标签图以及FMLED模型检测效果如图3所示.
边缘检测模型输出均为边缘概率图,并非二值矩阵.其表示该像素是边缘的概率p,p∈[0,1].为便于评估,需设计阈值对概率图进行二值化得到二值边缘图.
ODS、OIS作为边缘检测最常用的评估指标,是设置阈值的两个不同方法.ODS是为所有图像设置同样的阈值,使得整个数据集上的F-Measure最大;而OIS(Optimal Scale Image)是在每一张图片上均选取不同阈值,使得该图片的F-Measure最大.
在BSDS500、NYUD和BIPED数据集上,将FMLED模型与先进的边缘检测方法进行定性和定量比较,主要包括传统边缘检测方法Canny、机器学习方法Pb、gPb、SE和OEF以及经典的深度学习边缘检测方法HED、RCF、BDCN、DexiNed、TIN和FINED.
本小节将在BSDS500及NYUD数据集上对不同边缘检测方法进行定量、定性分析.
5.1.1 定量分析
表1、表2展示了在BSDS500测试集及NYUD测试集上,不同边缘检测模型在精度度量和模型参数量两方面的定量对比结果.
表1 BSDS500测试集上不同边缘检测方法的定量比较Table 1 Quantitative comparison of different edge detection methods on BSDS500 test set
从表1可以看出,在BSDS500数据集上,BDCN是目前精度领先的边缘检测方法.FMLED模型参数量仅1.43MB,但检测精度却要低于其他检测方法.这很大程度上是因为该数据集是用于图像轮廓/边界检测和语义分割的数据集.其相对于专用于边缘检测的BIPED数据集,图像中缺少许多重要的细节边缘.在评估模型过程中,BSDS500数据集的标签图中仅包含轮廓边缘,这并不利于FMLED模型检测到的细节边缘.
表2 NYUD测试集上不同边缘检测方法的定量比较Table 2 Quantitative comparison of different edge detection methods on NYUD test set
如表2所示,在NYUD数据集上,CATS-RCF模型的ODS指标得到最高;FMLED到达与DexiNed方法相近的检测精度,但参数量却相差22倍以上.FMLED方法ODS指标偏低的主要原因与其在BSDS500数据集上的情况相同,NYUD数据集中的标签图同样缺少细节边缘.
5.1.2 定性分析
图4和图5展示了不同边缘检测方法在BSDS500、NYUD数据集上的定性对比结果.其中,图4是各模型在BSDS500数据集上的比较结果,从左到右分别表示原始图像、标签边缘图、HED模型检测结果、BDCN模型检测结果、FINED3_tra模型检测结果、DexiNed模型检测结果以及本文模型检测结果.从图4可以清晰的看出,精度领先的BDCN方法检测结果更接近图像的标签边缘图,因此也更适用于图像轮廓/边界检测;FMLED模型与同为轻量级边缘检测方法且参数量相同的Fined3_tra相比,得到的边缘更清晰、定位更准确.
图4 BSDS500数据集上不同边缘检测算法的检测结果对比Fig.4 Comparison of results of different edge detection algorithms on BSDS500 dataset
图5是不同模型在NYUD数据集上的定性比较结果,从左到右分别代表原始图像、标签边缘图、TIN2模型检测结果、CATS-RCF模型检测结果、DexiNed模型检测结果以及本文模型检测结果.如图5所示,相比于在NYUD数据集上精度领先的CATS-RCF方法,FMLED模型检测到的边缘更细致.其与同为轻量级检测方法的TIN2相比,获得了更清晰、定位更准确的边缘.而与参数量相差二十倍且注重于生成细边缘的DexiNed模型相比,视觉上得到的边缘图具有相当的效果.
图5 NYUD数据集上不同边缘检测算法的检测结果对比Fig.5 Comparison of results of different edge detection algorithms on NYUD dataset
本小节将从定量及定性两方面对不同边缘检测方法在BIPED数据集的结果进行分析、比较.
5.2.1 定量分析
表3总结了不同边缘检测方法在BIPED数据集上的定量对比结果.对比可知,DexiNed模型是目前精度领先的边缘检测方法,ODS指标高达0.857.但其参数量(参数量为33.14MB)却要远高于现有的边缘检测方法;在相同或更小的模型尺寸下,FMLED模型具有最高的检测精度.同时,FMLED模型检测精度与RCF、BDCN方法大致相同,但参数量减少了十倍以上.
表3 BIPED测试集上不同边缘检测方法的定量比较Table 3 Quantitative comparison of different edge detection methods on BIPED test set
5.2.2 定性分析
在不同数据集上评估模型时,与FMLED模型对比的边缘检测方法(除DexiNed方法之外) 都必须使用该数据集的图像对模型进行训练;而FMLED与DexiNed模型仅使用BIPED数据集训练一次,便可用于不同数据集的测试.
图6显示了在BIPED测试集上最新的轻量级边缘检测方法、精度领先的DexiNed方法和FINED模型之间视觉上的比较.如图6所示,FMLED与DexiNed方法在视觉上具有相当的效果,但FMLED模型参数量为1.43MB;而DexiNed为33.14MB.而与同为轻量级边缘检测的TIN、FINED方法相比,视觉上FMLED模型检测效果更佳.
图6 BIPED数据集上不同边缘检测算法的检测结果对比Fig.6 Comparison of results of different edge detection algorithms on BIPED dataset
本文提出一种新的基于卷积神经网络的单阶段(image-to-image)边缘检测模型.其设计初衷是搭建一个可得到高质量边缘的轻量级网络架构.通过使用细粒度级方式表示多尺度特征,使其具备更强的多规模特征提取能力.这种方式以最小的附加块提取特征,增加网络层的感受野范围但不增大计算负载.此外,还通过学习滤波器结合中间层的特征图以学习不同像素的权值,减轻因平均操作而导致的边缘模糊问题.实验结果表明,在专用于边缘检测的数据集上,本文模型比经典的边缘检测方法HED、CED、RCF、BDCN检测精度更高,且参数量减小了13MB~19MB;与现有的轻量级方法相比,其检测精度更高、生成的边缘质量更优.未来工作将通过使用本文模型来解决轮廓/边界检测问题.