“泰迪杯”挑战赛 - 基于BP神经网络自动识别并分类道路缺陷

目 录

  1. 研究目标
  2. 分析方法与过程
    2.1. 总体流程
    2.2. 具体步骤
    2.3. 结果分析
  3. 结论
  4. 参考文献

1. 研究目标

1.1 研究意义和背景

城市道路指的是城市内部的道路,它为车辆和行人提出交通往来的便利,在城市的经济发展和人们的衣食住行上都担任了不可或缺的作用。并且它能够连接城市的各个部分,扮演着城市枢纽的角色,是城市建设中至关重要的一环。

改革开放以来,我国的城市建设的步伐越来越快,并提出了城乡一体化的目标,而要很好的实现这个目标就必须在道路建设上投入更大的资源。所以随着城市道路的需求量越来越大,道路建设也成为了城市发展的的主要项目之一。但是由于工程建设涉及面较广,工程条件较复杂,是由多项目、多工序彼此交错和相互制约所组成的线形工程,影响工程质量的因素较多,施工中不可避免地会出现不同程度的质量问题。而且道路在日常的使用,也会因为使用的不得当和使用时间过长,而出现了各种各样的缺陷。因此随着道路网的不断扩大,对以存在的道路的保养维护的问题也显得越来越重要了。

由于道路的缺陷会对路面的承载能力、使用寿命,还有对车辆的行驶速度、燃油消耗、行车舒适和交通安全等都造成了不同程度的不利影响。所以对道路的保养和维护就显得十分重要和迫切了,但是道路缺陷是一种难以估计的破损状态。这为道路的检测带来了难题,而我国现在道路检测主要是使用人工检测的方法,通常是调查人员去到现场,对缺陷的道路的具体状况进行测量和记录,然后对得到的道路缺陷数据进行统计和归类的处理,这样之后就可以对道路的缺陷进行一定的评判了。但是这种方法不但浪费了大量的人力物力,并且效率也很低,检测到的结果误差较大,由此很难对缺陷的道路进行客观和科学准确的判断,而且检测人员的安全也是一个问题。由此看来,研究道路缺陷的自动识别技术,力求达到高效、快速、准确检测道路缺陷的目标,也具有极其重要的意义。

1.2 国内外检测系统的现状

随着这几年来计算机的不断发展和数字图像处理技术的成熟,使道路缺陷的高效、快速、准确的自动识别也变得有可能。国内外都有很多相关的研究人员基于图片处理对道路缺陷自动识别进行了深入的研究,得到了许多方法和技术。在一些发达国家中已经有产品投入到日常道路检测的使用去了,而国内虽然也在这方面取得很大的进展,并且也能够自主地研究出了一些产品,但毕竟在技 术上还有一定的差距,所以产品还没达到理想的状态,在某些方面存在着不少的问题,主要有:

(1) 受光线的影响太大,在晴天和阴天得到的效果相差很大,当晴天的时候,光线充足就可以得到很好的效果,但一旦遇上阴天识别的误差就增大,所以受天气和光线的影响还是挺大的。

(2) 在(1)说到光线的影响有天气的原因,而受天气的影响的同时,也受到一些不可避免的光线影响, 如:道路两边建筑物的阴影和车辆自身的阴影。

(3)因为是在行驶的过程中,所以拍到的图片光线不均匀,这也造成了灰度图的不均匀。

(4) 经过那么多年的研究,已经得到了很多处理的算法,但是道路的情况十分的复杂,现实证明很多算法和技术都达不到很好的效果。

近二十年来,国际上道路缺陷的检测技术发展十分迅速,用到的技术很多,如:机电一体化、激光技术、雷达技术、模式识别与图像处理技术等等。现在我们主要是谈一下基于图像处理的道路缺陷自动识别的发展和现状:

在 20 世纪 80 年代以来,随着摄像技术和计算机图像处理技术的快速发展,一些发达的国家根据其在路面管理的需要,都进行了道路缺陷自动识别的研究。经过几年的研究,在 20 世纪 90 年代, 他们纷纷发表了自己的研究成果,如:美国开发的 PCES 系统、ADAPT 系统,瑞典的 PAVUE 系统,日本的 APDS 系统等等。

而国内也在西方国家得到研究成果之后,在 21 世纪陆续出现了自主研究的产品,如:南京理工大学唐振民等人在 2002 年 10 月份研制出了国内的首辆路面智能检测车,但是该车检测的精度较差而且检测到的裂痕结果不够全面。

