改进型DSSD 算法在道路损伤检测中的应用研究*

2021-12-22 07:08郭学俊杨莹陈泽华
电子技术应用 2021年12期
关键词:注意力道路裂缝

苏 可 ,郭学俊 ,杨莹 ,陈泽华

(1.太原理工大学 电气与动力工程学院,山西 太原 030024;2.太原理工大学 大数据学院,山西 晋中 030600;3.山西省交通科技研发有限公司,山西 太原 030006)

0 引言

道路建设是衡量国家现代化水平的重要指标之一,我国道路交通网庞大复杂,道路养护问题凸显。如何从道路图像快速准确地检测出损伤区域及类型成为学者研究的热点。

随着深度学习的快速发展,使用卷积神经网络(Convolution Neural Network,CNN)[1]自主地从数据集中提取相应特征信息成为主流方法,如快速的R-CNN[2]、SSD[3]、YOLO[4]等。这些网络能够定位和识别图中具有边界框的对象,为复杂背景下道路检测提供了有效的框架。

Li[5]等人运用R-CNN 自动定位和识别了不同照明条件下的6 种道路损伤,稳定性较高,但是实时性很差。路雪[6]等人使用Fast R-CNN 网络对特征进行规格化和并行回归计算得到非机动车的目标检测模型,但不适用于目标检测。Yuan[7]等使用灰度值阈值分割法对道路裂缝进行识别,但不适合于裂缝与背景差异不明显的情况。阮小丽[8]等使用连通区域的方法识别较小裂缝的宽度,但不能排除灰度差异的干扰。YANG[9]等使用全卷积网络(FCN)来检测不同裂缝,存在较大误差。王森[10]等使用Crack FCN 模型解决了复杂背景下的裂缝检测,但是检测效率有待提高。Zhou[11]等使用裂缝碎片拼接和图像处理方法,实现了对裂缝宽度的高精度测量,但是在复杂背景下的裂缝识别准确度较低。YOLO 网络最先实现了实时检测目标,但是没有生成先验框,所以定位误差较大。沈新烽[12]等人使用SSD 目标检测算法,减小了原始图像的输入尺寸并引入了特征金字塔网络,能实现多个分辨率不同的特征映射预测,并在单个网络中实现了区域分类和坐标回归的封装。因此,SSD 的速度和精确度优于YOLO。但是SSD 算法的浅层特征图的表示能力不强,导致其在复杂背景的道路损伤检测中对难分类目标会出现漏检。

综上,在道路损伤图像检测中,主要存在如下问题:(1)网络对道路损伤类型识别精度不高;(2)小目标损伤存在漏检;(3)道路损伤数据集样本类别不平衡问题。

针对上述问题,受到注意力机制和Focal loss 的启发,本文提出使用DSSD 算法,将注意力机制与主要特征提取网络结构ResNet-101 相结合,使不同模块的特征随着网络的加深产生适应性改变,保留小目标损伤的位置信息。同时,采用了焦点损失函数(Focal loss),通过调整简单样本和复杂样本的权重,降低了简单样本对复杂样本的影响,同时也降低了裂缝在图像中占比远远少于背景像素的问题,加速了模型的收敛,提高了难分类损伤的检测准确率,使整体的检测精度有效提高。

1 相关技术

1.1 SSD 算法原理

Wei Liu 在ECCV2016 上提出基于SSD 的目标检测算法,算法提取特征的骨干网络为VGG16[13],采用多种尺度的特征进行目标检测。网络以300 px×300 px 的图像作为输入。网络中Conv4_3、FC7 层作为浅层特征,特征尺寸较大,包含的细节信息较多,用来检测小目标物体。网络中Conv8_2、Conv9_2、Conv10_2、Conv11_2 层作为深层特征,这些层感受野比较大,包含的语义信息比较多,用来检测大目标物体。SSD 的算法框架如图1 所示。

从图1 中可以看出,SSD 算法虽然采用了多尺度特征进行目标检测,但是Conv4_3 层网络比较浅,能够得到的语义信息就会减少,对难分类道路损伤特征的提取能力下降,最终导致整个网络对难分类损伤的检测精度较差,无法满足对道路损伤中难分类损伤的检测精度要求。

图1 SSD 算法框架

1.2 DSSD 算法原理

DSSD 算法[14]框架如图2 所示。

图2 DSSD 算法框架

