高速公路表面图像裂缝检测程序

简介: 高速公路表面图像裂缝检测程序

项目编号:BS-AI-002

一,环境介绍

语言环境:Matlab

算法:神经网络CNN

二,项目简介

改革开放以来中国经济的飞速发展,也带动了基础设施建设的大力投入,目前全国公路里程总数己达到550多万公里,这比新中国成立里时的8万公里翻了近七倍。如此大的公路里程数,也带来了维护麻烦,公路在使用的过程中,长期受到车辆的反复磨损,还有雨水浸泡等带来的影响,使得公路经常出现损坏,其中最常见的就是公路中的裂缝,年久失修会造成裂缝越来越大。现有的主要检测还是通过传统的人工检测的方式,时效低,成本高,影响整体的检测和维护进程。如果能开发一套路面裂缝自动检测识别的系统来代替传统路面检修工人的工作,工作效率和成效将会大大提高。

本课题采用Matlab来对目公路的裂缝图像进行处理,主要经过图像预处理、裂缝检测、特征分割提取、目标识别和结果的保存几个步骤,通过这几个步骤来完成对公路列缝的检测和识别,将检测的结果通过程序设计的GUI页面来进行调用处理和展示。本实验设计流程清晰,处理方法简捷、易懂,可以方便地拓展到诸如社会生活中其它有关裂缝检测的应用中去,比如建筑墙面裂缝检测等,具有一定的通用性。

路面裂缝检测识别系统的设计涵盖了四个方面的研究内容:图像预处理、图像分割(二值化)、目标检测识别和图像特征提取保存。其中,图像预处理用于对原始采集的彩色路面裂缝图像进行处理,以改善图像质量。图像分割则将路面裂缝图像转化为二值图像,便于后续的目标检测识别操作。目标检测识别是指对图像中的裂缝目标进行自动化识别和检测。最后,图像特征提取保存会在识别完成后对目标的特征进行提取和保存,为后续数据分析和应用提供支持。这些方面的综合研究和应用,可以有效地提高路面裂缝检测识别的准确性和效率。本次开发设计的裂缝检测系统的整体设计流程图如图2-1所示。

图2-1设计流程图

针对裂缝图像的特点,在对其进行目标检测和识别之前,必须对其进行图像的预处理,其中主要有:直方图均衡化增强、中值滤波去噪、对比度增强、二值化处理、二值图像滤波等。在二进制处理时,采用了自定义阈值方法和迭代自适应方法;二值图象去噪主要是对连通区的面积去噪,对小范围内的杂讯和噪音进行剔除。

通过对裂隙图像的预处理,提取出能够突出裂隙对象的二值化图像,再结合形态学的区域特征提取出裂隙对象,实现了对裂隙对象的检测和识别。在此基础上,提出了一种新的裂纹识别方法。

在试验过程中,本案例根据以上的处理流程对 GUI进行了设计,以使每一处理步骤都能清楚的显示出试验结果,从而提高了应用程序的简便性。

路面裂纹的检测在视觉上是一种典型的线性物体,所以对其进行增强和定位也是一种线性物体的检测。与常规线性目标相比,道路裂纹具有对象较小、图像对比度不高、自然不连续、分叉、杂点等特性,且仅从整体上表现为线性特征121。传统的基于阈值分割、边缘检测、小波变换等方法通常假定路面裂纹在整个影像上是高反差、良好连续的,而这一假定并不适用于实际工程。受气象条件、路面破损、裂缝劣化等影响,部分裂缝与路面背景的反差很小,导致常规裂缝识别方法难以奏效,故需在裂缝图像处理之前进行预处理。

图像预处理是一种对图像进行预处理的方法,可用于图像的识别和表达。由于各种原因,在获取和传输图像时,常常会造成图像质量的下降。比如,在一幅图画中,如果从主观的视觉角度来看,就会发现这个图画的轮廓位置太过鲜明,太过突兀;由于被探测对象的尺寸、形状等特点,其影像特征较为模糊,定位困难;在图象反差方面,一定的噪音会对图象造成影响;在整个图像中,存在着一些扭曲,变形等现象。因而,所要处理的影像,在视觉直观性与加工的可操作性上,会产生许多的干扰,我们不妨将这些干扰统称为影像品质问题。图像预处理就是指在图像质量的改善处理中,利用一定的计算步骤,展开合适的变换,从而将图像中一些有兴趣的信息凸显出来,消除或减少干扰信息,比如图像对比度增强、图像去噪或边缘提取等处理。通常,裂缝图像的获取都是在户外进行的,因此获取的图像不可避免地带有噪声、畸变等因素,给直接探测与提取裂缝对象带来了困难。为此,本文首先对裂纹影像进行了预处理,以提高影像品质,然后对试验结果进行了优化。图像的预处理主要包括灰度变换,频率变换,直方图变换,噪声去除,锐化,颜色变换等。本文将选取这些方法中的一部分用于对裂纹图像进行预处理。

三,系统展示

在试验过程中,本案例根据以上的处理流程对 GUI进行了设计,以使每一处理步骤都能清楚的显示出试验结果,从而提高了应用程序的简便性。软件设计界面具体如图4-1所示,在右侧控制面板中,可以对主算法流程的分步处理结果进行逐步访问,在左侧显示区域中,可以显示图像处理、投影曲线等结果。

在预处理过程中,直方图均衡化增强、中值滤波去噪、图像增强(Gamma矫正)等步骤比较简单,实验结果如图4-2所示。

裂缝识别结果如图4-3所示。

图4-3 裂缝识别结果

