改进SSD模型的路面病害图像检测系统

2020-01-05 07:00赵雪寒刘庆华
软件导刊 2020年11期
关键词:路面病害目标检测神经网络

赵雪寒 刘庆华

摘 要:为解决公路路面病害图像特征不突出、检测精度低等问题,提出一种基于改进SSD模型的路面病害检测系统。利用梯度下降Sobel算子优化SSD模型中图像特征提取的卷积网络层,突出路面病害图像特征;通过改进SSD模型实现横向裂缝、纵向裂缝、块状裂缝、路面凹陷以及其它类路面的病害图像检测;结合Jetson-Nano板载化系统以及基于GO语言的Tensorflow框架实现路面病害检测及分类。实验结果表明,系统路面病害分类准确度为91.28%,比未改进的SSD模型识别准确度提高7.36%,证明该优化模型有效。

关键词:路面病害;目标检测;神经网络;Sobel算子;板载化系统;图像检测

DOI:10. 11907/rjdk. 201262                                                                  開放科学(资源服务)标识码(OSID):

中图分类号:TP306   文献标识码:A                文章编号:1672-7800(2020)011-0217-04

Pavement Distress Image Detection System Based on Improved SSD Model

ZHAO Xue-han,LIU Qing-hua

(Electronics and Information Faculty, Jiangsu University of Science and Technology, Zhenjiang 212001,China)

Abstract: A pavement distress detection system based on a modified SSD model is raised in the paper to solve the problems of not-prominent road image features and low accuracy of detection. Firstly, gradient descent Sobel operator is used to modify the convolution neural network extract image features in the SSD model to highlight features of pavement distress pictures. The improved SSD model is used to realize the detection of transverse cracks, longitudinal cracks, block cracks, road depressions and other types of roads. Then the detection and classification of powement distrers is realised by employing Jetson-Nano onboard system and Tensorflow framework based on GO language. The experimental data including collected pavement distress pictures and that generated by the adversarial generation network. Results show that the classifying accuracy of our system is 91.28% which is 7.36% higher than that using the unmodified SSD model, which proves that the proposed optimization model has practicality.

Key Words: pavement distress; target detection; neural network; Sobel operator; onboard system; image detection

.

0 引言

随着我国公路交通网的不断发展,在公路路面运营与养护过程中会发现诸多问题,如公路路面破损、路面平整度降低等[1-3]。上述问题不仅影响驾驶员和乘车人的舒适度,路面破损还会致使汽车在行驶过程中产生不必要的噪声污染,增加油耗等,在路面破损严重情况下甚至会危及他们的生命。因此,路面病害检测及分类越来越得到国家相关部门的重视。

在路面病害检测相关研究中,樊姚[4]提出传统图像的路面病害检测算法,基于非下采样Contourlet变换域压缩采样的滤波算法进行路面裂缝检测,利用四层卷积神经网络对图像加以分类;沙爱民等[5]利用卷积神经网络对路面病害进行分类,路面病害检测种类有两类,即路面裂缝和路面槽坑,相较于国家公路检测标准中提出的路面病害类型而言,其路面病害检测种类较少,且不能实现相关病害定位功能;Maeda等[6]提出通过SSD模型、智能手机加载模型进行路面病害检测,但未改进的SSD模型路面病害检测准确度不高,且不能对其它功能进行扩展应用,存在较大局限性。

针对上述问题,本文结合梯度下降Sobel算子[7]对SSD(Single Shot Multibox Detector)模型图像特征提取的卷积网络结构进行优化,实现横向裂缝、纵向裂缝、块状裂缝、路面凹陷等路面病害分类。同时,结合搭载AI加速模块的Jetson-Nano板载化系统与GO-Tensorflow框架,提高系统检测速度,优化系统检测性能。设计路面病害监管平台,通过MQTT方式,实现路面检测系统与监管平台之间的通信,方便用户管理,极大便捷了路面病害检测工作,具有较高工程应用价值。

1 路面检测系统设计

1.1 系统硬件设计

路面检测系统主控板为英伟达的Jetson-nano小型计算机,适用于机器视觉等AI领域的开发与研究。其搭载128核Maxwell的GPU处理器、四核ARM-A57的CPU处理器,且具有USB、HDMI、GPIO、Gigabit Ethernet等外部接口,支持IIC、IIS、SPI、UART等多种通信方式,能够满足客流统计系统开发需求。