对比SSD 网络,DSSD 网络用ResNet-101 替换VGG网络,在分类回归之前引入了残差模块,并且在SSD 的辅助卷积层后添加了反卷积层,使DSSD 网络的整体结构呈现为“宽-窄-宽”的“沙漏”结构,即“encorderdecorder”结构。其目的是将高层语义信息和低层语义信息进行融合,丰富预测回归位置框和分类任务输入的多尺度特征图,以此提高精度。

2 改进的DSSD 网络结构

2.1 注意力机制

注意力机制[15]的主要思想是给关键特征标识权重,进而获得图像中的有用区域。视觉注意力包括软注意力和强注意力。软注意力又包括空间域注意力、通道域注意力和混合域注意力。

软注意力中的空间域注意力的实现如图3 所示。将原始图片中的空间信息变换到另一个空间中,增强了特征在空间中的位置信息,实现了空间维度上的特征聚焦,从而提升了小目标损伤的捕获效果。

图3 空间注意力模块

空间域注意力的计算公式如下:

其中,Ms(F)表示空 间注意力,f 代表卷积操作,1×1 表示滤波器尺寸为1,BN 表示批标准化(Batch Normalization),3×3 是空洞卷积。

通道域注意力的原理如图4 所示。由于每一张图片都是由R、G、B 三通道表示的,在神经网络中经过不同的卷积核之后,每一个通道又会生成新的信号,给每个通道上的信号都增加一个权重来调整通道与关键信息的相关度,这个权重越大,则表示相关度越高,这个通道越重要。

图4 通道注意力模块

通道域注意力的计算公式如下:

其中,Mc(F)代表通道注意力,MLP 代表多层感知器,W0∈RC/r×C,b0∈Rr×C,W1∈RC/r×C,b1∈RC,C 表示图像的 通道数,r 表示压缩率。图3、图4 中的BN 操作相同,用来保证两个注意力模块输出一致。

2.2 结合注意力的ResNet-101 网络

DSSD 利用反卷积操作,单向融合高低层特征,提高了整体目标检测效果,但并不适用于小目标道路损伤检测。此时将注意力机制添加到DSSD 提取特征的骨干网络ResNet-101 中,对特征信息进行筛选,抑制非目标区域的特征,使得网络在特征提取过程中更关注小目标损伤区域特征,提升检测效果。

在ResNet-101 中添加注意力的方法如图5 所示。

图5 添加注意力机制的ResNet-101

在ResNet-101 网络的一个阶段结束后,将得到的特征图分别输入空间注意力和通道注意力模块,得到Ms(F)和Mc(F);再将两者进行求和,然后用sigmoid 函数得到一个取值为0 到1 的最终注意力的映射M(F),公式如下:

把最终的注意力图与最初输入的特征图F 进行逐元素相乘的操作,然后将其加入到原始输入特征图上,得到细化后的特征图F′,再输入到ResNet-101 的下一个阶段中。F′的公式如下所示:

2.3 Focal loss

本文选择的数据集是由手机现场拍摄的图像,存在以下问题:(1)数据集各种损伤类型的数据复杂度不同,即类内不平衡问题,简单样本(坑洼、明显的长裂缝、人行横道线模糊等)的数量和复杂样本(细小裂缝)的数量相差较大;(2)受裂缝自身宽度、深度、方向的影响,细微裂缝与背景对比度弱且难以表现出完整的几何形态,使目标像素在图像中的占比远远少于背景像素,即类间不平衡问题。为解决这些问题,本文选择使用Focal loss[16](焦点损失函数)替换了DSSD 网络原本的损失函数。

Focal loss 的函数公式如下:

式中,pt为预测样本的预测概率,pg为真实样本的预测概率。Focal loss 给经典的交叉熵损失函数添加了调制系数(1-pt×pg)γ,其中的γ为大于零 的聚焦参数。因为 调制系数的值在0~1 之间,所以整体的loss 值会变小,但是简单样本和复杂样本的预测概率pt值相差较大,所以二者使loss 值减小的数值经过γ 调整后会相差较大,最终改变两者对于模型的影响程度。

通过不断调整参数γ 的值,使简单样本在图像中的权重减小,复杂样本在图像中的权重增加,实现模型整体性能的提升。

3 实验结果与分析

3.1 数据集介绍

表1 列出了不同的损伤类型及其定义。在本文中,每种损伤类型都用一个标签(如D00)表示。

表1 道路损伤类型

本文的数据集由5 590 个标记的道路损伤图像组成,11 639 个损伤边界框被标记。其中,训练集包含3 090幅图像,测试集包含2 500 幅图像。

3.2 实验环境与参数