武汉大学的空间信息与网络通信技术研发中心自助研制出了 SINC-RTM 车载智能路面自动检测系统,这个系统比国内第一辆智能汽车在功能上有了很大补全,在精度上也高了很多,但是它检测裂缝和平和整度的精度较差。

1.3 本文的只要研究工作

本文主要是就基于图像处理的道路缺陷自动识别进行研究,研究工作主要包括以下三部分:
(1)道路图像的预处理 道路图像的预处理
在道路图像拍摄的时候,由于人为的因素、光线的影响、系统造成的噪音等等原因,使得拍摄到的图片噪音过大,所以为了不干扰下面的识别工作,我们必须对图片进行去噪处理,即图像的预处理。我们的做法是,利用小波包阀值滤波辅以中值滤波的方法进行第一层的处理,然后对图形进行分割,使其图像更加清晰,噪音尽可能减少。然后得到的数据就能很好地为我们下面的处理服务,所以这一步的预处理必不可少。

(2)特征提取 特征提取 只有提取的图像的特征才能适用于分类,所以我们必须要对图像进行特征提取以提供数据支持,我们提取了四个特征,分别是:分型维数、在 x 轴和 y 轴的投影特征、裂缝区域的像素数。

(3)进行分类和结果评价 进行分类和结果评价
利用 BP 神经网络进行识别分类,并且输入测试样本去检测模型的准确率,然后通过准确率来评价这个模型的好与坏。

2. 分析方法与过程

2.1. 总体流程

本数据挖掘的模型流程图如下:

“泰迪杯”挑战赛 - 基于BP神经网络自动识别并分类道路缺陷_第1张图片
本用例主要包括如下步骤:

步骤一:图像预处理,只要用到小波包滤波法辅以中值滤波。

步骤二:图像特征提取,提取出每幅图像的分形维数、X 轴上投影的最大差分 Xmax、Y 轴上投影的最大差分 Ymax、每幅图像的像素值。

步骤三:利用 BP 神经网络来进行裂痕识别分类。

2.2. 具体步骤

步骤 1:图片预处理 图片预处理

2.2.1.实际情况分析 实际情况分析

道路的路面情况十分复杂,常常会掺杂着其他很多干扰在里面(周围环境如路面上的石子杂物、 裂痕附近的污物的干扰,光线不足和分布不均匀带来的影响,路面材料的大小粗糙程度的不同),而 在检测拍摄的过程中也由于人为的因素还有拍摄设备的原因而产生了不可避免的噪音,这些都会使得拍摄得到的路面图片质量下降,从而造成计算机在识别上的困难。所以有针对地对图片进行预处理,使得得到的数据能够转换成一种更适合人和机器都易于分析的数据形式,以便在图片中获得更多的数据信息,为得到一个高效、准确的自动识别系统做好数据上的支持。

2.2.2.道路图片的特点分析

我们从得到的道路图片可以总结出一下几个主要特点:

(1)裂痕的信息是我们提取的目标信息,由得到的图片可以看到,裂痕的像素相对于周围的背景信息来说都要暗一些,因此目标信息的像素值即裂痕的像素值是局部的最小值。

(2)无论是裂缝、网裂、龟裂都会具有一定的方向性,即存在着线性分布。

(3)从图片的灰度直方图 2-1 可以看出,裂痕图片的像素呈现一定的单峰性,也可以看到裂痕的像素点远远小于背景的像素点,但是我们要提取的目标信息的像素也会和背景的一些点存在着重叠 的情况,这是本文要解决的问题之一。

(4)在客观上,路面的纹理具有不均匀,拍摄时光线分布不足等情况,这些都会带来很大的噪音,所以对得到的图片进行有针对性的去噪处理也显得尤为重要。

“泰迪杯”挑战赛 - 基于BP神经网络自动识别并分类道路缺陷_第2张图片

2.2.3 图片去噪的具体实现方法

(1)中值滤波法

中值滤波法目前在去噪方面的应用十分广泛,因其发展由来已久,它的方法和技术都比较成熟,有着一套成型的理论支撑着它的应用,而且被人们广泛应用之后也证明了它的正确性和处理某些问题上的优越性,例如对消除椒盐噪音非常有效,在光学测量条纹图象的相位分析处理方法中有特殊作用。它的主要原理是,利用非线性平滑技术,将某个窗口内的每一个像素点的灰度值设置为这个窗口的所有像素点的中值。因此它是基于排序统计理论的一种能有效抑制噪音的非线性信号处理技 术,它可以在某种程度上很好地处理线性滤波和均值滤波等造成的图像细节模糊的问题,在滤除脉冲干扰和图像扫描噪音最为有效。

