基于改进Faster-RCNN的大坝裂缝检测模型及方法
技术领域
本发明涉及大坝裂缝检测,具体涉及一种基于改进Faster-RCNN的大坝裂缝检测模型及方法。
背景技术
随着水力水电的开发和计算机技术的发展,大坝安全问题愈发引起重视。大坝的建筑材料多为混凝土,在施工过程中,由于浇筑温度、材料配比以及后期维护等多种因素,难免产生大坝裂缝。裂缝对大坝的安全性和功能性都存在较大影响,容易导致严重的安全隐患。
现有的混凝土大坝裂缝检测方法包括采用声波对穿,测试波速、振频以及频率等方式,但采用声波对穿,测试波速等方法需要人工监管,而传统的图像检测技术存在精度不高的问题。
随着深度学习技术的出现和发展,将深度学习应用到图像目标检测和识别领域取得较大突破,提高了检测监督。随着对卷积神经网络的改进以及区域间距神经网络的提出,发展至更为优越的快速区域卷积神经网络(Faster-RCNN),Faster- RCNN虽在精度上有较好的表现,但在小目标的检测准确率上不够理想。
发明内容
发明目的:本申请的目的在于提供一种基于改进Faster-RCNN的大坝裂缝检测模型,解决大坝小裂缝检测准确率不高的问题。本申请还提供了一种该模型的训练方法。
技术方案:本申请一方面提供了一种基于改进Faster-RCNN的大坝裂缝检测模型,包括:
特征提取模块,其被配置为利用卷积神经网络对输入图像的特征进行逐层提取,得到每层的特征图;
区域生成模块,其被配置为利用区域生成网络,基于特征提取网络最后一层输出的特征图进行映射,得到锚框;
反馈映射模块,其被配置为将锚框映射至特征提取模块提取的后三层特征图,得到对应的映射特征图;
多尺度特征融合模块,其被配置为将映射特征图的特征进行融合,得到融合特征图;
分类回归模块,其被配置为根据融合特征图进行分类和回归,得到检测结果。
进一步地,特征提取模块中的卷积神经网络采用ResNet101网络。
进一步地,特征融合模块包括:
感兴趣区域池化单元,其被配置为对每个映射特征图进行感兴趣区域池化操作,用于将每个映射特征图调整至相同分辨率;
拼接单元,用于将感兴趣区域池化后的特征图进行拼接。
进一步地,特征融合模块还包括:
归一化单元,其被配置为将拼接后的特征图在channel轴进行归一化处理;
缩放单元,其被配置为将归一化的特征图扩大后经1*1的卷积核处理,得到融合特征图。
进一步地,归一化处理,具体通过以下公式进行:
其中,I(c|x|y)2是归一化之前的特征图,In(c|x|y)是归一化之后的特征图, c则代表对应特征图的特征,即归一化之前和归一化之后的特征图分别对应的宽和高。
本申请另一方面公开了利用上述模型进行大坝裂缝检测的方法,包括:
根据检测模型结构构建预训练模型;
对采集的大坝裂缝相关的样本图像进行预处理,获得样本数据集;
利用样本数据集,基于训练算法对预训练模型进行反向传播迭代训练,得到训练好的模型;
利用训练好的模型对大坝裂缝进行检测。
进一步地,样本图像分类包括:渗水裂缝、非渗水裂缝、缝隙内含植被、无裂缝、背景。
进一步地,预处理包括:
通过平移、剪裁、旋转对样本图像进行扩增;
使用目标检测标注工具对样本图像中裂缝所在的位置及对应的分类进行标注,并统一样本图像格式。
进一步地,损失函数包括分类损失函数和回归损失函数,具体表示为:
其中,为分类损失,i为整数,pi表示第i个锚框预测为目标的概率;为样本标签的概率;是两个类别的对数损失:
为回归损失,ti是一个向量,表示区域生成网络训练阶段预测的偏移量;是与ti相同维度的向量,表示区域生成网络训练阶段预测的锚框相对于目标所在的真实框gt的偏移量:
R表示Smooh L1函数。
有益效果:与现有技术相比,本申请的模型采用多尺度特征融合模块将卷积曾经网络不同层输出的特征图进行特征融合,使特征图在更深的层级获得更多信息的同时又兼具特征图的分辨率,为后续的分类和回归提供更丰富的图像特征。提高大坝小裂缝检测的准确率。
附图说明
图1为本申请的大坝裂缝检测模型整体架构图;
图2为本申请实施例中特征提取模块所采用的ResNet101网络结构示意图;
图3为本申请实施例中ResNet101网络残差结构示例图;
图4为本申请仿真训练中的部分大坝裂缝样本图像;
图5为本申请实施例中训练方法过程中RPN和ROI的分类损失和位置回归损失情况示意图;
图6为本申请实施例中训练方法过程中最终损失情况示意图;
图7为本申请的模型与传统Faster-RCNN网络模型的检测效果对比图。
具体实施方式
下面结合附图和实施例对本发明做进一步描述:
本申请一方面提供了一种基于改进Faster-RCNN的大坝裂缝检测模型,如图1所示,包括:特征提取模块、区域生成模块、反馈映射模块、多尺度特征融合模块、分类回归模块。
特征提取模块,用于利用卷积神经网络对输入图像的特征进行逐层提取,得到每层的特征图。具体地,在本实施例中,卷积神经网络采用ResNet101网络代替传统Faster-RCNN中的VGG16网络。
ResNet101网络结构包括conv1,conv2_x,conv3_x,conv4_x,conv5_x五层。其中conv2_x,conv3_x,conv4_x,conv5_x又称为结构块(building block), 在结构块里包含残差网络,如图2所示,ResNet101网络结构则表示成[res3 res4 res23 res3]结构块的组合,分别对应conv2_x,conv3_x,conv4_x,conv5_x。而每个结构块内部也包括相应的网络层。例如结构块conv2_x包括的res3的残差结构如图3所示。残差结构可以解决随着网络加深,训练集准确率下降的问题。
为对ResNet101网络和VGG16网络的特征提取效果进行对比,通过设置同样的训练参数和迭代次数,检测效果对比见表1:
表1
根据表1,ResNet101网络在mAP结果上相比较VGG-16网络提升了3.4%;在渗水裂缝类别与包含植被的裂缝类别中,两类网络结构的检测结果基本持平,表明对于一些较大的检测目标上效果相当。但是在非渗水裂缝类别与无裂缝类别中,ResNet101网络分别提升了5.3%和8.5%。由此可见ResNet101网络对于较小目标的检测效果相比较VGG-16网络有一定提升。
在特征提取过程中的池化操作会降低特征图的分辨率,现有的Faster-RCNN 模型中采用区域生成网络RPN(Region Proposal Network)来加快区域提取的速度。但传统Faster-RCNN模型是将最后一层卷积层生成的特征图进行ROI Pooling(感兴趣区域池化),因此容易导致边框回归的不准确,对于大坝裂缝目标较小的情况下容易丢失。
本申请通过区域生成模块、反馈映射模块和多特征融合模块的结合提高特征提取的能力。其中,
区域生成模块,用于利用区域生成网络RPN,基于特征提取网络最后一层输出的特征图,结合Anchor和Stride进行映射,得到锚框(Anchor box)。具体地,根据检测需求设定Anchor数量以及ANCHOR_RATIOS和ANCHOR_SIZES。本实施例中,对最后一层输出的特征图采用滑窗方式遍历,每个特征像素点对应 K个Anchor,利用Anchor Boxes将待检测物体框选出。
反馈映射模块,用于Anchor box映射至特征提取模块提取的后三层特征图 (即conv3_x,conv4_x,conv5_x输出的特征图),得到对应的映射特征图。
多尺度特征融合模块,用于将映射特征图的特征进行融合,得到融合特征图。具体地,多尺度特征融合模块包括感兴趣区域池化(ROI Pooling)单元、拼接 (concat)单元、归一化单元和缩放(scale)单元。感兴趣区域池化单元对每个映射进行感兴趣区域池化操作,用于将每个映射特征图调整至相同分辨率;拼接单元用于将感兴趣区域池化后的分辨率相同的三层特征图进行拼接。归一化单元用于将拼接后的特征图在channel轴进行归一化处理,能够在一定程度上解决因为不同层输出的特征数量不同而导致的学习过程不收敛的状况,归一化公式为:
其中,I(c|x|y)2是归一化之前的特征图,In(c|x|y)是归一化之后的特征图, c则代表对应特征图的特征,即归一化之前和归一化之后的特征图分别对应的宽和高。
与传统Faster-RCNN模型提取的特征图相比,归一化之后输出层的特征数量级缩小了,需要通过缩放单元将特征图扩大。将扩大后的特征图经过1*!的卷积核处理得到融合特征图,以供后续的分类和回归处理。
分类回归模块,其被配置为根据融合特征图进行分类和回归,得到检测结果。具体地,采用两个全连接层分别对应不同的任务:分类和回归,输出对应的分类和回归结果。
本申请另一方面还一种用于上述模型的训练方法,包括:
①根据检测模型结构构建预训练模型;
②对采集的大坝裂缝相关的样本图像进行预处理,获得样本数据集。具体地,样本图像分类包括:渗水裂缝、非渗水裂缝、缝隙内含植被的、无裂缝以及背景。
预处理操作包括:通过平移、剪裁、旋转对样本图像进行扩增;使用目标检测标注工具对样本图像中裂缝所在的位置及对应的分类进行标注,并统一样本图像格式。本实施例中使用目标检测标注工具LabelImg对图像中裂缝所在位置以及相关分类信息进行标注,将相关的数据转化为VOC2007数据集的格式。
③在本实施例中,为了后续测试模型有效性,根据预先设定的比例将样本数据集划分为训练集和测试集。训练集用于对模型进行训练,测试集用于测试模型效果。
④利用训练集,基于训练算法对预训练模型进行反向传播迭代训练,得到训练好的模型;
⑤利用训练好的模型对大坝裂缝进行检测。
本申请中,损失函数为Smooh L1 Loss,主要分为RPN的损失和Fast-RCNN 的损失,并且两部分都包括分类损失(cls loss)和回归损失(bbox regression loss),具体表示为:
其中,为分类损失,i为整数,pi表示第i个锚框预测为目标的概率;为样本标签的概率;是两个类别的对数损失:
为回归损失,ti是一个向量,表示区域生成网络训练阶段预测的偏移量;是与ti相同维度的向量,表示区域生成网络训练阶段预测的锚框Anchor相对于目标所在的真实框gt(Ground Truth)的偏移量:
其中,R表示Smooh L1函数。
训练测试仿真:
由于基于大坝裂缝目标图像检测的领域缺乏公开的数据集,因此本发明构建了一个包含多种裂缝类别的目标检测数据集,以供本申请的模型训练和模型测试使用,部分数据集图片如图4所示。
结合大坝裂缝的图像特征,尽可能多的覆盖到所有的检测区域,在区域生成过程中设定ANCHOR_RATIOS=[(1,2),(1,1),(2,1)],ANCHOR_SIZES=[32,64, 128,256,480],在一定程度上满足了对于较小目标的检测要求。
训练过程中的各损失如图5所示,其中,图5(a)为RPN分类损失,图5(b) 为RPN位置回归损失,图5(c)为ROI分类损失,图5(d)为ROI位置回归损失。图6为上述各损失相加后的最终损失,即为训练过程中的损失。
为验证本申请模型的效果,采用测试集对模型进行性能测试,将其用于大坝裂缝检测。
为了测试改进后的模型在精度上的提升,引入mAP(Mean Average Precision) 作为模型的评价标准,其中精度(Precision)与召回率(Recall)是计算mAP的关键,公式如下:
Precision=TP/(TP+FP)
TP(True Positive)表示正确检测到相关裂缝的数量,FP(False Positive)表示错误检测到的相关裂缝数量。
Recall=TP/(TP+FN)
TP(True Positive)表示正确检测到相关裂缝的数量,FN(False Negative)表示未检测到的裂缝数量。
以精度和召回率为坐标轴可以得到PR曲线,而PR曲线下的面积为平均精度AP(Average Precision),等于对Recall取平均;Recall值为Recall={0,0.1,0.2, 0.3,0.4,0.5,0.6,0.7,0.8,0.9,1}时,求平均值:
均精度均值(mAP)为每个类别的AP再取平均值:
mAP=AVG(AP for each object class)
将本发明的检测模型和传统Faster-RCNN模型分别对测试集进行检测,并对比两者的平均检测精度(mAP),结果如表2所示:
由表2可知,与原始Faster-RCNN网络模型相比,本发明提供的模型在大坝裂缝数据集的平均检测精度上提升了14.7%,并且在非渗水裂缝,无裂缝两种类别中提升了较高的AP值,一定程度的说明了本次改进的方法对于大坝较小裂缝的检测具有优越性。图7示出了利用本申请检测模型与传统Faster-RCNN网络模型进行测试的一些实例效果图。可以看到本发明提出的改进方法对于大坝较小裂缝检测的漏检有明显的改善。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和 /或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:基于毫米波雷达的手势分割与识别算法