基于PCA 降噪的Canny 算法在建筑裂缝检测中的应用

2020-07-09 07:45杨国庆方振江
天津城建大学学报 2020年3期
关键词:像素点滤波边缘

杨国庆,吴 昊,方振江

(天津城建大学 控制与机械工程学院,天津300384)

建筑墙体都会出现裂缝,建筑物的健康状况可以通过裂缝的变化进行评估,所以裂缝变化检测是一项重要监测工作.所采集的裂缝图像如图1 所示,由图1可见,首先受损墙面为水泥墙面,无损墙面便携带大量噪声干扰,再加上常年日晒雨淋导致结构老化出现裂缝且裂缝所处背景区域形成大量面积较小并向下凹陷的坑,造成采集图像包含大量噪声干扰. 其次建筑裂缝宽度小,背景颜色与裂缝颜色相近导致图像对比度较低,部分裂缝存在自然间断、分叉,导致分割难度大.裂缝图像所具有的独特特征要求对其进行处理的图像算法需要具有出色的降噪能力和边缘分割能力.

图1 裂缝图像

刘丽霞等[1]提到Sobel,Prewitt 算子对噪声敏感,边缘厚且不准确;LoG 算法采用拉普拉斯滤波,会造成图像边缘方向模糊;Canny 算法不易受噪声影响,采用双阈值检测强边缘和弱边缘,由于采集到的裂缝图像往往带有噪声,并且需要检测裂缝的边缘,所以优先考虑使用Canny 算法.徐欢等[2]将Canny 算法用于路面裂缝的检测,实现了对路面裂缝实时、准确的检测.Anand 等[3]改进传统Canny 算法得到DGW-Canny 算法优化了细节特征的提取,但该方法使用传统高斯滤波对图像进行降噪,降噪效果一般且图像细节失真.在对图像进行降噪的过程中,Canny 算法在避免假边缘出现的同时会丢失边缘信息,相对的,保证边缘信息完整的同时会出现错误的边缘信息.可见传统Canny算法在处理裂缝检测这类对精度有一定要求的任务时存在边缘丢失的问题.随着机器学习的不断发展,机器学习中的方法被应用到图像处理中,张娟[4]使用主成分分析的方法,优化了图像的降噪效果.

本文根据裂缝特有的图像特征,针对性地改进传统Canny 算法,使用PCA 算法进行降噪,优化其在建筑裂缝检测应用中的效果.

1 算法介绍

1.1 主成分分析(PCA)

PCA 可降低原始输入的数据的维度,原始数据的元素之间线性无关,可将原始输入数据的主要成分作为降维后原始数据的表示.在降维的过程中对主要成分只提取不变换,所以PCA 在降维的同时不会出现失真现象.图2 为图1 的直方图表示,可见图中的噪声干扰类似高斯噪声且独立存在.

图2 裂缝直方图

PCA 算法可以在除去噪声的过程中很好地保存原始图片的特征,原理如下.

设样本矩阵为G∈RN×W,计算G的协方差矩阵C,即

特征分解得C的特征值矩阵A,同时存在矩阵P,使得PCPT=A,从大到小取前个P特征组成对角矩阵A1,与其对应的特征向量矩阵为P1.则可以求得PCA变换后的矩阵G1,即

将原始数据从W维降到了P维.A1为对角矩阵,所以每个维度空间相互独立.

1.2 Canny 边缘检测算法

Canny[5]于1986 年提出Canny 算子. 该算法使用二维高斯函数的一阶导数对图像待滤波的像素点及其邻域点的灰度值进行加权平均,以达到图像降噪的效果.二维高斯函数如下

然后使用卷积算子sx和sy进行卷积得出x、y轴的梯度方向和幅值,卷积算子如下式

再根据梯度方向上的幅值大小确定边缘像素,完成对原始裂缝图像裂缝边缘信息的提取.

2 基于PCA 的Canny 降噪模型

2.1 局部像素分组

将原始裂缝图像即含噪裂缝图像用Iv表示,I为不含噪裂缝图像,v为噪声,Iv的表达式为

通过计算求估计,使与I近似相等.

设置一个K*K的方块矩阵X,设X =[x1,x2,…,xi]T,其中由式(5)可得

所以可得

提取X中的训练集,计算PCA 转换矩阵.以X为中心设置一个L*L且(L>K)大小的训练块.如图3 所示.Xv中每一个xkv共有(L-K+1)2个训练样本.

在训练窗口中,用y0v表示被噪声污染的目标块中像素,用yiv表示第i个被噪声污染的K*K训练块中像素,其中i=1,2,…,(L-K+1)2-1,n=K*K.ei为第i个训练块与目标块的欧氏距离,其表达式为

图3 LPG 模型

设置y0和yi分别为与y0v和yiv相关的无噪声像素.由式(5)可得,y0v=y0+σ2,yiv=yi+σ2.其中σ 为噪声的方差,由此可以将式(7)改写成下列形式

当ei小于某个阈值T时,可以将训练块与训练窗口近似相等,即

结合式(8)可得

则训练块中的像素可以作为训练样本.

为保证足够多的训练样本,规定训练样本数l必须满足以下条件