路面检测系统硬件框架如图1所示。通过网络设备实现视频监控设备及Jetson-nano主控系统的网络通信;视频监控设备采集路面信息,主控系统获取视频监控设备的实时流传输协议(Real Time Streaming Protocal,RTSP)视频流[8],并将其加载至路面病害分类模型中,通过模型对路面病害进行识别,将得到的客流数据发送给MQTT服务,最终与后端平台通过MQTT请求进行交互[9]。采用Jetson-nano移动板载化小型计算机的一大优点是:可实现系统断电自启动功能。相比于图像处理服务器而言,不需要配置任何参数,系统便可自动启动,实现系统连续智能监控功能。

1.2 路面病害监测系统软件设计

系统软件流程如图2所示。首先,路面病害检测系统上电初始化,判断MQTT服务是否正常工作,正常情况下MQTT不断向外发送Json格式的数据;然后,根据载入路面病害检测模型的视频流判断摄像头是否正常,如摄像头异常(出现遮挡等情况),系统向检测平台报警;如果没有异常检测,系统开始计数。将计数得到的数据通过MQTT通讯方式向外发送,等待相关订阅主题获取实时数据。在整个过程中,MQTT服务不断发送数据,后端平台可随时向MQTT服务发送相关订阅主题,不断获取客流统计数据。

1.3 Go-TensorFlow编译

为了提高程序运行速度,解决使用移动板载化系统带来的帧率降低等问题,客渡船舶客流统计系统使用基于GO语言编译的TF框架,弥补视频处理的帧率损失问题。

编译基于GO语言的TF框架及使用方法如下:①客流统计主控系统使用的操作系统为Linux-ARM64,下载系统所需TF版本Tensorflow-1.12.1(GPU)源码,下载相应编译器bazel-0.19;②配置CUDA、CUDNN所使用的编译器等相关编译参数,对TF进行编译。因船舶客流统计的主控系统为ARM64架构,需根据系统修改相应的TF源码,修改后再编译;③将编译成功的libtensorflow.so、libtensorflow_framework.so文件放到系统相应的GO語言安装包路径下,并添加环境变量供后续使用。

2 图像分类算法

2.1 图像网络卷积模型

相比其它基础卷积模型如LeNet、ResNet、DenseNet,VGG模型主要研究网络深度对网络性能的影响[10-11]。VGG模型最主要的特点是将卷积核大小固定为3×3卷积核,池化层大小定义为2×2最大值池化层。通过3个3×3的卷积核代替其它网络5×5卷积核、2个3×3卷积核代替7×7的卷积核,能够在保证网络具有相同感受野的同时,减少模型参数。此外,还能够使得模型更好地保存训练图像特征,从而整体提高网络性能。在VGG16模型中,输入图片为224×224,经过2个3×64、2个3×128、3个3×256和3个3×512卷积层,池化层采用2×2最大值池化层,通过全连接层进行数据选择及分类处理,最后通过Softmax层输出分类信息。

2.2 基于SSD的路面病害分类模型

SSD(Single Shot MultiBox Detector)图像分类模型采用VGG16作为卷积基础网络[12]。使用卷积神经网络提取特征,再进行图像目标定位并实现分类功能。SSD网络通过多个卷积层加一个平均池化层实现目标检测,因感受野不同于全局,因此整个过程中不设置全连接层。在进行目标检测时,特征图(FeatureMap)的尺寸设置为多个尺寸,此过程中每个卷积层都会输出不同大小感受野的特征图,整个SSD模型的目标定位及目标分类在卷积后的特征图上进行训练和预测。此外,SSD模型采用多个锚特征(Anchor),模型采用6个高宽比不同、大小不同的锚,每个锚对应4个目标位置的参数信息和类别参数,其中类别参数包括类别数及背景参数。

在神经网络模型设计过程中,重要的设计参数为网络损失函数。在SSD模型中,其损失函数为位置损失值与分类损失值之和,计算公式如式(1)所示。

Lx,c,l,g=1N(Lconf(x,c)+αLloc(x,l,g))   (1)

位置损失式预测框与真实框之间的SmoothL1损失,其计算公式如式(2)-式(6)所示。

Lloc=i∈PosNm∈cx,cy,w,hxkijsmoothL1(lmi-gmj)          (2)

