0


【毕业设计】基于深度学习的道路裂缝识别算法系统 python 卷积神经网络 人工智能

前言

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

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

     选题指导:

    最新最全计算机专业毕设选题精选推荐汇总

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

    🎯基于深度学习的道路裂缝识别算法系统

设计思路

一、课题背景与意义

   随着道路使用时间的增加,路面不仅要承受日益增大的交通量,还受到各种自然因素的影响,逐渐出现裂缝、坑槽、沉陷等道路病害问题。裂缝是许多路面病害的先兆,若不及时有效地进行治理,将逐渐发展成更为严重的路面病害,严重影响道路的运输能力和使用年限。因此,在道路运营期内进行定期检测是非常必要的。

二、算法理论原理

2.1 卷积神经网络

   YOLov5现已推出6.0版本,YOLov5-6.0结构框架如图所示,其划分为4个部分:输入端、Backbone、Neck和Head。

毕业设计-道路裂缝检测系统-机器学习-卷积神经网络-YOLOv5s

2.1 YOLOv5算法

   在路面裂缝图像中,裂缝占比较小且背景通常较为复杂,会带有光影斑驳、车道线、水迹、生活杂物等噪声。针对此特点,引入注意力模块,使神经网络在进行特征提取时更加关注与病害相关的特定语义信息,提升检测精度。同时,引入Ghost模块,减少了模型的参数量,保证了模型的轻量化。

毕业设计-道路裂缝检测系统-机器学习-卷积神经网络-YOLOv5s

   CA模块通过将图像的位置信息嵌入通道注意力中,使神经网络在提取目标跨通道特征的同时,还能提取目标的方向特征与位置特征,能够有效提高模型的检测性能。针对研究需求,将CA模块引入,置于骨干网络的SPPF层后。CA模块包括2部分:坐标信息嵌入与坐标注意力生成。CA的结构如图所示。

毕业设计-道路裂缝检测系统-机器学习-卷积神经网络-YOLOv5s

   CA采用尺寸为H×1与W×1的池化核分别对给定输入X进行一维编码,输出的两个特征图分别收集了不同方向的特征,以达到沿一个空间方向捕获远程依赖关系的同时沿另一个空间方向保留精确位置信息的目的。

毕业设计-道路裂缝检测系统-机器学习-卷积神经网络-YOLOv5s

毕业设计-道路裂缝检测系统-机器学习-卷积神经网络-YOLOv5s

三、道路裂缝检测的实现

3.1 数据集

   大部分数据集存在以下3个方面问题:背景较为简单,未将路面常见噪声(光影斑驳、车道线等)考虑在内;标注质量不高,通常将路面修补后的边缘部分标注为路面裂缝;拍摄高度较低且多以正视角为主,因此视野范围较小,往往无法将长裂缝采集完整。

   针对以上不足,通过实地拍摄的方式,采集了不同光照条件下包含各种噪声的路面裂缝图像。拍摄高度为1.4~1.5m,拍摄倾角为30°~45°。采集裂缝类型分别为横向裂缝、纵向裂缝、网状裂缝,数据集部分样本如图所示。我们选择了开源数据集Crack500,共同组成了新的路面裂缝病害数据集,共计病害图像1312张。

毕业设计-道路裂缝检测系统-机器学习-卷积神经网络-YOLOv5s

3.2 实验环境及参数设置

   采用的操作系统为Ubuntu 18.04,显卡为NVIDIA GeForce RTX 3090,处理器为Intel Xeon E5-2678v3,实验环境为Python 3.8,在PyTorch 1.7.1深度学习框架下搭建模型,并使用YOLOv5s在ImageNet数据集下的预训练权重进行网络参数初始化。

毕业设计-道路裂缝检测系统-机器学习-卷积神经网络-YOLOv5s

3.2 实验及结果分析

   为评估改进算法性能,本文以mAP[16]、参数量(Parameters)及每秒处理的图片数量(frames per second, FPS)为指标,分别衡量模型的检测精确度、复杂度和检测速度。mAP的计算公式为

