一种桥梁裂缝宽度自动测量方法与流程

文档序号:18454838发布日期:2019-08-17 01:31阅读:290来源:国知局
一种桥梁裂缝宽度自动测量方法与流程

本发明属于测试技术领域,特别设计一种桥梁裂缝自动测量方法,可用于桥梁混凝土裂缝的宽度信息的获取。

技术背景

衡量桥梁混凝土病害程度的重要指标包括裂缝的长度、宽度、数量等数据信息,其中裂缝宽度信息为衡量病害程度最重要的指标,现有检测桥梁混凝土裂缝宽度信息的手段包括:人工测量法、红外分析法、和图像处理分析法。其中:

人工测量法是人工利用游标卡尺测量裂缝宽度,该方法存在测量精度差,效率较低、还存在一定的危险。

红外分析法是利用红外线检测裂缝宽度,该方法具有检测精度高,检测速率快等优势,但是该仪器也存在成本较高,而且需专业的人员操作,维护难度较高,在使用时还存在诸多条件限制等缺点。

图像处理分析法是基于图像处理技术检测图像裂缝宽度信息,该方法具有自动化测量,效率高,测量精度高的优势,是目前混凝土检测领域研究最多的技术。

程彬在其发表的论文《基于数字图像处理的表面裂缝宽度测量》(赤峰学院学报(自然科学版),2018,34(10):96-98.)中提出了两种检测裂缝的算法,手动点取边界法和框选平均值法,这两种方法均是通过手动在图像上标注裂缝的边界点,并计算标记出的边界点之间的欧式距离来获取裂缝的宽度信息。因为该方法近乎是通过人力去测量裂缝宽度,所以实时性极差,且耗费大量的时间与精力。

肖利芳在其发表的论文《sobel算子改进边缘检测算法在混凝土裂缝识别中的应用》(软件导刊,2017年01期,112-114)提出了一种基于sobel算子的改进边缘检测算法对图像进行处理,并基于获取到的边缘信息提取图像裂缝的宽度信息。该方法是通过改进sobel算子提升图像裂缝宽度信息的准确性。但是通过sobel算子在获取图像边缘信息的过程中存在时间复杂度较高,实时性较差的缺点,而且该方法没有针对实际应用中所存在的诸多干扰加以考虑。所以在实际应用中,检测结果的准确性,实时性均很难保证。

综上,目前在国内外提出许多利用图像处理技术检测混凝土裂缝宽度信息的方法,大都存在复杂度较高,抗干扰能力差,实时性差及准确性低的缺点,影响工程应用。



技术实现要素:

本发明的目的在于针对上述现有技术的不足,提出一种桥梁裂缝宽度自动测量方法,以提高裂缝宽度信息检测的准确性。

为实现上述目的,本发明的技术方案包括如下:

(1)读取原始混凝土图像,并基于高斯卷积核对其进行平滑处理;

(2)将平滑后的混凝土图像通过sobel算子获取其裂缝主干图q;

(3)根据主干图q,获取裂缝的带状区域图n;

(4)对裂缝带状区域图n做灰度化处理,并进行直方图均衡化,获取图n均衡化后的带状区域图片d;

(5)基于sobel算子获取均衡化后的裂缝带状区域图片d的梯度值g和梯度方向θ;

(6)根据均衡化后的裂缝带状区域图像d的梯度值g和梯度方向θ,提取均衡化后的裂缝带状区域图片的共生边缘z和裂缝点集合c;

(7)滤除裂缝点集合c中不在裂缝内部的像素点;

(8)利用共生边缘z和位于裂缝内部的裂缝点集合c获取裂缝宽度信息:

(8a)按照从上至下,从左至右的顺序遍历共生边缘z和位于内部的裂缝点c,获取一对共生边缘点m(xm,ym),k(xk,yk)和对应的裂缝点t(xt,yt);

(8b)依据共生边缘点m,k的坐标计算搜索裂缝边界的方向

(8c)从裂缝点t(xt,yt)出发在8x8的领域范围内,沿着方向查找裂缝带状区域图片中梯度值g相差最大的像素点u,将该点作为裂缝的第一个边界点,并记录该点的坐标位置(xu,yu);