在对裂缝目标进行了检测和定位之后,为了能够准确地获得裂缝的区域信息,本实验采用了经典的像素积分投影的思想,对裂缝的水平、垂直方向进行了积分投影,并绘制投影曲线,进而定位裂缝的具体区域和参数信息,具体代码如下所示。

function[projectr,projectc]=Project(bw)

projectr=sum(bw,2);

projectc=sum(bw,1);

裂缝投影如图4-4所示。

图4-4 裂缝投影

裂缝判别及特征提取如图4-5所示。

(a)裂缝标记图像

(b)裂缝参数信息

图4-5 裂缝判别及特征提取

四,核心代码展示

function Result=Process_Main(I)
if ndims(I)==3
I1=rgb2gray(I);
else
I1=I;
end
I2=hist_con(I1);
I3=med_process(I2);
I4=adjgamma(I3,2);
[bw,th]=IterProcess(I4);
bw=~bw;
bwn1=bw_filter(bw,15);
bwn2=Identify_Object(bwn1);
[projectr,projectc]=Project(bwn2);
[r,c]=size(bwn2);
bwn3=Judge_Crack(bwn2,I4);
bwn4=Bridge_Crack(bwn3);
[flag,rect]=Judge_Direction(bwn4);
if flag==1
str='横向裂缝';
wdmax=max(projectc);
wdmin=min(projectc);
else
str='纵向裂缝';
wdmax=max(projectr);
wdmin=min(projectr);
end
Result.Image=I1;
Result.hist=I2;
Result.Medfilt=I3;
Result.Enance=I4;
Result.Bw=bw;
Result.BwFilter=bwn1;
Result.CrackRec=bwn2;
Result.Projectr=projectr;
Result.Projectc=projectc;
Result.CrackJudge=bwn3;
Result.CrackBridge=bwn4;
Result.str=str;
Result.rect=rect;
Result.BwEnd=bwn4;
Result.BwArea=bwarea(bwn4);
Result.BwLength=max(rect(3:4));
Result.BwWidthMax=wdmax;
Result.BwWidthMin=wdmin;
Result.BwTh=th;

五,相关作品展示

基于Java开发、Python开发、PHP开发、C#开发等相关语言开发的实战项目

基于Nodejs、Vue等前端技术开发的前端实战项目

基于微信小程序和安卓APP应用开发的相关作品

基于51单片机等嵌入式物联网开发应用

基于各类算法实现的AI智能应用

基于大数据实现的各类数据管理和推荐系统

相关文章
|
7月前
|
机器学习/深度学习 编解码 监控
计算机视觉实战项目4(单目测距与测速+摔倒检测+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A_路径规划+行人车辆计数+动物识别等)-1
计算机视觉实战项目4(单目测距与测速+摔倒检测+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A_路径规划+行人车辆计数+动物识别等)-1
|
7月前
|
机器学习/深度学习 算法 安全
计算机视觉实战项目4(单目测距与测速+摔倒检测+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A_路径规划+行人车辆计数+动物识别等)-2
计算机视觉实战项目4(单目测距与测速+摔倒检测+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A_路径规划+行人车辆计数+动物识别等)-2
计算机视觉实战项目4(单目测距与测速+摔倒检测+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A_路径规划+行人车辆计数+动物识别等)-2
|
7月前
|
机器学习/深度学习 算法 前端开发
高速公路表面图像裂缝检测程序
高速公路表面图像裂缝检测程序
|
传感器 编解码 算法
【航空和卫星图像中检测建筑物】使用gabor特征和概率的城市区域和建筑物检测研究(Matlab代码实现)
【航空和卫星图像中检测建筑物】使用gabor特征和概率的城市区域和建筑物检测研究(Matlab代码实现)
108 0
|
传感器 机器学习/深度学习 算法
SIGGRAPH | 6个惯性传感器和1个手机实现人体动作捕捉、定位与环境重建(1)
SIGGRAPH | 6个惯性传感器和1个手机实现人体动作捕捉、定位与环境重建
235 0
|
传感器 定位技术 图形学
SIGGRAPH | 6个惯性传感器和1个手机实现人体动作捕捉、定位与环境重建(2)
SIGGRAPH | 6个惯性传感器和1个手机实现人体动作捕捉、定位与环境重建
217 0
|
算法 API 计算机视觉
智慧交通day03-车道线检测实现03:相机校正和图像校正的实现
标定的图片需要使用棋盘格数据在不同位置、不同角度、不同姿态下拍摄的图片,最少需要3张,当然多多益善,通常是10-20张。该项目中我们使用了20张图片
159 0
|
传感器 算法 智慧交通
智慧交通day03-车道线检测实现02-1:相机校正
我们所处的世界是三维的,而照片是二维的,我们可以把相机认为是一个函数,输入量是一个场景,输出量是一幅灰度图。这个从三维到二维的过程的函数是不可逆的。
165 0
|
机器学习/深度学习 传感器 算法
智慧交通day03-车道线检测实现02-2:张氏标定法+双目标定
该方法介于传统标定法和自标定法之间,既克服了传统标定法需要的高精度三维标定物的缺点,又解决了自标定法鲁棒性差的难题。标定过程不需要特殊的标定物,只需使用一张打印出来的棋盘格,并从不同方向拍摄几组图片即可,不仅实用灵活方便,而且精度很高,鲁棒性好。因此很快被全世界广泛采用,极大的促进了三维计算机视觉从实验室走向真实世界的进程。
361 0
|
数据可视化 算法 智慧交通
智慧交通day02-车流量检测实现05:卡尔曼滤波器实践(小车模型)
FilterPy是一个实现了各种滤波器的Python模块,它实现著名的卡尔曼滤波和粒子滤波器。我们可以直接调用该库完成卡尔曼滤波器实现。
335 0