中值滤波的工作原理:它一般是利用一个已经设定好大小的二维窗口,然后将窗口里面的所有点的灰度值设置为当前窗口的中值,然后通过滑动不断地进行像素点灰度值的重新设置,直到所有像素点都被中值化。而窗口的大小的选择有也按一定的顺序,就拿方形的窗口来说,它先重 3X3 开 始,然后逐步扩大窗口的大小,到 5X5,再到 7X7,以此类推,直到达到满意的滤波效果。窗口的 形状有方形、十字形、圆形、X 字形等等,而现实中一般都是选用方形的窗口来进行滤波的,因为它可以在消除噪音的同时还能更全面地保护好图像的边缘细节。所以,总的来说,它有以下三个优点:

①能很好地降低噪音,效果十分明显;
②在灰度值的变化比较小的情况下能得到很好的平滑效果;
③降低了图像边缘部分的模糊程度。但是它也存在着它的局限性,它在处理细节较多,特别是点、线、尖顶细节叫多的图像时平滑效果就没那么好了。

图 2-2 是用中值滤波处理前后处理后的灰度图和二值图像,因为在实验多个窗口大小之后,我们发现用5X5大小的窗口的滤波效果最好,所以现在就直接比较经过5X5中值滤波处理前后的效果,然后发现得到了很好的平滑效果,图像的噪音也减少了很多,同时也较好地保留了裂痕的边缘细节。

“泰迪杯”挑战赛 - 基于BP神经网络自动识别并分类道路缺陷_第3张图片
(2)基于小波包变换的图像去噪

小波变换因其具有多分辩分析的特性,所以最近几年在图像去噪方面常被人们拿来研究并得 了广泛的应用。它主要有四个有点,分别是:低熵性、多分辨率、去相关性、选机灵活性。它实行去噪的三个主要步骤为:

①对含噪音信号进行小波变换;

②变换得到小波系数之后进行相应的处理以达到去除其中包含的噪音的效果;

③经去噪处理后,对小波系数进行小波逆变换,就得到了去噪后的信号,然后还原得到去噪后的信息。基于其优点,Donoho 提出了小波软、硬阀值去噪方法,由于其简单有效,因此得到了很多学 者的重视和深入研究。但是噪音的成分复杂多样,噪音信号可能分布在不同的时频,可是小波对于高频区不进行信号的再分解,所以对于高频区的去噪效果不理想。为此,Thomas 等提取了基于小波包分解的去噪算法。

由于图像时非平稳信号,小波分析的多分辨多分析性的特点,十分适合于处理图像数据信号。 而其分解的过程如图 2-3 所示,它在分解的过程中通过二维变换将原图像逐级分解,从图可以看到下一级的小波分解只对当前的低频分量进一步分解为低频分量和高频分量,而并不对当前高频分量进行再分解。所以出于高频位置的噪音信号就难以剔除。在此基础上,小波包分析就很好地克服了这个困难,因为它不但对低频分量进行分解,而且对高频区的分量也进行了再分解,它的分解过程如图 2-4 所示。

“泰迪杯”挑战赛 - 基于BP神经网络自动识别并分类道路缺陷_第4张图片
小波包进行图像去噪处理,主要包括以下四步:
①小波包分解;
②计算最佳树;
③对小波包系数进行阀值处理;
④4444 对低频系数和经过出后的高频系数进行小波包重构。

根据上面的四个步骤,我们对图片进行小波包变换的处理并且与中植滤波处理的得到的结果作比较,其对比如图 2-5 所示:

“泰迪杯”挑战赛 - 基于BP神经网络自动识别并分类道路缺陷_第5张图片
“泰迪杯”挑战赛 - 基于BP神经网络自动识别并分类道路缺陷_第6张图片

由图 2-5 的比较可以得到,采用小波包滤波算法去除噪音和增强裂缝边缘细节的效果要优于中值滤波算法,从图中可以看到,经小波包算法处理后道路图像中的大部分噪音都被滤掉,而且道路的裂缝边缘细节得到很好的保持,但是图像中仍然存在很多的孤立早点,所以我们可以利用小波包算法然后辅以中值滤波的方法,这样就可以去掉图中的一些孤立噪点。结合后处理得到的结果如下图 2-6 所示:

“泰迪杯”挑战赛 - 基于BP神经网络自动识别并分类道路缺陷_第7张图片
步骤 2:图像特征提取

2.2.4 图像分割

图像分割指的是将图像分成各具特性的区域,然后提取感兴趣的目标区域的技术和过程,即实现目标和背景的分离,提取目标特征并进行目标测量,这样得到的信息才能更好和更准确地被人 和机器分析理解。而在本文将会使用到了一种在图像分割中已经得到很好的应用的理论,分形理论。

分形理论是基于非线性数学领域上的一门学科,在 1975 年 Benoit B Mandelbrot 创立了分形几何学,它可以用来描述那些没有特征长度并且具有无限精细结构的构造、现象和图形。分形也因其无特征长度与标度,而且分形几何图具有递归性和自相似性,所以它更易于用计算机来迭代。

本文中利用了分形的主要工具,那就是它的维数,它通过表示一个集合占有多大的空间来定量地描述了分形的形状和复杂度。下面介绍一种计算分形维数的算法,这也是本文中用到的计算图像分形维数的算法:

盒维数算法
对于一个分形集 A,它的盒子维数的计算方法为:
D = l i m n → 0 I n N n ( A ) I n ( 2 n ) D=lim_{n \rightarrow0} \frac{In N_n(A)}{In(2^n)} D=limn0In(2n)InNn(A)

(2-1)

其中, N n ( A ) N_n(A) Nn(A)是用边长为 1 / 2 n 1/2^n 1/2n的正方形盒子来覆盖 A 所需要的盒子的数目。

图 2-7 依次是严重裂缝、严重网裂、严重龟裂、坑槽图像经过去噪处理后的二值图像。用上面的盒维数法计算四幅图像份维数值越为:1.1442、1.1949、1.2916、1.3434(D 表示维数值)

“泰迪杯”挑战赛 - 基于BP神经网络自动识别并分类道路缺陷_第8张图片
我们选取了 100 个道路缺陷的图像作为样本,它们包含了上面所说的四种道路缺陷的情况。下面我们列出了几组道路缺陷不同裂痕的分形维数值,如表 2-1 所示:

“泰迪杯”挑战赛 - 基于BP神经网络自动识别并分类道路缺陷_第9张图片
在这里插入图片描述
由表可得,四种裂痕的分形维数都在 1-1.4 之间,而且单一裂缝和坑槽的维数值比较接近,而龟裂和网裂的也十分接近,而且单一裂缝和坑槽比龟裂和网裂的分形维数明显小很多,这样我们就可以将具有单一裂缝和坑槽特征的道路图像从龟裂和网裂中分离开来。所以分形维数特征就可以当做 裂痕分类的一个特征。

2.2.5 投影特征

通过投影,就可以将二维的图像转变为以为的波形,这就大大地降低了问题处理的难度。所以我们可以就得到的二维图像通过 X 轴和 Y 轴投影而得到不同的信息,因为不同的裂缝图像在 X 轴和Y 轴上的投影都不尽相同。而二维图像中,我们已经将目标像素点设置为 1,背景像素点设置为 0,所以通过投影就可以将背景和目标点分离,这也是区别裂缝类型的特征之一。设一幅二维道路二值图像 I 的大小为 NxM,侧它在 X 轴上的投影量 X 和在 Y 轴上的投影量 Y 分别可以这样求得:

X ( i ) = ∑ i = 1 N I ( i , j ) , i = 1 、 2 、 . . . 、 N X(i)=\sum_{i=1}^{N}I(i,j),i=1、2、...、N X(i)=i=1NI(i,j),i=12...N

(2-2)
Y ( i ) = ∑ i = 1 N I ( i , j ) , i = 1 、 2 、 . . . 、 M Y(i)=\sum_{i=1}^{N}I(i,j),i=1、2、...、M Y(i)=i=1NI(i,j),i=12...M
(2-3)

由下面图 2-8 到 2-11 可以看出,单一裂痕在 X 轴上的投影较为缓和,而在 Y 轴上的投影就呈现明显的单峰性,而至于其他类型的裂痕,X 轴和 Y 轴的投影差异不是很大。