(8d)从裂缝点t(xt,yt)出发在8x8的领域范围内,沿着的反方向查找裂缝带状区域图片中梯度值g相差最大的像素点h,将该点作为裂缝的第二个边界点,并记录该点的坐标位置(xh,yh);

(8e)按照欧式距离计算裂缝宽度w:

其中(xh,yh),(xu,yu)分别代表边界点u点和h点的坐标。

(9)基于主干图q和裂缝宽度信息w,获取每条裂缝的宽度。

进一步,(9)中基于主干图q和裂缝宽度信息w,获取每条裂缝的宽度,其实现如下:

(9a)按照从上至下,从左至右的顺序遍历裂缝主干图q,获取像素点三色通道r、g、b数据均非0的像素点s,且将该像素点s处的b通道的数据赋值为255,r、g通道数据赋值为0,同时判断该点在3x3邻域范围内,是否存在除s点以外另一个非0点p,若存在,则执行(9b),若不存在,则继续遍历主干图q;

(9b)以点p为中心,按照从左至右,从上至下的顺序在其3x3的邻域范围内进行搜索,判断是否存在三色通道r、g、b数据均为非0的像素点l,如果存在,则将像素点l处的b通道数据赋值为255,r、g通道数据赋值为0,继续遍历,如果不存在,则执行(9c);

(9c)记录遍历过的裂缝主干点的位置信息,并加以标记裂缝编号,判断是否将裂缝主干图像中所有像素点遍历完毕,若遍历完毕则终止搜索,得到分条裂缝的位置信息,执行(9d),如没有遍历完毕,则裂缝编号加1,返回(9a);

(9d)遍历分条后每一条裂缝的位置信息和裂缝宽度信息w,并将裂缝宽度信息w按照每条裂缝的位置进行存储,获取每条裂缝的宽度信息。

本发明与现有技术相比,具有如下优点:

1)本发明采用基于灰度直方图均衡化实现了对裂缝边缘的锐化,使得裂缝边缘更加明显,克服了目前检测算法在检测边缘出现的由光照导致的图像边缘虚化的缺点,提高了宽度检测的准确性。

2)本发明使用基于自适应阈值来判定该裂缝点是位于裂缝内部还是外部点,在检测裂缝宽度时能够更好去除检测错误的裂缝点,克服了现有检测方法中存在的误检率高的问题,提升了检测的准确性。

3)本发明使用共生边缘的梯度方向作为种子点出发搜索裂缝边缘的方向,克服了目前检测裂缝宽度方向存在极大不确定性、导致图像边缘宽度计算不准确,进一步提高了宽度信息的检索准确率。

附图说明

图1是本发明的实现流程图;

图2是本发明的仿真结果图。

具体实施方式

下面参照附图1对本发明的实施例及效果进一步的详细描述。

参照图1,本发明的实施步骤如下:

步骤1,读取原始混凝土图像,并对其进行平滑处理。

(1a)用数字摄相机采集待检测混凝土裂缝图像,并将摄像机中采集到的裂缝图像存储到计算机中;

(1b)按照高斯滤波公式对计算机存储裂缝图像进行平滑处理,得到平滑后的裂缝图像:

其中p1代表原始裂缝图像的像素值,p2代表经过高斯卷积核得到平滑后的图像像素值,*代表卷积。[·]表示高斯卷积核。

步骤2,基于sobel算子获取平滑后的裂缝图像的裂缝主干图q。

目前计算图像梯度所使用的算子包括:roberts、prewitt、sobel和lapacian算子,本实例中采用但不限于sobel算子,其实现如下:

(2a)获取步骤(1b)中得到的平滑后裂缝图像;

(2b)获取经过高斯卷积平滑后的裂缝图像的梯度值e和梯度方向α:

(2b1)通过纵向sobel算子计算平滑后裂缝图像的纵向梯度值gy:

其中p1表示原始灰度图像中像素点的值;*表示卷积操作,[·]表示纵向sobel算子矩阵;

(2b2)通过横向sobel算子计算平滑后裂缝图像的横向梯度值gx:

其中[·]表示横向sobel算子矩阵;

(2b3)通过公式<1>和公式<2>获取到的gx和gy,计算裂缝图像的梯度值e和梯度方向α:

(2b4)将步骤(2b3)获取到的梯度值e和梯度方向α分别作为裂缝图像梯度图的r通道和b通道的值,得到平滑后的裂缝图像的梯度图;

(2c)根据(2b)获取到的原始裂缝图的梯度值e和梯度方向α,获取裂缝点集合t:

(2c1)本实例中设置阈值l=20,将梯度图像中梯度值g小于阈值l的像素点处的r通道赋值为l-1,大于阈值l的像素点值不变,获取新的梯度图;

(2c2)按照从左至右,从上至下的顺序遍历新的梯度图,判断是否遍历完新的梯度图:

如果新的梯度图遍历结束,执行(2d);

如果未遍历完新的梯度图,再判断新梯度图上的像素点p处r通道值是否为l-1:

若是,则遍历下一个像素点,并判断r通道的值,

若不是,则先获取该像素点p处梯度值e1和梯度方向α1,再执行(2c3);

(2c3)在新的梯度图上,沿着像素点p的梯度方向α1遍历8个像素点,并判断新梯度图上的像素点s处的r通道的值是否为l-1:

若是,则执行(2c4),

若不是,则先获取像素点s处的梯度值e2,再执行(2c5);

(2c4)在新的梯度图上,沿着像素点p的梯度方向α1的反方向遍历8个像素点,判断新梯度图上的像素点s处r通道的值是否为l-1:

若是,则返回(2c2),

若不是,则先获取该像素点s处的梯度值e2,再执行(2c5);

(2c5)本实例设置梯度差阈值为g=26,若|e1-e2|<g,则像素点s和像素点p处的梯度值保持不变,并取像素点s和像素点p两点之间的中点位置w,并将像素点w存储到裂缝点集合t中;否则,将像素点s和像素点p处的三色通道的值赋值为l-1,并准备运算下一个像素点,返回(2c2);

(2d)连接裂缝点集合t中的像素点:

(2d1)设定最小生成树集合为e;

(2d2)从裂缝点集合t中随机取一点u作为路径的开始节点,并从点集合t中选取与点u欧氏距离最小的像素点z;之后,将像素点u和像素点z的连线放入最小生成树集合e中;

(2d3)判断裂缝点集合t是否全部遍历完成,如果未遍历完成,则从像素点z出发,并重复步骤(2d2);如果全部遍历结束,则最小生成树集合e获取完成,并执行(2e);

(2e)获取裂缝主干图q:

本实例设置边长阈值r=100,先将(2d)获取到的完整最小生成树集合e中欧式距离大于边长阈值r的连线删除,遍历最小生成树集合e中的剩余的连线,并获取连线上的像素点,这些像素点组成裂缝主干图q。

步骤3,获取裂缝的带状区域图n。

(3a)按照从左至右,从上到下的顺序遍历裂缝主干图片q,获取其中像素值不为0的像素点集合a;

(3b)遍历像素点集合a中的像素点u,从原始裂缝图中获取与u点坐标位置相同的像素点b及其周围20x20领域内的像素点,将像素点b及其周围20x20领域内的像素点作为带状区域内部的像素点,继续遍历像素点集合a,直至集合a遍历结束,执行(3c)。

(3c)将(3b)获取到的所有带状区域内部的像素点组成裂缝带状区域图n。

步骤4,获取裂缝带状区域图n均衡化后的带状区域图片d。

(4a)对步骤3获取到的裂缝带状区域图n进行灰度化处理,其实现如下:

按照从左至右,从上至下的顺序遍历裂缝带状区域图n,并计算遍历到的像素点u的灰度值gray:

gray=0.30×r+0.59×g+0.11×b<3>

其中,r表示像素点u的红色通道值,g表示像素点u的绿色通道值,b表示像素点u的蓝色通道值,将计算出的灰度值gray赋值到像素点u的三色通道中,实现对于裂缝区域图n的灰度化;

(4b)对灰度化后的裂缝带状区域图n进行直方图均衡化:

(4b1)按照从左至右,从上至下的顺序遍历裂缝带状区域图n,并获取带状区域裂缝图片中各灰度级的像素数目ni,1≤i<256,其中i代表灰度级;

