面向路面裂缝识别的深度语义分割方法
2023-01-31孔玉霞韩新雨潘星瑚
肖 义,孔玉霞,兰 俊,韩新雨,王 琪,潘星瑚
(辽宁科技学院 资源与土木工程学院,辽宁 本溪 117004)
0 引言
公路为人们的日常生活提供便利,但公路的养护对人们来说是一项挑战[3]。根据研究表明:当一条质量合格的道路的使用时间达到其寿命的75%后,如果没有进行养护,那么随着使用时间的越来越长,其养护成本和养护难度也会随之增大。公路要做到建好、管好、护理好、运营好,而护理好不仅关系到公路运营,还关系到规划建设、公路管理。在公路养护中,裂缝是结构表面维护中最常见的病害之一。因此,对公路表面裂缝的提取是养护工作中决策的数据基础[1]。
现在公路裂缝数据来源主要是以移动检测车辆采集数据,采集到的数据因为车载移动场景数据量大、场景复杂、场景目标种类繁多(包括光照、遮挡、目标形态等),所以这项研究主要解决这三个主要问题。使用的检测算法,要同时满足具有一定提取精度、提取方式轻量化、提取结果实时三个要求。
通过语义分割的方式提取裂缝,也一直面临着以下的问题:
(1)数据集质量不佳,数据集存在图像尺寸不一致、图像标签格式不一致、标签类别不一致的问题,需要对数据进行统一格式。
(2)复杂的提取场景对模型的泛化能力提出一定的要求。
(3)路面病害检测对模型的实时性要求较高。
随着图像语义分割和全卷积神经网络的融合发展、计算机处理数据的速度提升、GPU的提升和使用,基于语义分割方法检测路面中的裂缝,不仅可以对道路病害进行像素级标注,还可以刻画病害形态,并准确地提取公路裂缝[2]。在U-Net FCN DEEPLAB系列等语义分割方法中,考虑到DeepLabV3+的encoder-decoder架构[3]。第一,它可以融合多尺度信息,应对复杂场景的特征提取。第二,它引入可任意控制编码器提取特征的分辨率,通过空洞卷积平衡精度,可以解决车载移动场景中数据大的问题,对裂缝进行快速提取。另外,Encoder中Backbone使用轻量化的神经网络MobilenetV2,整体模型也较小,可以在车载嵌入式系统中开发使用。文章实验采用上述理论来实现对公路裂缝的快速提取。
1 研究数据和流程
1.1 研究数据和数据预处理
文章使用的主要数据集是CRACK500,此数据集的来源是Lei Zhang,Fan Yang等在天普大学使用手机拍摄的250张大小为2 560×1 400的路面裂缝图片,并对裂缝图片进行逐像素地标注。CRACK500中的原始标签图片对应着原始图被划分为2种颜色,背景为黑色,裂缝区域为白色。其次另外一个补充数据集是Crack Forest-Dataset,里面包括329张影像,它可以反映城市道路路面状况。
图像为了适配网络模型,我们需要做一些预处理,如下:
(1)防止传入模型训练的单个影像过大,导致内存泄漏的问题,也为了方便模型的训练,每张子图片被裁剪成480×320的图像区域,并将裂缝区域低于500个像素的子图像删除,不参与训练。
(2)由于路面实际拍摄的裂缝图片具有裂缝方向多变,图片亮度不高、噪音较多等特点,文章对数据源进行简单的数据增强和增强对比度的处理[4]。
(3)转换成VOC标准格式,标签文件中裂缝的类别所对应的像素值必须是1,背景像素值必须是0,这里不对裂缝进行详细的分割提取。
1.2 模型提取与实现流程
通过使用DeeplabV3+语义分割模型,在encoder-decoder架构中,得到两个不同深度的有效特征层,较深的有效特征层送入ASPP中,另外一个低语义特征层则通过改变通道数和ASPP提取的特征融合[5],再通过卷积操作和重采样操作,得到预测结果。
图1 模型实现流程
1.2.1 Encoder特征提取
在Encoder部分,主要包括了主干网络(backbone)和ASPP两大部分。
主干网络使用MobilenetV2的网络模型,它分为两个部分,第一个部分是主干部分,首先利用1×1卷积进行升维,然后利用3×3深度可分离卷积(DW)进行特征提取,然后再利用1×1卷积降维。第二部分是残差边部分,当stride=1且输入特征与输出特征矩阵shape相同时,输入和输出直接利用shortcut连接。主干网络输出的第一部分送入ASPP模块,第二部分则送入Decoder模块。
图2 MobileNetV2神经网络
ASPP模块接收backbone的第一部分输出作为输入,用不同rate空洞卷积块(包括卷积、BN、激活层)和一个全局平均池化块(包括池化、卷积、BN、激活层)得到五组feature maps数据,将其拼接起来后,经过一个1×1卷积块(包括卷积、BN、激活、dropout层)进行特征压缩,最后送入Decoder模块。
1.2.2 Decoder特征提取
对主干网络输出的低级feature maps使用1×1卷积进行通道降维(可以更好地利用ASPP提取的特征);然后,对来自ASPP的feature maps进行插值重采样,得到与低级feature maps尺寸相同的feature maps;最后,将经过通道降维的低级feature maps和线性插值上采样得到的feature maps拼接起来,并送入一组3×3卷积块进行卷积处理和重采样操作,得到与原图分辨率大小一样的预测图。
1.3 模型训练
训练分为两个阶段,分别是冻结阶段和解冻阶段。Epoch设置为100,在epoch小于等于50的时候,冻结主干网络,对主干网络的权值文件不进行调整,并且前期50batch内设置内存空间(FREEZE_BATCH_SIZE)为8,后面解冻后设置为4,防止后期超参数过多,出现内存泄漏。学习率(LR)代表网络每次更新参数的速度,学习率越小网络训练时间越长,初始值设为0.007,学习率下降方式使用COS策略;优化器使用SGD,动量因子(momentum)设为0.9,权重衰减系数设为1e-4;训练网络的实验环境是1个RTX3060 6 GB 显卡、CUDA是11.3.1、CUDNN 8.0.5、软件框架是PYTORCH 1.10.1,基于以上训练参数可获得较好的训练结果。
1.4 精度评价
模型的优劣需要选择合适的评价标准MIOU进行评价。Accuracy是两个常用深度学习目标检测评价指标之一,它对路面裂缝分割结果进行分析具有很好的评价效果[7]。指标定义如下:Pixel Accuracy,像素精度是标记正确的像素占总像素的百分比。公式如下:
(1)
Mean IOU(mean intersection over union),均交并比在语义分割中作为标准度量一直被人使用,IOU公式如下:
(2)
MIOU是在所有类别的IOU上取平均值。其公式如下:
(3)
式中:TP表示目标为裂缝且检测结果也为裂缝(正检);FP表示目标非裂缝而检测结果为裂缝(误检);FN表示目标为裂缝而检测结果为背景(漏检)。通过上面两个指数的公式可知,当Accuracy和MIOU越大,证明模型的提取效果越好。
2 实验结果与精度分析
通过DeepLabV3+(backbone为MobileNetV2)语义分割模型算法,对道路裂缝分割提取实现自动化,准确率高达98.21%。提取的路面裂缝效果如图3所示。
图3 原始图片、预测图片、标签图片
图5 MIOU变化趋势
模型中epoch设置为100次训练时,Loss(图4)和MIOU(图5)的变化较小,基本保持恒定,变化规律如图5所示。通过实验证明epoch设置100次是可行的。
3 结论
文章通过DeepLabV3+(backbone为MobileNetV2)语义分割模型在CRACK500数据集上进行训练,在数据集上模型的提取准确性高达98.21%,整体的MIOU为65%~70%,通过以上实验说明DeepLabV3+在裂缝提取方面具有较好的表现能力,能较好解决裂缝数据场景复杂、处理实时、准确的问题,并且鉴于模型是一个轻量化模型,可以将模型应用于嵌入式系统中,具有以下开发优势:
(1)提高数据集的场景多元化(在实际场景中,数据集中部分具有桥梁、墙壁的裂缝),向数据集中添加这一部分数据,并对数据进行数据增强,以提高模型的鲁棒性,增强其泛化能力。另外,使用生成对抗网络去生成虚假的路面裂缝场景,进一步扩大数据集。
(2)算法的优化,可以尝试将预测掩膜与真值掩膜二者之间的IOU和裂缝目标检测分类置信度结合起来度量道路裂缝掩膜的质量。
(3)尝试实现其他经典的语义分割方式,做模型融合及集成学习。