APP下载

一种改进型的PCNN路面裂缝检测方法

2021-11-18马味敏袁文婷

计算机仿真 2021年1期
关键词:灰度矩形脉冲

李 鹏,马味敏,袁文婷

(南京信息工程大学电子与信息工程学院,江苏 南京 210044)

1 引言

由于公路常年暴露在外受到风吹日晒,加上行驶车流量多,其中还存在超载的问题,导致我国公路的使用寿命远远低于国外。此时,公路路面路面裂缝检测和养护就显得尤为重要,传统的人工检测不仅仅消耗精力大,检测效率低,而且存在一定的安全隐患。基于计算机视觉的路面检测无疑是当今最高效、智能的一种检测手段。

Kamaliardakani M[1]等人采用经典的灰度阈值分割,但是容易受路面光照阴影影响。马常霞[2]等人利用非下采样 contourlet 变换结合图像形态学方法和中值滤波实现裂缝检测,但该方法计算较复杂。Lee B Y等人[3]采用形态学方法检测路面裂缝,但是裂缝受背景影响难以表现出完整的裂缝形态。刘娜[4]等人一种结合形态学和最大熵的路面裂缝检测方法,但是分割后的图像存在少量的失真。Bayoung Jik Lee 和 David Lee[5]共同提出了一种基于BP神经网络的路面裂缝分割识别的算法,将原始图像分割成众多的子图像并阈值分割,缺陷在于只能识别横向和纵向的裂缝,对于龟裂并不理想。采用机器学习的方法[6-7]能很好的自动检测裂缝,但是需要大量的裂缝数据,提取的特征具有不确定性,难以应用于实际。

脉冲耦合神经网络(pulse coupled neural networks,PCNN)作为第三代神经网络,不需要提前采集大量的数据进行训练,但是该神经网络的模型参数设置以及迭代次数的终止始终是个难题。Helmy 等人[8]在SOM聚类算法初步分类的基础上,用改进的 PCNN 增强SOM 分类结果,减少了过分割现象。宰柯楠等人[9]将遗传算法与PCNN结合来检测裂缝,遗传算法确定PCNN模型参数,虽然实现了自适应但是计算量比较大。赵慧洁等人[10]用最小误差准则来确定PCNN模型迭代中止条件,仍旧要计算每次迭代的最小均方误差,从而确定裂缝分割的最佳图像。常学锋等人[11]利用最大熵来确定PCNN的迭代终止,但是不可避免的计算每次迭代的熵,造成了计算的冗余。张平康等人[12]采用计算二维熵确定PCNN迭代结果,但没有考虑对PCNN模型参数的自适应。

本文不仅对脉冲耦合神经网路的模型进行了简化和改进,对于模型的关键参数也采取了自适应方法。PCNN的模型迭代终止条件采取简单高效的方法,对裂缝做外接矩形并统计其内部连通域。实验证明本文提出的算法相比于其算法,保证了裂缝分割的完整性的同时还具有较好的抗噪性。

2 裂缝分割算法

2.1 脉冲耦合神经网络模型以及算法

脉冲耦合神经网络[13]是根据猫的视觉神经系统发展而来的第三代神经网络,是一种单层神经网络,不需要提前进行数据训练,在各种技术领域都有一定的优势,尤其是在语音信号,图像处理等方面。传统的脉冲耦合神经网络模型复杂,需要预先设置很多参数,这一传统的模型在实际的应用过程中不太理想。所以一般解决实际问题都使用简化的脉冲耦合神经元模型,如图1所示,该模型单个神经元主要有三个部分构成,分别是输入域,耦合链接调制域,脉冲发生域。输入域有线性链接输入Lij和反馈输入Fij两部分构成。耦合连接调制域为内部活动项U,脉冲发生域是由脉冲发生器和动态阈值Fij(n)=sij所构成。

图1 简化的脉冲耦合神经元模型

(2)

Uij(n)=Fij(n)[1+βLij(n)]

(3)

Eij(n)=e-αEEij(n-1)+VgYij(n-1)

(4)

(5)

简化的脉冲耦合模型[14]按照式(1)-(5)进行迭代,n为迭代次数。由此可以看到该简化模型中反馈输入Fij就是外部刺激Sij。线性链接输入Lij与权值矩阵Wijkl和神经元在第n-1次迭代输出的Ykl有关,其中权值矩阵Wijkl表示神经元间相互影响的强弱。内部活动项Uij与反馈输入Fij和线性链接输入Lij有关,其中β是链接系数,主要用来调节神经元之间的连接强度。动态阈值E与上一次的阈值门限和脉冲输出有关,其中αE是衰减系数,Vg是放大系数。脉冲输出的值Yij取决于动态阈值和内部活动项的大小关系。当动态阈值E大于内部活动项Uij,则神经元点火,输出高脉冲导致系统反馈使得动态阈值E快速放大,相邻神经元不点火并停止输出脉冲,此时动态阈值又开始衰减,当动态阈值E小于内部活动项Uij。神经元再次点火并输出高脉冲,如此循环往复完成神经元之间的相互作用。在该简化模型中,权值矩阵Wijkl、链接系数β、衰减系数αE、放大系数Vg的设置很关键,将直接影响神经元。

