基于对角导数算子的桥梁裂缝快速识别方法转让专利

申请号 : CN201910272604.4

文献号 : CN109993742B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 高庆飞王宇李忠龙刘洋张坤

申请人 : 哈尔滨工业大学

摘要 :

本发明公开了一种基于对角导数算子的桥梁裂缝快速识别方法,属于计算机视觉技术领域,具体技术方案包括以下步骤:步骤一:输入图像并将其转化为灰度图像;步骤二:图像最外围补充零像素点进行边缘扩充;步骤三:生成卷积模板矩阵F1,F2;步骤四:循环遍历所述图像中每个像素点,选其周围9邻域作卷积操作,得到每个像素点的梯度值;步骤五:利用机logistic二元分类器,结合训练集已提取的边缘图像,得到使二元分类损失函数最小的参数值,并利用该参数预测测试集图像含有裂缝的概率值,判别所述图像是否包含裂缝;本发明解决了现今算子对于斜向裂缝边缘提取不敏感的问题;弥补了现今边缘识别算法依然需要人为干预检测裂缝的缺陷。

权利要求 :

1.一种基于对角导数算子的桥梁裂缝快速识别方法,其特征在于,包括以下步骤:步骤一:输入原始图像并将其转化为灰度图像;

步骤二:原始图像最外围补充零像素点进行边缘扩充;

步骤三:生成卷积模板矩阵F1,F2,

步骤四:循环遍历所述原始图像中每个像素点,选其周围9邻域矩阵作卷积操作,得到所述原始图像中每个像素点的像素梯度值,每个像素梯度值作为新的像素点值分别对应取代原始图片中的每个像素点放置,判断每个像素点的像素梯度值是否大于等于给定的超参数阈值,若像素梯度值大于等于阈值,则该像素点增强,像素值直接设为255,增强为白色;

若像素梯度值小于阈值,则像素点减弱,像素值直接设为0,抑制为黑色,得到新图像;

步骤五:求所述新图像的平均像素值;

步骤六:选取若干张原始图像分别建立训练集和测试集,根据步骤一至步骤五得出每张原始图像对应的新图像的平均像素值,以训练集中每张新图像的平均像素值作为输入,建立机器学习中的logistic二元分类器,结合梯度下降法得到使损失函数达到最小的二元分类器的参数θ,利用建立好的logistic二元分类器对测试集中原始图像是否含有裂缝进行快速识别。

2.根据权利要求1所述的一种基于对角导数算子的桥梁裂缝快速识别方法,其特征在于:步骤四中卷积操作具体如下:设A为边缘扩充后图像中的一个像素点的周围9邻域矩阵,利用F1和F2分别与A做卷积,得到相应的对角导数值G1和G2,再对两个对角导数值求取平方和得到该像素点的梯度值G;

G1=F1·A G2=F2·A

3.根据权利要求1所述的一种基于对角导数算子的桥梁裂缝快速识别方法,其特征在于:步骤五中,求平均像素值的公式为p:所述新图像的平均像素值;

cjk:所述新图像第(j,k)位置上像素点的像素值;

m:所述新图像宽度方向上像素点的个数;

n:所述新图像高度方向上像素点的个数。

4.根据权利要求1所述的一种基于对角导数算子的桥梁裂缝快速识别方法,其特征在于:步骤六中logistic二元分类器对图像是否含有裂缝进行快速识别的具体方法包括以下步骤:(1)选取N张已知是否含有裂缝的原始图像建立训练集,对训练集中的每张原始图像利用MATLAB中的rgb2gray命令对其灰度化;

(2)对训练集中的每张原始图像分别进行对角导数算子边缘提取得到与原始图像相对应的新图像;

(3)求训练集中每张新图像的平均像素值,并以此作为二元分类器的训练特征;

(4)给训练集每张原始图像做上标记,带裂缝的记为1,不带裂缝的记为0;