gcxj=gcxj-dcxidwi                     (3)

gcyj=gcyj-dcyidhi                      (4)

gwj=log(gwjdwi)                     (5)

ghj=log(ghjdhi)                       (6)

分类损失是分类置信度区间的Softmax损失值,计算公式如式(7)—式 (8)所示。

Lconfx,c=-i∈PosNxpijlogcpi-i∈Neglog (c0i)         (7)

cpi=exp (cpi)pexp (cpi)      (8)

其中,N为样本数量;x、c分别表示指示量及设置的置信度,l、g分别表示预测框及GroundTruth背景框;α为位置框损失权重。Cx、cy、w、h分别表示框的中心坐标x、y以及框的高度和宽度;d为网络本身预定的Bounding Box绑定框。

3 算法改进

3.1 梯度下降算子

与其它图像相比,路面病害图像具有如下特点:图片特征不够明显,若只对路面图像进行卷积,经过多层卷积后会出现图像特征弱化现象;在图像处理中,梯度下降算子能够实现图像边缘化检测,为了突出路面病害特征边缘化,算法采用Sobel算子与检测模型结合,进一步提高分类准确度。本文选用的边缘处理算子是梯度下降算子中的Sobel算子[13],以9个像素点为例,第一行像素分别标记为z1、z2、z3;第二行像素分别标记为z4、z5、z6;第三行像素分别标记为z7、z8、z9;具体计算公式如式(9)-式(12)所示。

gx=?f/?x=(z7+2z8+z9)-(z1+2z2+z3)    (9)

gy=?f/?y=(z3+2z6+z9)-(z1+2z4+z7)     (10)

gx'=?f/?x=(z2+2z3+z6)-(z4+2z7+z8)     (11)

gy'=?f/?y=(z6+2z8+z9)-(z1+2z2+z4)    (12)

其中,gx为水平方向梯度,gy为垂直方向梯度,gx'和gy'为对角线方向梯度。

3.2 基于Sobel算子的改进路面病害检测算法

SSD模型以VGG16卷積模型为基础,但针对路面检测系统而言,VGG网络参数训练及调用代价大,系统处理速度会受到影响[14]。此外,卷积层数过多,会引起图片特征弱化,从而导致模型分类效果不够理想。为解决该问题,将简化SSD模型作为基础训练模型,并对特征提取的卷积层作优化。改进模型网络结构如图3所示。

路面病害分类模型的基础模型为简化VGG模型,使用VGG网络对输入图片进行卷积,并获取图片特征。基于VGG卷积结构的SSD模型与基于VGG卷积结构的模型相比,其分类特征提取分辨图不一致,VGG在38×38分辨率的特征图上开始提取,而VGG在19×19分辨率的特征图上进行提取,若VGG在38×38卷积层开始提取,其卷积位置过浅,可能会出现特征提取不全面的情况。为解决该问题,在VGG卷积结构中的38×38特征图后增加Sobel算子,加大图像特征信息量,保留原图片路面病害特征信息,从而整体提高模型检测分类准确度。

4 实验及分析

4.1 数据集制作及模型训练

4.1.1 数据集制作

路面病害分类模型采用全新数据集,数据集通过多种方式获取,主要包括实际场地视频采集、网络图片爬虫以及通过对抗式网络生成数据[15]。通过水平翻转、图片对比度调节、图片多角度旋转和放大裁剪等多种方法,将数据集数量扩充至5万张。将该数据集作为路面病害检测分类模型的训练集和测试集,其中图片标注文件也需随图片变换作相应坐标变换。

4.1.2 模型训练

路面病害模型在训练过程中,其训练模型的服务器GPU为GTX1060,训练参数如表1所示。其中,L2正则化公式如式(13)所示。

l2=Ωω=ω22=iω2i  (13)

表1 模型训练参数

参数         参数值     识别种类数     5       批处理数         24     学习率     0.000 4     动量优化值     0.9   迭代次数         10 000      正则化标准         L2正则化

4.2 实验结果分析

基于以上模型训练参数对网络进行训练。路面病害检测模型训练次数达2 000次左右时,模型开始收敛。在模型损失函数定义的分类损失值、定位损失值以及总损失值曲线如图4所示。可以看出,3个损失值均可收敛,证明路面病害分类模型有效。

