基于屋脊特征分析的裂缝检测算法

2022-02-25 02:39苑玮琦
仪表技术与传感器 2022年1期
关键词:极小值屋脊灰度

薛 丹,苑玮琦

(沈阳工业大学视觉检测技术研究所,辽宁沈阳 110870)

0 引言

公路隧道在长期使用时,衬砌表面会产生裂缝,若不及时修补,会影响隧道的安全。近年来,将视觉检测技术引入到运营养护工程中代替传统的人工检测,效率得以大幅提升。相关学者在公路隧道衬砌裂缝检测的研究中发现,隧道内较暗,要想获得高质量图像,必须外加光源。而外加光源的照射又受隧道内固有灯箱的光照及采集图像角度的影响,使得采集的图像中表现出的边缘明暗不等。因此在检测影响隧道安全的裂缝时,常因边缘梯度值选取不当而导致漏检;另外,隧道衬砌多由混凝土浇灌而成,其在图像中表现出坑洼不平的边缘,其梯度值与裂缝梯度范围有重叠,检测时会造成大量误检。

部分学者对于裂缝检测算法的研究,为避免与光照有关,则对图像分块,用局部自适应法提取梯度阈值进行检测。如文献[1]提出分块图像局部图像纹理计算的隧道裂缝视觉检测技术;文献[2]采用基于图像自适应分块下结合阈值和边缘信息的分割算法检测裂缝;文献[3]提出一种基于模板的自适应宽度的裂缝检测方法,并与块迭代算法和形态学法相结合,能更好地识别微小裂纹。文献[4]提出一种基于局部-全局聚类分析的水下大坝裂缝自动检测算法,首先在预处理后,将图像分为不重叠的图像块。然后,通过局部聚类分析来识别包含裂纹像素的图像块。其次,基于局部灰度强度,通过自适应双层阈值对图像进行二值化。以上方法分块窗口大小的选取至关重要。

另外一部分学者,从二维空间中观察裂缝呈线状特征,因此采用线检测的方法检测裂缝。如采用小波变换[5-6]、高斯线检测[7-8]、Hough变换[9]等。其中,受到Hough变换方法是将二维空间的线检测转换成一维空间的峰值检测的思想启发,本文研究发现,在一维空间中裂缝表现为屋脊的特征,且每个屋脊就是一个分块窗口,屋脊在图像中表现为灰度极值。因此提出一种基于屋脊特征分析的裂缝检测算法,即将二维空间线检测转换成一维空间的极值点检测的新思路。并在辽宁省唐岭山隧道衬砌图库中得以算法验证,取得较好效果。

1 一维屋脊特征分析

从含有裂缝的二维图像中取某行剖面,如图1所示,可观察到一维行灰度分布呈多个屋脊特征。之所以在裂缝检测中检测准确率不高是因为噪声也具有同样的屋脊特征,因此在检测裂缝时,如何准确区分哪种特征的屋脊是裂缝,哪种是噪声是检测的难点。

(a)含有裂缝的隧道衬砌图像

这种屋脊特征是由2个屋顶和1个谷底组成,在图像中表现为局部极大值和极小值。因此可以通过检测极值的方法检测屋脊。其中,定义极大值和极小值之间的灰度差值为屋脊高度。图1中与噪声相比,裂缝的屋脊出现的频次更少,屋脊高度更大,即用屋脊高度直方图可以有效去除噪声提取裂缝。因此,本文提出一种基于屋脊特征分析的裂缝检测算法。

2 本文算法

算法主要包括基于极值的屋脊特征提取、基于屋脊高度直方图的裂缝检测和基于数学形态学的裂缝提取3部分。具体如下:

2.1 屋脊特征提取

