刘超超 司亚超
(河北建筑工程学院,河北 张家口 075000)
边缘检测(或轮廓检测)是指借助计算机技术,对数字化图像中相邻像素间亮度、纹理、颜色等发生明显变化的像素点进行标识,以此来捕捉整幅图像中像素点的显著性变化,借助这些变化的像素点来刻画图像中所出现的所有物体、图案等的外部边缘情况.具体来讲,边缘检测的任务是对于给定的一副图像中的所有像素点,判断该像素点是边缘像素点还是非边缘像素点,即对该像素点进行二分类,对应的整幅图像的边缘检测任务可以被认为是一个有关像素点的稠密预测二分类问题.边缘检测任务是图像处理技术和计算机视觉中的基础性问题,对后续的计算机视觉高层任务如目标检测、图像分割、视觉跟踪等有一定的促进作用.
边缘检测作为计算机视觉中长期发展和演进的任务,一直以来受到研究者们的广泛关注.在边缘检测相关算法的发展历程中,可以划分为两个阶段:由人类专家手工设计的传统的边缘检测算子和自动化参数设计的基于深度学习的卷积神经网络算法.传统的边缘检测算子主要是利用了图像中梯度信息,借助求解图像在不同方向上的梯度变化时的阶跃变化特点,即在图像中物体与背景、物体与物体之间的梯度的显著差异性进行边缘检测,可以划分为一阶微分边缘检测算子和二阶微分边缘检测算子等[1].传统边缘检测算子受限于卷积核的大小,只考虑到图像中局部感兴趣区域内的像素取值的变化,借助像素取值梯度信息寻找边缘点,未能充分利用整幅图像级别的语义特征.
随着深度学习在计算机视觉任务(如图像分类、图像生成、物体检测、图像分割等)中的持续突破,显示了卷积神经网络在提取蕴含在图像中高层语义特征的能力.将卷积神经网络应用于边缘检测任务,能够自动地学习图像的特征信息,避免了手工设计特征提取时存在的偏差,同时卷积神经网络能够捕捉整幅图像的语义特征,可以显著改善提取的边缘图像的准确性,减少因图像成像过程中噪声、光照、投影、畸变对边缘检测的影响.2014年的N4-Fields提出使用卷积神经网络提取图像中各个特征块的特征表示[2],将特征表示在字典中搜索潜在的匹配结果,使用匹配到的结果得到边缘信息.2015年的DeepEdge网络借助Knet将边缘检测转化为分类和回归的问题、DeepContour方法利用聚类算法对边缘图像进行划分,并使用卷积神经网络提取特征、随机森林算法整合特征图来输出边缘线条[3].2015年的HED网络在VGG16网络中引入侧边结构[4],借助多尺度和多层次的训练,首次实现了端到端的边缘检测网络[5].2017年的RCF网络使用多阶段卷积过程中的所有特征图,显著提升了边缘检测结果的准确性.2021年的PiDiNet网络从传统的边缘检测算子中受到启发,使用像素差分卷积网络将边缘检测结果提升到与人类视觉水平相当的水准.
传统的边缘检测算子主要依赖于图像的梯度信息,根据对图像梯度求偏导数时次数可分为一阶微分边缘检测算子和二阶微分边缘检测算子.常见的一阶微分边缘检测算子包括Roberts交叉梯度算子、Prewitt算子、Sobel算子、Scharr算子等,二阶微分边缘检测算子包括Laplace算子等.
假设图像在像素点(x,y)处的像素取值函数为f(x,y),在该像素点的一阶微分(梯度信息)可以表示为一个具有方向和大小的矢量值,即:
(1)
由于图像的像素取值函数f(x,y)为离散的二维函数,相应的微分运算就是相邻像素之间的差值,对应的水平方向与垂直方向一阶微分结果为:
(2)
(3)
(4)
方向角为:
(5)
同理,在该像素点的水平方向和垂直方向的二阶微分可表示为:
(6)
(7)
由此可得二阶微分的Laplace算子为:
(8)
Roberts交叉梯度算子利用对角线方向的像素之间的像素差值进行梯度检测,对应的Roberts算子的模板为:
(9)
Roberts算子的参数少,运算量小,对噪声干扰的平滑作用不明显,主要对边缘变化显著而噪声干扰较少的图像较为适用.
Prewitt算子主要是利用像素点周围的其他像素的平均来抑制噪声对该像素点的影响,借助周围像素点的平滑及补偿来消除噪声的影响,对应的Prewitt算子的模板为:
(10)
Prewitt算子的计算量相对Roberts算子略大一些,但是在抑制噪声影响效果中相对较好,但是整体的边缘定位效果稍逊于Roberts算子.
Sobel算子与Prewitt算子相似,都是借助像素点周围其他像素的加权平均来抑制噪声影响,但是Sobel算子增加了像素点水平方向左侧及垂直方向上上侧像素点的权值、并相应减少了水平方向右侧及垂直方向上下侧像素点的权值,更加强调了不同像素位置对边缘结果的影响,对应的Sobel算子的模板为:
(11)
Sobel算子的计算量与Prewitt算子的计算量相同,在平滑周围像素点抑制噪声方面相比Prewitt算子略有提升,但仍然难以应对复杂图案情形下及噪声干扰影响较大的图像边缘提取任务.
Scharr算子与Sobel算子相似,同样对水平和垂直两个方向的边缘设置了不同的检测模板,相比于Sobel算子,调整了周围像素点的权值,能够对相邻像素间数值的突变给出较强的响应,对应的Scharr算子的模板为:
(12)
Laplace算子与之前的一阶微分算子不同,主要借助像素点的二阶微分进行计算.根据图像的边缘点附近的灰度值有较大的变化这一特点,结合二元函数偏导数的数学性质,可以获知在图像的边缘点的一阶微分偏导数有局部的极值,从而二阶微分偏导数通过零点.因而Laplace算子是通过借助求解整幅图像中像素点二阶微分的零点的位置,以此来找到整幅图像中的边缘点,进而实现对图像的边缘检测.常见的Laplace算子的模板为:
(13)
HED网络(Holistically-Nested Edge Detection,整体嵌套边缘检测)是由谢赛宁和屠卓文于2015年提出的用于边缘检测任务的深度神经网络,HED网络的骨干网络主要基于VGG网络.HED网络第一次实现了端到端的边缘检测,通过融合多个层级的特征图像,输出多尺度的边缘图像.
VGG网络是由牛津大学视觉几何工作组于2014年提出的深度卷积神经网络,该网络主要应用于图像分类任务,曾获得ILSVR2014图像分类任务分赛道的冠军[6].有鉴于VGG网络表现出的对图像语义级别强大的特征提取能力,该网络也常常作为目标检测、图像分割等计算机视觉任务的骨干网络.VGG网络常见的形式包括四种,分别为11层、13层、16层、19层网络,随着网络程度的加深,提取高层语义特征的能力越强,但其计算量也相应增加,经过该网络的前向推理时长也越长.在不同的计算机视觉任务中,往往会根据实际任务的需要做出平衡,选择合适的VGG网络形式,其中VGG16网络是使用率较高的深度卷积神经网络.HED网络使用的骨干网络即是根据VGG16网络修改得到的,下面将对VGG16网络进行简短介绍.
VGG16网络结构如图1所示,在图示上方标注了网络各层对应的特征图尺寸大小,即特征图的宽、高及相应的通道深度.VGG16网络输入图像的大小限定为224*224分辨率的彩色图像,可将VGG16网络分为由五个卷积块组成的卷积神经网络和全连接网络两部分,前者主要对输入图像进行特征提取,得到对应的特征输出,后者主要根据特征输出进行分类,得到分类结果.五个卷积块的结构相似,都是经由两个或三个卷积层来获得较大尺寸、较深层次的特征图,再经过池化层对特征图尺寸进行缩减.VGG16网络中广泛使用了3*3大小的卷积核,通过堆叠两个3*3的卷积核来代替一个5*5的卷积核、通过堆叠三个3*3的卷积核来代替一个7*7的卷积核,整体上减少了参数计算量,同时保持了相比于原始输入的感受野的大小.
图1 VGG16网络结构
HED网络结构如图2所示,HED网络基于VGG16网络进行特征提取,保留了VGG16网络中的五个卷积块组成的卷积神经网络,同时去除了VGG16网络中的全连接网络,解除了网络对输入图像尺寸的限制.HED网络在VGG16网络的五个卷积块结构中,将各个卷积块最后一层的卷积层的输出添加了侧边结构,经过侧边结构的卷积层、上采样层获得边缘图像,同时将五个侧边结构的边缘图像进行融合.
图2 HED网络结构示意图
HED网络通过对整幅图像进行多次特征提取,借助由浅层网络到深层网络多个层级获取到的特征,以此来获取整幅图像的高层级语义信息,进而实现对图像中出现的物体、图案等外轮廓的识别,得到各个物体、图案对应的边缘.同时,将骨干网络中浅层网络获取的富含细节信息的特征与深层网络获取的富含语义信息的特征进行融合,利用浅层网络获取到的特征图像中细节比较丰富的特点,与深层网络中获取的特征图像中物体轮廓更连续,抗噪声能力更强的特点进行融合,以此来弥补浅层网络与深层网络各自的局限与不足,充分利用不同网络层级特征图像的特点,实现提取的边缘图像更加准确、边缘线条连续不中断.
在HED网络中,经过多个卷积层获取不同层级的特征图时,会随着网络深度的增加,对应的感受野增大,网络中获取的特征图的细节信息逐渐模糊,特别是某些中间层的输出未能充分聚焦在物体边缘周围,而浅层网络中携带的噪声影响无法借助深层网络完全抵消,影响对原始图像中边缘点的选择与定位.因而考虑在HED网络中引入注意力机制模块,增强不同卷积层的特征图获取时的聚集性,更加关注在通道维度上叠加深层结构后对噪声与干扰的抑制,在空间维度上动态学习选择性关注边缘点相邻区域,以此来获得更为全面的特征信息,得到边缘线条更加准确、非边缘点干扰较小的边缘图像.
卷积块注意力机制(Convolutional Block Attention Module,CBAM)是一种同时关注通道和空间维度的双重注意力机制[7-9],通过在通道维度、空间维度设置不同的权重,以此来增强对应维度上的有用特征的强度,抑制不太重要的特征表示的强度,更加注重在有用特征周围的聚集性.卷积块注意力机制的结构如图3所示,将输入特征图分别经过通道注意力和空间注意力模块,得到重定义特征图,重定义特征图相比原始输入特征图可以更加集中于有用特征周围,其中,通道注意力模块包含最大池化、平均池化以及多层感知机,空间注意力模块包含维度扩展以及多个卷积层.
图3 卷积块注意力机制
经过对HED网络优缺点的分析,以及对HED网络结构的洞察,本文提出一种引入CBAM卷积块注意力机制的HED-CBAM网络,该网络的网络结构如图4所示.在VGG16网络的五个卷积块输出之后,分别添加CBAM卷积块注意力模块,得到重整后的特征图,将重整后的特征图再次送入原始HED网络的侧边结构.
图4 HED-CBAM网络结构示意图
HED-CBAM网络通过在网络的特征图融合阶段引入注意力机制,将VGG16骨干网络提取的特征图重新再次经过注意力模块进行进一步地聚焦,得到重新定义的特征图,新得到的特征图在通道维度上经过重整之后,抗噪声能力更强,同时在空间维度上,借助注意力机制提取更加有效的特征,忽略不太重要的特征.引入注意力机制之后,整体网络的可调节超参数总量会相应增加,经过网络前向传播的总体耗时也会同样增加,网络中可调节超参数的增加可以提高网络中间层级特征图的特征提取能力的提升,进而提升整个网络的特征提取能力,同时影响后续对特征图融合能力的提升效果.
PaddlePaddle飞桨深度学习框架是由百度开发并于2018年开源的完全拥有自主知识产权的国产化深度学习框架,该框架由C++、Python等编程语言开发,同时支持静态图和动态图的开发模式,兼容命令式和声明式两种编程范式,支持多客户端多平台的部署,特别是对国产芯片硬件(如百度昆仑、寒武纪、比特大陆等国产芯片厂商的芯片类产品)进行了全面的适配,支持麒麟、统信、普华等国产操作系统.飞桨框架提供完善的中文文档说明,并提供了一系列应用案例示例程序,有效地降低了深度学习门槛.
BSDS数据集是由美国加州大学伯克利分校开放的适用于边缘检测任务的数据集,目前该数据集共包含500张图像,其中200张图像用于训练、100张图像用于验证、200张图像用于测试,常被称为BSDS500数据集.该数据集中的所有图像均经过多位人类专家的认真标注,广泛应用于边缘检测算法的评估标准.
在本次实验实施过程中,将训练集和验证集图像合并后得到300张图像用于训练任务,另外200张图像用于测试相关算法的性能指标评价与对比.有鉴于训练任务中的图像数量过少,容易造成卷积神经网络对相关超参数过拟合,为了有效避免该网络在测试集上的泛化能力衰退,需要对训练集图像进行数据扩充,采用数字图像处理技术对训练集图像数据增强.对于训练集图像,主要采用多尺度变换与图像旋转、图像翻转相结合的方法,对每张原始图像以22.5度为间隔进行旋转,针对旋转后的图像进行水平翻转,并对处理后的图像进行多尺度变换,最终将原始训练集扩充为96倍,共计28800张训练集增强图像.
边缘检测的常见评价标准[10]主要包括三个相关的数值指标:全局最佳阈值(optimal dataset scale,ODS)、单图最佳阈值(optimal image scale,OIS)、平均准确率(average precision,AP).
精确率(Precision),表示经过网络测试获得的边缘检测的像素值预测结果符合真实标注像素值结果的概率情况.召回率(Recall),表示经过网络测试获得的边缘检测的像素值预测结果中被认为是真实的标注像素值结果占全部所有的真实标注像素值结果的比值.
对于边缘检测的像素值预测结果中,记TP表示经过边缘检测模型输出的结果中被认定为正类的正样本,一般认为给出了正确的可接受的结果;相应地,FP表示经过边缘检测模型输出的结果中被认定为正确的类别中的负样本,FN表示经过边缘检测模型输出的结果中被认定为错误的类别中的正样本,相应的精确率和召回率的定义为:
(14)
F1-Score值(一般简称为F1值),是一种综合了精确率和召回率的结果,其取值结果介于0和1之间,其数学定义为:
(15)
全局最佳阈值ODS,表示在整个数据集中的所有数据达到最好的结果时,F1值的平均值即为ODS;单图最佳阈值OIS,表示在整个数据集中的每一张图片都达到最好的结果时,F1值得平均值即为OIS.
平均准确率AP,其计算方式为P-R曲线下方的面积,其取值范围在0和1之间.
本次实验过程中,使用Python编程语言在飞桨深度学习框架编写深度神经网络实验代码,借助Tesla T4显卡进行GPU硬件加速.在训练过程中初始学习率设定为1e-4,学习率调度策略使用多项式衰减策略,批次大小设置为单次迭代共10张图像,共迭代10万次,训练过程总时长约28小时.训练完成后,针对200张测试集图像生成对应的边缘图像,借助MATLAB 2021进行性能指标验证,验证过程总时长约12小时.最终引入注意力机制的HED-CBAM网络在ODS获得0.787的结果,相比HED网络的ODS结果0.782提升了5‰,具体实验结果如表1所示.
表1 对比实验结果
应用于边缘检测任务的传统型边缘检测算子利用图像中像素变化的梯度信息,整体计算量小,但手工设计的算子模板受限于局部特征,未能充分利用图像的高层语义特征.使用卷积神经网络进行特征提取的HED网络,充分利用了整幅图像的语义特征,通过多尺度的特征图融合输出边缘图像.在分析了HED网络结构的优缺点之后,通过向HED网络引入注意力机制,加强了有用特征,改善了边缘检测任务的性能.