本文设计了一个最大差分值 X m a x X_{max} Xmax Y m a x Y_{max} Ymax 来作为识别的分类特征,它们是由下面的式子求得的:

X m a x = m a x ∣ X ( i + 10 ) − X ( i ) ∣ , i = 1 , 2 , . . . , N − 10 X_{max}=max|X(i+10)-X(i)|, i=1,2,..., N-10 Xmax=maxX(i+10)X(i),i=1,2,...,N10

(2-4)

Y m a x = m a x ∣ Y ( j + 10 ) − Y ( i ) ∣ , j = 1 , 2 , . . . , N − 10 Y_{max}=max|Y(j+10)-Y(i)|, j=1,2,..., N-10 Ymax=maxY(j+10)Y(i),j=1,2,...,N10

(2-5)

因此,对于单一裂痕有两种情况,一是横向裂痕,它的 X max 较小,Ymax 较大,而是纵向裂痕,它和横向裂痕刚好反过来,它的 X m a x X_{max} Xmax 较大, Y m a x Y_{max} Ymax 较小。而对于其他类型的裂痕, X m a x X_{max} Xmax Y m a x Y_{max} Ymax 差 异不大。

“泰迪杯”挑战赛 - 基于BP神经网络自动识别并分类道路缺陷_第10张图片
“泰迪杯”挑战赛 - 基于BP神经网络自动识别并分类道路缺陷_第11张图片

“泰迪杯”挑战赛 - 基于BP神经网络自动识别并分类道路缺陷_第12张图片

“泰迪杯”挑战赛 - 基于BP神经网络自动识别并分类道路缺陷_第13张图片

“泰迪杯”挑战赛 - 基于BP神经网络自动识别并分类道路缺陷_第14张图片

图 2-11 网裂的投影

2.2.6 裂痕像素数

不同类型的裂痕都有不同的像素数,对于一幅道路二值图像,我们设定其像素数 Num 为:
N u m = ∑ i = 1 N ∑ j = 1 M   I ( i , j ) Num=\sum_{i=1}^{N}\sum_{j=1}^{M}\ I(i,j) Num=i=1Nj=1M I(i,j)

(2-6)

由其计算公式可以大概估算得到不同类型的像素数,单一裂痕的像素数最小,而网裂图像的最大,其次就是龟裂图像,再到坑槽图像。由于它们的具有不同的像素数,我们可以将像素数定义为 裂痕类型识别的一个特征,由它来反映道路图像的分类信息。

2.3 基于神经网络的道路裂痕识别分类

2.3.1 2.3.1 简述简述

人工神经网络(Artificial Neural Networks,简写为ANNs),是一种模范动物大脑的神经网络行为特征,同时进行分布式并行信息处理的算法数学模型。这种网络的工作原理是,依据系统的复杂程度,并通过不断调整内部大量节点(一对一、一对多、多对多)之间相互连接的关系,从而实现处理信息的目的。 它的应用也十分广泛,如在人工智能、计算机处理、模式识别等领域。

2.3.2 BP网络设计

神经网络的算法十分多,事实证明某些算法能够很好地处理某些问题。而本文中主要用到的是BP(Back Propagation )神经网络(BPNN),它在1986年被Runmelhart和McCelland的科学家提出。它是一种有反馈的前向网络,其工作原理是将输出层的信息按误差逆传播并反馈给输入层。其优点在于,它无需事先得到描述输入-输出的映射关系的数学方程,而是能够学习并且存储大量的它们之间的映射关系。它的学习规则是,使用最速下降法,并实行反向传播,而在这过程中不断地调整网络的阀值和权值,使得整个网络的误差平方和最小。它只有输入层、隐层和输出层三层的拓扑结构 。因此,基于它的优点,它是目前最被广泛应用的神经网络模型之一。

BP网络设计:
理论研究证明,多层前馈网络最多用到两个隐含层就足够了。而在实际操作中,设计网络结构时,一般先考虑一个隐含层,当一个隐含层节点数较多仍无法改善网络性能时,才考虑再增加一个隐含层。

BP神经网络的隐含层节点数对BP神经网络预测精度有较大的影响: 节点数太少,网络不能很好地学习,不但需要增加训练次数,而且训练的精度也受到影响; 节点数太多,训练时间增加,网络容 易出现“过度拟合”现象。最佳隐含层节点数选择可参考如下公式:

