基于深度学习SSD目标检测算法的混凝土结构裂缝识别

更新时间:2023-07-13 20:04:12 阅读: 评论:0

第43卷第1期2021年3月
南昌大学学报(工科版)
Journal of Nanchang University(Engineering&Technology)
Vol.43No.1
Mar.2021
文章编号:1006-0456(2021)01-0043-09
基于深度学习SSD目标检测算法的
混凝土结构裂缝识别
李想a,熊进刚"
(南昌大学a.建筑工程学院;b.江西省近零能耗建筑工程实验室,江西南昌330031)
摘要:针对当前土木工程混凝土结构裂缝识别效率低、精度不高的现状,基于深度学习理论,提岀了一
种基于单步多框检测(SSD)的裂缝识别方法。利用labelimg插件制作了2种具有代表性的裂缝数据集BCD和CCIC的数据标签。然后利用大量典型的裂缝图片进行识别训练,比较模型在不同样本类型和数量下训练效果的差异。并通过取样验证、损失值可视化和mAP精度评价等方法,证明该裂缝识别系统精度能达到95%以上并具有一定的普适性。因此,该系统可以应用到实际的裂缝识别任务中,为混凝土裂缝识别提供更高效的途径。
关键词:深度学习;单步多框检测;裂缝识别;混凝土结构
中图分类号:TU37文献标志码:A
Crack recognition bad on deep learning SSD target
detection algorithm
LI Xiang a,XIONG Jingang a,b
( a.School of Civil Engineering and Architecture,Nanchang University,Nanchang330031,China;
b.Jiangxi Provincial Engineering Laboratory of Nearly Zero Energy Building,Nanchang University,Nanchang330031,China)
Abstract:Aiming at the current situation of low efficiency and low precision in crack identification of concrete structures in civil engineering,a new crack identification method bad on single shot multibox detection(SSD)was propod bad on deep learning theory.Firstly,data labels of two reprentative crack data ts BCD and CCIC were made using labeling plug-in.Then,a large number of typical crack images were ud for recognition training to com­pare the training effect of the model under different sample types and numbers.Finally,through the methods of sam­pling verification,loss visualization and mAP accuracy evaluation,it was proved that the accuracy of the fracture i­dentification system can reach more than95%and has certain universality.Therefore,the system can be applied to the actual crack identification task,providing a more efficient way for concrete crack identification.
Key Words:deep learning;single shot multibox detector(SSD);crack identification;concrete structure
钢筋混凝土产生裂缝是土木工程中不可避免的问题。当前,常用的混凝土裂缝检测方法还是以人工检测为主,但是人工检测存在工作量大、效率低、过于依赖经验等缺点。除了人工检测外,还存在热成像检测、超声波检测、荧光磁粉检测、渗透检测等无损方法,但都存在工序复杂、价格昂贵等缺点。因此,如何能够高效而又经济地检测混凝土裂缝,成为了土木工程中亟待解决的问题。
人工智能技术正处于第3次发展浪潮,随着深度学习理论的发展、计算机性能的提升和数据量的扩大,把人工智能技术应用到土木工程领域将是未来的一个发展趋势。当前,已经有许多学者进行了人工智能检测混凝土裂缝的相关研究。
徐港等[1]采用多种图像连通域特征分析裂缝
收稿日期:2020-08-05。
英文手机铃声排行榜基金项目:国家自然科学基金资助项目(51768044)。
作者简介:李想(1997—),男,硕士生;通信作者:熊进刚(1970—),男,教授,博士,xiongjingang@ncu.edu。
引文格式:李想,熊进刚.基于深度学习SSD目标检测算法的混凝土结构裂缝识别[J].南昌大学学报(工科版),2021,43(1):43-51.
-44 -南昌大学学报(工科版)2021 年
和噪声的差异结合聚类算法提取出裂缝信息。刘立 峰等[2]提出了一种基于高斯尺寸空间和支持向量 机相结合的裂缝识别算法。张晶晶等⑶提出一种
基于多尺度输入图像渗透模型的混凝土裂缝检测方
法。徐国整等⑷基于经典的U-Net 网络,提出了
independenceday
HU-ResNet 卷积神经网络模型识别混凝土表面裂
缝。吴秋怡[5]利用金字塔解析网络PSPNet 实现路
面裂缝检测,实现像素级的裂缝区域识别。高庆飞 等⑹结合神经网络与滑动窗口算法,提出了桥梁裂 缝定位技术。顾书豪等⑺设计了具有注意力机制
和语义增强的特征模块,有效地融合了语义信息和
裂缝特征。
根据已有研究,可以发现当前基于传统计算机 视觉的裂缝识别方法普遍存在识别受噪声影响大、 精度低和漏检率高的问题。而现有的基于深度学习
的裂缝识别方法虽然在识别效果和精度上有所提
升,但普遍是基于语义分割对裂缝进行识别,识别手 段较为单一。因此,本文提出了一种基于深度学
单步多框检测[8] ( single  shot  multibox  detector , SSD  )
目标检测的混凝土结构裂缝物体框识别方法。主要
思路是利用深度卷积神经网络提取裂缝特征,利用
分类预测和回归预测获得裂缝的信息,最终在原图
上框选出裂缝的位置,从而达到识别裂缝的目的。
1实验准备
1.1开发环境
本研究以python 为编程语言,使用PyTorch 深
度学习框架,以PyCharm2020为编程环境、Anaconda
为库管理器,涉及到的依赖库主要有OpenCV 、labe-
limg 、TensorboardX 、cuda  和 cudnn o  使用的 GPU  为 Nvidia  GeForce  RTX  2070 SUPER  (8G ), CPU  为
AMD  Ryzen  7 3700X  8-Core 。
1.2数据集
数据集分别使用制作的CCIC 裂缝图像数据
集[9-10]和BCD 裂缝图像数据集[11]o  CCIC 裂缝数
据集的图像如图1所示,BCD 裂缝数据集的图像如
图2所示。可以发现2个数据集几乎涵盖了工程中 各种常见的混凝土裂缝形式(纵向、横向和斜向裂 缝等),使本文研究样本具有充分的代表性。
0002«Jpg 0002*«»28jp9
00010JP9
图2 BCD 数据集裂缝图像Fig.2 Cracks  images  of  BCD  datat
1.3数据标签的制作
使用labelimg 工具生成训练所用的数据标签。
labelimg 是深度学习中一种常用的标注工具,它可
以方便快捷地标注出图片内物体的位置和种类。制
作数据标签的详细步骤为:
1) 安装labelimg 工具,工作界面如图3所示。2) 打开labelimg 工具,通过Open  Dir 选项指定
需要标注的图片集。
3) 手动框选出裂缝的位置
第1期李想,等:基于深度学习SSD目标检测算法的混凝土结构裂缝识别-45-
4)设定该框选部分的类别。的路径通过Change Save Dir选项指定。生成XML
5)标注完每张图片都会生成一份XML后缀的文件的流程如图4所示。midget
文件,该文件用来保存放标签信息,存放XML文件
图4生成XML文件过程
Fig.4Process of generating an XML file H:\crack\photo2\00505.jpg
H;\crack\photo2\00506.j'pg
H:\crack\photo2\00507.jpg
dq是什么H:\crack\photo2\00510.jpg
H:\crack\photo2\00511jpg
A
§l
I—l
-l
囹l
l
XML标签文件包含原始图片的尺寸、物体的类别和物体的位置信息,如图5所示。其中width= 227,height=227,depth=3表示原始图片的尺寸为227x227x3。x__=1,y min=52,%x=227,匾x=114表示框选的位置的右上角的坐标为(1,52),右下角的坐标为(227,114)。name=crack表示该框选部分的类别为裂缝。
利用voc_annotation.py脚本文件,将所有XML 标签文件里信息进行整合,并最终保存在crack_ 文件中。一个XML标签文件仅仅保存一张图片的位置信息和类别信息,文件则保存了所有用来训练网络的图片中的位置信息和类别信息。
<?xml version=,,1.01l?>
-<annotation>
<folder>photo2</folder>
<filename>00511.jpg</filename>
<path>H:\crack\plioto2\00511Jpg</path>
-<source>
<databa>Unknown</databa>
</source>
-<size>
<width>227</width>
<height>227</height>
<depth>3</depth>
</size>
<gmented>O</gmented>
-<object>
<name>crack</name>
<po>Unspeci w/poA
<t ru ncated>l</tru ncated>
<difficult>O</difficult>
-<bndbox>
<xmin>l</xmin>
<ymin>52</ymiini>
<xmax>227</xmax>
<ymax>114</ymax>
</bndbox>
</object>
</annotation>
图5XML文件详情
Fig.5XML file details 2网络结构
2.1网络概述
SSD目标检测算法对输入的图片不断地进行特征提取,提取出许多特征层(Feature map),并将其中的一部分特征层设为有效特征层(Effective Fea­ture map)o每一个有效特征层会将图像划分为大小不同的网格,每个有效特征层上的网格存在着一定数目的先验框(priors box)。再利用回归预测和分类预测来调整每个先验框的位置和种类,结合非极大值抑制(non-maximum suppression)得到最终的预测框。SSD网络结构如图6所示。
2.1.1有效特征层
有效特征层的高度和宽度代表着将输入进来的图片划分成了高x宽的网格。以3x3x256的有效特征层为例,相当于把输入的图像划分成了3x3的网格,如图7所示。而每个网格上面存在着先验框,利用这些网格和先验框对输入进来的图片进行目标检测,从而获得需要的检测目标。
2.1.2先验框不离不弃的意思
有效特征层上的每个网格都人为定义了先验框,这些先验框以网格的中心为中心。以划分为3x 3网格的图片为例,如图8所示。每个有效特征层上的单个网格含有的先验框个数不同,先验框与有效特征层的关系如表1所示。
2.2基础网络
SSD目标检测算法中的基础网络部分由多个卷积层、最大池化层和ReLU激活函数层组成。当输入一张图片时,SSD目标检测网络自动将图片的尺寸调整为300x300x3(宽x高x通道数)大小。将裂缝图片看作长宽都为300、通道数(Channel)为3的特征层。通过卷积核(Kernel)大小为3、
填充幅度
-46 -
南昌大学学报(工科版)
2021 年
VGG 16 Network  Extra  Feature  Layer
图6 SSD 网络结构
Fig .6 Single  shot  multibox  detectornetwork  structure
expensive
图7裂缝图片的网格划分Fig .7 Grids  division  of  crack  images
图8网格上的先验框
Fig .8 Priori  boxes  on  the  grid
---------1 丄 1
二二二厂
表1先验框与有效特征层的关系
the  effective  feature  layer
Tab .1 Relationship  between  the  prior  frame  and
有效特输出尺寸(宽X 单个网格的总先验框数(宽X
征层
高X 通道数)先验框数
onair是什么意思高X 先验框数)Conv4-3
38x 38x 512
4
38x 38x 4 = 5 776
Fc7
19x 29x 1 024619x 19x 6 = 2 166Conv6-210x 10x 512
610x 10x 6 = 600
Conv7-25x 5x 25665x 5x 6=150
Conv8-23x 3x 256
43x 3x 4=36
Conv9-2
1x 1x 2564
1x 1x 4=4
(Padding )为1的卷积运算和池化核与步长(Stride )
都为2的最大池化运算,将特征层的长度和宽度进
一步压缩,并且持续扩大特征层的通道数。随着卷
积和池化运算的不断进行,会产生许多特征层。当
进行完最后一次最大池化时,先进行一次卷积核大
小为3、填充幅度为6、膨胀因子为6的卷积,用来模
拟全连接层。再进行一次卷积核大小为1的卷积。
最终输出的特征层长宽为19,通道数为512。再将
其中一部分特征层划分为有效特征层。被划分为有
效特征层的特征层有:Conv4-3和Fc7-2,它们的长
宽分别为38和19,通道数都为512。基础网络各层
的信息如表2所示。其中Convolution 表示卷积运
算、ReLU 表示ReLU 激活函数,Maxpooling 表示最 大池化运算,Kernel 表示卷积核大小,Padding 表示
填充幅度‘Stride 表示步长,Dliation 表示膨胀因子。
2.3辅助网络
特征层经过基础网络之后继续向后传递,进入
辅助网络。辅助网络利用卷积运算,继续压缩特征
层的长度和宽度。随着卷积运算的进行,同样会生
成许多特征层。当进行完最后一次卷积运算时,会 输出一个长度和宽度都为1、通道数为256的特征 层。 将其中一部分特征层划分为有效特征层。 被划
分的有效特征层有:Conv6 - 2、Conv7 - 2、Conv8 - 2、 Conv9-2。辅助网络各层的信息如表3所示。
2.4预测网络
预测网络主要用来完成回归预测和分类预测的
任务。回归预测用来获得预测框的位置,分类预测 用来获得预测框的类别。预测网络的各层信息如表
4 所示。
进行回归预测时,需要对有效特征层的所有先 验框进行计算。利用卷积运算对先验框进行调整,
从而得到最终预测框的位置。因此,对获取到的有
效特征层进行通道数为4x n p 的卷积,其中竹为该 有效特征层的单个网格拥有的先验框数量。因为调 整一个预测框的位置需要中心点坐标的偏移量%、
70,预测框的宽度w 和高度爪所以进行卷积运算的
通道数为4心卩。
back out
进行分类预测时,同样需要对有效特征层的所
有先验框进行计算。所以,
对获取到的有效特征层
第1期李想,等:基于深度学习SSD目标检测算法的混凝土结构裂缝识别-47-
表2基础网络的各层信息
Tab.2Layers of information in the basic network
层名进行的操作输出尺寸操作细节
Conv1-1Convolution+ReLU300x300x64Kernel:=3,Padding=1
Conv1-2Convolution+ReLU300x300x64Kernel:=3,Padding=1
Pooling1Maxpooling150x150x64Kernel=2,Stride=2
Conv2-1Convolution+ReLU150x150x128Kernel=3,Padding=1
Conv2-2Convolution+ReLU150x150x128Kernel=3,Padding=1
Pooling2Maxpooling75x75x128Kernel=2,Stride=2
Conv3-1Convolution+ReLU75x75x256Kernel=3,Padding=1
Conv3-2Convolution+ReLU75x75x256Kernel=3,Padding=1
Conv3-3Convolution+ReLU75x75x256Kernel=3,Padding=1
Pooling3Maxpooling38x38x256Kernel=2,Stride=2
Conv4-1Convolution+ReLU38x38x512Kernel=3,Padding=1
Conv4-2Convolution+ReLU38x38x512Kernel=3,Padding=1
joyo
Conv4-3Convolution+ReLU38x38x512Kernel=3,Padding=1
Pooling4Maxpooling19x19x512Kernel=2,Stride=2
Conv5-1Convolution+ReLU19x19x512Kernel=3,Padding=1
Conv5-2Convolution+ReLU19x19x512Kernel=3,Padding=1
Conv5-3Convolution+ReLU19x19x512Kernel=3,Padding=1
Pooling5Maxpooling19x19x512Kernel=2,Stride=2
Kernel=3,Padding=6,
Fc7-1Convolution+ReLU19x19x1024
Dilation=6
Fc7-2Convolution+ReLU19x19x1024Kernel=1
表3辅助网络的各层信息
Tab.3Layers of information in the auxiliary network 层名进行的操作输出尺寸操作细节
Conv6-1Convolution19x19x256Kernel=1,Stride=1
Kernel=3,Stride= Conv6-2Convolution10x10x512
Padding=1
Conv7-1Convolution10x10x128Kernel=1,Stride=1
Kernel=3,Stride=:2, Conv7-2Convolution5x5x256
Padding=1
Conv8-1Convolution5x5x128Kernel=1,Stride=1 Conv8-2Convolution3x3x256Kernel=3,Stride=1 Conv9-1Convolution3x3x128Kernel=1,Stride=1 Conv9-2Convolution1x1x256Kernel=3,Stride=1
表4预测网络的各层信息
Tab.4Layers of information in the predict network
层名进行的操作输出尺寸操作细节Classified Convolution1x1x(化x®)Kernel=3,Padding:=1 Regression Convolution lxlx(4x^p)Kernel=3,Padding:=1进行一次通道数为"c X"p卷积,其中"c是需要区分的类别数。因为本文只针对图像是否存在裂缝进行研究,共计2类:背景类和裂缝类,所以化=2。
3训练和检测
3.1训练过程
分别使用2000,4000,6000,8000张含有裂缝的图片。其中90%作为训练集,用于进行模型的训练;剩下10%作为测试集,用于测试模型检测的效果与精度。
先进行超参数设置。由于GPU的显存不充足,所以将一次训练所用的样本数(Batch Size)设置为8o将学习率(Learning Rate)设置为1x10-5,学习率表示网络训练的快慢程度。学习率大,网络训练速度快,但是容易出现损失值振荡;学习率小,损失值收敛效果好,但是训练速度慢。定义最小置信度为0.5,代表着预测结果的得分若大于0.5,则将这个结果留存待用。总共训练200个轮次(Epoch),更新一个轮次表示训练中所有训练数据均被使用过一次,即训练了一个周期。应用迁移学习的思想,使用预训练好的权重达到加速模型的训练的目的。之后读取文件获得进行训练的样本信息。
之后开始训练。载入SSD目标检测算法模型,将每个批次(Batch)所用的图片和标签传入到网络当中。然后进行梯度清零、计算损失值和反向传播进行模型的参数更新。每一个轮次保存一次权重,共有200份权重文件。之后的预测环节使用第200个轮次生成的权重文件进行预测。训练过程示意图如图9所示。
3.2检测过程小学英语教材
因为使用的图片尺寸为227x227,而SSD目标检测算法需要使用300x300尺寸的图片。因此,需要检测的图片进行预处理,具体做法为对进行检测的图片进行填充使图片尺寸变为300x300。之后把

本文发布于:2023-07-13 20:04:12,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/176422.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:裂缝   检测   进行   训练
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图