基于深度学习的机场道面表观缺陷检测

2021-06-16 06:31吴志新聂留阳董容君刘书豪吕欣航
电子技术与软件工程 2021年8期
关键词:道面表观裂缝

吴志新 聂留阳 董容君 刘书豪 吕欣航

(中国民航大学计算机科学与技术学院 天津市 300300)

随着中国经济的迅速发展,全国各地开始大力发展道路基础建设。飞机作为最便捷的交通工具,越来越多的人选择乘坐飞机出行。据最新的民航机场生产统计公报[1]显示,我国2019年全年机场旅客吞吐量为135162.9 万人次,货邮吞吐量为1710.0 万吨,完成飞机起降1166.0 万架次。面对如此庞大的旅客运输量和货邮运输量,机场道面会不可避免地出现病害,进而对飞机的起降安全产生威胁。机场道面多数病害表现为裂缝,传统的裂缝检测主要为人工检测,效率低下而且准确率低。因此,对于机场道面裂缝的自动检测具有极大的研究意义。

近几年,随着智能时代的来临,对图像自动识别的方法逐渐多样化,检测效率也逐渐提高。但是,与普通路面不同机场道面,飞机存在着明显的油污和橡胶残留痕迹等干扰因子,对检测的效果产生极大的影响。为了检测出目标,Ultralytics LLC 公司提出了YOLOv5 等算法。YOLOv5 共有四个网络模型,分别为YOLOv5s、YOLOv5m、YOLOv5l 和YOLOv5x,其中YOLOv5s 体积最小。YOLOv5 与YOLO[2]之前的系列相比,增加了正样本,通过灵活的配置参数以及一些内置的超参优化策略,得到不同复杂程度的模型,提高了算法整体的性能;此外,YOLOv5 在数据处理方面,使用mosaic 数据增强,随机选取四张图片,随机缩放,然后再随机拼接,很大程度上丰富了数据集。

2014年RCNN 算法提出后,由于其存在三个明显的问题:提取候选区占用较大空间,训练步骤繁琐以及训练测试速度慢,必须对其进行改进才能更好地使用。Fast-RCNN[3]针对RCNN 需要对每一个候选区进行CNN 操作这一繁琐过程进行改进,提高了训练速度和网络利用的效率,但其仍存在候选区的生成速度不够快等问题。经过R-CNN 和Fast-RCNN 的积淀,Ross B.Girshick 在2016年提出了新的Faster-RCNN。在结构上,Faster-RCNN 已经将特征提取,proposal 提取,b_box regression(rect refine),分类器(classification)都整合在一个网络中。但由于传统目标检测的算法使用selective search 提取候选框,该方法存在耗时的问题,难以满足检测快、耗时少的需求。基于对Fast-RCNN 算法的改进,Faster-RCNN 提出了RPN(Region Proposal Network)[4]网络,专门用于提取目标候选框,使得训练速度得到提高,整体性能也得到较大的提升。

2015年,Olaf[5]等在提出了提出了基于U-Net 的医学图像分割方法。该方法使用包含压缩路径和扩展路径的对称U 形结构,能够利用非常少的图像进行端到端的训练。U-Net 的卷积部分可以分为5 层,通过进行降采样和上采样,再对特征张量进行拼接,最后的输出结果和输入图像大小一致为止。至今,U-Net已经有了很多变体,但仍延续了U-Net 的核心思想,只不过是加入了新的模块或者融入其他设计理念。

图1:Faster-RCNN 检测过程

图2

图3:三种模型的bounding box 合并过程

本文综合YOLOv5、Faster-RCNN 以及U-Net 三种模型的优点,对训练后模型结果进行合并优化,提高了裂缝检测的精确率。

1 相关工作

1.1 YOLOv5

图4:两种bounding box 合并

实验先使用YOLOv5s 模型进行简单的训练测试,最后使用YOLOv5x 模型训练。YOLOv5 采用GIoU Loss[5]来计算bounding box 的 Loss, GIoU 直接把IoU 设为回归的 Loss,其公式如下:

在任意两个框A、B 中找到一个最小的封闭形状C,接着用A 与B 的IoU 减去C 中没有覆盖A 和B 的面积占C 总面积的比值。与IoU 类似,GIoU 也可以作为一个距离,loss 可以用LGIoU=1-GIoU。

1.2 Faster-RCNN

