基于计算机视觉的混凝土结构表面缺陷自动检测方法
技术领域
本发明属于计算机视觉技术领域,具体涉及一种基于计算机视觉的混凝土结构表面缺陷自动检测方法,可广泛用于跨江、跨海大桥,城市高架桥、城市高耸建筑等大型混凝土结构的表面缺陷检测。
背景技术
随着国民经济的快速发展和城市化进程的加快,各种大型混凝土结构建筑如雨后春笋般迅速增加,另外一方面,城市中的各种大型混凝土结构具有使用负载量大、安全性要求高的实际使用需求。定期的混凝土结构缺陷检测能够给相关的养护部门提供有效的养护数据,进而保障建筑使用期间的安全、提高建筑物的养护效率。然而,目前的国内的混凝土建筑物的检测工作大多数是基于人工操作的方式方法,这势必会带来极其繁重危险的人工劳动,而且不可避免的引入主观判断的误差。近年来,随着深度学习和人工智能技术的发展,视频检测技术的优势与发展潜力凸显于各种检测技术之中,随之便出现了基于传统计算机视觉方法的裂缝检测识别方法,但是这种方法存在抗噪声能力弱、通用性比较差、检测准确率低的问题。
发明内容
本发明的目的在于提供一种基于计算机视觉的混凝土结构表面缺陷自动检测方法,在实际的混凝土结构检测中,本方法基于深度学习框架下的视频图像识别技术,从根本上解决了以往计算机视觉方法中存在的误检率高、通用性差等实际问题。
为实现上述目的,本发明所采取的技术方案是:
一种基于计算机视觉的混凝土结构表面缺陷自动检测方法,其特征在于:对视频数据进行时间轴上采样获取图像,图像输入深度卷积神经网络模型获取缺陷的位置、缺陷的类别以及缺陷的分割效果。
进一步地,所述深度卷积神经网络模型包括:
特征提取模块,用于提取图像特征;
缺陷位置生成模块,用于根据图像特征提取出图像中的疑似缺陷目标区域;
缺陷区域位置检测模块,用于获取疑似缺陷目标区域中缺陷在图像中的精确坐标信息;
缺陷区域分类模块,用于确定疑似缺陷目标区域中缺陷的类别;
缺陷区域分割模块,用于对疑似缺陷目标区域中的缺陷进行语义分割。
进一步地,所述特征提取模块包括ResNet50网络模块,用于提取图像的特征向量。
进一步地,所述缺陷位置生成模块包括感兴趣区域提取模块,将图像的特征向量输入感兴趣区域提取模块,生成疑似缺陷目标区域的目标框,提取目标框对应的目标区域特征向量,将所有目标区域特征向量调整到统一的维度;生成目标存在置信度的概率值,并将概率值按照大小顺序排序,选取概率值大于预设值的目标区域特征向量,作为缺陷区域位置检测模块、缺陷区域分类模块、缺陷区域分割模块的输入。
进一步地,所述缺陷区域位置检测模块,将目标区域特征向量输入到一线性回归器中计算误差并进行反向传播,最终得到缺陷所在区域的最小外接矩形。
进一步地,所述缺陷区域分类模块,将目标区域特征向量输入到一全连接层并传输给Soft Max激活层,得到疑似缺陷目标区域对应于各个类别的概率预测向量。
进一步地,所述缺陷区域分割模块,将目标区域特征向量输入到一Unet网络模块中对疑似缺陷目标区域中的缺陷进行语义分割。
进一步地,所述深度卷积神经网络模型的训练过程如下:
S10、准备训练数据;
S20、通过ImageNet数据集训练ResNet50网络模块;
S30、训练感兴趣区域提取模块;
S40、训练缺陷区域位置检测模块、缺陷区域分类模块和缺陷区域分割模块;
S50、调整学习率,然后重复执行S30、S40两个步骤,直到设定的损失函数数值收敛到设定的误差值以下。
进一步地,所述准备训练数据包括对缺陷的训练数据进行数据增强,模拟生成出各种环境下的混凝土表面缺陷的成像效果图像。
本发明的有益效果为:
(1)在实际的混凝土结构检测中,本发明的方法基于深度学习框架下的视频图像识别技术,从根本上解决了以往计算机视觉方法中存在的误检率高、通用性差等实际问题。从视频图像数据的处理和最终结果的输出,具有自动化程度高、实时性好、准确率高、通用性好、便于后期升级维护等优点。
(2)通用性能良好;本发明采用的深度卷积神经网络模型在训练过程中就采用了包含各种光照条件、分布区域、背景纹理的裂缝图像作为训练用图像,保证尽量覆盖足够多的实际应用环境。
(3)识别精度高;本发明因为通过50层的深度残差卷积神经网络完成特征提取刻画,在光照、背景纹理、结构缺陷自身形态等成像形态多变的应用环境下,其识别精度远超过基于传统计算机视觉的混凝土表面缺陷的识别精度。
(4)智能化、自动化程度高;本发明没有用到太多的预设信息,因此从理论层面上具有工程维护简单、一次部署,长期使用,智能化、自动化程度高。
附图说明
图1为实施例中深度卷积神经网络模型的结构示意图。
具体实施方式
为了更好地理解本发明,下面结合实施例对本发明的技术方案做进一步的说明。
一种基于计算机视觉的混凝土结构表面缺陷自动检测方法,包括:对视频数据进行时间轴上采样获取图像,是为了降低视频帧与帧之间的内容冗余性,避免因此带来的计算耗时,以提高执行效率;图像输入深度卷积神经网络模型获取缺陷的位置、缺陷的类别以及缺陷的分割效果。
如图1所示,深度卷积神经网络模型包括:
一、特征提取模块,用于提取图像特征;
所述特征提取模块包括ResNet50网络模块,用于提取图像的特征向量。
ResNet50深度残差卷积神经网络,主要作用是从图片中提取各个描述级别的视觉特征向量。
ResNet50由4个大的神经模块组成,而这大的神经模块是几组残差支路和两种短接(shortcut)的神经模块组成的;block结构包含一个残差支路和shortcut支路,比传统的卷积结构多了一个shortcut支路,用于传递低层的信息使得能够训练到更深的网络层,以此来加速整个训练过程,提高神经网络的学习效率。
ResNet50中常见的神经网络模块结构:
(1)常规卷积层的结构:2维(1x1)卷积层->2维池化层->2维激活层->2维卷积层->2维池化层->2维(1x1)卷积层->2维池化层->2维激活层。
(2)类型1shortcut的网络结构:2维卷积层->2维池化层。
(3)类型2shortcut的网络结构:直接连接,没有卷积层。
(4)bottleneck先通过一个1x1的卷积减少通道数,使得中间卷积的通道数减少为1/4;中间的普通卷积做完卷积后输出通道数等于输入通道数;第三个卷积用于增加(恢复)通道数,使得bottleneck的输出通道数等于bottleneck的输入通道数。这两个1x1卷积有效地较少了卷积的参数个数和计算量。
二、缺陷位置生成模块,用于根据图像特征提取出图像中的疑似缺陷目标区域;
所述缺陷位置生成模块包括感兴趣区域提取模块,将图像的特征向量输入感兴趣区域提取模块,生成疑似缺陷目标区域的目标框,提取目标框对应的目标区域特征向量,将所有目标区域特征向量调整到统一的维度;生成目标存在置信度的概率值,并将概率值按照大小顺序排序,选取概率值大于预设值的目标区域特征向量,作为缺陷区域位置检测模块、缺陷区域分类模块、缺陷区域分割模块的输入。
将ResNet50网络模块提取到的特征向量输出给感兴趣区域提取模块(ROI Align模块)。首先感兴趣区域提取模块通过预置好的大小、宽高比和锚定框,在每一个像素点坐标上提取对应的目标区域特征向量。然后将所有的目标区域特征向量的维度调整到统一的维度。最后生成该疑似缺陷目标区域对应的概率值、目标框的坐标范围和目标框的目标区域特征向量;最后根据确定好的训练实例个数,将概率值从大到小排序选取概率值大于预设值的目标区域特征向量,作为缺陷区域位置检测模块、缺陷区域分类模块、缺陷区域分割模块的输入。
三、缺陷区域位置检测模块,用于获取疑似缺陷目标区域中缺陷在图像中的精确坐标信息;
所述缺陷区域位置检测模块,将目标区域特征向量输入到一线性回归器中计算误差并进行反向传播,最终得到缺陷所在区域的最小外接矩形。
将维度统一后的目标区域特征向量输入到通道数为4、输出向量个数为1的卷积层,将目标框的左上角坐标x、y和目标框的宽高w、h 4个变量,输入到如下的线性回归器中计算误差并进行反向传播,最终得到表面缺陷所在的最小外接矩形。
为了保证学习的变换参数数值在0附近,我们对目标框的x、y坐标值偏差量除以了对应的宽高w、h,另外,将目标框的理想宽高与实际的宽高进行了相除后取对数,这样保证所有的数据都在(-1,1)范围内分布;
tx=(Gx-Px)/Pw (2)
ty=(Gy-Py)/Ph (3)
tw=log(Gw/Pw) (4)
th=log(Gh/Ph) (5)
其中,公式(1)是目标框位置坐标的回归误差计算公式。公式2、3、4、5分别用来将目标框的左上角坐标x、y和目标框的宽高w、h的学习参数限制在0附近。公式中的四个G变量都来自于标注信息,而8个P变量都是当前的神经网络学习到的临时数值。
四、缺陷区域分类模块,用于确定疑似缺陷目标区域中缺陷的类别;
所述缺陷区域分类模块,与常见的卷积神经网络分类器相似,将维度统一后的目标区域特征向量输入到一全连接层并传输给Soft Max激活层,得到疑似缺陷目标区域对应于各个类别的概率预测向量。
五、缺陷区域分割模块,用于对疑似缺陷目标区域中的缺陷进行语义分割。
所述缺陷区域分割模块,将目标区域特征向量输入到一Unet网络模块中对疑似缺陷目标区域中的缺陷进行语义分割。
由于Unet网络最后一层的解码器的输出向量的宽高维度和Unet网络的输入图像的宽高维度是一致的,所以当通过SoftMax激活层之后,我们可以获取到每一个像素点的类别分布概率,这样即完成了图像语义分割的操作,得到疑似缺陷目标区域内的的语义分割效果。
UNet网络的具体结构如下:
UNet网络由两大模块组成;一个是encoder特征编码器,主要作用是将图像进行4次下采样,将图像卷积特征向量的宽高不断进行降采样,同时让图像卷积特征向量的通道数增加;另外一个是Decoder特征解码器,主要操作是通过4次上采样、将卷积特征向量的宽高维度恢复到原始图像的宽高,另外图像卷积特征向量的通道数继续提高,并且级联encoder同样宽高的特征向量图。
1.Encoder;Encoder主要包含4个下采样模块。每一个下采样模块中都有两个3*3的卷积层再加上一个2*2的最大池化层,并且每个卷积层都会使用Relu激活函数对输入进行激活,而每进过一个上采样模块,卷积特征向量的通道数都会加倍。
2.Decoder;Decoder主要包括4个上采样模块。将图像卷积特征向量的宽高维度不断地提高。每一个上采样模块都有两个3*3的卷积层和ReLU的激活函数;除此之外,每一个上采样模块的输入是上一个上采样模块输出的输入和对应的Encoder层的输出的级联(通过Skip Connection结构完成)组成的特征向量。
3.Skip Connection结构;Skip Connection主要操作就是将降采样得到的底层特征和升采样得到高层特征进行级联,以为目标分割保留足够的图像信息,以得到更好的分割结果。
相对于通常的卷积神经网络,UNet网络没有使用全连接层,因此能够利用图像中像素和像素之间的空间远近关系;相对于通常用到的FCN全卷积网络,UNet网络没有将不同分辨率的图像特征进行元素级别的相加,而是进行了级联;另外,UNet网络的网络权重参数个数远小于FCN等其他语义分割网络,因此适合用于训练数据集不多的结构缺陷分割任务。
语义分割指的是,计算机算法模拟人类的理解方式,在真实图像中将表达某一语义的同一物体常的不同部件组成(如裂缝区域、表皮剥落、露筋等)分门别类地进行像素级别的标注,进而生成对应的说明模板。
深度卷积神经网络模型的训练过程如下:
S10、准备好训练数据,训练数据分为图像、分割结果掩膜图像、标签文件。其中图像即存在表面缺陷的混凝土图片,掩膜图像中通过像素值来标记该像素属于那种类型表面缺陷的前景目标,用于训练缺陷分割模块;标签格式为XML或者JSON格式,里面包括各种表面缺陷的类别信息和对应的位置信息。
准备训练数据还包括对缺陷的训练数据进行数据增强,模拟生成出各种环境下的混凝土表面缺陷的成像效果图像(包含各种光照条件、分布区域、背景纹理等的缺陷图像作为训练用图像,保证尽量覆盖足够多的实际应用环境)。
S20、通过ImageNet数据集训练ResNet50网络模块;
S30、训练感兴趣区域提取模块;
S40、训练缺陷区域位置检测模块、缺陷区域分类模块和缺陷区域分割模块;
由于本模型网络结构中存在多个优化目标明确的子模块,为了更快地让网络参数收敛,我们采用了模块交替训练的方法。
首先,使用了基于ImageNet的ResNet50的初始化网络权重作为我们的初始化网络权重;通过迁移学习得到的权重来避免数据集太小导致的模型训练的过拟合问题;
然后,加载完网络权重后,将训练集里面的图像和对应的标签文件输入到缺陷位置生成模块。使用线性回归的方式来计算标注数据和RPN得到的实际位置之间的数据残差,并最终逐渐修正RPN的网络权重。另外,为了保证训练过程的连续性和收敛性,将初始学习率设置为1e-04,然后按照循环学习率方法对学习率进行调整,保证损失函数能够快速的收敛;
最后,固定ResNet50的特征提取模块和缺陷位置生成模块,并开始训练缺陷区域位置检测模块、缺陷区域分类模块这两个模块。
S50、调整学习率,然后重复执行S30、S40两个步骤,直到设定的损失函数数值收敛到设定的误差值以下;
我们将损失函数定义为缺陷区域位置检测模块、缺陷区域分类模块、缺陷区域分割模块这三个损失函数的总和。其中,采用交叉熵作为分类损失函数,如下面公式所示:
另外,考虑到结构缺陷中像素灰度分布和空间分布的不连续性,我们将损失函数设置为DICE测度函数和BCE(Binary Cross Entropy)这两个测度函数的加权和。
其中p是预测,q是ground truth,C是一组类。我们使用两个损失的总和来检测:信号的交叉熵损失和边界框坐标上的L1范数损耗。DICE公式通过交叉熵来计算缺陷区域分类模块和缺陷区域分割模块的误差,BCE公式用来计算缺陷区域位置检测模块的误差。
为了处理训练数据集中的不同类别的待识别目标的数目不均衡问题。我们将BCE损失函数进行了修改,如上面公式BCE所示,为每一个类别的目标的交互信息熵分别添加一个加权权重(alpha,beta)。这样让样本量较少的类别训练损失和样本量较大的样本训练损失达到平衡状态,从而解决训练集类别不均衡带来的问题。
通过以上的实施方式描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下,前者是更佳的实施方案。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(ROM,光盘,硬盘)中,包括若干指令用以使得一台终端设备(工控电脑,服务器)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制了本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关技术领域,均同理包括在本发明的专利保护范围内。