2.2 改进型的脉冲耦合神经网络

对上文介绍的简化的脉冲耦合神经网络模型进一步的改进在于对式(4),如式(6)。神经元点火过程中,当动态阈值E大于内部活动项Uij,则神经元点火,输出高脉冲导致系统反馈使得动态阈值E快速放大,为了减少放大系数Vg对该模型的影响,本文方法可以重新定义一个和图像像素大小相同的零矩阵,将已激活的像素位置标记,即使得内部活动项远远小于设置的门限值,避免被激活过的神经元再次被激发,经过大量实验设置门限为10000,式(6)这一改进去掉了放大系数这个参数对模型的影响。

Eij[n]=e-αEEij[n-1]

(6)

所以在此改进的脉冲耦合神经网络模型中,所需要确定的参数有权值矩阵Wijkl、链接系数β、衰减系数αE、初始门限H和E。

2.2.1 各参数设置

1)始图像灰度化后作为脉冲耦合神经网络的外部输入。权值矩阵Wijkl一般将其设置为神经元ij和其神经元kl的欧几里德距离平方倒数[15]。本文选用双边滤波器的权重,如式(7)计算得到。

(7)

其中σd和σr分别表示空间域和像素范围域的尺度。不仅考虑到邻域欧氏距离对中心像素的影响,而且当检测到图像边缘区域时,像素值变化很大,像素范围域权重增大,可以更好的保持边缘信息。

2)链接系数β表示周围神经元与本神经元的链接强度,在图像中即为中心像素与周围像素的联系,本文采用计算灰度共生矩阵来研究灰度空间的相关特性。

①首先在图像选取一点(i,j)以及邻域像素(i+a,j+b),其灰度值分别为x和y,构成点对。则其灰度共生矩阵可以表示为

P(x,y,d,θ)={[(i,j),(i+a,j+b)|f(i,j)=x,f(i+a,j+b)=y]}

(8)

其中d为步长,即像素之间的距离;θ为生成方向,一般取0°,45°,90°,和135°。

②其次采用归一化的概率值表示灰度共生矩阵元素,即p(x,y)=p(x,y|d,θ)/s,其中s表示灰度共生矩阵各元素之和。

③最后,通过计算灰度共生矩阵的特征参数来提取邻域像素与中心像素之间的联系强度。即选用差的方差来描述邻近像素对中心像素灰度值差异的方差,纹理变化越大,其值越大。其公式如下

(9)

(10)

③初始阈值门限H取最佳分割阈值,本文取图像的最大类间方差法分割的阈值。衰减系数αE的选取直接影响该模型的动态阈值的衰减以及神经元点火,所以在此根据图像的灰度-信息量估计方法[16-17]。假设原图像的信息总量为Imax,I(O)为裂缝的信息量,I(B)为背景及噪声的信息量,t为搜索阈值,有以下公式

(11)

(12)

当t由0至255进行阈值搜索时,分割结果的二值图像的熵不断增加,H(O)不断增加,H(B)不断减少,由熵的性质可知,当目标裂缝的像素出现概率等于背景及噪声像素的出现概率时,图像的熵最大,两条曲线交点所对应的灰度值为最佳分割阈值,即H(O)=H(B)。

图2 灰度信息量直方图搜索过程示意图

此时在灰度-信息量直方图中,累计目标裂缝区域所包含的直方图面积记为A目,总的直方图的面积记为A总,满足(13)式,即可得到最佳的分割阈值。

(13)

所以假设图像中灰度值最大为gmax,上述方法得到的最佳分割阈值记为g估,所以PCNN模型的衰减系数由下式可以获得:

αE=lngmax-lng估

(14)

2.2.2 形态学处理

将PCNN每一次的迭代输出的图像作以下的形态学处理,首先是对图像进行细化,细化是将图像中的黑色部分沿着中心轴线细化成一个像素宽的线条,保留图形中黑色部分的拓扑结构,这一细化处理能够提取图像中裂缝的骨骼,其中背景噪声的骨骼也被保留。

2.2.3 迭代终止条件

