APP下载

改进RetinaNet的水泥路面露骨病害检测①

2022-05-10裴莉莉冯笑然

计算机系统应用 2022年4期
关键词:卷积特征提取路面

石 丽,裴莉莉,陈 昊,李 伟,袁 博,冯笑然

(长安大学 信息工程学院,西安 710064)

根据我国2013-2030年的交通发展规划,未来公路的规模为550 万~600 万公里.其中,在460 万~520万公里乡村公路中,水泥混凝土路面占比达到84%~87%.露骨为水泥混凝土路面的常见病害,路面出现露骨病害不仅会影响行车的安全性,继续扩展还会形成坑槽,严重影响路面的使用年限.尽早对露骨病害检测并加以养护,可以延长路面的使用寿命,降低路面维护成本.目前露骨病害检测主要依靠人工识别,这种方法不仅耗费大量人力物力,而且检测结果受主观判断影响,容易发生误检漏检的情况.因此,如何快速自动化检测路面露骨病害已经成为亟待解决的问题.

随着深度学习的广泛应用,目标检测方法已经成为卷积神经网络领域的热点话题[1,2].基于卷积神经网络的方法主要包括两大类:一类是one-stage 一阶段目标检测方法,此方法将整个目标检测过程融合成一个端到端的任务,只对图像进行一次处理即可得到目标的类别和位置信息,其典型的算法有SSD[3]、YOLOv3[4]、FSSD[5]等;另一类是基于候选区域的two-stage 二阶段目标检测方法,此方法将生成候选框和候选框分类回归分成2 个阶段,首先在图像上生成若干可能包含目标的候选框,其次使用卷积神经网络对候选框进行特征提取,最后使用卷积神经网络对目标区域进行分类和回归,其典型的算法有Fast R-CNN[6]、Faster RCNN[7]、SPP-Net[8]、Mask R-CNN[9]等.与二阶段目标检测算法相比,一阶段目标检测算法效率更高,但是在特征提取过程中,容易产生大量负样本,导致在训练时正负样本失衡,准确率和定位精度较低.Lin 等[10]提出的RetinaNet 模型利用Focal Loss 函数解决样本失衡的问题,在COCO 测试集上其检测精度高于当时最先进的二阶段检测算法.谭章禄等[11]利用RetinaNet 模型在煤矿监控中实现自动检测及提取人员信息,整体性能满足煤矿监控的需求.Zhang 等[12]引入Octave 卷积和加权特征金字塔结构以提高RetinaNet 对车辆的检测性能,结果证明该方法对不同场景、不同规模的车辆目标具有良好的检测结果.姚青等[13]选择组归一化作为RetinaNet 的归一化方法,改进特征金字塔网络结构,改进后的模型对稻纵卷叶螟和二化螟为害状区域的平均检测精度为 93.76%.吴华运等[14]对RetinaNet特征金字塔网络的特征融合过程进行优化,增加语义特征提取模块,在特征提取网络ResNet 网络中添加了膨胀卷积瓶颈模块,对医药空瓶表面气泡缺陷检测的准确率为99.72%.张涛等[15]在RetinaNet 模型基础上,建立用来融合深层特征的HFF 模块和融合浅层特征LFF 模块,在PASCAL VOC 和MSCOCO 数据集上较原模型精度有提升.邓小桐等[16]针对迷彩伪装人员目标特性,将空间注意力和通道注意力机制嵌入到RetinaNet 网络结构中,并设计基于定位置信信息的检测框过滤算法,比原模型检测精度提升了8.7 个百分点,达到93.1%.

针对目前缺少关于水泥路面露骨病害检测方法以及人工检测费时、费力和检测精度不高的问题,本文以RetinaNet 为基础,以SE-ResNet101 作为特征提取网络、对特征金字塔结构进行改进,提出一种改进的RetinaNet 模型,实现对水泥路面露骨病害的准确且快速地识别.

1 改进的RetinaNet 模型

1.1 RetinaNet

RetinaNet 是Lin 等在2018年提出的一阶段目标检测器,其结构如图1所示.RetinaNet 主要由3 部分构成:如图1(a)为特征提取网络,实现对图像的特征提取操作,目前应用较广泛的特征提取网络有残差网络ResNet[17]、VGG-Net[18]、GoogleNet[19]等;如图1(b)为特征金字塔网络(feature pyramid networks,FPN)[20],其将特征提取网络提取的特征图进行重新组合,形成具有各种尺度的相同维度特征,实现特征的精细化提取;如图1(c)和图1(d)表示用来分类和定位的分类和回归子网络(fully convolutional networks,FCN)[21],分类子网络用于卷积对象分类,回归子网络用于卷积边界框回归.