公式1: p < ( n + q ) 1 / 2 + a p<(n + q)^{1/2}+ a pn+q)1/2+a
公式2: p = 2 n + 1 或 p = ( n + p ) / 2 或 p = l o g 2 n p = 2n+1 或 p=(n + p)/2 或 p=log_2n p=2n+1p=n+p/2p=log2n

其中n为输入层节点数,p为隐含层节点数,q为输出层节点数,a 为0~10之间的常数。在实际问题中,隐含层节点数的选择首先是用参考公式来确定节点数的大致范围,然后用试凑法确定最佳的 节点数。

由以上,可得:
网络采用单隐层 BP 网络神经,由于网络的输入是 4 维向量(X 轴上的投影的最大差分值 Xmax,Y 轴上的投影的最大差分值 Ymax,分形维数和目标像素数 Num),所以网络输入有四个神经元,中间神经元取 6 个,输出神经元 5 个(输出道路图像的裂痕类型),网络中间层的神经元传递函数采 用 S 型正切函数 tansig,输出层的神经元传递函数采用 S 型对数函数 logsig。如下:

“泰迪杯”挑战赛 - 基于BP神经网络自动识别并分类道路缺陷_第15张图片

图 1 神经网络的网络设计

对输入向量进行归一化处理,设置网络的训练次数为 3000 次,训练目的为 0.001,而学习速率 为 0.05。

2.4 结果分析

本文所研究的道路裂痕有 5 中类型,分别是:完好道路、单向裂缝、坑槽道路、龟裂道路、网裂道路,所以 BPNN 输出层具有 5 个节点,它的期望输出入表 2-2 所示。

“泰迪杯”挑战赛 - 基于BP神经网络自动识别并分类道路缺陷_第16张图片
我们用了道路的特征向量样本共有 50x5,其中 3 用 0x5 组样本作为 BPNN 的训练样本,其中 x5 表示的是,每一组样本都包含着 5 种道路缺陷的情况,因此,每一种裂缝类型都对应着 20 组样本,另外剩下的 20x5 组样本就是 BPNN 的测试样本,以此来检验网络的训练效果。

表 2-3 和表 2-4 分别为采用 BP 神经网络处理后训练样本和测试样本的分类结果。

“泰迪杯”挑战赛 - 基于BP神经网络自动识别并分类道路缺陷_第17张图片
在这里插入图片描述
“泰迪杯”挑战赛 - 基于BP神经网络自动识别并分类道路缺陷_第18张图片

3. 结论

全文总结

经过实验之后,我们知道了中值滤波对于图像平滑和去噪的优越性,主要表现在图像像素点之间灰度值差异较小,图像细节信息较少的情况下,如:完好道路图像和单一裂缝道路图像的去噪上,都取得了很好的效果,但对于龟裂或网裂的道路图像的处理上就不尽如人意了,因其细节较多,所以平滑效果不够好,去噪也没有很彻底。而小波包滤波的方法利用噪音频率上的区别能够很好地完成去噪的工作,但是对于孤立点的去除没中值滤波有效,所以本文设计了小波包辅以中值滤波的方法使得图片的去噪基本达到预期的效果。所以,在图像去噪的这一步骤上,本文很好地完成了其任务。

在图像特征提取方面,本文现实利用不同裂痕图像的分形维数不同做了第一个特征的提取。然后通过不同类型裂痕分别在 X 轴和 Y 轴上的投影,找到了第二个获得图像特征的方法,因此我们得到了 X 轴投影的差分值和 Y 轴投影的差分值,这里为我们提供了两个图像的特征值。最后本
文设计了用裂痕图像的像素值 Num 来作第四个特征值,这因为我们能够更好地识别分类提供了更准确的依据。

实验的最后一个工作就是基于计算机的自动识别和分类了,在这一步上,我们通过对不同算法的研究,最终确定使用 BP 神经网络来进行图像数据训练然后再进行识别。在这过程中,我们也接触到了很多其他的一些识别模型,如:支持向量机 SVM(Support Vector Machine),但是因为所学知识不够,还不能够完全理解这种模型,所以没有在实验上对两种模型进行对比然后能够选取到最优的解决方法。

总的来说,本文还是较好地完成了道路缺陷的自动识别,虽然得到的结果没有预期的理想,但是经过这次研究后能够为后续的深入研究做好理论知识和技术层面的准备。

3.2 本文研究的意义