(4b)利用灰度概率计算公式计算每一个灰度级出现的概率,其公式为:

其中i为灰度图像n中的灰度级数,ni为裂缝带状区域中灰度级为i的像素数目,a为裂缝带状区域图像所包含的像素数目,p(ni)是灰度级数i对应的灰度概率;

(4c)利用概率的累计分布函数计算裂缝带状区域图像的归一化直方图:

其中i代表映射前的灰度级数,k代表映射后的灰度级数,p(ni)为第i灰度级的灰度概率,fk代表第k个灰度级对应的累计分布概率;

(4d)利用灰度直方图均衡化公式获取不同灰度级对应映射后的灰度级数:

r=255*fbb=1,......,255,

其中b代表像素点映射前的灰度级数,r代表像素点映射后的灰度级数,fb代表第b灰度级对应的累计分布概率;

(4e)将裂缝带状区域图片中的像素点按照从左至右,从上至下的顺序遍历,获取其中像素值不为0的像素点,再通过(4d)获取这些不为0的像素点经过直方图均衡化后的新的像素值,把新的像素值赋值到这些不为0的像素点,并将这些新像素值的像素点组成均衡化后的裂缝带状区域图d。

步骤5,基于sobel算子获取均衡化后的裂缝带状区域图片d的梯度值g和梯度方向θ。

目前计算图像梯度所使用的算子包括:roberts、prewitt、sobel和lapacian算子,本实例中采用但不限于sobel算子,其实现如下:

(5a)获取(4e)得到的均衡化后的裂缝带状区域图片d;

(5b)通过纵向sobel算子计算图像d的纵向梯度值fy:

其中p1表示原始灰度图像中像素点的值;*表示卷积操作,[·]表示纵向sobel算子矩阵;

(5c)通过横向sobel算子计算图像d的横向梯度值fx:

其中[·]表示横向sobel算子矩阵;

(5d)通过公式<4>和公式<5>获取到的fx和fy,计算裂缝图像的梯度值g和梯度方向θ:

(5e)将步骤(2d)获取到的梯度值g和梯度方向θ分别作为裂缝图像梯度图的r通道和b通道的值,得到均衡化后的裂缝带状区域图片d的梯度图。

步骤6,提取均衡化后的裂缝带状区域图d的共生边缘z和提取裂缝点集合c。

(6a)本实例中设置阈值l=20,将均衡化后裂缝带状区域的图像d中梯度值g小于阈值l的像素点处的r通道赋值为l-1,大于阈值l的像素点值不变,获取新的梯度图;

(6b)按照从左至右,从上至下的顺序遍历新的梯度图,获取梯度值不为l-1的像素点,并将获取到的这些像素点组成像素点集合a;

(6c)本实例设置梯度差阈值g=26,在新的梯度图上,遍历像素点集合a中像素点u,并获取点u处的梯度值g1和梯度方向θ1,从点u出发并沿着u的梯度方向θ1和θ1的反方向各遍历8个像素点,获取其中梯度值不为l-1的像素点j,且像素点j处的梯度值g2满足|g1-g2|<g,则将像素点u和像素点j记做一对共生边缘点,并将像素点u和像素点j的中点位置处的像素点v记做裂缝点,继续遍历像素点集合a,直至集合a中的像素点遍历结束;

(6d)将(6c)获取到的所有共生边缘点组成裂缝带状区域图片的共生边缘集合z,并将用这些有裂缝点组成裂缝带状区域图片的裂缝点集合c。

步骤7,滤除步骤6获取的裂缝点集合c中不在裂缝内部的像素点。

(7a)计算自适应阈值y:

(7a1)统计经过直方图均衡化后的带状区域图片d中不同灰度级的像素数目,其实现如下:

suman=sumbn+1,

其中sumbn代表遍历当前像素点之前的第n灰度级的像素点个数的总和,suman代表当前第n灰度级的像素点个数的总和;

(7a2)通过解方程获取自适应阈值y,其中sumn代表第n灰度级对应的像素点的数目;

(7b)遍历裂缝点集合c中的像素点a,如果集合c中像素点a的像素值小于阈值y,则保留该像素点a,否则将该像素点a从集合c中删除,直至裂缝点集合c遍历完成。

步骤8,获取裂缝宽度信息。

