一种混凝土裂缝检测方法及装置与流程

文档序号:33185022发布日期:2023-02-04 06:06阅读:81来源:国知局
一种混凝土裂缝检测方法及装置与流程

1.本发明涉及混凝土裂缝检测技术领域,尤其涉及一种混凝土裂缝检测方法及装置。


背景技术:

2.目前,混凝土裂缝的检测方法主要有两种,第一种是利用超声波法检测裂缝,其原理是利用超声波穿透混凝土内部来探测裂缝的存在,检测者手持一对超声波收发器,将其分别置于混凝土构件两个不同的表面(对测法)或者同一表面上的不同位置(平测法),开动超声波换能器,并观察接受信号来判定裂缝,这种方法由于效率非常低,不适用于大面积的裂缝普查,主要是针对已经发现的裂缝进行宽度、深度等进一步的检测,另一种方法是当前混凝土构造物外观检查所使用的一般方法,即基于人工肉眼观察发现裂缝,然后用裂缝观测仪(或称裂缝测宽仪)测定其宽度,裂缝观测仪的主要检测部件是一个经过标定的微距摄像头,把它置于裂缝上方,算出裂缝宽度,这种方法虽然比超声波法效率高,但是对人的精力损耗很大,除了极少数严重开裂的情况,混凝土构造物一般的表面裂缝宽度大多在0.01-0.1mm量级,用肉眼观察必须十分仔细才能发现,观察者一般在二十分钟内就会感到明显的视觉疲劳,敏感度大幅降低,显然,这种方法存在其固有的缺陷,不适合大面积的裂缝普查。


技术实现要素:

