一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种隧道结构裂缝的高精度识别方法与流程

2022-09-07 23:27:51 来源:中国专利 TAG:


1.本发明涉及隧道结构裂缝识别方法,特别是公开一种隧道结构裂缝的高精度识别方法,应用于隧道结构检测领域。


背景技术:

2.随着国内公路、地铁隧道的快速发展,隧道的运营规模越来越大。隧道结构裂缝时有发生,将会影响到隧道运营安全。应用广泛、快速发展的检测手段主要为机器视觉技术,但如何从海量图像中快速、准确地获取病害,并准确计算裂缝宽度是关键;发明一种隧道结构裂缝的高精度识别方法,实现隧道结构裂缝的精准识别和宽度计算。
3.随着数字图像处理技术和机器学习的发展,目前有较多基于图像的裂缝识别方法。专利zl202110732505.7公开了一种基于r-cnn的复杂路面裂缝识别方法,利用公共数据集imagenet对maskrcnn进行预训练和参数优化,再利用采集的路面裂缝作为数据集进行训练,实现裂缝的定位与识别;cn202010354695.9公开了一种基于unetcnn图像识别和像素标定的混凝土裂缝宽度测定方法,训练unetcnn网络对裂缝进行自动化识别,并搭建拍摄距离、焦距、像素实际尺寸的非线性模型,以实现宽度计算;专利cn202011290305.2公开了一种基于数字图像的隧道裂缝宽度计算方法,对裂缝图像进行轮廓特征提取,遍历裂缝的轮廓像素,利用拐点位置计算裂缝宽度。其方法均不能实现裂缝亚像素级的宽度识别,且考虑了距离对精度的影响,无法适应复杂背景下裂缝边界的精准查找,进而影响裂缝宽度计算。
4.综上,故迫切需要一种隧道结构裂缝的高精度识别方法,结合裂缝灰度变化趋势,进行升采样后获取裂缝亚像素级边界,结合影响裂缝宽度计算的多种因素,搭建随机森林模型,实现裂缝宽度精准计算。


技术实现要素:

