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

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

项目编号: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智能应用

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

相关文章
|
JavaScript 索引
利用身份证验证性别和获取生日
利用身份证验证性别和获取生日
|
自然语言处理 前端开发 Java
Go语言学习路线 - 1.方向篇:明确Go语言的成长方向
目前,后端开发语言的就业方向主要分为两块:业务系统开发 与 基础平台开发 。Go语言自然也不会例外。
871 0
|
Web App开发 网络协议 安全
|
缓存 关系型数据库 MySQL
centos7 安装指定版本的mysql8.0
centos7 安装指定版本的mysql8.0
2267 2
|
6月前
|
机器学习/深度学习 人工智能 算法
公路表面裂缝目标检测数据集(1500 张图片已划分、已标注)| AI训练适用于目标检测任务
本数据集含1500张真实道路图像,已划分train/val/test并精准标注裂缝(crack)边界框,覆盖沥青/水泥路面、多光照与多角度场景,适配YOLO、RT-DETR等主流目标检测模型,专为道路病害智能巡检与小目标检测研究设计。
|
机器学习/深度学习 自动驾驶 算法
道路表面缺陷数据集(裂缝/井盖/坑洼)(6000张图片已划分、已标注)|适用于YOLO系列深度学习分类检测任务【数据集分享】
随着城市化与交通运输业的快速发展,道路基础设施的健康状况直接关系到出行安全与城市运行效率。长期高强度的使用、气候变化以及施工质量差异,都会导致道路表面出现裂缝、坑洼、井盖下沉及修补不良等缺陷。这些问题不仅影响驾驶舒适度,还可能引发交通事故,增加道路养护成本。
道路表面缺陷数据集(裂缝/井盖/坑洼)(6000张图片已划分、已标注)|适用于YOLO系列深度学习分类检测任务【数据集分享】
|
自然语言处理 测试技术 异构计算
使用Accelerate库在多GPU上进行LLM推理
大型语言模型(llm)已经彻底改变了自然语言处理领域。随着这些模型在规模和复杂性上的增长,推理的计算需求也显著增加。为了应对这一挑战利用多个gpu变得至关重要。
2711 0
|
机器学习/深度学习 边缘计算 PyTorch
PyTorch团队为TorchAO引入1-8比特量化,提升ARM平台性能
PyTorch团队推出创新技术,在其低精度计算库TorchAO中引入低位运算符支持,实现1至8位精度的嵌入层权重量化及8位动态量化激活的线性运算符。该技术通过模块化设计和高效硬件利用,优化了资源受限环境下的深度学习计算,提升了计算效率并降低了资源消耗。新内核与PyTorch生态系统无缝集成,支持即时执行、编译优化及边缘计算,为开发者提供全方位性能优势。测试结果显示,多层次量化策略显著提升了计算效率,保持了模型精度。这一突破为深度学习框架优化开辟了多个研究方向,推动了人工智能在边缘计算等领域的广泛应用。
656 11
PyTorch团队为TorchAO引入1-8比特量化,提升ARM平台性能
|
机器学习/深度学习 编解码 人工智能
视频生成新玩家:Sora 原理探索与效果对比
视频生成新玩家:Sora 原理探索与效果对比
871 0
视频生成新玩家:Sora 原理探索与效果对比