其中:c为常数,取值为[8,10].如果不满足以上条件则规定最佳样本数目c·m为实际样本数目.

2.2 基于局部像素分组的PCA 降噪

PCA 可以降低处理前后数据维度间的相关性从而提取主要成分.由于噪声与需要提取目标不相关,可见PCA 算法具有降噪的效果.

首先计算训练样本Xv的平均值uk和均值公式如下

由于噪声vk的数学期望为0,所以对训练样本Xv中心化,可以得到即

同理该样本的无噪声污染像素块X:

然后计算的协方差矩阵,由于图像受噪声污染,所以无法直接计算,需要先计算的协方差矩阵表达式如下

其中:COVv为噪声的协方差矩阵,COVv为一个m*m的特征值为σ2的对角矩阵,可以改写为σ2I,其中I为单位矩阵.可以推断出有相同的特征向量Q,并且Q是正交矩阵.改写式(15)可得

最后对去中心化便可以得到降噪后的图像I.

2.3 基于Canny 的图像分割

设置图像I在x轴上的偏导数为P(i,j),公式如下

设置图像I在y轴上的偏导数为Q(i,j),即

已知P(i,j)和Q(i,j)可以计算I[i,j]的幅值μ(i,j)和方向θ(i,j),即用圆周的四个扇区:0°,-45°,90°,+45°,表示不同的梯度方向如图4 所示.

图4 梯度方向示意

计算得图像的梯度和幅值,通过梯度方向上像素幅值的比较判断该像素点是否为边缘点.使用3×3 的核进行抑制运算.如果当前像素的幅值比梯度方向上前后两个像素幅值中的任意一个低,该像素点为非边缘点,抑制.反之则表示该像素为边缘点,保留.

选择高低两个阈值TH和TL,将小于TL的像素点赋值为0,对于介于高低阈值之间的像素点则转而判断其相邻像素点是否为1,相邻像素为1 则该像素为1,否则为0.大于高阈值的像素点赋值为1.

2.4 算法流程

本文算法先对输入图像进行局部像素分组,之后使用PCA 做降噪处理,最后利用Canny 算法进行分割,算法流程如图5 所示.

3 仿真实验

在对图像进行降噪的过程中,训练窗口的边长设置为20 像素,训练块的边长设置为3 个像素.由于本实验中采集的原图背景为水泥墙面,所含噪声与高斯白噪声相似,所以设置噪声方差为20,根据多次试验的结果,滤波阈值为25.

在对图像进行边缘检测时,高低阈值选取由图像中的最大像素点max 决定,低阈值为0.1*max,高阈值为0.3*max.

将试验结果分别与采用高斯滤波的传统Canny算法、采用邻域平均法降噪Canny 算法、采用中值滤波的Canny 算法、采用自适应滤波的Canny 算法的处理结果相比较.降噪效果如图6 所示.

图5 基于PCA 降噪的Canny 算法流程

图6 降噪效果

图6 中a 为原图,b 为采用高斯滤波降噪的效果图,c 为采用邻域均值法处理后的效果图,d 为采用中值滤波降噪的效果图,e 为自适应滤波后的效果图,f为PCA 滤波之后的效果图.使用峰值信噪比(PSNR)对处理结果进行评判,结果如表1 所示.

表1 不同方法所得PSNR

试验证明PCA 算法在对建筑裂缝特别是背景为水泥墙面的裂缝进行降噪处理时可以取得很好的效果. 边缘检测结果如图7 所示.

图7 处理结果

图7 中a 为本文基于PCA 降噪Canny 算法处理结果,从b 开始依次为传统Canny 算法、采用邻域均值滤波的Canny 算法、采用中值滤波的Canny 算法、采用自适应滤波的Canny 算法的处理结果.

实验证明,本文中提出的基于PCA 降噪改进的Canny 算法对建筑裂缝有理想的处理效果.相比于传统Canny 方法,本文所提基于PCA 降噪的Canny 算法有效减少了噪声干扰,优化了分割效果.

4 结 语

针对建筑裂缝的图像特征将PCA 降噪方法与传统Canny 相融合,通过分解原图像的协方差矩阵得到特征值和特征向量.将特征值由大到小排序,过滤掉原图像中的次要成分,提取图像中的主要成分,完成对图像的降噪处理,然后使用Canny 对裂缝进行边缘检测.通过试验结果证明,本文提出的基于PCA 降噪的Canny 方法在处理噪声污染严重的建筑裂缝图像时,可将峰值信噪相比传统Canny 提高2.62 dB,从分割的结果图可明显看出本文所提算法的效果要优于传统Canny 算法,为之后的检测工作提供必要的依据.

猜你喜欢
像素点滤波边缘
船岸通信技术下舰船导航信号非线性滤波
图像二值化处理硬件加速引擎的设计
基于局部相似性的特征匹配筛选算法
一种考虑GPS信号中断的导航滤波算法
高效LCL滤波电路的分析与设计
一种X射线图像白点噪声去除算法
基于canvas的前端数据加密
一张图看懂边缘计算
合成孔径雷达图像的最小均方误差线性最优滤波
在边缘寻找自我