我国的道路交通在改革开发以来得到了快速的发展,但是相对比西方一些发达国家无论从管理还是技术上还是有一定的差距的。而处于 21 世纪的今天,我国经济发展迅速,因此对道路的质和量的要求都有了很大的改变。所以公路的保养和维护的工作也变得越发重要,如果能够从技术上做改进达到尽早尽可能地准确检测到道路的缺陷情况并及时处理,那么花在道路维护上的费用 将会大大地降低。

3.3 研究展望

本文虽然基本完成了基于图像的道路缺陷的自动识别的工作,但是我们认为还可以在以下几个方面进行深入的研究:

(1)在图像的预处理上本文的工作主要是去噪,虽然现在已经有很多成熟的去噪算法,但是每种算法是对应某种噪音才会体现出它自身的优越性的。而我们认为道路图像的噪音是属于未知噪音,在通讯上有一种针对未知噪音的方法叫做 equalizer(均衡器),这值得我们深入去理解,力求在后续研究上完善去噪这个工作。

(2)在分割图像时,本文没有很好地利用好分形理论这一知识,而且还可以利用腐蚀、膨胀、 开运算、闭运算等算法对图像进行在处理。

(3)在识别模型上,还未能够对所有的模型进行一次比较,以便获得更优的识别模型,例如:支持向量机 SVM(Support Vector Machine),这些都是后续的研究工作中必须解决的问题。

参考文献

[1] 李晋惠,彭海波. 公路病害检测中的图像平滑算法研究[J]. 现代电子技术,2003(22):55~59

[2] 谭艳丽,张丕状. 基于自适应阀值的小波图像去噪方法研究[J]. 电脑知识与技术,2007(12): 1682-1683.

[3] 张济忠. 分形. 北京,清华大学出版社,1995

[4]许延发,张敏. 改进的 BP 算法在多目标识别中的应用[J]. 光学精密工程,2003,11(5):513~515

[5]黄德双著. 神经网络模式识别系统理论. 北京:电子工业出版社,1996

[6]唐 磊,赵春霞,王鸿南等. 基于图像分析的路面裂缝检测和分类[J]. 工程图学学报,2008,31(3):99-104

[7]初秀民,严新平,陈先桥. 路面破损图像二值化方法研究[J]. 计算机工程与应用,2008,44(28):161-165

[8]李莉,陈长,孙立军. 改进的路面图像背景校正算法[J]. 同济大学学报:自然科学版:2011,39(1):79

附件

%画直方图
img=imread('C:\Users\Administrator\Desktop\Image\严重裂缝 01.JPG');%读一幅图像
p=rgb2gray(img);%将图像转为灰度图像
h=imhist(p);%列出灰度图像直方图
h1=h(1:2:256);%准备画圈的纵坐标-->数据来自于图像
h2=1:2:256;%准备画圈的横坐标就是 1256 
stem(h2,h1,'r--');%用红色的绘制火柴梗图,不懂看火柴梗图
figure,imhist(p); %直方图对比
%小波包滤波辅以中值滤波的图像处理代码
Y=imread('C:\Users\Administrator\Desktop\Image\严重裂缝 01.JPG'); 
J=rgb2gray(Y); 
I1=medfilt2(J,[3,3]); 
L=4; 
I=wextend('2D','zpd',I1,L); %Extend a vector or a matrix 
nbc=size(I,1); 
X=im2double(I); 
wname='db8';lev=3; 
%colormap(pink(nbc)); 
subplot(221);imshow(Y);title('原始图像'); 
I2=Y; 
J1=find(I2<120); 
J2=find(I2>=120); 
I2(J1)=255; 
I2(J2)=0; 
subplot(223),imshow(I2); 
tree=wpdec2(X,lev,wname); %二维小波包分解
det1=[wpcoef(tree,2) wpcoef(tree,3) wpcoef(tree,4)]; %wpcoef 求小波包系数
sigma=median(abs(det1(:)))/0.6745; 
alpha=1.1; 
thr=wpbmpen(tree,sigma,alpha); %一维或二维小波除噪处罚阀值
keepapp=1; 
xds2=wpdencmp(tree,'s','nobest',thr,keepapp); %小波除噪或压缩
colormap(pink(nbc)); 
subplot(222);imshow(xds2);title('小波包软阈值降噪图像'); 
I2=im2bw(xds2,0.4); 
J1=find(I2==0); 
J2=find(I2==1); 
I2(J1)=255; 
I2(J2)=0; 
subplot(224),imshow(I2); 
%求分形维数
im=imread('C:\Users\Administrator\Desktop\55.jpg'); 
%imshow(im); 
gr=im; 
level = graythresh(gr); 
%figure,imshow(gr); 
bw=im2bw(gr,0.5); 
%bw= bwperim(bw); 
%bw=~bw; 
%figure,imshow(bw); 
bw=edge(bw,'canny'); 
figure,imshow(bw); 
si=size(bw);