(8a)按照从上至下,从左至右的顺序遍历步骤6得到的共生边缘z和步骤7得到的位于内部的裂缝点c,获取一对共生边缘点m(xm,ym),k(xk,yk)和对应的裂缝点t(xt,yt);

(8b)利用角度公式计算搜索裂缝边界方向

其中(xm,ym),(xk,yk)代表一对共生边缘点m,k的坐标,arctan代表反正切;

(8c)从裂缝点t(xt,yt)出发在8x8的领域范围内,沿着方向查找裂缝带状区域图片的梯度图g中梯度值相差最大的像素点u,将该点作为裂缝的一个边界点,并记录该点的坐标位置(xu,yu),执行(8d);

(8d)从裂缝点t(xt,yt)出发在8x8的领域范围内,沿着的反方向查找裂缝带状区域图片的梯度图g中梯度值相差最大的像素点h,将该点作为裂缝的另一个边界点,并记录该点的坐标位置(xh,yh),执行(8e);

(8e)按照欧式距离计算裂缝宽度w:

其中(xh,yh),(xu,yu)分别代表边界点u点和h点的坐标。

步骤9,分条统计裂缝宽度信息。

(9a)按照从上至下,从左至右的顺序遍历步骤2获取到的裂缝主干图q,获取像素点三色通道r、g、b数据均非0的像素点s,且将该像素点s处的b通道的数据赋值为255,r、g通道数据赋值为0,同时判断该点在3x3邻域范围内,是否存在除s点以外另一个非0点p,若存在,则执行(9b),若不存在,则继续遍历主干图q;

(9b)以点p为中心,按照从左至右,从上至下的顺序在其3x3的邻域范围内进行搜索,判断是否存在三色通道r、g、b数据均为非0的像素点l,如果存在,则将像素点l处的b通道数据赋值为255,r、g通道数据赋值为0,继续遍历,如果不存在,则执行(9c);

(9c)记录遍历过的裂缝主干点的位置信息,并加以标记裂缝编号,判断是否将裂缝主干图像中所有像素点遍历完毕,若遍历完毕则终止搜索,得到分条裂缝的位置信息,执行(9d),如没有遍历完毕,则裂缝编号加1,返回(9a);

(9d)遍历分条后每一条裂缝的位置信息和裂缝宽度信息w,并将裂缝宽度信息w按照每条裂缝的位置进行存储,获取每条裂缝的宽度信息。

下面结合附图1对本发明的仿真效果做进一步描述。

1.仿真条件:

本发明的仿真实验是在cpu主频2.7ghz、内存7.85gb的硬件环境和visualstudio2013的软件环境下进行的。

首先,在混凝土桥梁表面选取四个典型裂缝场景,并通过游标卡尺测量裂缝的长度、宽度并获取裂缝数量等参数;

然后,用图像采集设备ccd相机获取经过游标卡尺测量过的四组混凝土裂缝图像,图像的分辨率为5760*3840,每次采集面积为450mm*300mm。

2.仿真实验内容:

实验1,使用本发明对采集的第一组混凝土裂缝图像进行检测,结果如图2,其中:

图2(a)为混凝土桥梁裂缝图像,该图像采集于陕西省西安市灞河上的一座桥梁,

图2(b)、2(c)、2(d)、2(e)为本发明对图2(a)标注的四个区域进行混凝土桥梁裂缝宽度检测得到的结果图。

从图2可以看出,本发明在复杂的背景干扰中,仍然能够准确地获取桥梁混凝土裂缝图像中裂缝的宽度信息,说明本发明具有较好的抗干扰能力。

实验2,使用本发明对采集的第二组混凝土裂缝图像进行检测。

实验3,使用本发明对采集的第三组混凝土裂缝图像进行检测。

实验4,使用本发明对采集的第四组混凝土裂缝图像进行检测。

对上述实验1,实验2,实验3和实验4的四组实测数据进行统计,结果如表1所示。

表1混凝土桥梁检测一览表

表1中,“测量相对误差”中的“+”代表测量结果偏大,“-”代表测量结果偏小。

通过表1的裂缝平均宽度检测相对误差可以看出,本发明能够准确获取裂缝的宽度信息。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1