Faster-RCNN 网络主要包括三个部分:卷积网络特征提取部分,基于RPN 网络的候选区选取部分和目标识别定位部分。其中卷积网络特征提取部分对输入的机场道面图片进行卷积和池化操作,提取特征。接着在RPN网络中通过对anchor的中心坐标和长宽的调整,得到道面表观缺陷的候选区,建立特征区域与特征图的映射关系。最后在目标识别定位部分给出缺陷的位置并对其进行类别的判定,其过程图1 所示。

1.3 U-net

实验所用训练数据集为灰度图,输入单通道。对于二分类问题,本实验的损失函数使用交叉熵损失函数BCEWithLogitsLoss,该函数整合了Sigmoid 函数,不用计算概率,自动在内部实现添加Sigmoid 激活函数。其公式如下:

假设有N 个batch,每个batch 预测n 个标签,则loss 为:

其中σ(xn)为Sigmoid 函数,可以把x 映射到(0,1)区间:

相比于BCELoss函数,它更加方便且增加了计算的数值稳定性,从而提高模型训练的效果。

优化器选择RMSprop 来对模型进行优化,其公式如下:

α:学习率;β:动量参数;dw:梯度

使用该函数,通过使用梯度自身的大小来约束避免过大或者过小,从而减少了人为干预和极端情况发生的可能。

1.4 数据标注

机场道面表观主要分为裂缝(crack)、板角剥落(cornerfracture)、接缝破碎(seambroken)、补丁(patch)、修补(repair)、板缝(slab)、痕迹(如标线、车轮印、水渍、油渍等track)和机场灯(right)等八类表观。其中,对飞机的起飞降落产生直接威胁多为裂缝、板角剥落、接缝破碎。

使用数据标注软件labelme 对2000 张机场道面图像数据进行像素级别的标注。标注工作中主要出现的难点为裂缝较为细长狭小,需将图像放大才能精细描出裂缝边缘。由于飞机起降、加油车、摆渡车和天气等原因产生的标线、车轮印、油渍和水渍等表观,使裂缝等表观缺陷与背景间的对比度较低,易产生漏标和错标等操作。裂缝易板角剥落和接缝破碎等表观缺陷发生混淆。部分标注效果如图2(a)和(b)所示。

为保障数据标注的正确性。本实验采用抽样检查的方法,抽检率为10%。若检查的图片不合格率为20%,则认为该批次数据标注不合格,需重新标注。

不合格图片定义:

(1)有明显的标签类别错误;

(2)标注的范围过大,整体超过应标注边界范围2 个像素;

(3)图片中有明显的未标注部分。

标注工作需对数据集进行反复的标注和检查,确保标注数据集的准确性,从而保证最后的训练效果更加精确,避免返工。

2 网络合并

2.1 合并原理

分别训练三种网络,YOLOv5、Faster-RCNN 以及U-Net。使用想用的测试集进行测试,由于YOLOv5 和Faster-RCNN 均为目标检测算法可以直接生成bounding box 结果,U-Net 为语义分割算法产生的结果为分割后的图像。使用opencv 中的boundingRect 方法计算轮廓的垂直边界最小矩形产生bounding box。对三种网络的bounding box 进行合并,产生新的bounding box 结果,其过程如图3 所示。

bounding box合并有两种形式,一种是相交型,另一种是包围型。合并的策略是取最大的左上角和右下角的坐标或最大的右上角和左下角坐标,合并成更大的bounding box,如图4 所示。

3 实验与结果分析

3.1 实验环境

使用的编程语言为Python ,平台为Facebook 开源的Pytorch, 使用的操作系统为Ubuntu 20.04.2,以及一个8GB 显存的NVIDIA Quadro RTX4000。

3.2 实验评估

对于实验结果与标准参考之间的差别,本实验使用了mAP@.5、精确率、召回率和综合评价指标[6]来衡量训练模型的好坏程度。

(1) mAP@.5(mean Average Precision):给每一类分类计算平均精确度(AP),然后做mean 平均。AP 是Precision-Recall Curve(PRC)下面的面积。

(2)P(Precision)精确率:正确预测的正样本数占所有预测为正样本的数量的比值。

(3)R(Recall)召回率:正确预测的正样本数占真实正样本总数的比值。

图5:YOLOv5 检测七类表观的效果

图6

图7:Faster-RCNN 预测效果图

TP(True Positive):预测为正例,实际为正例;

FP(False Positive):预测为正例,实际为负例;

TN(True Negative):预测为负例,实际为负例;