(5)结合步骤(3)与步骤(4),得到训练集图像的特征矩阵与标志矩阵XN×2:特征矩阵;pi为每张新图像的平均像素值,其中i=1,2,3,......,N,yN×1:标志矩阵,矩阵内的每个元素代表训练集里对应照片的裂缝状况,带裂缝的记为

1,不带裂缝的记为0;

(6)利用训练集的特征矩阵与标志矩阵,并结合梯度下降法,不断迭代,得到使损失函数最小的二元分类器θ的值;

(7)按照步骤(2),对测试集里的每张原始图像进行对角导数算子边缘提取得到相对应的新图像;并按照步骤(3),求测试集里每张新图像的平均像素值,建立测试集图像标志矩阵;

(8)将步骤(7)得到的测试集图像的标志矩阵与步骤(6)得到的参数向量输入到步骤(6)的预测函数中,确定每张原始图像是否含有裂缝的概率值,若概率超过50%,则视为有裂缝;否则视为不含有裂缝。

5.根据权利要求4所述的一种基于对角导数算子的桥梁裂缝快速识别方法,其特征在于:步骤六(6)中参数θ通过以下运算得出:J(θ):损失函数;

α:迭代步长;

h:预测函数;

θ:参数向量;

s:迭代步长,r:参数θ的下标;

θ1和θ0为二元分类器的两个参数。

说明书 :

基于对角导数算子的桥梁裂缝快速识别方法

技术领域

[0001] 本发明属于计算机视觉技术领域,具体涉及一种基于对角导数算子的桥梁裂缝快速识别方法。

背景技术

[0002] 桥梁,作为交通基础设施的重要组成部分,因其卓越的跨越能力以及相比于隧道经济性好、施工难度低的特点,已成为人们跨越障碍的首要选择。当今新建桥梁的高潮期即将过去,由于各种原因,桥梁病害问题日益突出,桥梁建设的中心逐渐转移到维修加固方面,已成为桥梁建设的首要课题。在桥梁使用过程中,受钢筋混凝土结构材料特性、结构设计与施工质量、结构所处环境与防护措施等因素影响,桥梁会产生各种损伤或变形,从而导致桥梁承载力不足、使用性能下降或耐久性不满足要求等问题,这些损伤或变形统称为桥梁病害。在诸如锈蚀、老化等常见桥梁损伤中,裂缝无疑是威胁性最大、普遍性最高的病害之一,因此对于桥梁裂缝的检测与及时维修加固十分必要。
[0003] 现有的桥梁裂缝检测技术包括:人为检测、设备辅助检测与计算机视觉检测。人为检测桥梁物理状况并评估其功能特性是当今主流的检测方式。首先由有经验的监测人员或结构工程师以一定频次例常巡查桥梁或灾后对桥梁进行重点检查,记录并测量裂缝的数量、存在位置、物理状况以及大小尺寸;其次回到内业进行表格填写、汇总结果,并按照规范给桥梁打分;最后根据该分值评定桥梁技术等级,按规范采取相应措施维修加固。人为检测具有操作灵活、能通过人为分析准确判断病害成因等优点。然而该方法在很大程度上依赖于检察员的专业知识及经验,检查标准因人而异,导致检查结果尤其是涉及到损伤的物理参数的检查结果具有很大主观性;其次由于桥梁数量增多、跨径加长,人为检查所需投入的人力、财力也在持续增长,而由于人的空间限制性,部分隐蔽性损伤如主梁侧面裂缝往往被忽略。
[0004] 随着现代科技水平的提升,许多先进的技术手段与科学仪器被开发出来。在桥梁检测领域,常见的桥检方法有搭设支架法、桥检车法、船上搭架法等,虽然这些方法被广泛应用于各种桥梁检测中,但其或多或少都会存在一些问题,见表1。除了这些常见的缺陷之外,对于特定环境下特定种类的桥梁,上述方法也不适用。图11的斜拉桥由于斜拉索的存在,桥检车的伸臂部分易撞到斜拉索,使用很不方便;对于索塔,由于其高度很高,不仅桥检车无法使用,搭设支架检查的难度也大、费用高。图12中的嫩江公路大桥,水深近几十米,若要采取搭设支架法检测桥梁病害几乎不可能完成;且由于上部桁架的存在,桥检车不能悬伸出去,同样也不适用。因此开发出一种新型的不受空间限制且检测效率高的桥检方法尤为迫切。
[0005] 表格1传统桥检方法及缺陷
[0006] 桥检方法 缺陷搭设支架 费用高盲目性大、效率低、安全性低
桥检车 费用高、影响通行、臂长受限、安全性低
船上搭架 费用高、安全性低、控船困难、阻碍通航
望远镜 效率低、安全性低、易疲劳、易漏看
[0007] 计算机视觉技术由于其识别准确率较高且全过程自动化不需人为干预,已成为当下最热门的检测手段之一。当下不少研究着眼于将计算机视觉技术应用到裂缝检测中,最常用的便是边缘识别算法。在图像尤其是灰度图像中,边缘指图像灰度等信息的突变处,是一个区域的结束,也是另一个区域的开始,利用该特征可以分割图像;边缘点指位于图像边缘的像素点。边缘识别技术则是不通过人为干预而完全依靠计算机算法识别并定位图像中的边缘区域,识别结果优劣随识别算法的不同会产生较大差异。裂缝作为桥梁存在的主要病害,在桥梁照片中往往呈现颜色明显不同于周围背景(不含裂缝)的特点,即像素值在裂缝面元与背景面元的像素点之间发生明显变化,因此其可被看做边缘并可利用边缘识别方法对其识别。
[0008] 边缘识别算法求图像边缘的核心思想是通过某些特定算子对图像进行卷积操作,求得图像局部区域像素值的一阶导数或二阶梯度,进而凸显出边缘的存在。常用于求取梯度的算子主要包括Sobel、Prewitt、拉普拉斯算子,这些算子通过特定的模板与图像卷积求取图像水平、竖直两方向上像素点的变化值,再通过对水平与竖直两方向上像素点的变化值求取平方和的形式求取图像中每个像素点的梯度值,得到图像边缘。应用上述算子对图像进行边缘识别所具有的共同特点是对于水平与竖直走向的裂缝检测非常敏感,而对于斜向裂缝的感知却较为迟钝,在桥梁这种表面充满斜向裂缝的结构应用上述几种仅针对水平或竖直方向的裂缝检测方法效果将会大大下降;除此之外,现今常用的边缘识别算法仅能够求取边缘,并不能根据边缘图像自动识别图像是否包含裂缝,依然需要人为判断。