毕业设计-道路裂缝检测系统-机器学习-卷积神经网络-YOLOv5s

   采用CIoU Loss作为边框回归损失函数。CIoU Loss同时考虑了预测框与真实框重叠面积、中心点距离及长宽比,相比于GIoU Loss和DIoU Loss,CIoU Loss能够更好地描述预测框与真实框的重叠情况,使得回归更准确。针对置信度损失和分类损失,采用二元交叉熵方法计算。

毕业设计-道路裂缝检测系统-机器学习-卷积神经网络-YOLOv5s

   使用改进模型YOLOv5-CG在自建数据集上训练,损失函数曲线如图所示。可知,损失值在前50轮训练中下降较快,随着训练轮数的增加,损失值下降逐渐减慢,当训练轮数接近200时,损失函数曲线趋于平稳,模型收敛,训练过程中未出现过拟合现象。

毕业设计-道路裂缝检测系统-机器学习-卷积神经网络-YOLOv5s

    将YOLOv5-CG模型中第一个GhostConv模块提取的特征图与原模型同位置卷积模块提取的特征图进行对比,如图所示。可知,GhostConv提取的特征图与原模型卷积模块的特征图相似度较高,保证了语义信息的完整性,验证了GhostConv在YOLOv5-CG中的可靠性。

毕业设计-道路裂缝检测系统-机器学习-卷积神经网络-YOLOv5s毕业设计-道路裂缝检测系统-机器学习-卷积神经网络-YOLOv5s

   为了更直观地表现YOLOv5-CG的检测性能,下图展示了改进模型与原模型对相同图片的检测效果。观察发现,图像中存在较严重的光影斑驳现象,YOLOv5检测时均出现了漏检,而被漏检的裂缝被YOLOv5-CG成功检测出,可见YOLOv5-CG相较于YOLOv5在复杂背景下的裂缝检测能力更强。

毕业设计-道路裂缝检测系统-机器学习-卷积神经网络-YOLOv5s

   为测试不同改进方法对模型检测性能的影响,我们设计了消融实验,共验证了4个网络模型,每组实验均采用相同的实验参数,消融实验结果见下表。

毕业设计-道路裂缝检测系统-机器学习-卷积神经网络-YOLOv5s

   为了验证改进模型YOLOv5-CG在检测精度和速度上的优势,将YOLOv5-CG与主流目标检测算法FasterRCNN、YOLOv3、YOLOv4、SSD进行对比实验,以mAP和FPS为指标,结果见下表。

毕业设计-道路裂缝检测系统-机器学习-卷积神经网络-YOLOv5s

部分代码如下:

model = torch.hub.load('ultralytics/yolov5', 'custom', 'path/to/weights.pt')

# 设置模型为推理模式
model.eval()

# 定义类别标签
class_labels = ['Crack']

# 加载待检测的道路图像
image_path = 'path/to/image.jpg'
image = Image.open(image_path)

# 对图像进行预处理
preprocessed_image = model.preprocess(image)

# 将预处理后的图像传入模型进行推理
output = model.predict(preprocessed_image)

# 解析模型输出,获取检测结果
predictions = output.pandas().xyxy[0]

# 遍历每个预测结果
for _, prediction in predictions.iterrows():
    class_label = class_labels[int(prediction['class'])]
    confidence = prediction['confidence']
    bbox = prediction[['xmin', 'ymin', 'xmax', 'ymax']].values.tolist()
    
    # 打印预测结果
    print(f"Class: {class_label}, Confidence: {confidence}, Bbox: {bbox}")

实现效果图样例

创作不易,欢迎点赞、关注、收藏。

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

最后


本文转载自: https://blog.csdn.net/ASASASASASASAB/article/details/134957036
版权归原作者 Mini_hailang_IT 所有, 如有侵权,请联系我们删除。

“【毕业设计】基于深度学习的道路裂缝识别算法系统 python 卷积神经网络 人工智能”的评论:

还没有评论