冯 超
(铜陵职业技术学院,安徽 铜陵 244061)
桥梁面板的设计目的是发挥其承载能力。因此桥梁面板也极其容易损坏。对桥梁而言,最主要任务是对其进行健康监测,特别是检测有无裂纹。这些检测有助于确定桥梁所需的维护级别和相关的维修成本[1-3]。定期检测从而确保桥梁的可维护性和安全性至关重要。这是通过许多沉痛的历史教训所得出的宝贵经验。通常,进行桥梁检测时使用的方法是外观检查法,这种方法主要依靠检测人员的肉眼观察,在检测能力上受到极大的限制。而确保桥梁的安全性需要更先进的方法来进行早期检测。目前有许多检测方法可对桥梁进行检测的同时既不影响所检测桥梁的正常运行也不会对其造成损害[4-5]。这些方法通称为无损检测法。与此类似,本着无损无害的原则,本文基于主成分原理(PCA)提出了一种新的裂缝提取算法,实现了针对混凝土桥面板的自动化检查。
目前的实践证明,PCA(主成分分析法)在大型数据集的特征提取和数据缩减方面具有十分出色的效果。PCA的基本思想是减少其中存在的大量相互关联变量的数据集的维数,同时尽可能保持数据集中存在的“当前”变化。PCA在图像理解和模式识别中有许多应用,例如PCA已被广泛用于面部特征识别。由于PCA能大幅减少数据量,因此能极大的提高计算效率。
通常,PCA中使用协方差矩阵计算数据集的特征值和特征向量。而在此之前,需要先对所有图像进行归一化。其协方差矩阵计算如下所示:
(1)
对于n×n阶协方差矩阵,有n个特征向量,n个特征值:
Cai=λiai
(2)
其中:C是协方差矩阵;ai是i维特征向量;λi是该维下的对应特征值;
特征值要由大到小排序。这是因为大的特征值代表的特征向量(主要成分)带有数据集的主要信息。因此特征矩阵要是根据主特征向量p构造。与之类似,n×p阶特征矩阵内也要由大到小排序。舍弃小特征值能有效降低矩阵维数,从而加快后续计算。
在本研究中,先将所有图像投影到主要特征向量上,而后搜索相似数据。找到相似的数据后,明确其具体的相似性值。使用调整后的欧氏距离进行相似性的度量,其计算方法为:
(3)
在本研究中通过使用图像中的局部信息而不是全局信息来自动执行检测过程。
在实施PCA之前,为提高检测精度,要先提取图像特征。而在此过程中,还要找到可用直线段进行精确建模的裂纹。在本研究中,使用基于卷积的边缘检测算法来达到此目的。
垂直、水平和倾斜(±45°)结构的检测通过使用4个5×5像素的掩模实现,其数学描述为:
R(n1,n2)对应结果图像,a(k1,k2)对应掩模,b(n1-k1,n2-k2)对应输入图像。当垂直掩模与图像卷积时,纵向线性结构(最可能的纵向裂缝)会在所得图像中被突出显示。其他情况类似。垂直和水平情况时的掩模分别在式(4)和(5)中给出,式(6)和(7)为斜面情形(±45°)。
(4)
(5)
(6)
(7)
最后将所有经掩模处理图像再组合,从而在所有方向上生成线性特征。由于原始图像中有噪点,因此最终图像可能包含伪线。为避免错误识别,须用平滑滤波器与目标图像进行卷积去除伪线。本研究中使用标准的3×3平均滤波器。
在本研究中,每个图像会先被分割成16×16块。每个块为一个小图像。这是为了在较小的区域内保证投影和特征识别。若先训练M幅图像,然后通过列的堆叠将其转换为列向量,由Xi表示,最后用式(4)从整个集合计算平均图像mx:
而后,对M个图像进行归一化:Ai=Xi-mx
协方差矩阵C的特征向量用式(2)计算。其主成分会被识别为特征向量最后形成特征向量矩阵FV。随后用欧氏距离计算训练图像中的特征与被测试图像的相似性,欧氏距离:
先建立桥梁图像数据库。该数据库包含50个图像,其中25个含裂纹,25个无裂纹。在本研究中,训练集有5张含裂纹的(编号1-5)和5张无裂纹的(编号6-10)图像。而测试集含40张桥梁图像,其中11-30含裂纹,31-50无裂纹。使用3种测试方法进行实验,分别为:仅使用PCA、在PCA之前应用线性结构检测器处理、使用线性建模配合PCA,所得结果如下。
(a) 11-30号测试集 (b) 31-50号测试集
在该工况下直接使用PCA法对图像进行试验,而不做事先处理。结果会得出每个测试图像与训练集中的所有图像之间的欧式距离,其中最小距离代表与最相似图像,该图像在训练集中的编号记为识别图号。而对该所测试图像的识别结果,以C、NC表示,其中识别为裂纹记作C,识别为无裂纹记作NC。测试图像11-30本身含裂纹,图像31-50本身不含有裂纹。为使得结果更为明晰,试验结果使用填色图来进行表示,含有裂纹的图像用浅橙色填充表示,无裂纹的图像用浅蓝色填充表示,对于识别正确的结果标为绿色,识别错误的标为红色。如图1所示,从中可以得出以下结论:A.结果中将有裂纹图像误判为无裂纹图像的有12个,存在30%的“假阴性”。“假阴性”指的是将有裂纹的桥梁图像识别为无裂纹情况,与此相反的则称为 “假阳性”。B.5张无裂纹的图像被误判为有裂纹图像,存在12.5%的“假阳性”。C.总体而言此处理方法的正确识别率为57.5%。
(a) 11-30号测试集 (b) 31-50号测试集
在该工况下,训练过程为先将线性结构检测器与输入图像进行卷积,再使用平均滤波器对图像进行滤波,最后再应用PCA法对测试集图像进行识别。如图2所示,从中可以得出以下结论:A.将有裂纹图像误判为无裂纹图像的有16个,有40%的“假阴性”,比之前的结果低10%。B.正确识别了所有非裂纹图像,显示出0误报的出色结果。C.线性结构检测器与PCA一起使用使总体正确识别率提高到60%。D.工况1和2进行比较,结果显示正确识别率提高了2.5%,假阴性百分比增加到40%。这是由于裂缝建模增强了图像中存在的线条,从而导致了更多的边缘识别。
在测试之前将训练图像的每个块标识为含裂缝块和无裂缝块。块的标识结果如图3所示。而后将使用PCA法对测试图像集进行试验。
图3 对训练集中的每个图像标记为块的结果
(a) 11-30号测试集 (b) 31-50号测试集
图4中显示了最终的试验结果,可总结如下:A.5个含裂纹的图像被误识别为无裂纹图像,假阴性率为12.5%。与之前试验结果中得到的30%和40%的指标相比,下降了很多。B.6个未含裂纹的图像被错误识别,假阳性识别率为15%。与之前结果相比略有所增加,这种增加在可接受范围之内。C.总体正确识别率为73%。事实上,由于存在人工边缘(如图1所示的人造线),在所有试验方式中一些未含裂纹图像会被识别为裂纹图像,从而导致了误报的增加。
在本研究中,使用三种不同的方法对桥梁面板图像进行检测,以便使用基于PCA的框架进行自动裂纹检测。这三种方法是:(1)将PCA直接在数据上应用;(2)在检测到线性特征之后再对数据执行PCA;(3)仅在数据的小块上应用PCA进行特征检测。训练一组数量为10张的桥面图像,其中5张含裂纹,5张不含裂纹。数据库中的其他40张桥面图像用作测试图像。其中包括20张含裂纹的图像和20张不含裂纹的图像。第一种方法的结果是呈现出30%的假阴性、12.5%的假阳性和57.5%的整体正确识别率。第二种方法在PCA之前使用线性结构检测器可以将整体正确识别率提高到60%并将误报率降低到20%。第三种局部处理算法的应用将整体正确识别率提高到73%,将假阴性减少到12.5%,但假阳性会增加到15%。在实际工程中,误报结果中有错误是可以接受的。因此,从实践的角度来看,第三种方法已经取得了极大的进步。实际上对于第三种方法,可以通过增加训练集中的图像数量来显着其检测的准确性。