发明内容

[0009] 本发明的目的是为了解决现有技术中的算子对于斜向裂缝边缘提取不敏感的问题,进而弥补现有技术中边缘识别算法依然需要人为干预检测裂缝的缺陷,本发明提供一种基于对角导数算子的桥梁裂缝快速识别方法。
[0010] 本发明的目的是通过以下技术方案实现的:
[0011] 一种基于对角导数算子的桥梁裂缝快速识别方法,包括以下步骤:
[0012] 步骤一:向MATLAB中输入原始图像并将其转化为灰度图像;
[0013] 步骤二:原始图像最外围补充零像素点进行边缘扩充;
[0014] 步骤三:生成卷积模板矩阵F1,F2,
[0015]
[0016] 步骤四:循环遍历所述原始图像中每个像素点,选其周围9邻域矩阵作卷积操作,得到所述原始图像中每个像素点的像素梯度值,每个像素梯度值作为新的像素点值分别对应取代原始图片中的每个像素点放置,判断每个像素点的像素梯度值是否大于等于给定的超参数阈值,若像素梯度值大于等于阈值,则该像素点增强,像素值直接设为255,增强为白色;若像素梯度值小于阈值,则像素点减弱,像素值直接设为0,抑制为黑色,得到新图像;
[0017] 步骤五:求所述新图像的平均像素值;
[0018] 步骤六:选取若干张原始图像分别建立训练集和测试集,根据步骤一至步骤五得出每张原始图像对应的新图像的平均像素值,以训练集中每张新图像的平均像素值作为输入,建立机器学习中的logistic二元分类器,结合梯度下降法得到使损失函数达到最小的二元分类器的参数θ,利用建立好的logistic二元分类器对测试集中原始图像是否含有裂缝进行快速识别。
[0019] 进一步的,步骤四中卷积操作具体如下:
[0020] 设A为边缘扩充后图像中的一个像素点的周围9邻域矩阵,利用F1和F2分别与A做卷积,得到相应的对角导数值G1和G2,再对两个对角导数值求取平方和得到该像素点的梯度值G;
[0021] G1=F1·A  G2=F2·A
[0022]
[0023] 进一步的,步骤五中,求平均像素值的公式为
[0024]
[0025] p:所述新图像的平均像素值;
[0026] cjk:所述新图像第(j,k)位置上像素点的像素值;
[0027] m:所述新图像宽度方向上像素点的个数;
[0028] n:所述新图像高度方向上像素点的个数。
[0029] 进一步的,步骤六中logistic二元分类器对图像是否含有裂缝进行快速识别的具体方法包括以下步骤:
[0030] (1)选取N张已知是否含有裂缝的原始图像建立训练集,对训练集中的每张原始图像利用MATLAB中的rgb2gray命令对其灰度化;
[0031] (2)对训练集中的每张原始图像分别进行对角导数算子边缘提取得到与原始图像相对应的新图像;
[0032] (3)求训练集中每张新图像的平均像素值,并以此作为二元分类器的训练特征;
[0033] (4)给训练集每张原始图像做上标记,带裂缝的记为1,不带裂缝的记为0;
[0034] (5)结合步骤(3)与步骤(4),得到训练集图像的特征矩阵与标志矩阵[0035]
[0036] XN×2:特征矩阵;pi为每张新图像的平均像素值,其中i=1,2,3,......,N,[0037] yN×1:标志矩阵,矩阵内的每个元素代表训练集里对应照片的裂缝状况,带裂缝的记为1,不带裂缝的记为0;
[0038] (6)利用训练集的特征矩阵与标志矩阵,并结合梯度下降法,不断迭代,得到使损失函数最小的二元分类器θ的值;
[0039] (7)按照步骤(2),对测试集里的每张原始图像进行对角导数算子边缘提取得到相对应的新图像;并按照步骤(3),求测试集里每张新图像的平均像素值,建立测试集图像标志矩阵;
[0040] (8)将步骤(7)得到的测试集图像的标志矩阵与步骤(6)得到的参数向量输入到步骤(6)的预测函数中,确定每张原始图像是否含有裂缝的概率值,若概率超过50%,则视为有裂缝;否则视为不含有裂缝。
[0041] 进一步的,步骤六(6)中参数θ通过以下运算得出:
[0042]
[0043]
[0044]
[0045]
[0046]
[0047] J(θ):损失函数;
[0048] α:迭代步长;
[0049] h:预测函数;
[0050] θ:参数向量;
[0051] s:迭代步长,r:参数θ的下标;
[0052] θ1和θ0为二元分类器的两个参数。
[0053] 相比于现有技术,本发明具有如下优点:
[0054] 本发明提出对角导数算子,解决了现今算子对于斜向裂缝边缘提取不敏感的问题;本发明利用机器学习中的logistic二元分类器,结合训练集已提取的边缘图像,得到原始图像是否含有裂缝的概率与新图像平均像素值的函数关系,自动判别原始图像是否包含裂缝,弥补了现今边缘识别算法依然需要人为干预检测裂缝的缺陷。

