凌小康,詹 杰,麻建飞
(1.中水珠江规划勘测设计有限公司,广东 广州 510610;2.北京交通大学土木建筑工程学院,北京 100044)
裂缝是指结构在荷载或温度作用下发生开裂的现象[1]。结构开裂是造成如交通、水利水电、建筑等工程安全隐患的直接原因,对工程的建设、运维产生不利影响[2-3]。如混凝土大坝病害[4-5]、隧洞衬砌病害[6-7]都与结构开裂有关。因此,开展裂缝识别方法研究对掌握结构损伤状态,科学地评价结构在施工运维过程中安全性具有重要的意义。
目前,工程中普遍采用的裂缝识别方法仍然是人工检测。人工检测具有很大的局限性,在面对大区域裂缝识别效率低下、主观性强,而且在如道路、大坝等特殊建构筑物的检测工作过程中存在安全隐患[8]。近年来,随着机器视觉和图像处理技术的不断发展,利用数字图像进行裂缝识别已经成为裂缝检测领域常用的方法。与传统的人工检测方法相比,该方法具有效率高、准确度高、稳定等优点,可以实现裂缝及裂缝特征参数地自动化识别[9]。
利用数字图像进行裂缝识别是根据图像中裂缝特征信息对裂缝进行识别和提取的一种方法[10]。国内外学者们开展了大量研究工作,可分为两大类。一类是基于裂缝图像的特征描述的裂缝识别方法,这类方法是基于裂缝图像的各类特征进行裂缝识别,常用的有阈值分割[11]、边缘检测[12]、最大类间差法[13]等方法,此类方法对简单的裂缝图像有较好地识别精度,但是对图像背景信息的鲁棒性不强,当图像背景信息较复杂时识别精度易受影响[14]。另一类是基于深度学习的裂缝识别方法,这类方法是基于大量裂缝数据集学习的裂缝识别方法,常用的方法有机器学习[15]、神经网络[16]、深度学习[17]等方法。此类方法不仅需要采集大量裂缝的原始数据集,而且需要对大量原始数据集需要逐一进行标记工作,这就极大地降低了该方法的普适性。因此,基于裂缝图像的特征描述进行裂缝识别仍然是主要的研究方向,区域生长方法具有较强的鲁棒性和较高的识别效率,针对裂缝识别这种高精度区域识别具有较好的效果。但是目前在裂缝识别应用中还存在以下2个关键问题没有得到很好解决:一是区域生长方法需要人为选定生长点,无法满足自动化检测的需求;二是区域生长方法的识别结果受判断阈值的影响,针对复杂背景的图像无法保持较高的识别精度。
本文针对裂缝图像的识别问题,提出了一种融合注意力机制和区域生长的裂缝识别方法,通过区域生长方法获取不同阈值下的裂缝结果,引入注意力机制,根据动态阈值下裂缝识别结果为图像各像素点赋予不同的权重系数,得到较准确的裂缝识别结果,然后通过裂缝骨架长度和裂缝区域所占面积确定裂缝的特征信息,即裂缝长度和裂缝平均宽度。最后通过现场裂缝图像验证了该方法的可行性和有效性,为裂缝识别提供了一种新的方法。
区域生长方法是指将图像上具有相似性质的像素点合并到同一区域中,是计算机图形学的一种方法[18]。对于某一个区域,首先需要在区域内指定生长点作为区域生长的起点,然后按照一定的搜索原则进行搜索,将满足搜索原则的点合并到生长点这个区域中,最终得到与生长点具有相似性质的一个区域。区域生长方法相较于传统的边缘检测、阈值分割等方法具有更强的鲁棒性。区域生长方法原理见图1。
a)生长点
注意力机制是人工神经网络中模仿人类认知注意力的方法。在人类认知注意力中,人类的注意力是有限的,不可能关注到所有信息,而是有选择地关注一部分人类认为重要的信息,这种机制就是注意力机制[19]。注意力机制主要有2个关键的步骤:一个是判断需要重点关注哪一部分信息,另一个是将有限的注意力处理这部分关键信息。注意力机制原理见图2。
图2 注意力机制原理
裂缝区域与图像背景区域存在较大的灰度值差异,见图3。从图3c、3d中可以看出,大部分裂缝区域灰度值在50以下,相较于背景区域大于100的灰度值存在较大的差异。因此,只要保证生长点位于裂缝区域内,就能通过区域生长方法较完整地识别出整条裂缝。但是从图3d中可以看出背景区域也存在灰度值极小的像素点,从而影响裂缝识别精度。所以,本文引入注意力机制对区域生长识别出的裂缝结果进行处理,得到较准确的裂缝识别结果。
a)裂缝灰度图像 b)图像子区
基于区域生长方法和注意力机制,提出并在Matlab中编程实现了裂缝识别算法。裂缝检测程序识别流程主要包括图像读取、图像预处理、裂缝识别、结果显示4个部分,见图4。
图4 裂缝识别算法流程
图像的预处理是指对采集到的图像进行灰度化处理的过程。通常采集到的图像是RGB三通道图像,需要通过图像灰度化处理将RGB图像转为灰度图像,在保留裂缝信息的基础上,可以简化矩阵,提高裂缝识别算法的效率。灰度化处理见式(1):
Gray=0.299R+0.587G+0.114B
(1)
式中 Gray——图像灰度值;R——图像在红色通道的值;G——图像在绿色通道的值;B——图像在蓝色通道的值。
裂缝识别是指对预处理过后的图像进行裂缝识别的过程。采用区域生长方法,获取动态阈值下裂缝识别结果,引入注意力机制,根据动态阈值下识别结果为图像各像素点赋予不同的权重系数,经过一次阈值判断,得到较为准确的裂缝识别结果。
结果显示模块是以原始彩色图像为底图,设置识别出裂缝区域的显示颜色和透明度,将识别出的裂缝区域和原始彩色图像显示在同一个图像上。
传统的区域生长方法需要人工选定生长点,无法满足自动化检测的需求。图像中裂缝区域的灰度值与背景区域的灰度值会有差异,并且裂缝区域通常是连续的。因此,确定的生长点就需要在裂缝区域内,再根据区域生长方法将生长点周围具有相似性质的区域识别出来。
具体的生长点确定步骤如下:首先将预处理后图像中灰度较低的点识别出来,记录其灰度值和位置信息。该步骤的关键在于确定在裂缝区域内的生长点和确定合适的生长点数量。如果生长点数量过少,就会导致所有生长点位于图像背景区域中,不能正确识别出图像裂缝信息;如果生长点数量过多,就会影响区域生长的识别效率。因此确定合适的生长点数量是准确识别裂缝的关键因素之一,通常工业相机采集的图像分辨率为1 600×1 200 pixel,共216万个像素点,在满足裂缝识别准确度的前提下,尽可能地保证裂缝识别的效率。不同生长点数量下裂缝识别的准确度和时间见图5。从图中看出生长点数量越多,裂缝识别的准确度先增加,然后在一定的范围内波动;而生长点数量越多,其裂缝识别的时间越长。经过比选最终确定生长点数量为像素点总数的0.01%。
图5 不同生长点数量下裂缝识别结果
搜索方法是指在确定生长点后,对生长点周围区域的搜索方法。常用的区域生长搜索方法有2种:四邻域搜索和八邻域搜索,见图6。其中四邻域就是搜索某个点的4个方向(上、下、左、右)4个点,八领域就是搜素某个点周围所有方向(上、下、左、右、左上、右上、右下、左下)8个点。
FTFTATFTF
图7为不同搜索方法的裂缝识别结果。从图7b中可以看出,四邻域搜索方法下裂缝识别的结果存在误差,即图中红色区域部分未能识别为裂缝区域;而八邻域搜索方法下裂缝识别的结果较四邻域搜索方法下裂缝识别结果更加完整,表明八邻域搜索方法具有更好的鲁棒性,因此,本文采用八邻域搜索方法。
a)裂缝区域
(2)
(3)
(4)
根据区域生长原则可知,动态阈值的值越小时,根据区域生长得到的裂缝信息越全面,同时背景区域的误识别信息也越多,因此本文建立多个动态阈值识别裂缝信息,然后通过注意力机制处理背景区域误识别信息,提高裂缝区域识别精度。
具体步骤如下:采用不同的动态阈值进行区域生长计算,获得不同动态阈值下裂缝区域的识别结果(二值化矩阵),以动态阈值取值最小时识别出的裂缝区域为初始裂缝区域,获取初始裂缝的水平坐标范围和竖直坐标范围,即初始裂缝再图像中的范围Z,在这个范围内如果同时被所有动态阈值识别为裂缝的位置赋予最高的权重,即认为这个位置就是裂缝位置;但是如果只被某些动态阈值识别为裂缝的位置,那么就相应降低这个权重值;如果这个位置在所有动态阈值下都被识别为非裂缝区域,那么对该位置赋予最低的权重,权重取值见式(4)。最后,将权重系数矩阵乘以图像灰度矩阵,然后通过一次阈值判断,当像素值小于阈值时,判断其为最终裂缝区域,当像素值大于阈值时,判断其为非裂缝区域,注意力机制可表示为式(5):
(5)
式中w——权重系数。
根据本文提出的裂缝识别方法,选取现场裂缝图像进行裂缝提取,现场裂缝图像见图8。不同动态阈值下裂缝的提取结果见图9,可以看出动态阈值的值越小时,根据区域生长得到的裂缝信息越全面,同时背景区域的误识别信息也越多。图10为裂缝的最终识别结果,可以看出原始图像中绝大部分裂缝信息都被准确地识别。
图8 原始裂缝图像
a)动态阈值=0.02
图10 裂缝最终识别结果
获得裂缝最终识别结果后(二值图),通过结果显示模块,以原始裂缝图像为底图,设置识别出的裂缝区域显示颜色为红色,透明度为60%,将识别出的裂缝区域和原始裂缝图像显示在同一个图像上,见图11。从图中可以看出,裂缝识别的结果较为准确,原始裂缝图像中的一条主裂缝和一条次裂缝都被准确地识别出来,但是在裂缝的端部区域,存在小区域的裂缝未被识别,综合来看,裂缝识别的结果较为理想。选择不同背景和不同裂缝形状的图像进行裂缝识别,识别结果见图12。可以看出,在不同背景和不同裂缝形状下,本文算法的识别结果均较为准确,证明了本文算法的鲁棒性。
图11 裂缝结果显示
a)裂缝1识别结果
为了定性地描述裂缝信息,在获得裂缝识别结果后,计算出裂缝的特征信息(裂缝长度和裂缝平均宽度),其中裂缝长度确定方法为:提取出裂缝的骨架线,以骨架线所占的像素个数为裂缝长度。裂缝平均宽度由裂缝区域所占的像素个数除以裂缝长度确定。裂缝特征信息见表1。从表1中可以看出,本文提取裂缝的长度和平均宽度与实际结果相差不大,误差在10%左右,基本满足工程上裂缝识别的要求,表明本文融合注意力机制和区域生长的裂缝识别方法的准确性和可行性。
表1 裂缝特征信息
裂缝识别是一个复杂的图像处理问题。本文提出了一种融合注意力机制和区域生长的裂缝识别方法,以不同的动态阈值进行区域生长计算,获得不同动态阈值下裂缝识别结果,引入注意力机制,赋予裂缝区域更大的权重系数,最终得到较准确的裂缝识别结果。主要结论如下:①针对区域生长中不同阈值对裂缝识别精度的影响,引入注意力机制,融合多组阈值下裂缝识别结果,结果表明,融合注意力机制和区域生长的裂缝识别方法具有较强的鲁棒性和识别准确度;②现场图像裂缝识别结果表明,本文提出的融合注意力机制和区域生长的裂缝识别方法对较复杂的裂缝图像仍有较强的识别能力,且裂缝识别精度可靠,可为工程健康监测提供支持。