图1 改进的RetinaNet 结构图

1.1.1 特征提取网络

随着神经网络深度的增加,特征的提取抽象程度就越高,理论上也就能产生更好的拟合效果.但是,随之会出现梯度弥散、梯度爆炸、学习率下降等问题.为解决此问题,He 等[17]提出ResNet 残差网络,如图2为ResNet 的残差单元.H(x)=F(x)+x表示最优解映射,其中x为输入,F(x)为残差映射.其采用快捷连接跨越的思想,使用等值映射方式,跳过中间层,直接将一部分原始数据直接输出传到下一层.此结构不会增加网络参数,对网络计算的复杂度也不会有影响,有效的解决网络的梯度爆炸、梯度弥散的问题.

图2 残差网络结构图

1.1.2 特征金字塔网络(FPN)

如图1(b)为特征金字塔网络,在RetinaNet 模型中,特征金字塔网络使得高层语义特征和低层位置特征相结合,增强卷积神经网络的特征提取能力.对ResNet101 特征提取网络输出的特征图C2~C5 进行上采样和横向连接操作,产生特征融合后的特征金字塔网络结构P3~P5.具体操作方法为首先对C5 使用步长为1 的1×1 卷积核卷积得P5;其次对C4 使用步长为1 的1×1 卷积核卷积,并相加对P5 进行两倍上采样结果;最后对上一步操作得到的特征图使用步长为1 的3×3 卷积核卷积得到P4.以此类推,得到P3.

1.1.3 分类回归子网络与损失函数

RetinaNet 网络借鉴RPN(region proposal network)中的Anchor 的思想:当卷积核滑动到特征图某位置时,滑动窗口的中心点映射到原图上形成一个映射点,此映射点对应一个尺度和纵横比,成为一个Anchor.本文在Anchor 生成时使用了3 种不同尺寸和3 种不同纵横比{1:2,1:1,2:1},即可产生9 种 Anchor.如图1(c)和图1(d)为分类和回归子网络,对生成的所有Anchor 进行分类和回归.

分类子网络为每个Anchor 预测露骨病害的概率.将特征金字塔中某一层特征图与激励函数为ReLU 的全卷积网络相连接,使用Sigmoid 函数预测水泥路面露骨病害的概率.在分类子网络中,检测器一般通过交叉熵损失函数(CE loss)判定预测值与真实值的差异程度.目前普遍应用的CE loss 如式(1)所示:

其中,y为聚焦参数;pt的定义如式(2):

在进行露骨病害检测时,由于受路面车道线和阴影的影响,出现了类不平衡和难易实例的检测问题.本文在CE loss 的基础上,为解决中正负样本区域严重失衡的问题,将正负样本增加权重因子α,降低负样本的权重,增加正样本权重,加权CE loss 的定义如式(3);为解决难易样本区域失衡的问题,增加调制系数(1-pt),减少易检测的样本权重,使得模型在训练时更加专注难检测的样本,尺度动态可调损失函数Focal Loss 定义式(4).

其中,β为聚集参数,且β ≥0,αt定义如式(5):

回归子网络与分类子结构相类似.在回归子网络中,RetinaNet 使用了SmoothL1 损失函数.假定p代表预测区域与Anchor 之间的变换关系,t代表真实区域与Anchor 之间的变换关系;则表示第i个预测区域与Anchor 之间的偏差,t第i个真实区域与Anchor 之间的偏差;表示区域中心点的坐标;(w,h)表示区域的宽和高.为第j类缺陷的真实区域,为第i个预测区域和Anchor.

定义SmoothL1 如式(7):

1.2 改进的RetinaNet

为了更准确的获得水泥路面露骨病害的原始图像特征,本文使用ResNet101 作为特征提取网络.由于路面病害的破损程度不同,检测图像中的目标尺寸有差异,为扩大感受野,在FPN 特征金字塔上做了改进.并借鉴了SE Net 的设计思想,对残差网络进行改进.

1.2.1 ResNet101

本文采用深度残差网络ResNet101 作为特征提取网络,其结构如图3所示.整个网络包含101 个卷积层,其中每个括号内的结构代表一个结构块,每个结构块中包含3 层卷积.在Conv2 中3×3,maxpool,stride2 代表卷积核为3×3,步长为2 的最大池化操作,1×1,64 代表卷积核大小为1×1,输出通道为64 的卷积操作,其余与之同理.