对路面病害检测模型进行准确度测试,测试实验选用路面横向裂缝、纵向裂缝、块状裂缝、路面凹陷以及其它路面病害图片各1 000张,通过选中图片对模型准确度进行验证。分别验证改进SSD模型、原SSD模型分类效果,同时对两个模型的准确度作差,得出对比结果,具体模型准确度测试如表2所示。可以看出,改进SSD路面病害分类模型准确度为91.28%,较原SSD提高7.36%。

4.3 检测系统与监管平台功能测试

路面检测系统在实际环境中进行测试时,需通过MQTT消息队列与监管平台实现通信,主要显示路段名、路面病害类型、检测工作人员、检测时间等,用户可根据路段名、检测人、检测时间等关键信息对相关信息进行查询。经过测试,检测系统与监管平台能够正常通讯,平台能够获取检测系统发出的数据且能够正常显示。

5 结语

本文结合Jetson-Nano板和改进SSD目标检测算法实现了路面病害检测系统。硬件系统使用Jetson-Nano板作为检测系统上位机,通过摄像头、GPS等多个传感器实现路面图像、检测系统坐标等多项信息采集;结合编译的Go-TensorFlow框架进行算法加载;上位机通过MQTT实现与监管平台的通信。在改进的路面目标检测算法中,将图像特征卷积层与边缘检测Sobel算子相结合,突出路面病害图像特征,实现路面裂缝、路面凹陷等多类路面病害检测。实验表明,改进SSD路面病害检测算法准确度为91.28%,与传统SSD目标检测算法相比,准确度提高7.36%。在下一步研究中,将RGB-D深度摄像头应用于路面特征检测,不仅检测病害類型,还对路面病害破损程度进行检测,简化检测模型,使系统更好地服务于路面检测工作。

参考文献:

[1] 夏云飞. 国省道公路工程管理与质量管理研究[J]. 交通世界,2017,23(30):138-139.

[2] 周帏. 基于车身加速度的路面谱测量及性能指标分析[D]. 镇江:江苏科技大学,2016.

[3] 陈齐平,肖强,张敏,等. 基于多种算法的高速公路路面裂纹检测分析[J]. 公路,2018, 63(6): 24-28.

[4] 樊瑶. 基于图像处理的路面裂缝检测关键技术研究[D]. 西安:长安大学, 2016.

[5] 沙爱民,童峥,高杰. 基于卷积神经网络的路表病害识别与测量[J]. 中国公路学报,2018,31(1): 1-10.

[6] MAEDA H,SEKIMOTO Y,SETO T,et al. Road damage detection and classification using deep neural networks with smartphone images[J]. Computer-Aided Civil and Infrastructure Engineering,2018,33(12):1-4.

[7] 王云艳,周志刚,罗冷坤. 基于Sobel算子滤波的图像增强算法[J]. 计算机应用与软件,2019,36(12):184-188.

[8] 孙志豪. 基于ARM与RTSP协议的智能监控异构系统的设计与实现[D]. 苏州:苏州大学,2017.

[9] 张航.  MQTT协议扩展与协议优化的研究与应用[D]. 北京:北京邮电大学,2019.

[10] 宋俊芳. 基于CNN的路面裂缝图像分类[J]. 信息与电脑(理论版),2018,29(16):64-65.

[11] RIID A,L?UK R,PIHLAK R,et al.Pavement distress detection with deep learning using the orthoframes acquired by a mobile mapping system[J]. Science Letter,2019,9(22):4829.

[12] 魏操. 基于卷积神经网络的图像分类算法研究[D]. 成都:成都理工大学,2019.

[13] ZHANG K,ZHANG Y,WANG P,et al.An improved sobel edge algorithm and FPGA implementation[J].  Procedia Computer Science,2018, 131:243-248.

[14] 王文光,李强,林茂松,等. 基于改进SSD的高效目标检测方法[J]. 计算机工程与应用,2019, 55(13): 28-35.

[15] 周林. 基于图像处理的路面裂缝检测系统设计与研究[D]. 太原:太原理工大学,2013.

(责任编辑:孙 娟)

猜你喜欢
路面病害目标检测神经网络
神经网络抑制无线通信干扰探究
浅析沥青路面病害分析及处理措施
移动机器人图像目标识别
基于神经网络的拉矫机控制模型建立
复数神经网络在基于WiFi的室内LBS应用
基于支持向量机回归和RBF神经网络的PID整定