于小宁, 冯 蓉, 郭 浩
(1.西安工业大学科技处, 陕西 西安 710032;2.长安大学经济管理系, 陕西 西安 710032; 3.陕西电力建设总公司, 陕西 西安 710032)
随着高等级公路建设的快速发展以及路面质量监控体系的完善,相应要求高的检测水平.由于沥青路面易受环境影响而产生裂纹,从而影响了高速公路的质量和使用寿命.在高速公路路面的养护工作中必须定期对路面裂纹进行检测.目前国内检测公路路面的手段主要是人工检测,不但劳动强度大、检测速度慢,而且影响正常的交通[1].此外,基于PC机通用CPU检测裂缝的方法难以满足大规模路网检测对时效性的要求.由于沥青路面图像包含的信息内容复杂,且图像数据量不断增加,使得目前已经产品化的基于激光测距和数字图像处理的多功能路面智能检测车的检测结果难以完全满足实际需求.本文设计的基于DSP技术和数字图像处理技术的沥青路面图像处理系统具有更快速、准确、经济高效的特点,能够很好地检测出路面裂纹.
图1 系统总体框图 图2 图像检测系统硬件图
如图1所示,路面裂纹自动检测系统由CCD摄像机、图像采集卡、图像处理单元以及人机接口单元组成.
为了快速实时地检测路面裂纹,建立了以DSP为核心的裂纹图像检测系统,其硬件结构如图2所示.数字CCD相机采用DALSA CA-D7-1024T帧转移型体系结构,转换速度快,量化精度高.该CCD相机的空间分辨率为1 024×1 024像元.DSP C6713主要完成从FIFO读出数据并进行图像的预处理、分割、特征提取等处理.处理后的特征经PCI口传送到主机,本系统采用TT公司的PCI9052实现DSP的HPI与PCI总线的连接.DSP读出FIFO的行数据并存入SDRAM;采用2 k×9位的IDT72V231 FIFO作为图像数据缓存; 选用1 M×32 bit的SDRAM TC59S1616存储数据;采用AMD公司4 Mbit的Flash Memory AM29LV400B作为程序存储器;采用Lattice公司的CPLD LC4128V进行时序控制.
(1)图像预处理. 由于采集的公路图像存在各种干扰噪声(如路面颗粒、污渍和反光等),首先应对图像进行滤波.经过多次仿真试验,本文采用二次中值滤波对采集来的数字图像进行滤波,取得了很好的效果.路面图像处理流程图如图3所示.
图3 路面图像处理流程图
(2)图像分割. 图像分割就是要找出一个合适的阈值,将研究的区域划分为目标和背景两部分.阈值的选择是图像分割的关键.为了寻求最佳的分割阈值,目前己研究出多种阈值选取算法,如P参数法、双峰法、最大类间方差法(OTSU法)[2]等.每种方法都有各自的特点和不同的应用场合,目前很难找到适用于各种场合的分割方法.本文针对实际情况,采用最大类间方差法对图像进行分割,如图4、图5所示.
图4 原始公路路面裂痕图像 图5 OTSU法分割后的公路路面裂纹图像
(3)边缘检测. 路面裂纹边缘检测是非常重要的信息,本文采用Canny算法进行裂纹边缘检测.Canny[3]算法是一种多尺度边缘检测算子,它是基于Canny提出的边缘检测3个标准:检测标准、定位标准、单响应标准,并采用近似满足最优准则的高斯函数作为滤波器,因此得到了广泛的应用.该算法的基本原理是先将图像采用高斯函数进行平滑,再由一阶微分的极大值确定边缘点.
(4)特征提取. 为了更加有效地对公路路面图像进行检测,必须提取图像的特征,特征提取和选择的总原则是尽可能减少整个识别系统的处理时间和错误识别概率,当两者无法兼得时需要做出相应的平衡.或者缩小错误识别的概率,以提高识别精度,但会增加系统运行时间;或者提高整个系统速度以适应实时需要,但会增加错误识别的概率.一般特征包括:(1)裂纹的面积和裂缝的百分比; (2)裂纹的周长、长度、平均宽度等.裂纹的长度、宽度、面积提取出来之后,可以计算得到裂纹的其他参数[4].所有参数都必须进行归一化, 二值化后的图像灰度值之和为裂纹的面积,其算法如下:
(1)
其中,m、n分别为图像的行值和列值.
周长的算法是首先对图像进行边缘检测并进行二值化,然后扫描整个图像,提取像素为1的个数即为裂纹的周长C.
根据裂纹的面积S和周长C可以计算出平均长度L和宽度W,公式如下:
L·W=S
(2)
L+W=C
(3)
求解后可以获得平均长度和宽度.
根据裂痕图像的特点,本文提取裂纹图像面积占整个图像面积的百分比T.
如上所述,当获得裂纹的特征后,应该采用合适的识别算法对公路裂纹进行检测.图像识别的方法主要包括结构识别法和统计决策法两类,另外还有神经网络识别、模糊识别和支持向量机识别法[5]等.支持向量机基于VC维理论和结构风险最小化原则,具有很好的推广能力,很好地克服了维数灾难和过拟合等传统算法所不可规避的问题.对于小样本在训练样本数很少以及图像本身光线较差的情况下,支持向量机方法对未知样本的泛化能力优于一般的分类方法.为了提高在大量数据下SVM的训练速度,Platt提出了一种序贯最小优化(SMO)算法[6],本文采用SMO算法进行分类.
(1)SMO训练算法. 支持向量机的学习训练算法是求解一个二次规划问题,将其转成Wolfe对偶问题比原始二次规划问题易于处理.但由于问题规模比较大,再加上目标函数的二次型已经不是正定的,且约束个数及约束条件比较多,在样本点不可分时还要加上上限的约束,这种复杂局面使得很多高效的算法对此束手无策. SMO的分解算法是将二次规划问题分解成尽可能小的一系列二次规划子问题.SMO算法把问题分解到可能达到的最小规模,每次优化只处理两个样本的优化问题,并且用解析的方法进行处理,从而完全避免了迭代算法.基本思想是对不满足KKT条件的Lagrange乘子两两进行优化,直到所有的Lagrange乘子都满足KKT条件为止.
(2)支持向量机算法核函数及其参数的选择[7]. 本文采用试凑法来确定其参量,即对于所有的核函数、核函数参数的各种取值都进行计算,选出结果最好的那一种.选择常用的线性核函数、多项式核函数及径向基核函数等不同的核函数进行试验,经过比较采用径向基核函数作为支持向量机的核函数:
(4)
通过试验发现,选取σ=15时,识别效果最好.
试验取400幅黄延高速公路路面图像,
表2 试验结果
其中300幅图像作为训练样本,其余100幅图像作为测试样本,测试算法的准确率.将没有裂纹的图像归为+1类,有裂纹的图像归为-1类.采用BP神经网络[8]和SVM进行试验对比,结果如表1所示,可见RBF支持向量机的识别效果比较好.SMO算法收敛公差设置为0.002.对线性核函数,取C=12;对RBF核函数,取C=20,σ=0.614.
通过构建基于DSP的路面图像采集和处理硬件平台,实现了路面图像实时准确的采集和处理,并采用SMO支持向量机算法对公路路面裂纹图像进行了识别.试验表明,该方法能够快速有效地识别出公路路面裂纹,具有较强的实用性.
参考文献
[1] 刘玉臣.公路路面裂缝图像自动识别技术研究[D]. 长春:吉林大学硕士学位论文,2005.
[2] OTSU方法在多阈值图像分割中的应用[J].计算机工程与设计,2008,6(11):2 844-2 845.
[3] 梁志勇,龙丽芳,黄世斌.基于数字图像处理的沥青路面破损检测技术[J]. 重庆建筑,2009,1(63):40-42.
[4] 温世文.基于DSP的沥青路面图像处理研究[D].西安:长安大学硕士学位论文,2009.
[5] V. N. Vapnik. The Nature of Statistical Learning Theory[M]. Springer, New York, 1998.
[6] Platt J C.Sequential Minimal Optimization: A Fast Algorithm for Training Support Vector Mathines.Advances in Kernel Methods-Support Vector Learning[M].CambridgeMA: MIT Press, 1999:185-208.
[7] 陈若珠,于小宁,李战明.基于DSP的啤酒瓶缺陷识别系统的研究[J].微计算机信息,2007,23(4-2):189-191.
[8] 初秀民,王荣本.基于神经网络的沥青路面破损图像识别研究[J].武汉理工大学学报,2004, 28(3): 373-375.