FN(False Negative):预测为正例,实际为负例;

(4)综合评价指标(F-Measure):相当于精确率和召回率的调和平均。

表1:YOLOv5 训练的评估结果

图8:U-Net 的损失率图

3.3 YOLOv5实验

本实验将除痕迹等其他七类表观进行检测。准备训练数据集,将labelme 标注的json 数据集转yolo 所需的txt 数据集。yolov5 中txt 中的五个值,分别对应此标签的类别、中心点的x、y 值以及长 和 宽, 即。数据格式转换的思路就是在json 数据集的标签中找出max_x、min_x、max_y、min_y,通过一定的变换,即可求出所需数据的bounding box 的边框坐标。将x_center 与width 除以图片长边,y_center 与height 除以图片短边,最终生成2769 个训练数据集和698 个测试数据集。

训练完成后,用698 张图片测试。下面给出测试和评估结果,如表1 和图5 所示。

3.4 Faster-RCNN

实验使用另一种目标检测算法Faster-RCNN 对YOLOv5 实验自制的数据集进行训练。准备训练数据集,将labelme 标注的json数据集,转为本实验所需的coco 数据集,数据总共包含2769 个训练集和698 个测试集。每迭代5 次记录一次损失函数值,将数据送入coco 预训练模型进行训练,给出最终的总损失如图6 所示。

训练总共完成16632 次迭代共24 个轮次。从图6(a)可以看出,总体损失函数在迭代1000 次之前持续下降,在1000 次之后,大致趋于稳定状态,此模型达到收敛的效果。从图6(b)可以看出平均准确率维持在较高水平。在完成24 轮次的训练后,bbox_mAP_50:达到0.3440,模型检测效果如图7 所示。

图9:U-Net 预测效果对比图

图10:合并后的预测图

机场道面病害由于存在形状不规则,跨度大等问题。而检测框用矩形框表示,导致目标检测框内可能存在多种类型的病害,这会对精度及准确率造成影响。所以下面采用语义分割网络U-Net 对裂缝数据集进行训练。

3.5 U-net实验

本实验仅对裂缝的表观缺陷进行检测。准备训练数据集,先将原始图像裁剪成合适大小的图像,再将三通道的RGB 图转换为单通道的灰度图。然后调整图像像素,将裂缝部分像素设为1,背景部分像素设为0。最终生成16818 张480*640 的灰度图训练集。训练200 个epoch,计算单个epoch 的损失率,保存最小loss 值的网络参数。如图8 可以看出当训练100 个epoch 时,loss 下降曲线基本平稳,损失率基本收敛为0.0003028048752054672。

使用986 张验证数据集对训练后的模型进行预测,预测效果为P=0.620, R=0.748, F=0.678 部分结果如图9。

3.6 融合模型实验

本实验将对上述的三种网络检测的结果进行取并集。对于698 张数据集,使用YOLOv5 检测生成bounding box1,使用Faster-RCNN 检测生成bounding box2,使用U-Net 检测再通过boundingRect 方法生成bounding box3。然后合并三种结果生成bounding box。预测效果为P=0.671, R=0.763, F=0.712,部分结果如图10 所示。

4 结束语

本文主要针对目前机场道面表观缺陷检测的实际问题。通过使用目标检测算法YOLOv5 和Faster-RCNN 对采集的数据集进行训练,并在这两个模型的基础上使用语义分割算法U-Net 进行训练。从结果可以看出U-Net 的实验结果优于YOLOv5 和Faster-RCNN的结果,对裂缝检测的精确率从0.418 上升至0.620。再通过将三种网络的预测产生的bounding box 结果合并优化,预测的效果的精确率从0.620 上升至0.671,证明了融合结果的可行性。但由于现有数据集相对较小,在进行机场道面表观缺陷检测时精确度仍有待提高。因此在未来的研究中,将通过采集更多的数据扩大数据集进行训练,来进一步提高检测的准确率。

猜你喜欢
道面表观裂缝
浅谈机场跑道道面性能变化规律
通航机场跑道道面承载能力分析
绿盲蝽为害与赤霞珠葡萄防御互作中的表观响应
碳酸盐岩裂缝描述七大难点
钢结构表观裂纹监测技术对比与展望
例析对高中表观遗传学的认识
地球的裂缝
湿滑跑道飞机着陆轮胎-水膜-道面相互作用
表观遗传修饰在糖脂代谢中的作用
基于累计损伤的刚性道面结构性能评价方法