minblock=1; 
maxblock=16; 
flag=0; 
n=linspace(0,0,maxblock-minblock+1); 
for k=minblock:maxblock 
for y=1:k:si(2)-k 
for x=1:k:si(1)-k 
flag=0; 
for y1=y:y+k-1 
for x1=x:x+k-1 
if bw(x1,y1)==1 
flag=1; 
end; 
end; 
end; 
if flag==1 
n(k-minblock+1)=n(k-minblock+1)+1; 
end; 
end; 
end; 
end; 
aa=[minblock:maxblock]; 
xx1=-log(aa); 
yy1=log(n); 
a=polyfit(yy1,xx1,1); 
x=polyval(a,yy1); 
figure,plot(xx1,yy1,'k+',x,yy1,'r'); 
D=1/a(1); 
%画 X 和 Y 轴上的投影
I2=imread('55.JPG'); 
[width, length, si] = size(I2) %求图片长宽
marrow = zeros(width, 1); %存储行的像素值的 width*1 矩阵
marcol = zeros(1, length); %存储列的像素值的 1*length 矩阵
%%%%% 求行的投影 %%%%%% 
for row = 1 : width 
 rFlag = 0; % 记录行的像素点
 for col = 1 : length 
 if I2(row, col,1) ~=0 
 rFlag = rFlag + 1; %记录像素点
 end 
 end 
 marrow(row, 1) = rFlag; %记录投影点 R+1; 
end 
%%%%%%%% 求列的投影%%%%%%% 
for col = 1 : length 
 cFlag = 0; % 记录列的像素点
 for row = 1 : width 
 if I2(row, col,1) ~=0 
 cFlag = cFlag + 1; %记录像素点
 end 
 end 
 marcol(1, col) = cFlag; %记录投影点
end 
subplot(1,2,1),plot(marrow);title('水平投影直方图');
subplot(1,2,2),plot(marcol);title('垂直投影直方图');

%BP 神经网络
clc; 
clear; 
clc; 
x; %相关数据
P=[x1;x2;x3;x4];%输入影响因素
p2=[y11;y22;y33;y44];%影响因素预测值
T=price;%需要预测目标值的历史数据(历史股价) %利用 minmax 函数求输入样本范围
[pn,minp,maxp,tn,mint,maxt]=premnmx(P,T); 
P2= tramnmx(p2,minp,maxp); 
net = newff(minmax(pn),[6,1],{
     'tansig','purelin'},'trainrp');% 6 为中间神经元个数,1 为输出接点数
net.trainParam.show=100;%50 次显示一次训练
net.trainParam.lr=0.01;%训练速度,学习速率
net.trainParam.epochs=3000;%训练次数
net.trainParam.goal=1e-4;%学习目标(误差) %网络初始化
net=init(net);%训练网络
[net,tr]=train(net,pn,tn);%网络仿真
iw=net.iw{
     1,1};%隐层权值
b1=net.b{
     1};%隐层阈值
lw=net.lw{
     2,1};%输出层权值??
b2=net.b{
     2};%输出层阈值??
PN=sim(net,pn);%反归一化
[pp]=postmnmx(PN,mint,maxt);%pp??????????
ppp=sim(net,P2);%ppp???
[pppp]=postmnmx(ppp,mint,maxt);%pppp 为预测值 
t1=1:37; 
t2=38:38; 
%plot(t1,T,t2,pppp); 
figure; 
%plot(t1,pp,'bo',t1,price,'r*'); 
title('o is given value,*stands for the forcast'); 
%figure; 
%plot(pp) ; 
c=pppp; 
%plot(t1,T,t2,pppp); 
DATA1; 
DATA2; 
DATA3; 
DATA4; 
data6; 
y11=[50.5
]'; 
y22=[110.69 
]'; 
y33=[2292.61 
]'; 
y44=[90.03592001 
]';

你可能感兴趣的:(泰迪杯论文,大数据项目案例,人工智能,道路缺陷自动识别,小波包滤波,分型特征,BP,神经网络)