基于计算机视觉的桥梁结构裂缝检测的研究

发表时间:2021/6/15   来源:《基层建设》2021年第5期   作者:陈柏健 郑钰祺 邓欣林
[导读] 摘要:针对传统桥梁裂缝检测方法存在着图像处理精度不高和人工耗时耗力等问题,及目前桥梁裂缝无损检测方法还存在着各种的缺陷,本文提出基于卷积神经网络(Convolutional neural networks,CNN)的DBCC(Deep bridge crack classify)分类模型,然后基于DBCC分类模型结合YOLOv4算法对桥梁裂缝进行检测利用图像识别技术,并分析和研究YOLOv4在YO
        广州大学土木工程学院  广东省广州市  510006
        摘要:针对传统桥梁裂缝检测方法存在着图像处理精度不高和人工耗时耗力等问题,及目前桥梁裂缝无损检测方法还存在着各种的缺陷,本文提出基于卷积神经网络(Convolutional neural networks,CNN)的DBCC(Deep bridge crack classify)分类模型,然后基于DBCC分类模型结合YOLOv4算法对桥梁裂缝进行检测利用图像识别技术,并分析和研究YOLOv4在YOLOv3的基础上改进的部分,使用Coogle Colab平台运行算法,通过分析两种算法的检测结果,发现YOLOv4在足够多的训练次数的条件下loss值较低,平均检测精度mAP值也较高。实验证明,YOLOv4以较高准确度实现识别桥梁裂缝的目的,为桥梁健康状况评估提供更为准确、有效的检测结果,具有现实的应用价值。
        关键词:桥梁裂缝检测;卷积神经网络;YOLOv4;Coogle Colab
        1.概述
        1.1 裂缝检测的国内外研究现状
        近年来,桥梁建设变得越来越普遍,而大量的桥梁建设随之而来就是如何更加高效准确地进行桥梁健康检测显得尤为重要。结构裂缝对结构承载力、桥梁的安全运营等有着很大的影响,因此我们需要对不同部位最大裂缝宽度进行严格的控制。
        由于传统检测方法需借助检测支架、刚尺、相机、小型裂缝测宽仪等工具,进行人工读数和记录,需耗费大量人力、物力,工作环境恶劣,检测周期长,且存在安全隐患,因此利用更加先进的仪器进行人工智能自动化作业似乎才是桥梁检测未来的发展方向。
        针对以上出现的问题,国内外学者在外观缺陷的无损检测方面做了大量研究,随着技术的发展进步,计算机视觉识别技术由于其远距离、非接触的检测方式和精度高、速度快的优点,逐渐应用到结构外观检测领域,成为桥梁外观检测的发展方向。目前比较热门的裂缝检测算法如下:
        1979年,由日本学者大津展之提出的最大类间分割算法[1],就是基于阈值分割方法的裂缝识别,基本思路就是首先确定一个图像的分割阈值,然后将图像中的每个像素点的灰度值和阈值进行比较,根据比较的结果将图像中的像素划分为两类,前景像素点和背景像素点[6],但这种阈值分割方法存在一定的缺陷,在桥梁裂缝提取的同时,通常也会帮裂缝图像中的噪音也被提取出来,因此这种阈值分割方法不太适用于桥梁裂缝的识别;另外,魏武等人提出了一种基于小波变换的桥梁裂缝检测[7];朱力强等人在对地铁隧道背景干扰噪音特征的分析基础上,提出了一种基于特征分析的隧道裂缝识别算法,改算法是基于特征分析来排除噪声的干扰,然后再没有噪声的图像上识别出隧道图像中的裂缝[8];Cha[2]、Xu[3]等人通过使用深度学习技术从大量图像中学习不变特征,提出了一种强大的分类器,以在不同照明条件下对混凝土构件实现更精确的裂缝检测;Zhang[4]、Tong [5] 等人提出了应用卷积神经网络(CNN)对路面裂缝进行检测的方法。
        2.基于深度学习的桥梁裂缝算法研究
        2.1 简述图像识别技术
        随着深度学习的不断发展,图像识别技术也得到了突飞猛进的飞跃,这让基于深度学习的桥梁裂缝识别有了进一步的发展和应用。
        计算机视觉技术中关于图像识别有四个步骤:1、分类,即给定一张图片判断里面包含哪些类别的目标物;2、定位,即根据目标物进行分别定位;3、检测,即定位出指令所需目标的位置并且判断属于哪类目标物;4、分割,即切割图像的每一个像素,然后进行分类。
        利用算法将桥梁裂缝图像切分为较小的桥梁裂缝面元图像,并根据对面元图像的分析和特征比对,提出一种基于卷积神经网络(Convolutional neural networks,CNN)的DBCC(Deep bridge crack classify)分类模型,用于桥梁背景面元和桥梁裂缝面元的识别,然后基于DBCC分类模型结合YOLO算法对桥梁裂缝进行检测。其中本文利用YOLOv3和YOLOv4可以进行桥梁结构裂缝、非裂缝及裂缝种类的检测与识别,本文主要研究了桥梁裂缝的识别,通过两类图像的训练,包括混凝土裂缝和伸缩缝,通过训练后的算法进行两类图像的区分,最后通过一定的评价标准检测算法识别的准确度。
        2.2 简述yolov3算法
        YOLOv3算法,包括图像和特征图的尺寸的修改都是通过全卷积层来实现的,其核心思想是首先通过特征提取网络对输入的图像提取特征,得到一定大小的feature map 比如 13X13,然后将输入的图像分为13X13个grid cell,然后如果groundtruth中的某个物体的中心坐标落到那个grid cell中就由该grid cell预测该物体,每个grid cell 都会预测固定数量的bounding box,而V3就有3个,但是并不是3个都是用来预测目标物体,这几个bounding box中只有ground truth的IOU最大的bounding box才是用来预测该物体。
        简单讲就是tx、ty、tw、th就是模型的预测输出。cx和cy指的是grid cell的坐标,比如某层的feature map大小是15X15,那么grid cell就有15×15个,第0行第1列的grid cell的坐标cx就是0,cy就是1。pw和ph表示预测前bounding box的尺寸。bx、by。bw和bh就是预测得到的bounding box的中心的坐标和尺寸,而坐标的损失采用的是平方误差损失。
        因此网络结构上就将原来用于单标签多分类的softmax层换成用于多标签多分类的逻辑回归层。原来分类网络中的softmax层都是假设一张图像或一个物体只属于一个类别,但是在一些复杂场景下,一个物体有可能属于几个类别,比如类别中有裂缝和病害这两个类,那么如果一张图像中有一个裂缝,那么检测的结果中类别标签就要同时有裂缝和病害两个类,这就是所说的多标签分类,需要用逻辑回归层来对每个类别做二分类。逻辑回归层主要用到sigmoid函数,该函数可以将输入约束在0到1的范围内,因此当一张图像经过特征提取后的某一类输出经过sigmoid函数约束后如果大于0.5,就表示属于该类。
        2.3 YOLOv4相对于YOLOv3改进的部分
        1、主干特征提取网络:DarkNet53 => CSPDarkNet53;
 
        图2.3.1  主干特征提取网络图
        2、在特征金字塔部分,YOLOV4结合了两种改进:
        a).使用了SPP结构;
        b).使用了PANet结构,PANet是2018的一种实例分割算法,其具体结构的意思就是反复提升特征,下图为原始的PANet的结构,可以看出来其具有一个非常重要的特点就是特征的反复提取。在(a)里面是传统的特征金字塔结构,在完成特征金字塔从下到上的特征提取后,还需要实现(b)中从上到下的特征提取。而在YOLOV4当中,其主要是在三个有效特征层上使用了PANet结构。
 
        图2.2  PANet结构
        3、分类回归层:与YOLOv3一样;
        4、激活函数:使用Mish激活函数。
 
        图2.3.3  Mish激活函数
        3.实验过程
        3.1 图像来源
        本次研究活动,通过走访和调研了大浦县的数座桥梁,包括茶阳大桥、合溪桥、鲤鱼石桥、三河大桥等等,期间,拍摄了大量的桥面裂缝、桥墩裂缝、桥梁伸缩缝等等的图像,然后对这些图像采用工具labelimg进行标签,然后用于YOLOv4算法的训练和验证。
   
        图3.1.1  标记后的裂缝图像             图3.1.2  标记后的裂缝图像
   
        图3.1.3 标记后的伸缩缝图像           图3.1.4 拍摄图像的现场
        3.2 参数设置
        本次实验主要使用Coogle Colab上运行和训练YOLOv4的数据集,在训练之前需要设置好相关的云盘路径、下载数据集权重等等的前期工作。其中主要的项目流程主要包括:(1)设置可用的GPU;(2)用git clone 项目构建Darknet。需要修改项目的makefile文件,使编译生成的程序,使之可以使用GPU和OpenCV,然后验证CUDA版本,最后编译项目生成darknet运行程序;(3)设置谷歌云盘路径的简写,为了更加方便地上传文件到云端;(4)运行demo显示bbox,目的是为了检验环境和编译是否成功,同时还需要定义imshow函数,方便显示图片。
        3.3 训练过程
        首先将采集到的桥梁裂缝及伸缩缝的图像,经过简单的挑选之后,用工具lebalimg进行标记,其中848张桥面裂缝和桥梁伸缩缝的图像作为训练集,将其上传到谷歌云盘Google Colab。
        Google Colab也称为Colaboratory,简单来说就是谷歌实验室,Colaboratory是一个免费的 Jupyter 笔记本环境,不需要进行任何设置就可以使用,主要用于机器的深度学习和研究,并且完全在云端运行。通过使用 Colaboratory,可以编写和执行代码、保存、共享以及分析结果,同时利用其强大的计算资源,并且所有这些都可通过浏览器免费使用,使用起来变得更加方便快捷。本次研究利用了YOLO算法,创新性地使用了Google Colab平台训练和运行算法,该平台实际上就是远程提供免费的GPU,这很大程度上地解决了设备上的难题,除此之外,相比于传统的云平台,运行速度也大大加快。
        然后下载预训练权重并上传到darknet的文件中,并且在content目录下新建data文件夹,再在data文件夹下面新建backup文件夹,然后复制数据集并进行解压缩,就会自动生成train.txt文件,最后开始训练,如果训练被迫中断,则可以使用之前训练的权重再次训练。
        4.实验数据的整理与运用
        4.1 目标检测评价标准
        目前,目标检测评价标准主要有以下指标:精度(Precision)、召回率(Recall)、单类平均精度AP(average precision)、综合评价指标 作为准确率和召回率的评估值、检测速度以及所有类别的平均精度mAP(mean average precision)、种类预测结果与实际结果的对比的loss值。

        式中,TP-正确分割裂缝像素数;FP-错误分割裂缝像素数;FN-漏分割裂缝像素数;
        其中检测精度和召回率都是越高越好,精度是指算法检测出来的所有框中有多少是正确的检测,而召回率是指所有groungtruths中有多少被检测出来,体现了对正反两类的区分能力。但这两者的变化是不同步的,通常精度越高,那么在算法的设计上就会偏向这一方面,而召回率就会因此而降低,相反,召回率越高,精度就会降低,因此需要根据需要衡量好指标的权重;而loss值是表示预测类与真实类的差距,loss值越小,则表明预测结果与实际结果越吻合。
        4.2 YOLOv4与YOLOv3识别结果对比及分析
        本文采用真实的桥梁裂缝图像数据进行相关实验,其中一共采集到桥面裂缝图片和桥梁伸缩缝图片848张,然后将其分为两个集合,分别为A集合和B集合,构建成为算法的训练集,最后采用212张桥梁裂缝或伸缩缝图片构建成为验证集。
        本文在自己构建的数据集上对YOLO4和YOLO3进行训练两组模型的训练集为848张图像,验证集为212张图像,然后在数据集上训练60次,最终进行保存。
        YOLOv4与YOLOv3算法的模型训练情况如下:
 
        图4.1  YOLOv4与YOLOv3的loss曲线图
        从训练的LOSS曲线可以看出,两个算法的模型前期训练损失函数减小的很快,在0-5左右下降得很快,其中YOLOv3的loss值要比YOLOv4的要低一点点,但是之后两个算法下降速度逐渐减缓,最终的loss值收敛,YOLOv4的loss值要比YOLOv3的要低,可以看出在足够多的训练次数之后,YOLOv4算法的识别准确率更高。
        YOLOv4与YOLOv3算法的map值对比:
        图4.3  YOLOv4的map值
        YOLOv3的mAP值为98.65%,而YOLOv4的mAP值为99.13%,显然这两种算法的map值都比较高,但是YOLOv4的识别平均精度要比YOLOv3的更加精确一些,因此YOLOv4在桥梁结构裂缝识别的运用中更具优势。
        5.总结
        为了研究YOLOv3与YOLOv4不同算法对于裂缝识别的损失曲线(loss function)以及对于均值平均精度(Mean Average Precision)的影响,本研究开展了以下工作:(1)在现场采集了大量的数据图片,通过人为的筛选,选出裂缝特性明显的图片。并对图片中的裂缝部分标记。(2)将数据打包上传到云盘后,利用colaboratory分别运行YOLOv3与YOLOv4算法,通过云端进行深度学习,得到精确率(Precision)、召回率(Recall)、平均精确度(Average Precision)以及均值平均精度曲线。
        在实验过程中遇到的问题以及解决方法:
        (1)对于数据集进行处理时,标记裂缝的方式对于结果的影响是巨大的。对于完整的一条裂缝,将它进行分段标记,会导致裂缝的特征表现不明显,算法对于不同类型裂缝的识别率不高,还会出现过拟合的情况。通过增大噪声,将裂缝一段完整地标记,增大数据的多样性,提高了数据的准确性,消除了过拟合的现象。
        (2)Colaboratory是全程在云端运行的平台,它读取不了本地的路径,需要将所有数据打包上传到云盘,算法运用云盘中的路径读取数据。因此,需要对源代码中的路径进行修改和优化。
        参考文献:
        [1]N Otsu.A Threshold Selecting Method From Gray-Level Histograms[J].IEEE Transaction On System,1979,9(1):62-66.
        [2]Cha,Y. J.,Choi,W. & Buyukozturk,O.(2017),Deep learning-based crack damage detection using convolutional neural network,Computer-Aided Civil and Infrastructure Engineering,32(3),2013–14.
        [3]Xu,Y.,Li,S.,Zhang,D.,Jin,Y.,Zhang,F.,Li,N. & Li,H.(2017),Identification framework for cracks on a steel structure surface by a restricted Boltzmann machines algorithm based on consumer-grade camera images,Structural Control and Health Monitoring,https://doi.org/10.1002/stc.2075
        [4]Zhang,L.;Yang,F.;Zhang,Y.D.;Zhu,Y.J. Road crack detection using deep convolutional neural network. In Proceedings of the 2016 IEEE International Conference on Image Processing(ICIP),Phoenix,AZ,USA,25–28 September 2016;pp. 3708–3712.
        [5]Tong,Z.;Gao,J.;Han,Z.;Wang,Z. Recognition of asphalt pavement crack length using deep convolutional neural networks. Road Mater. Pavement Des. 2018,19,1334–1349.
        [6]马卫飞,基于深度学习的桥梁裂缝检测算法研究.
        [7]魏武,王俊杰,蔡钊雄.基于小波和Radon变换的桥梁裂缝检测[J] .计算机 工程与设计,2013,34(9):3151-3157.
        [8]朱力强,白彪,王耀东.基于特征分析的地铁隧道裂缝识别算法[J].铁道学 报,2015,37(5):64-70.
        基金项目:
        广州大学校级大学生创新训练项目,项目编号:XJ202011078119
 
投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: