一种隧道裂缝最大宽度自动定位和检测方法 【技术领域】
本发明涉及一种隧道裂缝最大宽度自动定位和检测方法,尤其涉及基于摄像头获得近距离隧道裂缝图片条件下,运用计算机图形图像学的知识和技术来获得对于裂缝最大宽度点的自动定位和检测,属于图形图像应用技术的领域。
背景技术
混凝土裂缝的存在和影响是导致目前高速公路施工建设特别是隧道安全的最大隐患。正因为裂缝的存在,使空气中的二氧化碳极易渗透到混凝土内部,在潮湿的环境作用下,二氧化碳与水泥中的氢氧化钙、硅酸三钙、硅酸二钙相互作用并转化成碳酸盐,中和水泥的基本碱性,从而使混凝土的碱度降低,导致钢筋的纯化膜遭受破坏而引起锈蚀;同时由于混凝土的碳化会加剧混凝土收缩开裂,从而导致桥梁结构破坏。
随着高速公路中隧道施工和保养技术手段的翻新,在不影响影响桥梁结构外观的正常使用和耐久性的基础上,发展出了如下几种隧道裂缝及其宽度的无损检测和监测方法:
1.超声波检测:超声波法用于非破损性检测,就是以超声波为媒介,获得物体内部信息的一种方法,目前超声法已应用于医疗诊断、钢材探伤、鱼群探测等许多领域。在这些领域里,由于组成颗粒小密度大,密度分部也很均匀,所以声波能很好地传播,对其内部缺陷及其位置等都能准确地检测出来。掌握混凝土表面产生的裂缝深度,对耐久性诊断和研究修补加固对策有重要意义。测定裂缝深度,基本上都是将发射探头和接收探头,布置在混凝土同一面上的裂缝附近,但由于所选用的波形种类纵波、横波及表面波和声学参数声速、频率、相位等的不同,已有许多种具体方法。
2.声发射检测法:声发射检测法也是利用弹性波进行声学检测的具体检测方法检测裂缝,和其他方法最大的不同是只能检测正在发生的裂缝,不能检测已发生的旧裂缝,对正在发生的裂缝可检测裂缝发生的位置声发射源定位,裂缝的大小,扩展情况和种类,以及裂缝的深度等。
3.摄影检测法:摄影检测法主要用作调查混凝土表面的裂缝摄影法包括普通照相机、摄像机、放射线、红外线摄影等进行检测。由于所依赖的硬件设备大量普及带来的成本低廉和部署简便,已经成为目前商用部署的主流方法。
4.传感仪器监测:利用埋设在混凝土中的仪器进行裂缝监测,常规技术是利用卡尔逊式或弦式测缝计,其控制范围仅0.12毫米,属点式检测,由于裂缝出现的空间随机性,因此往往漏检,为了及时无遗漏地监测裂缝,必须实施大范围的、连续、分布式监测,即所谓全分布监测。
5.光纤传感网络监测:在目前竞相开发的结构监测高科技领域里,光纤传感以其独特优势居于科研开发的中心地位,它灵巧、精度高、抗电磁干扰,且可靠耐久,易于光纤传输组成自动化遥测系统。光纤传感应用于结构工程监测始于上世纪九十年代初,如航空航天器、桥梁等的温度、振动、应变检测等裂缝的发生可以用埋设在混凝土中光纤的光强变化监测,而裂缝的定位可用多模光纤在裂缝处的光强突然下降或诊断完成,通过衰减曲线上的裂缝损耗突变点,可以准确地确定裂缝的位置,针对混凝土裂缝检测的特点,研制出基于光时域反射技术的光纤裂缝传感网络,可实现桥梁混凝土结构的分布检测,凡裂缝与光纤传感网络相交,均可感知,并可定宽、定位、定向。
【发明内容】
本发明的目的是克服现有技术的不足,提供一种隧道裂缝最大宽度自动定位和检测方法。
隧道裂缝最大宽度自动定位和检测方法包括如下步骤:
1)对摄像头获取到的隧道裂缝图片进行像素级别的放大处理,并通过边缘检测算法来获得裂缝的矢量化边缘,对得到的图片进行适应性阈值的二值化操作,并对结果进行腐蚀和膨胀的去噪处理;
2)在步骤1)所得到的低噪音二值化图片基础上,进行欧氏距离变换操作,所得到的结果和步骤1)所得到的矢量化边缘结果进行匹配寻找距离最大的点作为定位点,并以它的值作为裂缝的最大宽度值;
所述的对摄像头获取到地隧道裂缝图片进行像素级别的放大处理,并通过边缘检测算法来获得裂缝的矢量化边缘,对得到的图片进行适应性阈值的二值化操作,并对结果进行腐蚀和膨胀的去噪处理步骤包括:
a)对于所获取的隧道裂缝图片,获得它对应的像素点信息集合为{Pn,m},其中n为图片的横坐标像素点数量,m为图片的纵坐标像素点数量,这里的Pi,j={Ri,j,Gi,j,Bi,j}是用来描述像素点信息的一组向量,包括了红色通道的值Ri,j,绿色通道的值Gi,j,蓝色通道的值Bi,j,这些值可以通过对裂缝图片的读取获得;
按照输入的图片尺寸大小,按照图片的格式新建一个新的相同格式的空白图片,其尺寸为原始图片尺寸大小的两倍,其对应的像素点信息集合为{P2n,2m’},这里的Pl,k’={Rl,k’,Gl,k’,Bl,k’}是用来描述新的图片像素点信息的一组向量,定义方式如Pi,j。其中Pij和Plk’之间存在着一一对应的关系,公式如下:
P2*i,2*j(R,G,B)’=Pi,j(R,G,B);
P2*(i+1),2*j(R,G,B)’=Pi+1,j(R,G,B);
P2*i,2*(j+1)(R,G,B)’=Pi,j+1(R,G,B);
P2*(i+1),2*(j+1)(R,G,B)’=Pi+1,j+1(R,G,B);
P2*i+1,2*j(R,G,B)’=(Pi,j(R,G,B)+Pi+1,j(R,G,B))/2; 1
P2*i,2*j+1(R,G,B)’=(Pi,j(R,G,B)+Pi,j+1(R,G,B))/2;
P2*(i+1),2*j+1(R,G,B)’=(Pi+1,j(R,G,B)+Pi+1,j+1(R,G,B))/2;
P2*i+1,2*(j+1)(R,G,B)’=(Pi,j+1(R,G,B)+Pi+1,j+1(R,G,B))/2;
P2*i+1,2*j+1(R,G,B)’=(Pi,j(R,G,B)+Pi+1,j(R,G,B)+Pi,j+1(R,G,B)+Pi+1,j+1(R,G,B))/4;
其中R,G和B三个通道的值都是按照公式1所示进行获得和赋值操作;
b)对放大得到的图片,调用以动态链接库形式存在的Matlab2007b中的edge函数,按照“sobel”“prewitt”“roberts”“log”“zerocross”“canny”方法及其所对应的参数进行边缘检测;对于获得的已经矢量化边缘的图片,按照整个图片的{P2n,2m’}像素统计信息,对于Pl,k’的欧式距离按照阈值Ther进行过滤来完成二值化,公式如下:
Pl,k(R=255,G=0,B=0)if||Pl,k′||≥TherPl,k(R=0,G=0,B=0)if||Pl,k′||<Ther]]>
Ther=Hper*Σl,k2*n,2*m||Pl,k′||4*n*m---2]]>
其中||Pl,k′||为计算R,G和B三个通道分量的欧氏距离,变量Hper为经验性的数据,预先指定来控制Ther的取值;接下来对于得到的二值化图片,进行腐蚀和膨胀操作,消除由于二值化带来的噪声,获得完整的二值化后的矢量化边缘图片。
所述的在步骤1)所得到的低噪音二值化图片基础上,进行欧氏距离变换操作,所得到的结果和步骤1)所得到的矢量化边缘结果进行匹配寻找距离最大的点作为定位点,并以它的值作为裂缝的最大宽度值步骤包括:
c)对在步骤1)得到的低噪音二值化图片基础上,进行欧氏距离变换操作,欧式距离变换的公式如下:
D(p):=min{d(p,q)|q∈Oc}=min{d(p,q)|I(q)=0} 3
其中D(p)表示在新生成的图D中每一点像素p的值,Oc表示在图像矩阵中的背景,I(q)表示图像I中像素点q的值,公式表明了欧氏距离变换是一种变换,它生成一个图D,其中的每一点像素p的值为它距离背景集合的最小值;
将所获得的欧氏距离变换结果图D和在步骤1)中所得的矢量化边缘图片进行匹配处理,只有当像素点Pl,k’处于矢量化边缘之间,并且D(Pl,k’)取到最大值的时候,将此Pl,k’取为定位点,并且以该点Pl,k’的欧氏距离的值为该点的像素宽度,经过像素-实际尺寸之间的比例换算关系,获得真实隧道裂缝的宽度。
本发明使用了一系列计算机图像处理知识来自动定位和检测隧道裂缝的最大宽度,获得了良好的效果,具有较高的准确度和精度。
【附图说明】
下面结合附图和具体实施例对本发明作进一步的说明。
图1为本发明所述的结果图;
【具体实施方式】
隧道裂缝最大宽度自动定位和检测方法包括如下步骤:
1)对摄像头获取到的隧道裂缝图片进行像素级别的放大处理,并通过边缘检测算法来获得裂缝的矢量化边缘,对得到的图片进行适应性阈值的二值化操作,并对结果进行腐蚀和膨胀的去噪处理;
2)在步骤1)所得到的低噪音二值化图片基础上,进行欧氏距离变换操作,所得到的结果和步骤1)所得到的矢量化边缘结果进行匹配寻找距离最大的点作为定位点,并以它的值作为裂缝的最大宽度值;
所述的对摄像头获取到的隧道裂缝图片进行像素级别的放大处理,并通过边缘检测算法来获得裂缝的矢量化边缘,对得到的图片进行适应性阈值的二值化操作,并对结果进行腐蚀和膨胀的去噪处理步骤包括:
a)对于所获取的隧道裂缝图片,获得它对应的像素点信息集合为{pn,m},其中n为图片的横坐标像素点数量,m为图片的纵坐标像素点数量,这里的Pi,j={Ri,j,Gi,j,Bi,j}是用来描述像素点信息的一组向量,包括了红色通道的值Ri,j,绿色通道的值Gi,j,蓝色通道的值Bi,j,这些值可以通过对裂缝图片的读取获得;
按照输入的图片尺寸大小,按照图片的格式新建一个新的相同格式的空白图片,其尺寸为原始图片尺寸大小的两倍,其对应的像素点信息集合为{P2n,2m’},这里的Pl,k’={Rl,k’,Gl,k’,Bl,k’}是用来描述新的图片像素点信息的一组向量,定义方式如Pi,j。其中Pij和Plk’之间存在着一一对应的关系,公式如下:
P2*i,2*j(R,G,B)’=Pi,j(R,G,B);
P2*(i+1),2*j(R,G,B)’=Pi+1,j(R,G,B);
P2*i,2*(j+1)(R,G,B)’=Pi,j+1(R,G,B);
P2*(i+1),2*(j+1)(R,G,B)’=Pi+1,j+1(R,G,B);
P2*i+1,2*j(R,G,B)’=(Pi,j(R,G,B)+Pi+1,j(R,G,B))/2; 1
P2*i,2*j+1(R,G,B)’=(Pi,j(R,G,B)+Pi,j+1(R,G,B))/2;
P2*(i+1),2*j+1(R,G,B)’=(Pi+1,j(R,G,B)+Pi+1,j+1(R,G,B))/2;
P2*i+1,2*(j+1)(R,G,B)’=(Pi,j+1(R,G,B)+Pi+1,j+1(R,G,B))/2;
P2*i+1,2*j+1(R,G,B)’=(Pi,j(R,G,B)+Pi+1,j(R,G,B)+Pi,j+1(R,G,B)+Pi+1,j+1(R,G,B))/4;
其中R,G和B三个通道的值都是按照公式1所示进行获得和赋值操作;
b)对放大得到的图片,调用以动态链接库形式存在的Matlab2007b中的edge函数,按照“sobel”“prewitt”“roberts”“log”“zerocross”“canny”方法及其所对应的参数进行边缘检测;对于获得的已经矢量化边缘的图片,按照整个图片的{P2n,2m’}像素统计信息,对于Pl,k’的欧式距离按照阈值Ther进行过滤来完成二值化,公式如下:
Pl,k(R=255,G=0,B=0)if||Pl,k′||≥TherPl,k(R=0,G=0,B=0)if||Pl,k′||<Ther---2]]>
Ther=Hper*Σl,k2*n,2*m||Pl,k′||4*n*m]]>
其中||Pl,k′||为计算R,G和B三个通道分量的欧氏距离,变量Hper为经验性的数据,预先指定来控制Ther的取值;接下来对于得到的二值化图片,进行腐蚀和膨胀操作,消除由于二值化带来的噪声,获得完整的二值化后的矢量化边缘图片。
所述的在步骤1)所得到的低噪音二值化图片基础上,进行欧氏距离变换操作,所得到的结果和步骤1)所得到的矢量化边缘结果进行匹配寻找距离最大的点作为定位点,并以它的值作为裂缝的最大宽度值步骤包括:
c)对在步骤1)得到的低噪音二值化图片基础上,进行欧氏距离变换操作,欧式距离变换的公式如下:
D(p):=min{d(p,q)|q∈Oc}=min{d(p,q)|I(q)=0} 3
其中D(p)表示在新生成的图D中每一点像素p的值,Oc表示在图像矩阵中的背景,I(q)表示图像I中像素点q的值,公式表明了欧氏距离变换是一种变换,它生成一个图D,其中的每一点像素p的值为它距离背景集合的最小值;
将所获得的欧氏距离变换结果图D和在步骤1)中所得的矢量化边缘图片进行匹配处理,只有当像素点Pl,k’处于矢量化边缘之间,并且D(Pl,k’)取到最大值的时候,将此Pl,k’取为定位点,并且以该点Pl,k’的欧氏距离的值为该点的像素宽度,经过像素-实际尺寸之间的比例换算关系,获得真实隧道裂缝的宽度。
实施例
(1)对于通过紧附在隧道裂缝上方高精度摄像头所获取的隧道裂缝图片,获得它对应的像素点信息集合为{Pn,m},其中n为图片的横坐标像素点数量,m为图片的纵坐标像素点数量,在本实施例中n=800,m=700。这里的Pi,j={Ri,j,Gi,j,Bi,j}是用来描述像素点信息的一组向量,包括了红色通道的值Ri,j,绿色通道的值Gi,j,蓝色通道的值Bi,j,这些值可以通过对裂缝图片的读取获得;
按照输入的图片尺寸大小,按照图片的格式新建一个新的相同格式的空白图片,其尺寸为原始图片尺寸大小的两倍,其对应的像素点信息集合为{P2n,2m’}。这里的Pl,k’={Rl,k’,Gl,k’,Bl,k’}是用来描述新的图片像素点信息的一组向量,定义方式如Pi,j。其中Pij和Plk’之间存在着一一对应的关系,公式如下:
P2*i,2*j(R,G,B)’=Pi,j(R,G,B);
P2*(i+1),2*j(R,G,B)’=Pi+1,j(R,G,B);
P2*i,2*(j+1)(R,G,B)’=Pi,j+1(R,G,B);
P2*(i+1),2*(j+1)(R,G,B)’=Pi+1,j+1(R,G,B);
P2*i+1,2*j(R,G,B)’=(Pi,j(R,G,B)+Pi+1,j(R,G,B))/2; 1
P2*i,2*j+1(R,G,B)’=(Pi,j(R,G,B)+Pi,j+1(R,G,B))/2;
P2*(i+1),2*j+1(R,G,B)’=(Pi+1,j(R,G,B)+Pi+1,j+1(R,G,B))/2;
P2*i+1,2*(j+1)(R,G,B)’=(Pi,j+1(R,G,B)+Pi+1,j+1(R,G,B))/2;
P2*i+1,2*j+1(R,G,B)’=(Pi,j(R,G,B)+Pi+1,j(R,G,B)+Pi,j+1(R,G,B)+Pi+1,j+1(R,G,B))/4;
其中R,G和B三个通道的值都是按照公式1所示进行获得和赋值操作;
(2)对放大得到的图片,调用以动态链接库形式存在的Matlab2007b中的edge函数,按照“sobel”“prewitt”“roberts”“log”“zerocross”“canny”方法及其所对应的参数进行边缘检测;
其中Sobel方法对应的数学表达式为:
g=[Gx2+Gy2]12]]>
={[(z7+2z8+z9)-(z1+2z2+z3)]2]]>
+[(z3+2z6+z9)-(z1+2z4+z7)]2}12---2]]>
其中Gx和Gy为一阶导数值,z1~z9为中心点z5的领域点,Sobel公式用掩模来数字化的近似了一阶倒数Gx和Gy,若中心点的g值超过某个指定的阈值,则认为该位置的一个像素是一个边缘像素。
其中Prewitt方法对应的数学表达式为:
g=[Gx2+Gy2]12]]>
={[(z7+z8+z9)-(z1+z2+z3)]2]]>
+[(z3+z6+z9)-(z1+z4+z7)]2}12---3]]>
其中Gx和Gy为一阶导数值,z1~z9为中心点z5的领域点,Prewitt公式用掩模来数字化的近似了一阶倒数Gx和Gy,同Sobel方法相比,在计算上要简单一些,但是由于没有平滑系数的作用,容易产生一些噪声。
其中Roberts方法对应的数学表达式为:
g=[Gx2+Gy2]12]]>
[(z9-z5)2+(z8-z6)2]12---4]]>
其中Gx和Gy为一阶导数值,z1~z9为中心点z5的领域点,Roberts公式用掩模来数字化的近似了一阶倒数Gx和Gy,同Sobel方法相比,它是非对称的,而且不能检测诸如45度倍数的边缘,但是由于它的简单快速,还是经常用于硬件实现中。
其中LoG方法对应的数学表达式为:
▿2h(r)=-[r2-σ2σ4]e-r22σ2---5]]>
其中r2=x2+y2,σ是标准偏差,LoG对图像卷积会有两个效果:使图像变得更加平滑;计算拉普拉斯算子,以便产生双边缘图像。然后,定位边缘就是找到两个边缘之间的零交叉。
对于获得的已经矢量化边缘的图片,按照整个图片的{P2n,2m’}像素统计信息,对于Pl,k’的欧式距离按照阈值Ther进行过滤来完成二值化,公式如下:
pl,k(R=255,G=0,B=0)if||Pl,k′||≥TherPl.k(R=0,G=0,B=0)if||Pl.k′||<Ther---6]]>
Ther=Hper*Σl.k2*n,2*m||Pl,k′||4*n*m]]>
其中||Pl,k′||为计算R,G和B三个通道分量的欧氏距离,变量Hper为经验性的数据,预先指定来控制Ther的取值,在本实施例中,该变量设定为0.67~0.75之间;接下来对于得到的二值化图片,进行腐蚀和膨胀操作,消除由于二值化带来的噪声,获得完整的二值化后的矢量化边缘图片。
(3)对在步骤1)得到的低噪音二值化图片基础上,进行欧氏距离变换操作,欧式距离变换的公式如下:
D(p):=min{d(p,q)|q∈Oc}=min{d(p,q)|I(q)=0} 7
其中D(p)表示在新生成的图D中每一点像素p的值,Oc表示在图像矩阵中的背景,I(q)表示图像I中像素点q的值。公式表明了欧氏距离变换是一种变换,它生成一个图D,其中的每一点像素p的值为它距离背景集合的最小值。
将所获得的欧氏距离变换结果图D和在步骤1)中所得的矢量化边缘图片进行匹配处理,只有当像素点Pl,k’处于矢量化边缘之间,并且D(Pl,k’)取到最大值的时候,将此Pl,k’取为定位点,并且以该点Pl,k’的欧氏距离的值为该点的像素宽度,经过像素-实际尺寸之间的比例换算关系,获得真实隧道裂缝的宽度,本方法的模块图和最终结果图见图1。