本发明属于混凝土结构安全监测领域,涉及一种混凝土结构表面裂缝识别方法;用于土木工程、水利水电工程中混凝土结构表面裂缝的识别。
背景技术:
在目前的土木工程、水利水电工程中,混凝土结构所占比例很大,处于主导地位。裂缝是混凝土结构中常见的一种外观质量缺陷。在内外因素的综合作用下,混凝土结构常常会产生裂缝,这将对结构的安全性、适用性、耐久性产生不良影响。因此,定期对混凝土结构进行裂缝检测、评判、采取相应维修措施对于混凝土结构安全至关重要。
传统的裂缝检测方法以检测人员配以相关仪器进行直接检测为主,这种检测方法劳动力消耗大、识别速度慢、并且给工作人员安全也带来很大隐患。近年来,随着计算机神经网络相关技术的发展,计算机在图像识别与分类等方面的能力有了很大提高,这也为混凝土结构表面裂缝识别提供了一种新的方法。
技术实现要素:
发明目的:为了克服现有技术的不足,本发明提供一种混凝土结构表面裂缝识别方法。
技术方案:一种混凝土结构表面裂缝识别方法,包括以下步骤
s1、获取混凝土结构表面裂缝图像,组建图像数据集;
s2、对获取的裂缝图像进行随机剪切、颜色改变处理,以增强数据集;
s3、对数据集中的裂缝图像打标签标注;
s4、将数据集划分为两个子集,训练集和测试集;
s5、构建卷积神经网络模型;
s6、输入s4步骤中划分出的训练集图像对所建卷积神经网络模型进行训练;
s7、将测试集中图像交由已训练的卷积神经网络模型去识别,输出识别结果。
步骤s3所述打标签操作后生成一个文件来描述图中裂缝的位置框坐标(xmin,ymin,xmax,ymax),以定位裂缝的位置。
步骤s5具体为:
所述卷积神经网络模型结构是由1个卷积层、17个瓶颈层、5个特征提取层、1个非极大值抑制输出层组成。
所述步骤s5中卷积神经网络模型设计具体为:
第一层,卷积层,步长s=1,通道数c=8;
第二层,瓶颈层,扩张系数t=1,步长s=1,通道数c=12;
第三层,瓶颈层,扩张系数t=6,步长s=2,通道数c=12;
第四层,瓶颈层,扩张系数t=6,步长s=1,通道数c=12;
第五层,瓶颈层,扩张系数t=6,步长s=2,通道数c=16;
第六层,瓶颈层,扩张系数t=6,步长s=1,通道数c=16;
第七层,瓶颈层,扩张系数t=6,步长s=2,通道数c=16;
第八层,瓶颈层,扩张系数t=6,步长s=1,通道数c=32;
第九层,瓶颈层,扩张系数t=6,步长s=2,通道数c=32;
第十层,瓶颈层,扩张系数t=6,步长s=1,通道数c=32;
第十一层,瓶颈层,扩张系数t=6,步长s=1,通道数c=64;
第十二层,瓶颈层,扩张系数t=6,步长s=1,通道数c=96;
第十三层,瓶颈层,扩张系数t=6,步长s=1,通道数c=96;
第十四层,瓶颈层,扩张系数t=6,步长s=1,通道数c=96;
第十五层,瓶颈层,扩张系数t=6,步长s=2,通道数c=160;
第十六层,瓶颈层,扩张系数t=6,步长s=1,通道数c=160;
第十七层,瓶颈层,扩张系数t=6,步长s=1,通道数c=160;
第十八层,瓶颈层,扩张系数t=6,步长s=1,通道数c=320;
第十九层,特征提取层1,步长s=2;
第二十层,特征提取层2,步长s=2;
第二十一层,特征提取层3,步长s=1;
第二十二层,特征提取层4,步长s=1;
第二十三层,特征提取层5,步长s=1;
第二十四层,非极大值抑制输出层。
卷积神经网络结构卷积层用来进行特征提取,遵循“权值共享”原则;使用下列公式计算卷积:
其中:ai,j表示featuremap的第i行第j列元素;wm,n表示filter第m行第n列权重;wb表示filter的偏置项;用xi,j表示图像的第i行第j列元素;f表示激励函数。
所述卷积神经网络结构瓶颈层具体形式如下:首先将输入的低维信息扩展到高维,然后经卷积操作提取图像特征,最后经线性瓶颈将特征投影压缩回低维状态。在卷积操作之后采用线性激活函数,以防特征信息被损坏。
所述卷积神经网络结构特征提取层均采用深度可分离卷积操作,在执行卷积操作时,深度卷积对每个输入通道进行卷积,这一组卷积核的数量与输入通道数相同,在这一过程中并不涉及新特征的产生。点卷积操作通过3d1x1卷积核对深度卷积输出结果进行线性叠加,生成新的特征。
所述卷积神经网络结构参数的学习采用动量梯度下降法,调整函数的权重和偏置使得代价函数尽可能的小,学习率设置为0.003。
所述卷积神经网络结构目标损失函数为定位损失和置信损失两部分的加权和,用来估量模型的预测值与真实值的不一致程度。
其中:n为匹配的默认框个数;置信度损失函数使用softmax损失函数;定位损失为预测框与真实标注框参数之间的平滑l1损失函数;权重值α设为1。
有益效果:与现有技术相比,本发明提供的一种混凝土结构表面裂缝识别方法,具有以下优点:
1.识别速度快、识别效率高:本发明通过对获取混凝土结构表面裂缝的图像,组建图像数据集;再对获取的裂缝图像进行随机剪切、颜色改变处理,以增强数据集。可有效提高图片数据识别效率。
2.本发明通过对数据集中的裂缝图像打标签标注;将数据集划分为两个子集,训练集和测试集;构建卷积神经网络模型;输入划分出的训练集图像对所建卷积神经网络模型进行训练;将测试集中图像交由已训练的卷积神经网络模型去识别,输出识别结果利用计算机神经网络技术,与传统人工检测相比,识别的速度和效率都有很大提高。
3.该裂缝识别方法,只需工作人员对结构表面获取相关图像并进行训练,即可完成裂缝识别工作,节约了人力、物力、财力。
附图说明
图1为基于本发明所述方法设计的整体流程图;
图2为本发明所述神经网络结构图;
图3为用本发明所述方法混凝土结构表面裂缝识别结果。
具体实施方式
下面结合附图对本发明的技术方案作进一步说明。
下面是本发明的一个实际案例的实施方式,本发明的目的和特点也可以从案例的说明中看出。应当理解此处描述的实例仅仅用于说明和解释本发明,并不限定本发明。
在本实施例中,对某混凝土结构表面裂缝进行识别。首先进行数据集的准备工作,利用大疆无人机对结构表面裂缝进行拍照,获取原始裂缝图像。接着在计算机上对无人机获取的图像进行裁剪,裁剪后的图像尺寸为256x256,经过增强数据集操作后,数据集共包括4000张图片。其中,有裂缝和无裂缝图像数量均为2000张,用于模型训练和测试的图像数量分别为1500张、500张。然后对带裂缝图像进行打标签标注,同时生成相关描述文件。在tensorflow框架下完成模型的构建和训练工作,batchsize全都设置为2,使用动量梯度下降法来优化代价函数,初始学习率设置为0.003,在模型训练时,每经五轮训练学习率减半。该神经网络输入图像尺寸统一为256×256大小的图片。裂缝图像识别结果如图3所示。
实验平台环境配置如下:
intel(r)core(tm)i7cpu@3.20ghz、nvidiagtx1080ti显卡、16gddr4内存(主频2400mhz)、11g显存(频率1.4ghz)。整个训练过程在gpu上加速完成。
图1,本发明的混凝土结构表面裂缝识别方法,具体步骤如下:
s1、通过无人机航拍获取混凝土结构表面裂缝图像,组建数据集;
s2、对获取的裂缝图像进行随机剪切、颜色改变处理,以增强数据集;
s3、对数据集中的裂缝图像打标签标注,生成文件描述图中裂缝的位置框坐标(xmin,ymin,xmax,ymax);
s4、将数据集划分为两个子集,训练集(数据集的3/4)和测试集(数据集的1/4);
s5、构建卷积神经网络模型,如图2所示;
所述卷积神经网络模型结构是由1个卷积层、17个瓶颈层、5个特征提取层、1个非极大值抑制输出层组成。
所述步骤s5中卷积神经网络模型设计具体如下:
第一层,卷积层,步长s=1,通道数c=8;
第二层,瓶颈层,扩张系数t=1,步长s=1,通道数c=12;
第三层,瓶颈层,扩张系数t=6,步长s=2,通道数c=12;
第四层,瓶颈层,扩张系数t=6,步长s=1,通道数c=12;
第五层,瓶颈层,扩张系数t=6,步长s=2,通道数c=16;
第六层,瓶颈层,扩张系数t=6,步长s=1,通道数c=16;
第七层,瓶颈层,扩张系数t=6,步长s=2,通道数c=16;
第八层,瓶颈层,扩张系数t=6,步长s=1,通道数c=32;
第九层,瓶颈层,扩张系数t=6,步长s=2,通道数c=32;
第十层,瓶颈层,扩张系数t=6,步长s=1,通道数c=32;
第十一层,瓶颈层,扩张系数t=6,步长s=1,通道数c=64;
第十二层,瓶颈层,扩张系数t=6,步长s=1,通道数c=96;
第十三层,瓶颈层,扩张系数t=6,步长s=1,通道数c=96;
第十四层,瓶颈层,扩张系数t=6,步长s=1,通道数c=96;
第十五层,瓶颈层,扩张系数t=6,步长s=2,通道数c=160;
第十六层,瓶颈层,扩张系数t=6,步长s=1,通道数c=160;
第十七层,瓶颈层,扩张系数t=6,步长s=1,通道数c=160;
第十八层,瓶颈层,扩张系数t=6,步长s=1,通道数c=320;
第十九层,特征提取层1,步长s=2;
第二十层,特征提取层2,步长s=2;
第二十一层,特征提取层3,步长s=1;
第二十二层,特征提取层4,步长s=1;
第二十三层,特征提取层5,步长s=1;
第二十四层,非极大值抑制输出层;
s6、输入s4步骤中划分出的训练集图像对所建卷积神经网络模型进行训练;
s7、将测试集中图像交由已训练的卷积神经网络模型去识别,输出识别结果;
所述卷积神经网络结构卷积层用来进行特征提取,遵循“权值共享”原则。使用下列公式计算卷积:
其中:ai,j表示featuremap的第i行第j列元素;wm,n表示filter第m行第n列权重;wb表示filter的偏置项;用xi,j表示图像的第i行第j列元素;f表示激励函数。
所述卷积神经网络结构特征提取层均采用深度可分离卷积操作,在执行卷积操作时,深度卷积对每个输入通道进行卷积,这一组卷积核的数量与输入通道数相同,在这一过程中并不涉及新特征的产生。点卷积操作通过3d1x1卷积核对深度卷积输出结果进行线性叠加,生成新的特征。
所述卷积神经网络结构参数的学习采用动量梯度下降法,调整函数的权重和偏置使得代价函数尽可能的小,初始学习率设置为0.003,在模型训练过程中,每五轮训练后学习率减半。
所述卷积神经网络结构目标损失函数为定位损失和置信损失两部分的加权和,用来估量模型的预测值与真实值的不一致程度。
其中:n为匹配的默认框个数;置信度损失函数使用softmax损失函数;定位损失为预测框与真实标注框参数之间的平滑l1损失函数;权重值α设为1。
上面结合附图和实施例对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。
1.一种混凝土结构表面裂缝识别方法,其特征在于:包括以下步骤
s1、获取混凝土结构表面裂缝图像,组建图像数据集;
s2、对获取的裂缝图像进行随机剪切、颜色改变处理以增强数据集;
s3、对数据集中的裂缝图像打标签标注;
s4、将数据集划分为两个子集,训练集和测试集;
s5、构建卷积神经网络模型;
s6、输入s4步骤中划分出的训练集图像对所建卷积神经网络模型进行训练;
s7、将测试集中图像交由已训练的卷积神经网络模型去识别,输出识别结果。
2.根据权利要求1所述的一种混凝土结构表面裂缝识别方法,其特征在于:步骤s3所述打标签操作后生成一个文件来描述图中裂缝的位置框坐标(xmin,ymin,xmax,ymax),以定位裂缝的位置。
3.根据权利要求1所述的一种混凝土结构表面裂缝识别方法,其特征在于:步骤s5具体为:
所述卷积神经网络模型结构是由1个卷积层、17个瓶颈层、5个特征提取层、1个非极大值抑制输出层组成。
4.根据权利要求1或3所述的一种混凝土结构表面裂缝识别方法,其特征于:所述步骤s5中卷积神经网络模型设计具体为:
第一层,卷积层,步长s=1,通道数c=8;
第二层,瓶颈层,扩张系数t=1,步长s=1,通道数c=12;
第三层,瓶颈层,扩张系数t=6,步长s=2,通道数c=12;
第四层,瓶颈层,扩张系数t=6,步长s=1,通道数c=12;
第五层,瓶颈层,扩张系数t=6,步长s=2,通道数c=16;
第六层,瓶颈层,扩张系数t=6,步长s=1,通道数c=16;
第七层,瓶颈层,扩张系数t=6,步长s=2,通道数c=16;
第八层,瓶颈层,扩张系数t=6,步长s=1,通道数c=32;
第九层,瓶颈层,扩张系数t=6,步长s=2,通道数c=32;
第十层,瓶颈层,扩张系数t=6,步长s=1,通道数c=32;
第十一层,瓶颈层,扩张系数t=6,步长s=1,通道数c=64;
第十二层,瓶颈层,扩张系数t=6,步长s=1,通道数c=96;
第十三层,瓶颈层,扩张系数t=6,步长s=1,通道数c=96;
第十四层,瓶颈层,扩张系数t=6,步长s=1,通道数c=96;
第十五层,瓶颈层,扩张系数t=6,步长s=2,通道数c=160;
第十六层,瓶颈层,扩张系数t=6,步长s=1,通道数c=160;
第十七层,瓶颈层,扩张系数t=6,步长s=1,通道数c=160;
第十八层,瓶颈层,扩张系数t=6,步长s=1,通道数c=320;
第十九层,特征提取层1,步长s=2;
第二十层,特征提取层2,步长s=2;
第二十一层,特征提取层3,步长s=1;
第二十二层,特征提取层4,步长s=1;
第二十三层,特征提取层5,步长s=1;
第二十四层,非极大值抑制输出层。
5.根据权利要求4所述的一种混凝土结构表面裂缝识别方法,其特征在于:所述卷积神经网络模型中的瓶颈层为深度可分离卷积,具体结构为:对输入依次进行1ⅹ1卷积、3ⅹ3卷积、1ⅹ1卷积。
6.根据权利要求4或5所述的一种混凝土结构表面裂缝识别方法,其特征在于:所述卷积神经网络结构在瓶颈层压缩步骤完成后不使用激活函数。
7.根据权利要求1或4所述的一种混凝土结构表面裂缝识别方法,其特征在于:所述卷积神经网络结构参数的学习采用动量梯度下降法,初始学习率设置为0.003,在模型训练过程中,每五轮训练后学习率减半。
8.根据权利要求1或4所述的一种混凝土结构表面裂缝识别方法,其特征在于:所述卷积神经网络结构,其目标损失函数为定位损失和置信损失两部分的加权和。
技术总结