屋脊特征是由屋顶和谷底组成,因受光照影响,其对应为图像剖面一维空间中的灰度值极值。极值与最值不同,是局部概念,在大小为M×N的图像中,用I(i,j)表示第i行第j列像素的灰度值。若该点为裂缝谷值,则必然在邻域范围内,该像素的左边和右边同时存在大于(或等于)中心像素的灰度值,扩大邻域范围,分别向左、右逐个像素搜索。向左搜索时,与前一像素求灰度差值,若差值大于0,继续扩大搜索范围,直到小于0停止搜索。向右搜索的规则同上。检测裂缝屋脊(极大值)的方法,同理。

2.1.1 一维屋脊形状检测

屋脊检测方法如图2所示。

图2 屋脊检测方法示意图

以一维行搜索为例,先从以(i,j)为中心的三邻域开始搜索,若存在

I(i,j)=min{I(i,j-1),I(i,j),I(i,j+1)}

(1)

则将(i,j)记录为极小值点(i,jm0)。

扩大范围,向左逐个像素搜索,若存在

(2)

其中,M=2,3…m,则将(i,j-M)记录为极大值点(i,jM0)。

同理,继续向右逐个像素搜索,若存在

(3)

其中,N=2,3…n,则将(i,j+N)记录为极大值点(i,jM1)。

则,由相邻的极大值点(i,jM0)、极小值点(i,jm0)和极大值点(i,jM1)构成一个屋脊。按照上述规则,将检测到的一行中所有极值点分别构成极大值样本M(i)和极小值样本m(i)。

(4)

2.1.2 一维屋脊高度检测

屋脊高度即相邻两个极大值与之间的极小值的灰度差值取最大。将检测到的一行中所有屋脊高度构成梯度值样本g(i)。

gi0=max{I(i,jM1),I(i,jM0)}-I(i,jm0)

(5)

g(i)={gi0,gi1,…giq}

(6)

2.1.3 一维行、列融合检测

一维列搜索检测屋脊方式同上。将行、列检测的所有屋脊极小值样本点{m(i),i=0,1…N}、{m(j),j=0,1…M}全部记录下来,即完成了全图的屋脊检测。

2.2 裂缝检测

按行统计所有屋脊高度g(i)及其出现的频次f(i),构成屋脊高度直方图。根据混凝土噪声与裂缝的特点,当高度值越小,出现的频次越大,是噪声可能性越大;反之,裂缝的可能性越大。则用P(i)表示该屋脊是裂缝的概率为:

(7)

归一化后:

(8)

m(i)={g(i,j)|max(P(i,jm(s+1))-P(i,jms)),

0≤s≤q}

(9)

对所求的概率值排序后,筛选概率变化最大处所对应的高度值即为阈值,大于该值的极小值点即为裂缝中心点。同样,按列搜索后与行搜索结果合并得到裂缝检测结果。

2.3 数学形态学裂缝提取

高度值不明显的较弱裂缝,容易当作噪声被去除,导致检出的裂缝不是完整的一条长线条,而有断续的现象。为了提取整个裂缝,需要对断续处连接后再提取裂缝。因此包括膨胀连接、形状筛选和骨架提取3部分。

2.3.1 膨胀

将邻近断续裂缝连成线条,即用(i,j)周边区域(i+i′,j+j′)内的最大值代替(i,j)的值。

(10)

2.3.2 形态

通过长度LS和矩形度ρR筛选出细长线条的裂缝。

(11)

(12)

(13)

式中:Ne为边界线上方向码为偶数的像素个数;No为边界线上方向码为奇数的像素个数;AS为连通域中像素的总数;AR为包围该连通域的最小矩形面积。

2.3.3 用zhang的快速并行细化算法提取骨架得到裂缝[11]。

本文整体算法流程图如图3所示。

图3 本文算法流程图

3 实验结果及分析

实验测试数据集是在辽宁省唐岭山高速公路隧道现场采集的大小为300像素×300像素的衬砌图像构成。实验测试包括本文算法3个关键步骤、实验结果以及与其他方法对比实验。

3.1 屋脊特征检测实验

对图1检测的屋脊分布及屋脊极小值点的提取结果如图4所示。

(a)屋脊特征分布