5.本发明的目的设计一种隧道结构裂缝的高精度识别方法,主要解决现有裂缝自动识别误检率高、准确率低、宽度计算不准确等技术问题。
6.本发明的核心思路:针对检测图像海量而存在裂缝的图像较少,先用yolo进行目标定位,再结合unet进行目标分割;分割后的图像进行区域划分、上采样、边界提取,实现亚像素级边缘提取与宽度计算;结合灰度、角度、距离等因素,以实际测量裂缝宽度为输出,分区训练随机森林模型,实现裂缝宽度的精准识别。
7.本发明的目的可以通过以下技术方案来实现:一种隧道结构裂缝高精度识别方法,包括以下步骤:
8.s1、选取隧道结构包含裂缝的图像作为训练集,构建卷积神经网络模型,实现裂缝初步分割,所述步骤s1的具体操作如下:
9.(1)选取不同地区、不同背景下的隧道结构裂缝图像50万张,作为训练集;
10.(2)采用labelimg对包含裂缝的区域进行标注,训练yolov5模型,实现包含裂缝区域定位;
11.(3)采用labelme对裂缝区域进行逐像素标注,训练unet模型,实现裂缝边界初步分割,记用于测试的原图为img,分割后的二值图记为imgbw,只包含目标区域的原图记为imgorg;
12.s2、对裂缝初步分割区域细化处理,并按照裂缝走向进行区域划分,所述步骤s2的具体操作如下:
13.(1)将imgbw进行1次腐蚀处理,细化后的图像记为imgbt;
14.(2)获取imgbt中分割区域的最小外接矩形,其宽度和高度记为bw、bh,若bw》bh,则将imgbw依据水平方向进行n等分区域划分;若bw《bh,则将imgorg依据垂直方向进行n等分区域划分;分割后的n等分小区域,记为ri,其中i=1,2
……
n,n一般设为20;其宽度和高度分别记为w、h。
15.s3、在区域内进行插值,提高图像的分辨率,所述步骤s3的具体操作如下:
16.(1)针对分割后的区域ri,采用升采样提高图像分辨率;
17.(2)设定升采样后图像记为rui,其分辨率为w*h*t12,将ri中每个像素的灰度值,赋给升采样后t12的中心位置,t1一般为奇数,可设为21;
18.(3)对rui其他位置的进行灰度赋值,具体操作如下:
19.(a)获取图像rui中(k1,k2)与t1的相除的余数,记为mk1、mk2;
20.(b)获取其相邻四个方向的坐标,其在图像ri中,对应坐标点为p1(<k1/t1》,<k2/t1》)、p2(<k1/t1》 1,<k2/t1》)、p3(<k1/t1》 1,<k2/t1》 1)、p4(<k1/t1》,<k2/t1》 1),超出边界的坐标直接赋为边界值即可;其对应的灰度值为g(k),其中k∈{1,2,3,4};转换到图像rui中,对应坐标点为p1.x=《(p1.x-1)
×
t1 t1/2》,p1.y=《(p1.y-1)
×
t1 t1/2》,p2、p3、p4点坐标计算方法如p1,其中《》表示将计算结果四舍五入,取整;
21.(c)计算(k1,k2)与p1、p2、p3、p4点之间的距离,分别记为dis1、dis2、dis3、dis4;
22.(d)将计算的距离进行归一化,记为disn1、disn2、disn3、disn4,归一化公式如下:
[0023][0024]
(e)采用反距离权重法,计算距离的权重;首先dis(k)=1.0-disn(k),再按照步骤(d)中的公式对dis进行归一化,最终的距离记为disn;
[0025]
(f)计算当前点灰度值,其公式如下:
[0026][0027]
s4、基于图像灰度差异性,精准获取裂缝边界,所述步骤s4的具体操作如下:
[0028]
(1)采用自适应边缘提取算法,获取rui分割后的图像,记为ruw;
[0029]
(2)获取ruw中裂缝轨迹曲线,记为si,并计算每个点的裂缝宽度,并缩小t1倍,记为w
ij
,其中i∈{1,2,...,n};
[0030]
(3)按照上述步骤对所有区域进行宽度计算,记裂缝宽度最大值为cwmax、最小值为cwmin、均值为cwmean;
[0031]
s5、计算图像背景的粗糙度、灰度均值,裂缝的拍摄角度、拍摄距离;结合裂缝实际宽度,搭建随机森林模型,所述步骤s5的具体操作如下:
[0032]
(1)计算图像img的粗糙度,记为ro,按照不同的值,分为5个等级;
[0033]
(2)计算图像img的灰度均值,记为gr;
[0034]
(3)计算图像img与图像中心的角度,其步骤如下:
[0035]
(a)获取图像img的中心点坐标c(cx,cy);
[0036]
(b)获取图像imgbw中裂缝的中心坐标cr(crx,cry);
[0037]
(c)计算x方向的角度crθx=arctan((cx-crx)/h)、y方向的角度crθy=arctan((cy-cry)/h),其中h为相机到成像中心的距离;
[0038]
(4)检测时相机与隧道断面的角度,camθ=arctan((jh2-jh1)/dj),其中jh1、jh2为安装于搭载平台上、垂直于隧道边墙的激光测距仪测量距离,dj是转换为同一坐标下两个激光测距仪之间的距离;
[0039]
(5)将粗糙度ro、灰度均值gr、与图像中心x方向角度crθx、y方向角度crθy、相机到成像中心的距离h、相机与隧道断面的角度camθ、裂缝宽度最大值为cwmax、最小值为cwmin、均值为cwmean作为输入参数,利用裂缝测宽仪测量裂缝的实际宽度cwreal作为输出参数,基于随机森林算法训练后得到裂缝宽度预测模型。
[0040]
s6、对裂缝进行分区模型训练,并记录当前裂缝的轨迹坐标与宽度值,所述步骤s6的具体操作如下:
[0041]
(1)针对每个不同位置的相机训练模型,并进行裂缝宽度输出;
[0042]
(2)记录当前图像中裂缝的轨迹坐标、宽度值。
[0043]
本发明的有益效果是:
[0044]
(1)本发明是一种隧道结构裂缝的高精度识别方法,可实现海量图像中裂缝目标的自动识别;
[0045]
(2)本发明采用升采样及反距离灰度差值法,并利用灰度差异实现裂缝边界亚像素级提取;
[0046]
(3)本发明结合裂缝宽度影响因素,结合实际测量宽度值,分区训练随机森林模型,实现裂缝高精度宽度计算。
附图说明
[0047]
图1是本发明程序控制框图;
[0048]
图2是本发明实施案例的相机与隧道断面夹角计算示意图。
[0049]
图中:1-搭载平台,2-激光测距仪a,3-相机,4-激光测距仪b,5-隧道边墙。
具体实施方式
[0050]
下面结合附图和具体实施例对本发明作详细说明。
[0051]
本发明的核心思路:针对检测图像海量而存在裂缝的图像较少,先用yolov5进行目标定位,再结合unet进行目标分割;分割后的图像进行区域划分、上采样、边界提取,实现亚像素级边缘提取与宽度计算;结合灰度、角度、距离等因素,以实际测量裂缝宽度为输出,分区训练随机森林模型,实现裂缝宽度的精准识别。
[0052]
参照图1,本发明的目的可以通过以下技术方案来实现:一种隧道结构裂缝高精度识别方法包括以下步骤:
[0053]
s1、选取隧道结构包含裂缝的图像作为训练集,构建卷积神经网络模型,实现裂缝
初步分割,所述步骤s1的具体操作如下:
[0054]
(1)选取不同地区、不同背景下的隧道结构裂缝图像50万张,作为训练集;
[0055]
(2)采用labelimg对包含裂缝的区域进行标注,训练yolov5模型,实现包含裂缝区域定位;
[0056]
(3)采用labelme对裂缝区域进行逐像素标注,训练unet模型,实现裂缝边界初步分割,记用于测试的原图为img,分割后的二值图记为imgbw,只包含目标区域的原图记为imgorg。
[0057]
yolov5超参数主要设定如下:
[0058]
lr0:0.01
[0059]
lrf:0.1
[0060]
momentum:0.937
[0061]
weight_decay:0.0005
[0062]
warmup_epochs:3.0
[0063]
warmup_momentum:0.8
[0064]
warmup_bias_lr:0.1
[0065]
box:0.05
[0066]
cls:0.5
[0067]
cls_pw:1.0
[0068]
obj:1.0
[0069]
obj_pw:1.0
[0070]
iou_t:0.20
[0071]
anchor_t:4.0
[0072]
fl_gamma:0.0
[0073]
hsv_h:0.015
[0074]
hsv_s:0.7
[0075]
hsv_v:0.4
[0076]
degrees:0.0
[0077]
translate:0.1
[0078]
scale:0.5
[0079]
shear:0.0
[0080]
perspective:0.0
[0081]
flipud:0.0
[0082]
fliplr:0.5
[0083]
mosaic:1.0
[0084]
mixup:0.0
[0085]
copy_paste:0.0
[0086]
epochs:100
[0087]
batch-size:1
[0088]
img-size:[640,640]
[0089]
unet超参数主要设定如下:
[0090]
rotation_range:0.2,
[0091]
width_shift_range:0.05,
[0092]
height_shift_range:0.05,
[0093]
shear_range:0.05,
[0094]
zoom_range:0.05,
[0095]
horizontal_flip:true,
[0096]
fill_mode:'nearest'
[0097]
steps_per_epoch:200
[0098]
epochs:100000
[0099]
s2、对裂缝初步分割区域细化处理,并按照裂缝走向进行区域划分,所述步骤s2的具体操作如下:
[0100]
(1)将imgbw进行1次腐蚀处理,细化后的图像记为imgbt;可直接调用opencv类操作函数getstructuringelement获取结构元,调用dilate函数对图像进行腐蚀操作,getstructuringelement函数如下:
[0101]
mat getstructuringelement(int shape,size esize,point anchor=point(-1,-1));
[0102]
dilate函数如下:
[0103]
void dilate(inputarray src,outputarray dst,inputarray kernel,point anchor=point(-1,-1),int iterations=1,int bordertype=border_constant,const scalar&bordervalue=morphologydefaultbordervalue())
[0104]
(2)获取imgbt中分割区域的最小外接矩形,其宽度和高度记为bw、bh,若bw》bh,则将imgbw依据水平方向进行n等分区域划分;若bw《bh,则将imgorg依据垂直方向进行n等分区域划分;分割后的n等分小区域,记为ri,其中i=1,2
……
n,n一般设为20;其宽度和高度分别记为w、h。
[0105]
最小外接矩形可直接调用opencv类操作函数boundingrect实现,获取分割区域的最小外接矩形,boundingrect函数如下:
[0106]
rect in=boundingrect(inputarray points)。
[0107]
s3、在区域内进行插值,提高图像的分辨率,所述步骤s3的具体操作如下:
[0108]
(1)针对分割后的区域ri,采用升采样提高图像分辨率;
[0109]
(2)设定升采样后图像记为rui,其分辨率为w*h*t12,将ri中每个像素的灰度值,赋给升采样后t12的中心位置,t1一般为奇数,可设为21;
[0110]
(3)对rui其他位置的进行灰度赋值,具体操作如下:
[0111]
(a)获取图像rui中(k1,k2)与t1的相除的余数,记为mk1、mk2;
[0112]
(b)获取其相邻四个方向的坐标,其在图像ri中,对应坐标点为p1(<k1/t1》,<k2/t1》)、p2(<k1/t1》 1,<k2/t1》)、p3(<k1/t1》 1,<k2/t1》 1)、p4(<k1/t1》,<k2/t1》 1),超出边界的坐标直接赋为边界值即可;其对应的灰度值为g(k),其中k∈{1,2,3,4};转换到图像rui中,对应坐标点为p1.x=《(p1.x-1)
×
t1 t1/2》,p1.y=《(p1.y-1)
×
t1 t1/2》,p2、p3、p4点坐标计算方法如p1,其中《》表示将计算结果四舍五入,取整;
[0113]
(c)计算(k1,k2)与p1、p2、p3、p4点之间的距离,分别记为dis1、dis2、dis3、dis4;
[0114]
(d)将计算的距离进行归一化,记为disn1、disn2、disn3、disn4,归一化公式如下:
[0115][0116]
归一化方法举例:设计算的dis1=7.0711,dis2=7.8102,dis3=8.4853,dis4=7.8102,进行归一化后disn(1)=0.2577,disn(2)=0.2498,disn(3)=0.2426,disn(4)=0.2498。
[0117]
(e)采用反距离权重法,计算距离的权重;首先dis(k)=1.0-disn(k),再按照步骤(d)中的公式对dis进行归一化,最终的距离记为disn;
[0118]
(f)计算当前点灰度值,其公式如下:
[0119][0120]
s4、基于图像灰度差异性,精准获取裂缝边界,所述步骤s4的具体操作如下:
[0121]
(1)采用自适应边缘提取算法,获取rui分割后的图像,记为ruw;
[0122]
(2)获取ruw中裂缝轨迹曲线,记为si,并计算每个点的裂缝宽度,并缩小t1倍,记为w
ij
,其中i∈{1,2,...,n};
[0123]
(3)按照上述步骤对所有区域进行宽度计算,记裂缝宽度最大值为cwmax、最小值为cwmin、均值为cwmean。
[0124]
s5、计算图像背景的粗糙度、灰度均值,裂缝的拍摄角度、拍摄距离;结合裂缝实际宽度,搭建随机森林模型,所述步骤s5的具体操作如下:
[0125]
(1)计算图像img的粗糙度,记为ro,按照不同的值,分为5个等级;
[0126]
(2)计算图像img的灰度均值,记为gr;
[0127]
(3)计算图像img与图像中心的角度,其步骤如下:
[0128]
(a)获取图像img的中心点坐标c(cx,cy);
[0129]
(b)获取图像imgbw中裂缝的中心坐标cr(cr
x
,cry);
[0130]
(c)计算x方向的角度crθ
x=arctan((cx-crx)/h)
、y方向的角度crθ
y=arctan((cy-cry)
/h),其中h为相机到成像中心的距离;
[0131]
(4)参照图2,检测时相机3与隧道断面的角度,camθ=arctan((jh2-jh1)/dj),其中jh1、jh2为安装于搭载平台1上、垂直于隧道边墙5的激光测距仪测量距离,dj是转换为同一坐标下两个激光测距仪a2和激光测距仪b4之间的距离;
[0132]
相机与隧道断面的角度camθ计算示例如下:
[0133]
设定jh1=2.875m,jh2=3.497m,同一坐标下两个激光测距仪之间的距离dj=2.105m;则计算后的为camθ=16.436
°

[0134]
(5)将粗糙度ro、灰度均值gr、与图像中心x方向角度crθ
x
、y方向角度crθy、相机到成像中心的距离h、相机与隧道断面的角度camθ、裂缝宽度最大值为cwmax、最小值为cwmin、均值为cwmean作为输入参数,利用裂缝测宽仪测量裂缝的实际宽度cwreal作为输出参数,基于随机森林算法训练后得到裂缝宽度预测模型。
[0135]
计算过程中随机森林模型的输入数据和输出数据可定义如下:
[0136][0137]
s6、对裂缝进行分区模型训练,并记录当前裂缝的轨迹坐标与宽度值,所述步骤s6的具体操作如下:
[0138]
(1)针对每个不同位置的相机训练模型,并进行裂缝宽度输出;
[0139]
(2)记录当前图像中裂缝的轨迹坐标、宽度值。
[0140]
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由本发明的权利要求书所要求的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献