附图说明

[0055] 图1为原始裂缝图像一;
[0056] 图2为原始裂缝图像二;
[0057] 图3为经Sobel算子处理后图像一;
[0058] 图4为经Sobel算子处理后图像二;
[0059] 图5为经Prewitt算子处理后图像一;
[0060] 图6为经Prewitt算子处理后图像二;
[0061] 图7为经对角算子处理后图像一;
[0062] 图8为经对角算子处理后图像二;
[0063] 图9为从网上得到的80张含有裂缝的桥梁图像图标集合;
[0064] 图10为从网上得到的80张不含有裂缝的桥梁图像图标集合;
[0065] 图11为太阳岛斜拉桥;
[0066] 图12为嫩江公路大桥。

具体实施方式

[0067] 下面结合附图1-12对本发明的技术方案作进一步的说明,但并不局限于此,凡是对本发明技术方案进行修改或者等同替换,而不脱离本发明技术方案的范围,均应涵盖在本发明的保护范围中。
[0068] 具体实施方式一
[0069] 本发明提供了一种基于对角导数算子的桥梁裂缝快速识别方法,具体包括以下步骤:
[0070] 步骤一:向MATLAB中输入原始图像并将其转化为灰度图像;
[0071] 步骤二:原始图像最外围补充零像素点进行边缘扩充;
[0072] 步骤三:生成卷积模板矩阵F1,F2,
[0073]
[0074] 步骤四:循环遍历所述原始图像中每个像素点,选其周围9邻域矩阵作卷积操作,得到所述原始图像中每个像素点的像素梯度值,每个像素梯度值作为新的像素点值分别对应取代原始图像中的每个像素点放置,判断每个像素点的像素梯度值是否大于等于给定的超参数阈值,若像素梯度值大于等于阈值,则该像素点增强,像素值直接设为255,增强为白色;若像素梯度值小于阈值,则像素点减弱,像素值直接设为0,抑制为黑色,得到新图像;步骤五:选取若干张原始图像分别建立训练集和测试集,其中训练集为N张已知是否含有裂缝的原始图像,利用步骤四中的方法对训练集里每张原始图像求取新图形,并计算新图像的平均像素值,并以此作为二元分类器的训练特征;
[0075]
[0076] pi:第i张图像的平均像素值;
[0077] cijk:第i张图像第(j,k)位置上像素点的像素值;
[0078] mi:第i张图像宽度方向上像素点的个数;
[0079] ni:第i张图像高度方向上像素点的个数;
[0080] 步骤六:训练集中每张原始图像做上标记,带裂缝的记为1,不带裂缝的记为0;
[0081] 步骤七:结合步骤五与步骤六,得到训练集图像的特征矩阵与标志矩阵[0082]
[0083] XN×2:特征矩阵;
[0084] yN×1:标志矩阵,矩阵内的每个元素代表训练集里对应图像的裂缝状况,带裂缝的记为1,不带裂缝的记为0;
[0085] 步骤八:利用训练集的特征矩阵与标志矩阵,并结合梯度下降法,不断迭代,得到使损失函数最小的二元分类器θ的值;
[0086]
[0087]
[0088]
[0089]
[0090]
[0091] J(θ):损失函数;
[0092] α:迭代步长;
[0093] h:预测函数;
[0094] θ:参数向量;
[0095] s:迭代步长,r:参数θ的下标;
[0096] θ1和θ0为二元分类器的两个参数;
[0097] 步骤九:按照步骤四,对测试集里的每张图像进行对角导数算子边缘提取得到相对应的新图像;并按照步骤五,求测试集里每张新图像的平均像素值,建立测试集图像标志矩阵;步骤十:将步骤就得到的测试集图像的标志矩阵与步骤八得到的参数向量输入到步骤八的预测函数中,确定每张原始图像是否含有裂缝的概率值,若概率超过50%,则视为有裂缝;否则视为不含有裂缝。
[0098] 进一步的,对步骤四中,对角导数算子检测图像像素点的梯度值:设A为边缘扩充后图像中的一个像素点的周围9邻域矩阵,利用F1和F2分别与A做卷积,得到相应的对角导数值G1和G2,再对两个对角导数值求取平方和得到该像素点的梯度值G;
[0099]
[0100]
[0101]
[0102]
[0103] 式中F1:次对角线方向模板,F2:主对角线方向模板;
[0104] G1:次对角线方向导数,G2:主对角线方向导数;
[0105] A:局部图像像素矩阵,G:局部梯度。
[0106] 对原图像中每个像素点进行卷积操作,得到与每个像素点相对应的像素梯度值,再将每个像素梯度值作为新的像素点值放到该像素点的位置上,这样便得到了一张新的图像,这张新的图像称为原始图像的边缘提取后的图像。假设新图像的分辨率为5×5,[0107]
[0108] 对原始图像中每个经过对角导数算子处理后的像素点,比较其梯度值与给定阈值大小,判断是否为边缘像素点并采取抑制或增强措施,增强点像素值为255,对应白色;抑制点像素值为0,对应黑色。此时在理想情况下(原图像无噪音),若原始图像不包含裂缝,经对角导数算子处理后图像每个像素点值为0,呈全黑状态;相反,当原始图像中存在裂缝,则经其处理后图像裂缝处像素点值为255。图3-图8是对两张常见的桥梁裂缝图1和图2分别作Sobel、Prewitt与本发明提出的对角导数算子边缘提取后得到的图像,可见对角导数算子对于斜向裂缝的边缘提取能力远远高于其他两类算子。
[0109] 算法MATLAB代码如下:
[0110]
[0111] 混凝土桥梁图像在经过对角导数算子求取梯度后,其边缘特征已经被完全提取出来,现需根据图像边缘特征判断该图像是否含有裂缝。常规做法是设定阈值,边缘图像的像素值高于该阈值则含有裂缝;边缘图像的像素值低于该阈值则不含有裂缝,这种做法十分不可靠,主要是因为阈值的设定常常由人主动设置,主观性强、变异性大,也许该阈值仅适合于当前桥梁的判断,当运用到其他桥梁图像时效果可能会变差。针对此缺点,本文结合机器学习思想,利用Logistic二元分类器以每张原始经求取边缘后的新图像的平均像素值为特征,预测该原始图像含有裂缝的概率,当概率高于50%,则认为该张原始图像含有裂缝。二元分类器的参数采用训练集训练优化得到。
[0112] 实施例1
[0113] 现有未知是否含有裂缝的混凝土桥梁图像100张,应用对角导数算子结合机器学习中logistic二元分类器思想判断其裂缝与否情况,并结合图像实际情况,计算其准确率。
[0114] 具体步骤如下:
[0115] (1)在网上搜集80张含有裂缝的桥梁图像和80张不含有裂缝的桥梁图像共160张分辨率为300×300的原始图像建立训练集,对训练集中的每张原始图像利用MATLAB中的rgb2gray命令对其灰度化。
[0116] (2)对训练集中的每张原始图像进行对角导数算子边缘提取得到与原始图像相对应的新图像;
[0117] (3)求训练集每张新图像的平均像素值,并以此作为二元分类器的训练特征;
[0118]
[0119] (4)给训练集每张图像做上标记,带裂缝的记为1,不带裂缝的记为0;
[0120] (5)结合步骤(3)与步骤(4),得到训练集图像的特征矩阵与标志矩阵[0121]
[0122] (6)利用训练集的特征矩阵与标志矩阵,并结合梯度下降法,不断迭代,得到使损失函数最小的二元分类器θ的值;
[0123]
[0124] (7)按照步骤(2),对测试集里的每张原始图像进行对角导数算子边缘提取得到相对应的新图像;并按照步骤(3),求测试集里每张新图像的平均像素值,建立测试集图像标志矩阵;
[0125] (8)将步骤(7)得到的测试集新图像的标志矩阵与步骤(6)得到的参数向量输入到预测函数中,确定每张原始图像是否含有裂缝的概率值,若概率超过50%,则视为有裂缝;否则视为不含有裂缝。
[0126] 测试集共含有50张裂缝图像,50张非裂缝图像,实验结果如下表所示,该算法识别出了40张裂缝图像,45张非裂缝图像,准确率为85%,效果良好。
[0127]
[0128]
[0129]
[0130] 本实施例代码如下:
[0131]
[0132]
[0133]
[0134]
[0135]
[0136]
[0137]
[0138]