图3 ResNet101 网络结构

1.2.2 改进的FPN

在RetinaNet 模型中,FPN 通过自底向上、自顶向下、横向连接等多种方式将ResNet 不同层的特征图进行融合,对小目标具有较好的检测效果.本试验的数据集中,露骨病害目标所占比例较大.为了使模型有利于大目标图像的检测,对本试验目标有更好的检测效果,选择进一步增大模型的感受野,具体操作为:在图1(b)P5 的基础上,使用步长为2 的3×3 的卷积核卷积运算得到P6、P7,提升感受野的同时,进一步对训练目标信息进行抽象,获取更高维度的特征信息.将更大感受野且更高维度信息整合后送入网络,同时计算class subnet 和box subnet 的损失值,进行反向梯度更新,从而更加准确的进行下一阶段的特征提取操作,提升整体检测性能.

1.2.3 基于SE-ResNet101 的特征提取网络

图4 为SE-ResNet101 模块内部结构,SE-ResNet101由ResNet101 模块和SE Net 模块两部分构成.SE Net(squeeze-and-excitation networks)[22]是基于加权特征图思想提出的一种网络结构,在残差网络ResNet101 中嵌入SE,促使神经网络更有针对性地提取目标特征,以提高对目标的特征表达能力,从而提升对露骨病害的聚焦.

图4 SE-ResNet101 模块内部结构

SE Net 结构由压缩 Squeeze 和激励Excitation 两个部分组成.具体流程为:首先 Squeeze 操作将C×W×H的特征图通过全局平均池化压缩,可得到1×1×C的全局信息描述符.其次通过两个全连接层进行Excitation操作从而预测每个channel 的重要性.第一个全连接层输入为1×1×C,输出1×1×C/r,r为缩放参数;第二个全连接输入为1×1×C/r,输出为1×1×C.然后使用Sigmoid 激活函数输出一个原输入特征图各层权值的向量.最后Scale 操作将输出向量与原输入特征图相乘,得到加权特征图,来增强有效特征,削弱低效或无效特征,提取具有更强指向性的特征,从而提高检测结果.

不同通道的特征进行一定的相乘相加运算,使得加入注意力模块的网络学习到更多有用的图像信息,也避免了网络学习不感兴趣区域的资源浪费,增强网络的学习重点能力,改善学习效率.

2 基于改进的RetinaNet 模型的路面露骨病害目标检测

2.1 数据集构建

本文所使用的水泥路面露骨病害图像数据集由人工手机拍摄及车载运动相机拍摄,采集区域主要是在中国陕西省西安市长安大学及其附近.最终拍摄数据集图像共506 幅.部分露骨病害采集样本如图5所示.

图5 部分水泥路面露骨病害图像

由图5 可以看出,由于露骨病害图像源自不同拍摄设备、不同路段,因此图像背景十分复杂且样本数据集较少.基于上述情况,本文对数据集进行处理以提升其质量.首先为解决样本数据集数量不足的问题,本文采取镜像、旋转和调节像素等多种方式对数据集进行数据增广,最终样本的数量为1 523.其次,为了尽可能减小背景及路况对检测的影响,需要对样本数据集进行预处理工作,具体流程图如图6所示.最后,使用LabelImg软件对数据集图像中的露骨病害目标进行标记,每个露骨病害目标对应于数据样本中位置注释的XML 文件.

图6 露骨病害图像预处理流程图

2.2 数据集构建

本实验的操作系统为Ubuntu 14.04 操作系统.具体的实验环境如表1所示.

表1 实验环境

从本文自制的1 523 个数据集中,选出90% 即1 370 幅露骨病害样本进行训练,其余10%即153 幅露骨病害样本进行测试.在分类训练集和测试集时,将图像按照复杂度(阴影、车道线及其他异物)均匀地分给训练集和测试集以保证实验的有效性.模型训练过程中的参数设置如表2所示.

表2 RetinaNet 模型训练参数

2.3 实验评价指标

本文采用准确率Precision、召回率Recall和检测精度AP对水泥路面露骨病害检测的效果进行评价,其计算公式如下:

式中,Precision准确率表示正确检测为露骨病害目标在全部检测为露骨病害目标结果中的占比,其值越大说明误检的目标越少;Recall表示检测正确的露骨病害目标在所有露骨病害目标的占比,其值越大说明漏检目标越少;TP表示正确检测露骨病害目标数量,FP表示误检为露骨病害目标的数量,TN表示正确检测非露骨病害目标数量,FN表示漏检的露骨病害目标数量.PR 曲线是以Precision作为纵坐标,Recall作为横坐标,绘制的二维曲线,PR 曲线与坐标轴所围成的面积为平均准确率(average precision,AP)值.AP值用来分析模型检测效果,衡量目标的检测精度.AP值越大,说明其检测精度越高.

2.4 实验结果对比与分析

2.4.1 模型改进前后结果对比

为了验证本文方法改进后的RetinaNet 对水泥路面露骨病害检测的有效性,分别对RetinaNet 和改进后的RetinaNet 在测试集上的检测结果进行比较.混淆矩阵如表3.由表4 可知,在检测精度方面,改进后的Retina-Net 比原RetinaNet的AP 提升4.9%;在检测速度方面,改进后的模型单张速度了仅增加了1.8 ms.利用Python语言中的Matplotlib库绘制PR 曲线如图7,可见改进后的模型整体性能得到了提升,漏检率进一步的降低.

图7 RetinaNet 改进前后的PR 曲线图

表3 二分类混淆矩阵

表4 模型改进前后检测结果

图8 为RetinaNet 改进前后目标检测算法对水泥里面露骨病害的识别效果的对比,可以看出改进后RetinaNet 算法相较于原算法有更好的检测效果.

图8 RetinaNet 改进前后目标检测算法识别效果

根据改进后的RetinaNet 输出结果与露骨图像实际标签,得到混淆矩阵,如表5所示.

表5 露骨病害混淆矩阵

图9 比较了使用CE loss 和Focal loss 的训练损失曲线,从图9 中可以看出,在50 轮的训练过程中,本文使用的Focal loss 函数相对于CE loss 使得改进后的RetinaNet 收敛速率更快.在模型训练后期,采用Focal loss 在训练集上的损失值均低于CE loss.

图9 使用CE loss 和Focal loss 的losS曲线对比图

2.4.2 不同目标检测模型检测效果对比

为了进一步验证本文改进的RetinaNet 模型对于水泥路面露骨病害检测的有效性,将本文模型与目前主流的目标检测模型Faster R-CNN、SSD 以及YOLOv3对水泥路面露骨病害测试集进行检测对比,实验结果如图10所示.由图10 可以看出,本文提出的改进RetinaNet 模型相比于二阶目标检测模型Faster RCNN,单副检测速度减少105.8 ms,AP 增加4.1%;相比于二阶目标检测模型SSD 和YOLOv3,虽然检测速度略有增加,但检测精度增加6.4%和5.2%.综合上述分析,本文提出的模型是一个对水泥路面露骨病害有效的检测模型.

图10 不同模型检测效果对比

3 结论

本文以水泥路面露骨病害为研究对象,基于改进的RetinaNet 网络对露骨病害自动化检测问题展开研究,主要结论如下:

(1)采集路面露骨病害的图像,并进行灰度化、滤波去噪、图像增强等预处理操作,构建水泥路面露骨病害数据集;

(2)在RetinaNet 模型的基础上,利用SE Net 的思想对特征提取网络ResNet101 进行改进,增强特征图的特征表达能力;增加特征金字塔的层数,充分扩大目标的感受野完成对路面露骨病害图像的检测;

(3)通过与Faster R-CNN、SSD 和YOLOv3 对比,发现改进后的RetinaNet 模型对露骨病害的检测精度有显著提升,达到98.9%.实现对露骨病害的准确检测,能够替代繁琐、效率低的人工检测方法.

本文提出的RetinaNet 改进模型对水泥路面露骨病害自动化检测领域具有重要意义.但改进后的Retina-Net 模型相比于原模型单幅露骨病害检测时间增加1.8 ms,因此在保证识别精度的同时提升网络检测速度是之后研究工作的重点.

猜你喜欢

卷积特征提取路面
同步定位与建图特征提取和匹配算法研究
基于全卷积神经网络的猪背膘厚快速准确测定
基于图像处理与卷积神经网络的零件识别
微裂均质化处治再生技术在水泥混凝土路面的应用
基于深度卷积网络与空洞卷积融合的人群计数
基于MED—MOMEDA的风电齿轮箱复合故障特征提取研究
路面上的新科技
卷积神经网络概述
基于曲率局部二值模式的深度图像手势特征提取
大决心