目录

前言

课题背景和意义

实现技术思路

一、 系统架构及工作原理

二、图像传输和处置

三、裂缝检测

实现效果图样例

最后


前言


    📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。

🚀对毕设有任何疑问都可以问学长哦!

选题指导: https://blog.csdn.net/qq_37340229/article/details/128243277

大家好,这里是海浪学长毕设专题,本次分享的课题是

🎯基于机器视觉的路面裂缝检测装置-OpenCV

课题背景和意义

机场跑道、高速公路、城市道路等路面性能是公共交通得以正常运转的基础。保持路面安全性能是道路日常维护和管理中不可或缺的工作,对航空安全、行车安全等起到举足轻重的作用。在我国,多数交通事故是由路面裂缝等缺陷导致的,因此必须定期对道路路面进行勘测检查,及 时维修损坏的路面。 通过人工作业进行分析和识别是对道路路面进行检测与诊断的一种传统方法。但是,不同检测人员的经验和看法各不相同,主观性太强,时常会发生判断失误等问题,影响检测精确度和效率。此外,人工检测费时费力,还增加了人力成本等。OpenCV是一种跨平台计算机视觉库,在路面性能检测领域具有应用潜力。在基于OpenCV设计一种路面裂缝检测装置。该装置基于物联网应用、以功能强大且搭载摄像头的ESP32- CAM开发板为核心硬件系统,对路面裂缝图像进行采集和传输;通过OpenCV内置的图像处理算法实现裂缝信息的提取和显示,从而帮助检测人员更有效地识别路面裂缝,及时进行风险分析和补修。

实现技术思路

一、 系统架构及工作原理

硬件系统
路面裂缝检测装置的硬件系统主要由 ESP32- CAM 开发板和电源模块组成,电源稳压后为ESP32-CAM供电。
工作原理
路面裂缝检测装置的工作原理如图 所示。

 ESP32-CAM是图像传输模块,为其配网后,路面图像不断被采集并上传至局域网。计算机端接收 到局域网的图像,利用OpenCV实现对路面图像的裂缝检测,并将检测结果显示出来。

函数关系
OpenCV 涉及诸多图像处理函数的使用,函数之间的关系如图所示。

二、图像传输和处置

ESP32-CAM 开发板可搭载摄像头且具有物联网开发的强大功能,可以用来实现图像的无线传输和接收。
1 )图像传输。 首先用 Arduino IDE ESP32-CAM 开发板烧写程序,然后通过 Wi-Fi 将JPG 格式图片上传至局域网,通过串口获取ESP32-CAM上传的地址,就可以访问 http:// ip:80/进入控制页。
(2)图像接收。首先保证计算机和 ESP32- CAM在同一局域网内。为了模拟一个对浏览器的请求发起过程,可以导入urllib.request 模块。其次,为了获取页面则直接使用urllib.request 模块中的urlopen 指令,其结果是返回一个类文件对象。 

三、裂缝检测

利用跨平台计算机视觉库 OpenCV 进行图像处理。
图像缩放
在通过窗口显示图像时,时常发生因图像太大或太小而无法有效展示全图的状况,所以运用cv2.resize()函数,将单通道或彩色图像沿 X 轴和 Y 轴按一定比例进行缩放,默认图像坐标如图

图像灰度化
图像灰度化的目的是为了简化图像矩阵,提高运算速度。R G B 三个分量决定了彩色图中
的每个像素点的颜色,每一个分量的取值范围在0~255之间。

图像开运算

首先,运用 cv2.erode() 函数对图像进行腐蚀操作,该操作可以将图像的边界点消除,使得图像沿边界向内收缩,用来剔除较小和不明显的裂缝。然后,运用cv2.dilate()函数对图像进行膨胀操作,它可以合并与物体相接触的所有的背景点,使得图像沿边界向外扩张,让裂缝更为明显。开运算处理前后分别如图。

 图像滤波

由于采集到的图像可能存在较多的噪声,因此为了尽可能地避免噪声的干扰,提高裂缝识别
的精确度,提出运用滤波器对图像进行预处理,使得图像尽量平滑。针对本次识别的裂缝图像,
对均值滤波、中值滤波、双边滤波三种滤波算法进行了分析,如表

边缘检测
采用 Canny 边缘检测算法,输入图像为单通道灰度图像,输出图像为单通道黑白图像。 
1 图像降噪
噪声会降低边缘检测结果的准确性,故采用图像降噪算法,以防止由噪声引起的检测错误。采用高斯滤波器与图像进行卷积,使得图像平滑,从而减小边缘检测过程中明显的噪声影响。高斯滤波公式为:

 2 计算梯度的幅度与方向

采用 Sobel 算子计算图像边缘的幅度。图像矩阵I 分别与水平方向上的卷积核 sobel x 和垂直方向上的卷积核sobel y 卷积得到 d x d y ,利用平方和的开方:

 3 非极大值抑制

非极大值抑制是一种边缘稀疏化处理技术。仅基于梯度计算和提取得到的图像边缘依旧很模
4 双阈值确定边缘信息
经过非极大值抑制处理后,依然存在较多的不确定边缘点,因此设置高、低两个阈值,采用滞后
阈值进行处理。 处理前后的边缘检测效果分别如 图:

连通域提取

连通域通常是指图像中像素值相同且与前景像素点位置相邻的图像区域。运用 cv2. connectedComponentsWithStats()函数,通过输入二值图可以得到连通域的数量、连通域的信息、图像上每一个像素的标记、连通域的中心点这些返回值。通过这些信息可以进一步将非裂缝点剔除。

实现效果图样例

基于机器视觉判断裂缝是纵向裂缝还是横向裂缝,并根据平均缝宽识别其是轻微裂缝还是严重裂缝。

 实时识别路面损坏情况,检测道路中的坑沣、裂缝、凹陷或者损坏等情况:

我是海浪学长,创作不易,欢迎点赞、关注、收藏、留言。

毕设帮助,疑难解答,欢迎打扰!

最后

GitHub 加速计划 / opencv31 / opencv
77.39 K
55.71 K
下载
OpenCV: 开源计算机视觉库
最近提交(Master分支:2 个月前 )
48668119 dnn: use dispatching for Winograd optimizations 6 天前
3dace76c flann: remove unused hdf5 header 6 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