刘玉文,黄友锐,韩 涛
(1.安徽理工大学 人工智能学院,安徽 淮南 232001; 2.安徽理工大学 电气与信息工程学院,安徽 淮南 232001;3.皖西学院 电气与光电工程学院,安徽 六安 237012)
随着车辆普及率的提高和道路使用频次的上升,路面多种病害不断显现出来,急需提升道路养护管理效率.传统的路面图像信息获取通过人工实地采集的方式,导致道路短时间地封闭,对交通管理造成很大影响.现今在路面分割方面,计算机视觉技术得到广泛应用,其具有信息采集速度快、识别精度高的特点,能够很好地解决传统人工获取信息导致道路短时间封闭的问题.并且道路养护管理决策的关键在于实现对路面病害图像快速精准地分割,通过计算机视觉技术可以及时获取路面图像中路面病害的类型、数量、面积等信息,有助于道路养护部门精准高效地设计出相关道路养护方案.
实例分割作为一种像素级识别分割目标轮廓的目标检测算法,最早在2014年被提出,之后陆续出现许多基于深度学习的实例分割算法.以DeepMask[1]、Mask-RCNN(mask regions convolutional neural networks)[2]、SharpMask[3]等为代表的双阶段实例分割方法分为自下而上的基于语义分割的方法和自上而下的基于检测的方法.自上而下的实例分割方法先利用目标检测方法确定实例区域,生成实例检测框,然后在检测框内进行语义分割,每个分割结果都作为一个不同的实例输出,但是该方法存在掩膜特征联系丢失、特征提取表示冗余、下采样导致位置信息丢失的问题.自下而上的实例分割方法,先进行像素级语义分割,再利用聚类、度量学习等手段区分不同实例,但是存在对密集分割质量要求高、非最优分割、类别多的复杂应用场景难以处理等问题.以YOLACT(you only look at coeffificients)[4]、PolarMask[5]、SOLO(segmenting objects by locations)[6]、Instance FCN(instance-sensitive fully convolutional networks)[7]为代表的单阶段实例分割方法分为基于锚框算法和无锚框算法2种.基于锚框算法是利用锚框提取候选区域的特征信息,但是在训练时目标框的标记不准确,导致样本数据不平衡,检测速度低.而无锚框算法能够有效地解决这个问题,该算法通过关键点回归目标类别、位置等,搭建网络简便,增强网络泛化能力.
近年来,深度卷积神经网络学习性强的优势在路面病害检测方面得到了广泛应用.Zhang等[8]采用卷积神经网络并通过图像局部块信息判断单幅图像是否有裂缝存在.Cha等[9]先进行图像分割,分割后生成的图像局部块利用卷积神经网络进行特征提取,最后通过裂缝病害特征进行分类.王勇[10]利用基于改进深度卷积神经网络的检测算法,对路面图像中的坑塘与裂缝进行检测,该算法将YOLOv3(you only look once v3)中主干网络Darknet替换为Inception v3模型,提高对路面图像中病害的深度特征辨识度,有效精准检测多尺度路面坑塘与裂缝等病害.蔡志兴[11]提出了一种基于RetinaNet模型的路面病害自动识别算法,其利用聚类分析算法K-means生成路面病害检测先验框,通过ResNet(residual network)与特征金字塔(feature pyramid networks,FPN)进行病害多尺度特征图的提取,之后利用全卷积神经网络(full convolution network,FCN)对目标框进行分类及位置回归.张宁[12]针对提高裂缝及坑槽2类病害的检测精度,提出一种基于Faster RCNN的公路路面病害检测算法,该算法将非极大值抑制(non-maximum suppression,NMS)替换为Soft-NMS算法,减小检测框冗余度,降低病害漏检率.路面病害图像存在拍摄环境复杂、分割目标尺寸存在差异、特征提取困难等问题,许多分割模型不断进行优化,以适应对路面病害进行分割,期望得到理想的分割效果.
道路养护的精准程度取决于养护单位对路面病害分割的精确度与速度.针对道路精准养护的需求,路面病害分割利用具有2个并行子网络的YOLACT模型来实现,YOLACT作为一种综合性能优越的实例分割算法,它在进行目标检测任务的同时解决了语义分割问题,该模型作为单阶段实例分割模型,能够以降低微小分割精确度的代价换取分割速度较大地提升,很容易达到路面病害分割精确度高、具有实时性的效果.出于对分割路面病害图像的实时性与精准性的需要,路面病害图像分割选择在YOLACT模型框架下进行.为进一步提高网络对路面病害的分割效率,本文通过构建深度过参数化卷积层结构的主干网络,加快网络的收敛能力,利用注意力机制卷积层对图像重要特征提速的优点,增强网络对路面病害信息的聚焦能力,提出了基于深度过参数化卷积的路面病害实例分割算法,具体来说,贡献如下:
1) 针对道路精准养护对路面病害分割实时性的需要,进行模型特征压缩结构改进,通过Focus模块[13]对图像进行切片操作,减少图像信息的丢失,提升模型对路面病害分割的准确性,并替换7×7卷积核为2层3×3卷积核,减小计算量,加快模型分割路面病害速度.
2) 将主干网络ResNet50中3×3传统二维卷积替换为深度过参数化卷积[14](depthwise over-parameterized convolutional layer,DO-Conv),在不增加网络计算量的基础上,提高网络收敛能力和训练速度,进而提升网络对路面病害图像的分割速度和精确度.
3) 针对路面病害图像分割环境复杂、待分割目标小、特征易丢失等特点,通过在残差网络ResNet50中添加卷积块状注意力模块[15](convolutional block attention module,CBAM),提升网络对路面病害图像信息的通道和空间聚焦能力,从而提高网络分割路面病害图像的精确度.
4) 通过拍摄实际路面视频,自制路面病害数据集,进行改进YOLACT网络与其他网络的路面病害分割性能测试比较,并利用自制病害数据集进行改进YOLACT网络的消融实验评估,验证改进YOLACT网络在实际路面分割病害方面的准确性与实时性.
改进YOLACT模型是由改进后的主干网络、预测头网络和原型网络构成,如图1所示.通过改用Focus模块进行输入图像切片操作完成特征压缩,并将采样所用的7×7卷积核降为替换2层3×3卷积核,以构建深度过参数化卷积层结构后的残差网络ResNet50加快网络收敛能力,引入卷积块状注意力机制增强网络特征信息聚集能力,结合FPN组成模型主干网络,完成路面病害图像多尺度特征提取.预测头网络主要通过提取的路面病害图像特征生成检测框,经筛选后输出每个锚框生成的掩膜系数.原型网络则是完成模型路面病害图像分割任务生成原型腌膜,原型腌膜和腌膜系数线性组合,并对组合结果使用激活函数非线性化来获得最终的路面图像中每1个路面病害的腌膜,该过程可以用式(1)单个矩阵相乘的方法来高效实现:
M=σ(PCT),
(1)
P是h×w×k大小的原型腌膜,h是原型腌膜的高,w是原型腌膜的宽.C是n×k大小的腌膜系数,n是通过腌膜和阈值过滤后每个路面病害对应的k个掩模系数.σ是原型腌膜与腌膜系数进行的线性组合.M是经原型腌膜与腌膜系数线性组合后,生成的路面图像中每1个路面病害的腌膜.
图1 改进模型结构Fig.1 Improved model structure diagram
图2 改进模型特征压缩结构Fig.2 Improved model feature compression structure
最大池化层作为卷积神经网络中一种通过取邻域中最大值特征点来代替邻域多个特征点的层结构,用来实现压缩特征维度、减小模型计算量、避免后续层参数过多造成过拟合.但是最大池化层存在丢失大量图像信息的弊端,对于数据量大且复杂的数据集,会出现欠拟合问题.
原YOLACT模型中特征压缩操作是通过尺寸为7×7卷积核对输入图像进行步长为2的降采样,利用最大池化层进行通道数不变的特征维度压缩,该压缩方式使得输入路面病害图像信息大量丢失,降低了模型分割路面病害准确性.因此对YOLACT模型特征压缩结构进行改进,如图2所示.首先通过Focus模块对图像进行切片操作将3通道512×512特征图压缩成12通道256×256的特征图.在完成特征压缩的同时,还保证图像信息集中到通道空间没有丢失,具体操作如图3所示.对图片中每隔1个像素取1个值,获取4张相似的互补图像并进行拼接,这样将3个输入通道扩充4倍变成12个通道,最后拼接得到的新图像再经过卷积操作,生成信息没有丢失的2倍下采样特征图.然后利用步长为1的3×3卷积核与步长为2的3×3卷积核替换7×7卷积核,生成64通道维度为128×128特征图,从而减小网络计算量,提高模型对路面病害的分割速度.
在图像实例分割任务中,卷积层是卷积神经网络(convolutional neural networks,CNN)的核心构建模块.网络深度增加是通过增加CNN中线性层和非线性层的数量,提高网络的性能.由于只增加CNN中的线性层会造成网络过参数化,因此优化网络很少有人考虑只增加线性层.然而,过参数化有一个显著的优点值得被重视:过参数化使用的多个连续的线性层可以在训练阶段后折叠为一个参数更少的单层线性层.
图3 Focus切片操作Fig.3 Focus slice operation
图4 DO-Conv卷积Fig.4 DO-Convolution
图5 深度过参数化卷积结构Fig.5 Depthwise over-parameterized convolution structure
针对路面病害图像分割精确度高、具有实时性的问题,改进YOLACT模型是通过在ResNet50残差网络普通卷积层中加入额外深度卷积操作来增强卷积层,构成一个深度过参数化卷积层,对每个输入通道进行单独卷积运算.将ResNet50的卷积模块中3×3传统二维卷积替换为DO-Conv卷积,如图4所示.在不增加网络计算量的基础上,加速网络训练过程,提高网络收敛能力,效果明显高于普通卷积层,模型对路面病害图像分割速度和精确度得到了提升.深度过参数化卷积结构如图5所示,对于3通道的输入特征I,先使用权重D∈R(M×N)×Dmul×Cin进行深度卷积,输出12通道的中间变量I′,并进行权重为W∈RCout×Dmul×Cin、卷积核尺寸为1×1的普通卷积运算,生成最终的卷积结果O,上述运算可用式(2)表示为
O=(D⊗I)×W,
(2)
Cin是输入卷积层特征图,为3通道,Cout是输出卷积层特征图,为2通道,M×N是卷积核作用窗口,尺寸大小为2×2,⊗表示深度卷积操作,Dmul是单通道卷积核,个数为4,即单通道输出特征数为4,且Dmul≥M×N.
路面病害图像分割是在一个复杂的环境下进行的,路面车辆及路旁建筑物等都会对路面病害图像分割的结果造成干扰,利用引入注意力机制的方式对YOLACT模型进行改进,注重模型对路面病害图像信息的通道和空间聚焦能力,提升路面病害图像分割模型的网络性能.引入卷积块状注意力机制的特征提取网络,如图6所示,通过对ResNet50的特征融合阶段中C3、C4、C5 残差模块添加卷积块状注意力模块进行卷积层构建,从而提升模型对实际路面病害分割的精准度.
图6 引入卷积块状注意力机制的特征提取网络Fig.6 Feature extraction network introduces convolutional block attention mechanism
在C3、C4、C5每个残差模块第2个1×1卷积层后串联插入1个通道注意力和空间注意力模块,输入特征图首先经过全局最大池化层和平均池化层分别得到1个路面病害特征通道描述,随后将这2个通道描述送入1个2层的共享全连接层,压缩输入特征图的空间维数,得到2个特征向量.通过逐元素累加的方式合并成1个特征向量,该特征向量经激活函数生成通道注意力特征图,与输入特征图逐元素相乘生成输入空间注意力模块的特征图.对输入空间注意力模块的特征图进行基于通道的全局最大池化层和全局平均池化层,然后将得到的2个1通道特征图合并为1个2通道的特征图,该特征图卷积降维为1通道,经激活函数获取空间注意力特征图,最后与空间注意力输入特征图逐元素相乘,得到最终生成的路面病害特征图,如图7所示.
路面病害分割实验通过2组数据集进行路面病害分割精准性与实时性的评估,验证改进YOLACT模型在道路精准养护方面的实用性.首先采用Kaggle官网中环境复杂的公开数据集potholes_and_road_damage_with_annotations进行验证,其主要包含损坏、裂纹、坑洼以及含水的大、小坑洼5种类型路面病害.其次通过摄像头实际拍摄道路路面现场视频,进行视频每帧图像的提取并保存为同一格式,在保存图像中挑选病害清晰图像作为数据样本集,评估改进YOLACT网络的精准性与实时性.调整2组数据集图像尺寸为模型输入图像尺寸512×512像素,减少模型的参数量.调整尺寸后的图像使用Labelme标注工具对图像中路面病害的轮廓进行多边形标注,并按顺序保存每张图像对应的标注Json文件,将路面图像与对应的标注Json文件转化成COCO(common objects in context)数据集格式,制作成路面病害数据集.
路面病害分割实验自制数据集选用路面坑洼、裂缝以及少量的正常路面共800张图像,并以8∶1∶1进行随机划分.即640幅图像作为路面病害训练集,80幅图像作为路面病害验证集,剩余80幅图像作为路面病害测试集.随机划分后的自制数据集路面病害分布如表1所示,含有路面病害的图像主要分布在病害训练集与验证集.其中病害训练集中含路面坑洼病害414个、路面裂缝病害302个,病害验证集中含路面坑洼病害42个、路面裂缝病害50个,病害测试集中含剩余路面坑洼病害38个、路面裂缝病害29个.
图7 ResNet50残差模块引入CBAM注意力机制Fig.7 ResNet50 residual module introduces CBAM attention mechanism
表1 自制数据集路面病害分布Tab.1 Pavement disease distribution of self-made data sets
路面病害分割实验是在Windows 10系统下进行的,处理器采用Intel(R)Core(TM)i5-10600KF,显卡为NVIDIA GeForce RTX 3060,硬盘1 TB,内存16 GB;在Python3.8环境下选用Pytorch1.8.0框架进行模型训练与测试.以ResNet预训练网络作为输入的初始权重,采用随机梯度下降法对路面病害图像分割网络进行训练.学习率衰减区间设置为(30 000,60 000,90 000),训练迭代次数设置为30 000,训练批次设置为4,阈值设置为0.3.
路面病害分割实验效果以分割速度(frames per second,FPS)和平均精度(average precision,AP)作为评价指标.在实验中分割速度表示模型每秒分割图像的帧数,每秒帧数越多表示模型分割图像的速度越快,以此对模型分割速度进行评估.在Microsoft COCO公开评估指标下的AP即是平均精度均值(mean average precision,mAP),是AP值在所有类别下的均值.AP的计算需要用到模型的精确度(precision,P)、召回率(recall,R)以及交并比(IoU)的计算.精确度是模型预测为正的样本中真实正样本所占比例;召回率表示所有真实样本中正样本被预测正确的占比,计算方法如下:
(3)
(4)
式中,NTP表示预测正确且判断为正的样本;NFP表示预测错误且判断为正的样本;NFN表示预测错误且判断为负的样本.
IoU是预测框(prediction bbox,Pb)和真实框(ground truth,Gt)的交叉面积与合并面积之比.在实例分割任务中,当模型生成的预测框与标注的真实框的IoU值大于设定阈值时,默认模型输出预测框是正确的,式(5)如下:
(5)
在Microsoft COCO公开评估指标中,AP利用平滑处理后的PR曲线进行计算,PR曲线由横坐标为召回率和纵坐标为精确率构成.一般取处理后的PR曲线横轴0到1之间的100等分点的精确率值,包括断点共101个点,计算其平均值作为最终AP的值,计算方法如下:
(6)
(7)
路面病害分割实验通过AP0.5、AP0.75、APall评估算法的路面病害分割精确度.AP0.5表示交并比阈值为0.5时的平均精度;AP0.75表示交并比阈值为0.75时的平均精度;APall表示交并比阈值在0.5至0.95之间每隔0.05计算一次AP值,对所有AP值求和并取其平均值,计算如下:
(8)
表2 不同模型在公开数据集对比实验 Tab.2 Comparative experiments of different models in public data sets
表3 不同模型在自制数据集对比实验Tab.3 Comparative experiment of different models in self-made data sets
2.4.1 分割性能实验 路面病害分割性能实验选用2种数据集:一是包含多种类、特征差异明显、背景复杂、分割难度高的potholes_and_road_damage_with_annotations公开数据集;二是现场拍摄的背景简单、含坑洼与裂缝2种病害的自制数据集.为检验改进后模型的性能,通过改进YOLACT模型与单阶段实例分割模型FCIS[16]、PolarMask、SOLOv2[17]进行分割速度性能对比,与具有高准确性的双阶段实例分割模型Mask RCNN进行分割精准性的对比,从而测试改进后模型的实时性与精准性.
不同模型在公开数据集对比实验如表2所示.由表2可知,改进YOLACT模型在公开数据集上分割平均精度达21.59%,分割速度达到31.33帧/s.改进YOLACT模型分割平均精度优于FCIS、PolarMask、SOLOv2 单阶段实例分割模型,分别提升了3.18%、2.23%、1.65%,仅比高准确性的Mask RCNN双阶段实例分割模型平均精度低0.24%,分割速度方面相较于FCIS、PolarMask、SOLOv2、Mask RCNN模型分别提高了2.96、0.68、3.19、10.64帧/s,表明改进YOLACT模型相比于其他模型在道路病害图像分割中具有优势.
不同模型在实际现场采集的自制数据集分割性能对比实验如表3所示.由于自制数据集相较于公开数据集背景简单且种类少,改进YOLACT模型在自制数据集上分割平均精度均有很大提高.改进后模型分割平均精度达31.43%,优于FCIS、PolarMask、SOLOv2模型,平均精度分别提升了3.91%、1.78%、2.02%,相较于具有高准确性的Mask RCNN模型平均精度减少了3.21%.改进YOLACT模型分割速度达到30.52帧/s,相较于FCIS、PolarMask、SOLOv2、Mask RCNN模型分别提高了2.81、1.06、0.59、10.41帧/s,表明改进YOLACT模型能够满足实际现场路面病害实时精确地分割.
2.4.2 消融实验 通过对自制路面病害数据集进行消融实验检验每个模块对模型分割的提升效果,依次进行改进特征维度结构,引入CBAM注意力机制模块,替换DO-Conv卷积模块的实验,如表4所示.由表4可知:① 采用ResNet50作为主干网络,分割路面病害的AP0.5为42.73%,AP0.75为11.23%,APall为17.75%,分割速度为27.97帧/s;② 改进特征压缩结构的ResNet50网络(ResNet50+Focus),模型的平均精度有较大提升,其AP0.5从42.73%提升至48.66%,AP0.75从11.23%略微降至9.98%,APall从17.75%提升至20.10%,而分割速度由27.97帧/s降至28.65帧/s,改进后的特征压缩结构减小了图像信息丢失,提高了模型的分割精度;③ 在改进特征压缩结构的ResNet50网络中添加注意力机制(ResNet50+Focus+CBAM),模型的平均精度有较大提升,其AP0.5从48.66%提升至51.22%,AP0.75从9.98%提升至11.64%,APall从20.10%提升至21.68%,而分割速度由28.65帧/s降至24.78帧/s,引入注意力机制使模型以小资源开销换取性能显著提升;④ 改进特征压缩结构的ResNet50网络中添加注意力机制并将部分卷积层替换成深度过参数化卷积层(ResNet50+Focus+CBAM+DO-Conv),路面病害图像分割平均精度AP0.5从51.22%提升至53.53%,AP0.75从11.64%提升至13.45%,APall从21.68%提升至31.43%,分割速度从24.78帧/s提升至30.52帧/s,表明模型性能较优化前得到明显提升,达到预期高精确度、实时性路面病害图像分割需求.
表4 分割模型消融实验Tab.4 Segmentation model ablation experiment
采用原YOLACT模型尽管能够分割路面病害图像,但随着卷积网络层数的叠加,路面病害图像信息会逐渐模糊或丢失,如图8所示.图8(a)(b)中模型分割结果分别出现路面坑洼漏检、路面裂缝漏检;图8(c)(d)中模型分割结果分别出现路面坑洼边界分割不准确、路面裂缝边界分割不准确.而构建深度过参数化卷积层和引入注意力模块能够显著提高模型的路面病害图像分割精确度,并保留较为准确的边界信息.改进YOLACT模型分割路面病害图像,不仅能够得到路面病害图像的精准定位结果,还能够保留其准确的边界信息,从而显著提升了模型对裂缝、坑洼等路面病害的分割精度,如图8(e)~(h)所示.
图8 改进前后模型分割效果 Fig.8 Model segmentation effect before and after improvement
针对道路养护单位进行道路精准养护过程中路面病害分割高准确性、实时性的需求,以实际现场的路面病害为研究对象,采用改进后的YOLACT模型进行路面病害图像精确、快速地分割,通过改进模型特征压缩结构,在残差网络ResNet50中构建深度过参数化卷积层结构,引入卷积块状注意力机制增强网络对特征聚焦能力,并与特征金字塔网络相融合构成改进后模型的主干网络,完成图像特征提取与融合,经预测头网络和原型网络实现路面图像中路面病害分割.
路面病害分割实验利用公开数据集与自制数据集进行不同模型与改进YOLACT模型的分割性能测试,并在自制数据集中验证改进后模型与原YOLACT模型在实际道路的分割效果,改进后的模型在验证集的平均精度AP0.5、AP0.75、APall分别为53.53%、13.45%和31.43%,其图像分割平均精度与分割速度均有显著提升,说明改进后模型可以实现实时精确的路面病害图像分割,2组数据集评估改进YOLACT模型能够很好完成路面病害的高精确性、实时性的分割任务.改进YOLACT模型虽然能够满足道路精准养护实时、精确的需求,但是还需要进一步提升模型对复杂道路环境多种多样的路面病害分割性能.