随着PCNN模型的点火条件中的动态阈值衰减,神经元受邻域影响得到触发,每一次迭代中对形态学处理后的二值图像划分连通域,以面积最大的连通域作为裂缝目标,作外接矩形,并计算该矩形的面积Sn,计算该矩形中所包含的连通域的个数Nn,并与后一次迭代结果的最大外接矩形面积Sn+1比较,如果面积相差超过前者外接矩形的85%,则说明裂缝出现了过分割的断裂,应该及时停止迭代,并取上一次的迭代分割结果。如果面积相差不大,则应该比较前后两次的最大裂缝中连通域的个数,如果Nn+1大于Nn,则说明还是出现了裂缝的断裂即过分割,应该取上一次的迭代输出,否则说明需要PCNN模型继续迭代去噪,直至出现过分割并终止迭代,取前一次迭代结果并进行连通域分割去除细小噪声。算法设计流程图如图3所示。

图3 算法设计流程图

3 实验结果分析

3.1 实验过程

本文算法验证在CPU为3.00GHz,RAM为4.00GB,64位操作系统的PC机上,使用 MATLAB2014a对224*224尺寸的大量路面裂缝图片进行分割实验。

3.2 裂缝分割结果

本文算法是对PCNN模型的改进,在迭代终止的条件上通过形态学的操作,对细化后的裂缝作外接矩形,计算矩形面积及连通域个数,判断有无过分割,以确定是否迭代终止。如图4所示, 对龟裂的图a进行检测裂缝即作最大外接矩形,n为迭代次数,当n=4时,图b中最大的外接矩形远远大于图c中n=3时的最大外接矩形,即出现了过分割,取n=3时的迭代结果。在对图d的裂缝检测中,图e中n=2时的最大外接矩形与图f中n=3的矩形面积相同,此时n=3的矩形内的连通域个数增加,说明裂缝出现了过分割,取n=2时的迭代结果。

图4 外接矩形判断

由于篇幅限制,图5给出了一些具有代表性的横向,纵向,块状裂缝分割结果。可以看出PCNN最大熵算法迭代结果的图片中虽然滤除了大部分噪声,但是裂缝容易出现过分割,而PCNN灰度迭代阈值算法[18]很好的保留了裂缝的细节信息,但是抗噪性能不高,本文算法在保留裂缝形态的同时对细小噪声有很好的去除。

图5 裂缝分割算法对比

3.2 ROC曲线分析

通过三种算法实验对比,本文算法的计算量以及运行效率明显优于PCNN最大熵算法和PCNN遗传算法,接下来通过受试者工作特征曲线分析(receiver operating characteristics,ROC)[19-20]比较算法的鲁棒性。

ROC曲线是用于显示分类灵敏度和特异性的一种图形分析,本文对于裂缝检测分割的实质就是将背景噪声与裂缝目标进行分类,其中灵敏度Sn表示裂缝目标被正确检测的概率,特异性SP表示背景噪声被正确识别的概率,当误警率为零时即Sn=1且1-Sp=0,表示该曲线达到最理想的情况。当曲线越接近左上角,即曲线的下面积越大,算法检测的鲁棒性越高。灵敏度Sn和特异性SP的计算公式如式(15)和(16)

(15)

(16)

其中,A表示分割后的裂缝像素数,N表示分割后图像的总的像素数,Xi,j表示分割后的图像,Yi,j表示对原图取一定阈值后的图像。针对图5中块状裂缝图片的ROC曲线描绘如图6所示。对图5三类图片分别经过三种算法的分割结果进行ROC曲线分析,得到图7中统计三种图片的曲线下面积。综合来看,PCNN最大熵算法,PCNN灰度迭代阈值算法,本文算法的平均曲线下面积分别为:81.4%,75.1%,89.8%,本文算法高于PCNN最大熵算法8.4%,高于PCNN灰度迭代阈值算法14.7%。表明其裂缝检测分割的性能有一定的提高,去噪能力强。

图6 块状裂缝三种算法ROC曲线对比

图7 三种裂缝不同算法下的ROC曲线下面积

4 结语

本文提出简化的PCNN模型以及迭代终止条件的改进,避免了计算PCNN模型每一次迭代的熵,利用形态学相关的运算,根据裂缝外接矩形变化的特征,来判断有无出现过分割,从而决定迭代是否终止,该方法比计算模型每一次点火后的熵更简单高效,易于得到裂缝的最佳分割效果,与基于PCNN最大熵算法和PCNN灰度迭代阈值算法比较,无论是从主观的视觉效果还是客观的ROC评价曲线来看,检测的准确率也有较好的改进效果。但对于路面污迹和异物干扰的情况下,在裂缝检测提取过程中还存在进一步的改进空间。

猜你喜欢

灰度矩形脉冲
航空滤光片阵列多光谱图像条带灰度调整算法
天津港智慧工作平台灰度发布系统和流程设计
超快脉冲激光器提高数据传输速度
矩形面积的特殊求法
Arduino小车巡线程序的灰度阈值优化方案
从矩形内一点说起
大射电
巧用矩形一性质,妙解一类题
基于脉冲反射法电缆故障定位脉冲源的设计
一种基于灰度分割的调焦评价函数