本文实验环境为Windows 10 的Intel COREi7,显卡是Nvidia GeForce GTX 1660 Ti,主频是2.6 GHz,内存是8 GB,基于pytorch1.2 框架,用Python 语言实现。使用标准梯度下降法训练模型,参数设置:批处量大小为8,基础学习率和权重衰减均为0.000 1。

3.3 评价指标

目标检测的核心是目标识别准确率和实时性。mAP(mean Average Precision)是衡量算法准确度的重要指标[17],其值越大性能越好。Fps(Frames per second)是每秒识别的图像数,用来评价算法的检测速度。

3.4 实验结果对比

在DSSD 网络中添加注意力机制后,实现了特征在通道维度上的加权与空间维度上的聚焦,使网络可以更好地对小目标道路损伤进行检测,图6 所示为对比效果。

图6 改进的DSSD(左)与原DSSD(右)

与DSSD 相比,改进的DSSD 可以检测到更多较小的道路损伤(左图目标框变多),且精确度提升。

为比较Focal loss 中不同γ 值对模型检测不同类型损伤平均精度值(AP)的影响,将基于不同γ 值的模型在道路损伤数据集上进行测试,γ 的值分别取0、0.1、0.5、1、2、5。得到的实验结果如表2 所示。

从表2 中可以得出,综合各类损伤的平均精度均值,当γ 的取值为2 时,Focal loss 效果最好。

表2 不同取值下各类损伤的AP 值

为了验证道路损伤检测模型的可行性,将目前用于道路损伤检测的算法与小目标检测算法以及本文模型进行对比,包括SSD 算法[18]、YOLOv3 算法[19]以及原始的DSSD 算法[14]。其中,对比网络的参数设置与原论文中相同。在道路损伤图像数据集上进行目标检测,表3 展示了道路损伤数据集中各类损伤的平均精度对比。从表中可以看出,改进的DSSD 算法比SSD 算法、YOLOv3 算法和原DSSD 算法在大部分损伤检测的平均精度上均有提高。

表3 不同算法平均精度(AP)对比

表4为3 种算法的平均精度均值与实时性的对比。由于本文在原DSSD 网络的基础上添加了注意力机制,加大了网络的计算量,网络的检测速率为15.4 帧/s,但是与原DSSD 网络的检测速率相差不大,同样可以满足实时性的需求。然而本文方法的mAP 值比SSD 算法、YOLO 算法与DSSD 算法分别提高了12.21%、5.99%与7.94%。

表4 平均精度均值与实时性对比

3.5 检测效果对比

在不同场景下,改进的DSSD 算法、SSD 算法、YOLO算法对道路损伤检测结果如图7 所示。从图中可以直观地看出,改进的DSSD 算法比SSD 算法与YOLO 算法检测到了更多类型的缺陷,包括目标更小的道路损伤,而且准确度更高,直观地证明了本文提出的改进的DSSD算法能有效提高对复杂场景下各种类型道路损伤的检测精度。

图7 改进的DSSD(左)、SSD(中)、YOLO(右)算法结果对比

4 结论

本文提出了一种基于改进DSSD 的道路损伤识别方法。以ResNet-101 作为基础网络,结合注意力机制实现小目标损伤检测精确度的提升,采用Focal loss 解决了数据集样本类别不平衡导致的检测准确度低的问题。实验结果表明,经过训练,得到改进的道路损伤检测模型DSSD 的mAP为83.95%,且在大部分道路损伤类型的精确度(AP)均优于SSD、YOLO 与原DSSD 等网络的道路损伤检测方法。同时,相比SSD、YOLO 与DSSD 等方法,改进的DSSD 方法在检测小目标道路损伤时也具备更高的准确性。该方法在实际应用中具有一定的实践和现实意义。本文方法的不足之处和未来需要做的工作如下:

(1)本文使用的DSSD 网络模型结合了注意力机制,计算量有所增加,导致Fps 下降,虽然满足实时性的需求,但是未来可以通过优化DSSD 网络模型来提高检测速度。

(2)道路损伤的类型较多,本文算法的AP 值并不是所有类型都是最优的。因此,未来可以继续研究如何提高其他种类损伤的检测精确度。

猜你喜欢
注意力道路裂缝
坚持中国道路——方向决定道路,道路决定命运
让注意力“飞”回来
道听途说
碳酸盐岩裂缝描述七大难点
我们的道路更宽广
完美“切割”,裂缝之谜
地球的裂缝
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
一次骑行带来的感悟