3.本发明的目的在于避免现有技术的不足之处,提供a,从而有效解决现有技术中存在的不足之处。
4.为实现上述目的,本发明采取的技术方案为:一种混凝土裂缝检测方法,包括:
5.s1、获取混凝土构造物表面的图像数据;
6.s2、利用二值化方法对步骤s1中获得的图像数据进行处理,得到二值化图像;
7.s3、提取步骤s2中得到的二值化轮廓,并滤除图像中噪点;
8.s4、对步骤s3中的轮廓进行特征转换,得到轮廓特征量;
9.s5、利用级联分类器处理步骤s4中的特征量,以识别图像中的混凝土裂缝;
10.s6、将步骤s5中识别出的混凝土裂缝轮廓进行填充;
11.s7、确定步骤s6中轮廓的最大宽度的位置点p;
12.s8、确定轮廓于步骤s7中得到的p点处的主方向,沿与该主方向垂直方向测量轮廓的宽度,得到裂缝最宽位置的宽度。
13.进一步的,步骤s5中的所述级联分类器为神经网络模型,该神经网络模型经过以下步骤训练:
14.a、采集样本图像数据,样本图像数据包含混凝土裂缝以及非混凝土裂缝,并分别建立样本集;
15.b、对步骤a中的样本图像进行二值化、提取轮廓处理,再转化成包含数个特征值的有序数组,即特征转换;
16.c、将特征转换后的样本按各自类型建立样本集;
17.d、将步骤c中的样本集带入神经网络模型进行逐级训练,训练的正样本均为混凝土裂缝样本,负样本为非混凝土裂缝样本;
18.进一步的,步骤a中非混凝土裂缝包括:a、斑块、污渍或块状修补痕迹;b文字;c水痕或补痕;d施工缝;e笔画或划痕。
19.进一步的,步骤b中的数个特征值包括周长、面积比、圆率、方正率、填充度以及离散度。
20.进一步的,步骤s1中获取的图像数据包括多个,并对该多个图像数据进行拼接。
21.一种混凝土裂缝检测装置,包括:
22.图像获取模块,用于获取混凝土构造物表面的图像数据;
23.数据处理模块,用于接收所述图像获取模块的图像数据并对图像数据进行处理;
24.数据显示模块,用于显示图像数据以及裂缝检测结果。
25.进一步的,所述图像获取模块包括移动平台以及设置于所述移动平台上的摄像头,移动平台上设置有其便于移动的滚轮。
26.进一步的,所述滚轮至少为四个,且其中一滚轮为测距轮。
27.进一步的,所述图像获取模块和数据处理模块分别单独设置,且二者之间可数据连接。
28.进一步的,所述图像获取模块和数据处理模块通过数据线连接。
29.本发明的上述技术方案具有以下有益效果:本发明可以从图像中自动识别出裂缝,无需先用肉眼观察,只要手持摄像头在混凝土表面推扫一遍即可检测出裂缝并进行裂缝宽度的测量,能够将人眼解放出来,从而解决视觉疲劳的问题,同时能够大大的增加裂缝检测效率。
附图说明
30.图1为本发明实施例一种混凝土裂缝检测方法的流程图;
31.图2为本发明实施例一种混凝土裂缝检测方法中神经网络模型训练的流程图;
32.图3为本发明实施例一种混凝土裂缝检测装置的功能框图;
33.图4为本发明实施例一种混凝土裂缝检测装置测距轮三相位波形示意图一;
34.图5为本发明实施例一种混凝土裂缝检测装置测距轮三相位波形示意图二;
35.图6为本发明实施例裂缝轮廓最大宽度定义示意图;
36.图7为本发明实施例测宽方向确定示意图;
37.图8为本发明实施例特征转换二值化图像;
38.图9为本发明实施例特征转换提取轮廓示意图一;
39.图10为本发明实施例特征转换提取轮廓示意图二;
40.图11为本发明实施例特征转换提取轮廓示意图三;
41.图12为本发明实施例特征转换提取轮廓示意图四;
42.图13为本发明实施例一种混凝土裂缝检测装置结构示意图。
具体实施方式
43.下面结合附图和实施例对本发明的实施方式作进一步详细描述。以下实施例用于说明本发明,但不能用来限制本发明的范围。
44.在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上;术语“上”、“下”、“左”、“右”、“内”、“外”、“前端”、“后端”、“头部”、“尾部”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
45.如图1所示,本发明实施例所述的一种混凝土裂缝检测方法,包括:s1、获取大量混凝土构造物表面的图像数据;s2、利用二值化方法对步骤s1中获得的图像数据进行处理,得到二值化图像;s3、提取步骤s2中得到的二值化轮廓,并滤除图像中噪点;s4、对步骤s3中的轮廓进行特征转换,得到轮廓特征量;s5、利用级联分类器处理步骤s4中的特征量,以识别图像中的混凝土裂缝;s6、将步骤s5中识别出的混凝土裂缝轮廓进行填充;s7、确定步骤s6中轮廓的最大宽度的位置点p;s8、确定轮廓于步骤s7中得到的p点处的主方向,沿与该主方向垂直方向测量轮廓的宽度,得到裂缝最宽位置的宽度。
46.本发明实施例提供的混凝土裂缝检测方法基于神经网络模型实现,在运用神经网络模型对混凝土裂缝检测前需要对神经网络模型进行训练,如图2所示,训练过程包括:a、采集大量样本图像数据,样本图像数据包含混凝土裂缝以及非混凝土裂缝,并分别建立样本集;b、对步骤a中的样本图像进行二值化、提取轮廓处理,再转化成包含数个特征值的有序数组,即特征转换;c、将特征转换后的样本按各自类型建立样本集;d、将步骤c中的样本集带入神经网络模型进行逐级训练,训练的正样本均为混凝土裂缝样本,负样本为非混凝土裂缝样本。
47.具体的,步骤a中非混凝土裂缝包括:a、斑块、污渍或块状修补痕迹;b文字;c水痕或补痕;d施工缝;e笔画或划痕,步骤b中的数个特征值包括周长、面积比、圆率、方正率、填充度以及离散度。
48.步骤s1中获取的图像数据可以包括多个,获取多个图像数据后对该多个图像数据进行拼接,然后再利用同样的识别方法(包括二值化、提取轮廓、特征变换、代入级联分类器做识别等)对图像数据进行处理。
49.基于上述实施例,如图2所示,一种混凝土裂缝检测装置包括:图像获取模块101,用于获取混凝土构造物表面的图像数据;数据处理模块102,用于接收图像获取模块101的图像数据并对图像数据进行处理;数据显示模块103,用于显示图像数据以及裂缝检测结果。
50.具体的,图像获取模块101包括移动平台1以及设置于移动平台1上的摄像头2,移动平台1上设置有其便于移动的滚轮3,滚轮3至少为四个,且其中一滚轮3为测距轮,根据移动平台1移动距离,方便摄像头2获取多个图像数据,图像获取模块101和数据处理模块102分别单独设置,且二者之间可数据连接,本实施例中,图像获取模块101和数据处理模块102
通过数据线4连接。
51.具体的,本发明实施例中,移动平台1上还可以设置led灯7以及蜂鸣器8,用以提示使用者,数据处理模块102可以为卡片电脑5,卡片电脑5内置神经网络模型,数据显示模块103为卡片电脑5的屏幕6,对混凝土构造物表面的裂缝检测时,可通过两种不同的工作模式进行,其一为实时探测模式,使用者手持摄像头2扫描混凝土表面,在屏幕6上实时显示摄像画面并自动识别裂缝,当画面中出现裂缝时以led灯7闪烁和蜂鸣器8的方式予以提示,自动测量并在屏幕6中显示出裂缝的宽度,实际使用时一人持设备,另一人持纸笔记录,这种模式符合当前一般性的工程外观检查工作习惯,另一工作模式为扫描模式,使用者手持摄像头2以一定方向扫描混凝土表面,扫描过程中设备保持静默,屏幕6上实时显示摄像画面并自动识别裂缝,扫描完成后系统自动生成扫描区域的完整图像并将其中裂缝识别和标记出来,并在卡片电脑5中储存为一个文件,即沿直线方向扫过构件表面,扫描结束后生成复原图像和裂缝数据,以文件的方式存储和导出,这种模式适合于大批量的专项裂缝普查。
52.在第一种工作模式下,随着摄像头2的扫动,屏幕6上实时显示所拍摄到的图像,同时,卡片电脑5内置的神经网络模型在图像中寻找裂缝。当发现裂缝时,则测算其最大宽度,然后做出如下提示动作:屏幕6上标记裂缝的最宽位置,并显示宽度数值;led灯7点亮;蜂鸣器8发出一声提示音。
53.对于第二种工作模式,检测者须手持摄像头2部件在构造物表面以直线方向扫动,屏幕6上可以实时显示拍摄的图像,此时无需实时识别裂缝,摄像头2的帧率和曝光时长是一定的,客观上要求扫动的速度不能太快,以免造成图像模糊或者前后图像不搭接的情况,当前普通的工业级摄像头2的性能完全可以跟上人手臂一般的推动速度,由于检测者推动速度不是恒定的,因此相邻两帧图像重叠的部分大小也不一定,如果推动速度较快,重叠的部分就较小,反之则较大,这就需要利用测距轮给每帧图像定位,从而按照图像距离起始位置的距离,把各图像拼接为一张长条形的图像,即复原了被扫过的构件表面的影像。
54.需要说明的是,需拼接的两幅图像一般存在一定重复部分,由于拍摄角度和方位存在微小差异,重复部分并非完全重叠,一般而言,为了完成两幅图像的配准,需要建立将一幅图像中的像素点坐标映射到另一幅图像的数学变换关系,这被称为图像的“运动模型”,有了正确的运动模型,才能实现配准和拼接,图像的运动模型有如下四种:
55.平移运动,在最理想也是最简单的情形下,两幅图像之间只存在平移运动,像素点的映射服从仿射变换关系,而在放射矩阵中只有两个平移参数tx、ty(矩阵的其他部分与单位阵相同),故变换自由度为2,只要按照平移参数把两幅图的相对位置定好就可以完成拼接,如果两张照片只存在平移运动关系,那么要求相机自身无任何旋转,保证两幅照片的拍摄方向完全平行,且相机移动向量与被拍摄方向垂直;
56.仿射运动,与平移相似,也是基于仿射变换矩阵,但是在仿射矩阵中存在6个变换参数,即自由度为6,像素点的变换关系多了旋转、缩放和切变这三种变化,两幅照片存在仿射运动关系的条件只有一条,即拍摄方向要完全平行;
57.透视运动,它比仿射变换更有一般性,允许相机发生任意的移动和角度旋转,它的变换规律服从透视矩阵,共存在8个自由度;
58.3d运动,在前述三种运动模型种,被拍摄物体只是一个足够大的平面,真实景物是立体的,相机从不同位置,按不同方向拍摄到的是景物的不同侧面,所以导致了一种更为复
杂的图像运动模型:3d运动,但是如果3d效应较明显且不可忽略时,就要用到三维重建等更加复杂的技术。
59.在已知图像来源的前提下,图像之间的运动模型种类也是已知的,需解决的关键问题在于计算两幅图像之间的变换矩阵参数,这个环节被称为“图像配准”,本发明实施例的配准方法是基于特征点的配准,特征点就是能代表局部特征的关键点,一般都出自图像中灰度变化比较剧烈的部位,并且具有缩放和旋转的不变性,sift特征就是一种比较理想的特征,对于光线强弱、噪声以及微小的透视畸变不敏感,基于这些特性,它具有鲁棒性高、显著性强、区分度大、容易计算等诸多优点,sift特征的变换基于高斯尺度空间的差分,高斯函数如下:
[0060][0061]
式中,σ是标准差参数,取值越大,sift特征的匹配判定越宽松,在原图像m上,按照一定的卷积核尺寸,做高斯函数卷积,可得到新的卷积图像l,而两幅不同σ值的卷积图做差分,就得到差分图d,见下式:
[0062][0063]
通过高斯尺度差分,得到关键点,即候选的特征点,然后还要计算每个点附近的局部梯度,为每个点分配方向,即:
[0064][0065]
式中θp是位于p点的梯度方向,lup、ldown、lleft、lright分别是卷积图p点处上、下、左、右四个方向的相邻像素的值,通过以上步骤,每个关键点有位置、比例、方向三个要素,接下来为其构建一个描述符,不随旋转、缩放等变化而变化,这就建立了一个sift特征值,实际计算中,通过不同尺度的差分,每个点可产生多个特征值,从而组成sift特征向量,在两幅图中,如果分别存在一个点位,其sift特征向量的内积小于某个预设阈值,则认为这两个点来源于客观景物上的同一点。
[0066]
只要在两幅图像上找到的成对特征点数目多于透视变换矩阵中的参数数目(即透视运动的自由度数目),就可以基于这些特征点的坐标用最小二乘原则拟合确定透视变换矩阵,也就能实现图像的配准,至于仿射和平移运动的情形,都视为透视运动的特例,算法相同。
[0067]
对于裂缝检测器的使用场景,在理想情况下,它沿着一条直线扫描混凝土表面,因此相邻图像之间只存在x方向的平移运动。又由于测距轮的存在,我们可以把两张相片的相对位移计算出来:
[0068][0069]
式中,k是图像尺度参数,即图像中长度与真实长度的比例关系,它是与仪器整体有关的固有参数,在仪器设计和制造阶段就可通过标定算出,其数值等于图像拍摄范围的
实际长度d除以图像的像素数w,δx是两张图片拼接时错开的距离,只要获取两张照片拍摄瞬间对应的测距轮距离坐标d1、d2,就可按照上式算出横向错位距离δx。
[0070]
手持操作过程中出现微小偏转或纵向错位时,由于仪器始终紧贴被测表面,拍摄方向和拍摄距离始终不变,所以图像间不存在透视和缩放,其运动模型属于较单纯的仿射运动,畸变形式包括平移和旋转两种,于是,我们将第一幅图像称为基准图,第二幅图像称为拼接图,把它拼接到第一幅图像上的变换矩阵是一个仿射矩阵:
[0071][0072]
其中r00-r11以及tx、ty是仿射矩阵中的未知参数,因此至少需要6个方程就能解出它们,也就是需要3对已知点位。
[0073]
假设两幅相邻图像中确定了共7对点位,每一对点位坐标记作(xn,yn)
‑‑
(xn',yn'),其中n=1-7,xn、yn是拼接图上的点位,xn'、yn'是基准图上的点位,把点位坐标代入上式,可得到14个方程,形成了一个含6个未知数的线性方程组:
[0074][0075]
令:
[0076][0077]
写成矩阵方程形式,即:
[0078]
ax=b
[0079]
根据超定方程的最小二乘解原理,x的最小二乘解为:
[0080]
x=(a
t
a)-1atb[0081]
这样就得到了拼接变换矩阵,利用这个矩阵将拼接图做仿射变换,就可以直接按变换后坐标与基准图拼接在一起了。
[0082]
一般地,两幅相邻图像可以得出很多个特征点对,选取其中对应关系最为显著的若干对,理论上只要超过3对,就可以算出拼接变换矩阵,点对越多,则拼接越准确,但运算量越大,本发明实施例中选择6-8对点。
[0083]
完成了图像拼接之后,再整体进行一次裂缝识别,并把有关数据保存在一个文件中,这就完成了第二种模式的工作流程。
[0084]
更为具体的,在进行裂缝识别时,根据对大量混凝土表面照片的分析,可以把存在的视觉对象分为以下几个类别:
[0085]
裂缝:形态为细长型,分布方向不定,线性不平顺,细节上有许多曲折;
[0086]
斑块、污渍或块状修补痕迹:形状为块状,有一定的面积;
[0087]
文字:包括数字、英文字母、汉字以及其他符号图案,形态上扭曲而集中,线形细节较平顺;
[0088]
水痕、补痕:水痕是水沿混凝土侧壁流下形成的条形痕迹,补痕是施工人员修补裂缝形成的条形痕迹,两者形态相似,都具有一定的宽度;
[0089]
施工缝:在混凝土浇筑时留下的模具缝或拼接缝,形态为细长型,笔直、平顺;
[0090]
笔画、划痕:笔划痕迹形状不定,但细节上都比较平顺。
[0091]
通过以上的分析可以发现,裂缝与其他视觉对象的区别主要在于其形态方面,而不在于颜色、亮度等视觉参数,当检测器拍摄到混凝土表面图像后,经过二值化处理,可以得到各个视觉对象的轮廓数据,轮廓保留了对象所有的形态特征,我们可以对轮廓进行进一步的处理,提取出有用的特征值,这样就实现了样本的特征转换,基于轮廓,区分裂缝与其他对象的有效特征有如下几个:
[0092]
周长,轮廓的周长是轮廓边缘像素点个数之和,裂缝的周长应该大于某个阈值,因为太小的多边形不被视为是裂缝,它只是混凝土表面的一个小孔洞,因此,周长可视为一个阈值条件,周长低于这个阈值的轮廓均不被认为是裂缝;
[0093]
面积比,面积比的定义是轮廓的面积除以周长,轮廓裂缝的形态是狭长的,因而其面积比不会太大,面积比较大的轮廓很可能是水流痕迹或其他非裂缝对象;
[0094]
圆率,圆率等于轮廓的面积除以周长相同的圆的面积,取值介于0-1,它衡量的是轮廓的形状与圆形的接近程度,轮廓形状越粗胖并接近圆,圆率取值越接近1,轮廓形状越狭长越细,则圆率取值越接近0,直观上看,裂缝是狭长纤细的,它的圆率会很小,该特征对污渍对象的排除比较有效;
[0095]
方正率,方正率等于轮廓最小外接矩形的宽长比,取值介于0-1,它反映了轮廓在二维平面上的集中程度,当轮廓的分布越集中,外接矩形就越接近正方形,因而方正率越接近1,当轮廓分布越接近直线,则外接矩形形状越扁,方正率越接近0,如果裂缝走向比较直,则它的方正率很小,如果裂缝的走向有大的拐弯,则它的方正率会大一些,虽然单凭这个特征并不能判定一个轮廓是否是裂缝,但它对文字和斑迹的排除很有效;
[0096]
填充度,填充度是轮廓自身的面积与最小外接矩形的面积之比,取值介于0-1,它表达了轮廓整体形状的笔直程度,形状越笔直,填充度越接近1,形状越弯曲,则填充度越接近0,该特征对施工缝和划痕的排除尤其有效,因为裂缝在细节上是存在很多扭曲的,而施工缝、划痕则相对平直、光滑得多;
[0097]
离散度,离散度是轮廓上每个点到最小外接矩形的中心的距离平均值,它既反映了轮廓在二维平面上的集中程度,也反映轮廓的绝对尺寸大小,离散度越大,说明轮廓越点分散,整体尺寸越大,反之说明轮廓点越集中,尺寸越小,该特征对斑迹、文字、污渍等对象的排除都比较有效。
[0098]
综上所述,裂缝检测器获取到被测表面的图像后,经过二值化、提取轮廓、求取特征三个步骤,就实现了视觉对象的特征转换,对一个视觉对象是否是裂缝的判别,就转化为对一组特征值的判别。
[0099]
更为具体的,在一实施例中,将摄像头2从混凝土构造物表面获取的原始图像二值化处理之后,得到如图8所示的图像,对该图像提取轮廓得到55个轮廓,按照周长不小于30的阈值滤除图中噪点,剩下四个轮廓如图9-12所示,对该四个轮廓分别求取其特征值,结果
如下表所示:
[0100][0101]
经过以上转换,一个视觉对象就被变换为了由六个双精度数值组成的数组,这个数组就完全代表了相应视觉对象,后续的神经网络模型训练和识别都是基于这些特征数组来进行的。
[0102]
在神经网络模型训练阶段,把样本代入神经网络模型,经梯度下降获得网络参数,这些参数不属于程序代码,是保存在代码之外的文件中,以便对混凝土构造物外表面检测时使用。
[0103]
样本来自于多地公路桥梁、隧道或墙体等混凝土构造物的调研采样,需要注意的是样本采集方式要与实际使用时一致,即:采集样本要使用与实际使用时同样的设备;采集样本要与实际使用时有相同的环境,如使用相同的补充光源等;采集样本的范围应与实际使用的范围相一致,例如,如果该仪器将来仅用于桥梁,那么就应当只从桥梁而不是隧道采集样本。
[0104]
在采集照片时不但要采集裂缝照片,还要采集其他各类非裂缝对象的照片,然后进行特征提取,形成样本,单张照片中可能包含不止一个对象,则提取特征后应分别保存为样本。
[0105]
具体的,人工筛选出的样本分为六个组别,其中裂缝组是正样本集,即神经网络模型需要学习识别的样本类型,其他组(斑块组、文字组、水痕补痕组、施工缝组、笔划组)属于负样本,即神经网络模型需要学习排除的干扰对象,每个样本都是一个包含六个特征值的有序数组,原始照片可以弃之不用。
[0106]
本发明实施例中,考虑到我们的最终目的只需要知道“是”或“否”的结论,所以这实际上是一个二分类问题,可以把神经网络模型输出层设为两个神经元,第一个代表“是裂缝”,第二个代表“非裂缝”,当样本集的数量和质量一定时,神经网络的任务越简单,则所需的网络结构越简单,训练也越容易,因为输出层只有两个神经元,它的任务更加简单,准确率会更高,更为具体的,仅仅把裂缝组和另一个非裂缝组代入,比如斑迹组,通过训练获得区分裂缝与斑迹的能力,这个任务更为简单,所以,如果仅对裂缝与某一个负样本组做区分,所需的网络结构会更简单,训练效果更好,本发明实施例针对每一个负样本组训练一个专门排除它的分类器,再把他们串联起来,形成一个级联结构,每一级分类器都排除一类特定的非裂缝,而通过了所有分类器的对象,就确定为裂缝。
[0107]
级联中每一级为一个子神经网络模型,由于任务单一且简单,它们不需要很复杂
的结构,只要双隐藏层、总共四层的神经网络就可以满足需要,各个子分类器的结构、激活函数、损失函数都是相同的。它们相互的区别仅在于训练样本不同,所学习的任务能力也不同,为了利于梯度平稳下降,各神经元的激活函数可统一采用smoothrelu函数:
[0108][0109]
需要指出的是,在统计学中,有两类假设检验错误,第一类错误是“弃真”错误,即把本来是正类型的样本判定为负类型从而将其排斥,第二类错误是“纳伪”,即把本来是负类型的样本判定为正类型从而将其采纳,在神经网络模型工作时,这两类错误都表现为准确度的下降。
[0110]
本发明实施例中的每一个子神经网络模型的主要任务是排斥一类特定的非裂缝对象,通过所有子神经网络模型而不被排斥的对象才最终被判定为裂缝,每个子分类器的弃真率必须被严格控制,而允许存在一定的纳伪,因为如果某个非裂缝对象在某个子分类器中被识别为
[0111][0112]“裂缝”,即出现了纳伪,那么其还有机会被后续的分类器拒绝,而如果某个裂缝对象被错误地当作负样本类型而拒绝,该裂缝对象则就永远地被拒绝,级联分类器的这种串联结构特性,要求我们把两类错误分开对待,具体到设计层面,就是改进损失函数,对弃真错误施以更严厉的惩罚,而对纳伪错误相对放宽松,因此本发明实施例提出如下损失函数:
[0113]
该损失函数把两类错误同等看待,施以相同程度的损失惩罚,当训练样本i为裂缝时,为了对弃真错误提高损失,k被设定为大于1的值,当训练样本i为非裂缝时,应降低纳伪错误的损失,k被设定为介于0-1之间的数值,例如下式所示:
[0114][0115]
进一步的,子神经网络模型的训练应独立进行,由于每一子神经网络模型对应着一个特定的非裂缝对象,因此其训练的正样本统一都是裂缝样本组,而负样本则应使用对应的样本组。
[0116]
本发明实施例中测距轮的功能是随着轮的转动实时测定累计运动距离,在直线运动中,这个累计距离等价于仪器的一维坐标,从而可以给照片定位,便于拼接,测距轮本质上是一个增量型编码器,有两个或多个相位,每个相位对应着一个输出针脚,输出高低电平组成的方波,如图4所示为本发明实施例测距轮正转时的三相位波形,如图5所示为本发明实施例测距轮反转时的三相位波形,z相位用于判断转动启动,a、b相位中任意一个都可以测定轮轴转动的圈数,从而换算为距离,而a、b相位结合使用的目的是测定转动方向,当a相位提前b相位1/4周期,即为正转,当a相位落后b相位1/4周期,则为反转,三个相位对应着三根数据线4,连接于卡片电脑5的gpio针脚上,在程序中通过中断事件函数读取各相位高低电平的变化,从而实现计数测距。
[0117]
进一步的,由于测距轮传输到卡片电脑5gpio针脚的是几个相位的电平值,因此我们通过程序获取的实际上是各相位的周期数,通过周期数换算为测距轮滚动过的距离,这
依赖于事先对测距轮标定,也就是确定如下公式中的k值:
[0118]
s=k
·n[0119]
其中s是小轮滚动过的总计距离,单位为米,n是累计周期数,无量纲,k是标定系数,其含义是每一个周期对应的实际移动距离。
[0120]
测距轮在滚动时输出方波形态的高低电平,通过gpio针脚读取电平值,从而判断波形,计算周期数,gpio针脚的监听是通过内置的中断函数来实现的,当其被触发时,芯片立即跳出正在进行的函数,进入另一个函数,执行完成后再回到原来的跳出点,继续进行原来的工作,中断函数有两个要素,一是中断条件,二是回调函数,中断条件是指发生中断事件所需要的条件,回调函数是指中断发生后要执行的代码,本发明实施例基于arduino板卡,其c语言中断函数格式为:
[0121][0122]
其中,interrupt参数是监视的gpio针脚号,function是回调函数名称,mode是针脚电平变化的类型,有以下几个常量枚举选项:
[0123]
(1)low:当针脚为低电平时,触发中断;
[0124]
(2)change:当针脚电平发生改变时(高变低或者低变高),触发中断;
[0125]
(3)rising:当针脚由低电平变为高电平时,触发中断;
[0126]
(4)falling:当针脚由高电平变为低电平时,触发中断。
[0127]
在一个方波周期中,高电平和低电平各出现一次,我们可以把高电平区间的起点定为周期起点,把低电平区间的终点定位周期终点,每次低电平变为高电平时,就是一个新周期的开始,每次有低变高事件出现时就触发中断,在主要工作函数中,只要引用t的值,就等价于累计的编码周期数。
[0128]
编码器的分辨率规定了测距轮旋转360度产生的方波数,因此,一个方波周期对应的转动角度是可计算的,进而,在已知测距轮直径的前提下,可以算出一个方波周期对应的移动距离,也就是标定系数k:
[0129][0130]
式中,c是小轮周长,它等于π乘以小轮直径d,ppr是编码器分辨率,在实际检测过程中,测距轮轮周材质一般是橡胶,有一定的弹性,当检测者把仪器按压在被测面上,直径d会有微小的压缩,从而导致一定的误差,假设直径6cm的小轮被挤压到直径5.9cm,产生了1.67%的误差,k值也将产生同等比例的误差,实际距离s与k为线性关系,从而把同等比例的误差传递给s,假设一张照片的横向拍摄宽度是10cm,相邻照片重叠5cm,则重叠部分的宽度误差为5*1.67%=0.0835cm,如果照片横向像素数为1000,那么这个误差反映在图像上就是8像素,可见,小轮直径的误差会直接影响照片定位,本发明实施例降低误差的方法是直接通过实测距离来标定k值,在一个平面上做好距离标尺,同时在轮圈上也做一个标记,从位置(a)开始计周期数,滚动到位置(b),此时测距轮刚好旋转了一整圈或者多个整圈,为了减少误差,整圈数越大越好,然后,在平面上量取小轮滚动的距离s,除以程序里读取的方波周期计数n,即得到k值,如果平面距离标尺的读数误差是一定的,那么圈数c越大,k的相对误差就越小,由于在标定时就模拟了实际使用的工作状况,因此在一定程度上将系统误
差通过标定消除掉,实测法是更推荐采用的测距论标定方法,并且小轮的标定圈数c应尽可能大。
[0131]
本发明实施例中,在对混凝土构造物表面裂缝检测时,当某个轮廓被识别为裂缝后,需要通过图像测定和标记其最大宽度,在图像上测定的宽度是以像素为单位,本发明实施例中的屏幕6,一个像素代表的实际宽度事先标定,因此,只要测定了裂缝的图像宽度(单位为像素),就能换算成裂缝的实际宽度(单位为毫米),在已知裂缝轮廓图形的前提下,测算其宽度分为两个步骤,一是找到裂缝的最宽位置,二是测定该位置的宽度。
[0132]
对于最大宽度的数学定义如图6所示,以轮廓内任意一点p为圆心作圆,使圆不超出轮廓边界,所得到的最大圆半径为r,在轮廓内的所有点中,r值最大的点pmax就是轮廓最宽位置,相应的最大圆直径dmax就是轮廓的最大宽度,基于距离变换,可直接获取轮廓中近似的最宽位置,用上图所示的轮廓为例,首先将轮廓填充,然后作距离变换,得到灰度图,其中像素点的灰度值定性地反映了原图中相应点到最近的黑色点的距离,因此灰度最大的点就是原图轮廓的最宽位置。
[0133]
本发明实施例中,如图7所示,确定裂缝轮廓的最宽位置p后,经过p做一条直线l,它与p附近的轮廓相交于a、b两点,如果直线l垂直于裂缝在p点的主方向,那么ab的距离就是裂缝的最大宽度,此时直线l被称为p点处的“测宽线”。
[0134]
基于同一位置p,沿不同的方向去测量,得到的轮廓交点是不同的。只有沿垂直方向测量,才能得到裂缝的宽度,在上图中,箭头所示的方向是裂缝轮廓在p点的主方向,垂直于主方向的直线l是测宽线,而不垂直的直线l’则不是本发明需要的,由于裂缝形态是扭曲拐弯的,所以不同点位对应的主方向不同,因此,要规定p点附近的一个邻域范围,根据这个邻域内的轮廓图形来计算主方向,为了避免邻域本身的形状对主方向计算造成干扰,邻域应取圆形或近似圆形,由于裂缝轮廓比较狭窄,故邻域不宜定得太大,本发明实施例中可取3像素或5像素作为邻域圆半径,把邻域内的像素点看作一个点集,以每个点的灰度值为权重,作加权线性回归,得到一条回归直线,这就是主方向所在的直线,它的经过点p的垂线就是测宽线,所谓加权线性回归,即灰度越高的点权重越大,在一般的基于二维点集的线性回归算法中,具体做法是把点位按照其灰度值复制若干份,并加入到点集中,然后再回归,例如,某点灰度值是25,则把该点复制25-1=24份,即成为24个相同的点,加入点集,当然,直接按灰度值复制可能导致点集体量太庞大,把灰度值除以50再复制,这相当于把0-255的灰度范围等分为5个区间,0-49区间不复制,50-99区间复制1份,以此类推,灰度最大的区间复制4份,这同样可以达到加权效果,且不至于复制太多的点,二维点集线性回归原理是基于纵坐标的最小二乘法,但是当点集分布方向接近竖直时,这种方法就失效了,理论上严密的线性回归应是基于点到回归线垂直距离的最小二乘法,不过这增加了代码编写的复杂度,比较简便的做法是先分别找出点集横坐标、纵坐标的最大最小值,分别相减,得到点集在横、纵方向上的分布宽度,如果在横方向上分布较宽,则认为回归线更接近水平方向,采用原来的基于纵坐标的最小二乘法,如果在纵方向上分布较宽,则认为回归线更接近竖直方向,采用基于横坐标的最小二乘法。
[0135]
具体的,确定测宽线,并得到裂缝在图像上的宽度(单位为像素)后,再按照标定结果,把像素转换为毫米单位,即得到裂缝的宽度,并于屏幕6上进行显示。
[0136]
本发明的实施例是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发
明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显而易见的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1