从上述图像中某一行的屋脊分布图可见,通过极值点检测可以提取一行中几十个屋脊特征。其中噪声屋脊数远大于裂缝屋脊数,裂缝处的屋脊高度小于噪声处的屋脊高度。可见该屋脊特征能够一定程度的区分裂缝和噪声,为下一步提取裂缝做准备。整幅图的所有屋脊极小值点提取结果如图5所示。

图5 全图屋脊极小值点检测结果

3.2 裂缝检测实验

虽然裂缝高度值大于噪声高度值,但是受光照的影响,高度值大小不定,无法设置固定阈值,因此按照本文提出的自动选取阈值方法实验如下:

以图像某行为例,检测的高度值及统计高度值的直方图分别如图6(a)、图6(b)所示。计算每个屋脊高度可能是裂缝的概率为[0,0,0.06,0.08,0.02,0.01,0.06,0.07,0.06,0.04,0.13,0.16,0.07,0.4,0.46,0.6,1],如图6(c)所示。相邻差计算为[0,0.06,0.02,-0.06,-0.01,0.05,0.01,-0.01,-0.02,0.09,0.03,-0.09,0.33,0.06,0.14,0.4],其中最大变化作为阈值,用红星标记,提取原始图像中高度大于等于49处对应的极小值点即为裂缝中心点,如图6(d)所示。按照上述方法,对全图按行、列、两者融合后的裂缝检测结果如图7所示。

图6 某行裂缝检测关键步骤

图7 裂缝检测结果

图7(c)检测结果可见,本文算法能够在尽可能全面的保留裂缝的同时去除大量噪声,为后续裂缝提取带来方便。

3.3 数学形态学裂缝提取实验

观察图7(c)检测结果,裂缝宏观呈线条状特征,放大看有很多断续处如图8所示,通过数学形态学法处理,可最终提取裂缝结果。关键步骤如图9所示。

图8 裂缝放大处

图9 裂缝提取结果

3.4 与其他方法对比实验

对图库测试,取5张典型图像,包括横向、纵向、斜向裂缝,宽窄不一的裂缝,还有包含水印、笔画线的裂缝图像。本文提出的裂缝检测方法与马尔科夫图像分割和小波变换边缘检测方法对比结果如图10所示。

由图10可见:MRF[12](markov random filed,马尔科夫随机场)算法是一种基于统计量的图像分割算法,其特点为模型参数少,空间约束性强。其认为在图像中某一点的特征只与其附近的一小块邻域有关,而与其他的邻域无关。不仅能检测出裂缝还能检测出水印、笔画线等,误检较多;小波变换边缘检测,采用了多尺度,检测效果受尺度选择影响较大。图中观察可见,图像对比度越强,检测效果越好,裂缝较弱的同时噪声检出较高;本文算法在裂缝检出的同时,去除噪声效果明显优于其他几种算法。

图10 与其他算法检测结果对比

4 结束语

由于待检测的裂缝在图像中表现为屋脊特征,因此本文提出一种基于屋脊特征分析的裂缝检测算法。首先通过检测极值的方法检出所有屋脊;然后根据屋脊高度直方图去除噪声检出裂缝;最后用数学形态学连接断点提取完整裂缝。该算法在辽宁省唐岭山隧道现场采集的实际衬砌图库中进行的实验验证表明,裂缝检出率和噪声去除率都取得了较好效果。另外,本文提出的将图像二维空间中的曲线检测问题转换到一维空间中的极值点检测问题,为具有屋脊特征的对象检测提供一种新思路。

猜你喜欢
极小值屋脊灰度
采用改进导重法的拓扑结构灰度单元过滤技术
关于运用MATLAB求二元函数极值问题的研究
天津港智慧工作平台灰度发布系统和流程设计
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
Arduino小车巡线程序的灰度阈值优化方案
高等数学背景下的极值点偏移问题探究
谷仓山
极小值原理及应用
浙西屋脊清凉峰
多元函数的极值问题及实际案例分析