基于深度学习的钢筋混凝土裂缝检测系统设计与实现(YOLOv8;数据预处理;模型训练;高质量)
设计说明
本系统聚焦钢筋混凝土裂缝检测,核心依托 YOLOv8 架构搭建。在数据处理阶段,广泛采集不同场景、状况下的混凝土表面图像,经灰度化、降噪等预处理操作,确保数据质量上乘。随后,运用专业标注工具精准勾勒裂缝轮廓,形成高质量标注数据集。模型训练时,选用适配的超参数,以自适应学习率策略加速收敛进程。借助 GPU 并行计算能力,历经多轮迭代,让 YOLOv8 深度挖掘裂缝特征,在验证集上持续校准参数,提升模型泛化性能。检测环节,系统快速解析输入图像,精准定位裂缝,即时输出裂缝位置、尺寸等关键信息,助力工程人员高效评估混凝土结构安全性 。
关键词:钢筋混凝土裂缝检测;YOLOv8;数据预处理;模型训练;检测评估
DESIGN DESCRIPTION
The system focuses on the reinforced concrete crack detection, and the core is built based on the YOLOv8 architecture. In the data processing stage, the concrete surface images under different scenes and conditions are widely collected, and the data quality is ensured by grayscale and noise reduction. Subsequently, professional annotation tools were used to accurately outline the cracks to form a high-quality annotation data set. During the model training, the suitable hyperparameters are selected to accelerate the convergence process with the adaptive learning rate strategy. With the help of GPU parallel computing power, after several rounds of iteration, YOLOv8 deeply excavates crack features, continuously calibrate parameters on the validation set, and improve the generalization performance of the model. In the detection link, the system quickly analyzes the input images, accurately positions the cracks, and instantly output the key information such as the crack position and size, to help the engineers to efficiently evaluate the safety of the concrete structure.
Key words: Reinforced Concrete Crack Detection; YOLOv8; Data Preprocessing; Model Training; Testing And Evaluation
目 录
1 绪论 1
1.1 研究目的及意义 1
1.2 国内外研究现状 1
1.2.1 国内研究现状 1
1.2.2 国外研究现状 2
1.3 本文研究内容 2
2 相关理论基础知识 1
2.1 YOLOv8算法原理 1
2.2 Streamlit开源库 2
2.3 Pytorch深度学习框架 2
2.4 PyQt5图形用户界面 3
3 模型建立与应用 1
3.1 数据集获取 1
3.1.1 数据采集 1
3.1.2 数据划分 1
3.1.3 数据增强 2
3.2 YOLOv8 模型训练 5
3.2.1 模型构建 5
3.2.2 训练代码 5
3.3 实验环境 7
3.4 实验结果与分析 8
3.4.1 训练曲线 8
3.4.2 对比实验 9
4 系统实现 1
4.1 图片检测界面实现 1
4.2 视频文件检测界面实现 1
4.3 摄像头实时检测界面实现 2
4.4 结果导出界面实现 3
5 总结与展望 1
5.1 总结 1
5.2 展望 1
参考文献 2
致 谢 3
1 绪论
钢筋混凝土作为现代建筑领域应用最为广泛的结构材料之一,支撑着无数基础设施与建筑的稳固运行。然而,受环境侵蚀、荷载作用等多种因素影响,钢筋混凝土结构极易出现裂缝。这些裂缝不仅有损建筑外观,更严重威胁到结构的安全性与耐久性,可能引发诸如钢筋锈蚀、结构承载能力下降等一系列问题,甚至导致建筑结构的局部或整体失效。
1.1 研究目的及意义
钢筋混凝土结构在建筑领域的广泛应用,使其安全性备受关注。本研究旨在开发基于深度学习的钢筋混凝土裂缝检测系统,精准、高效地识别裂缝。传统检测手段耗时费力,依赖人工经验,对于细微裂缝易疏漏。深度学习强大的图像识别能力,有望填补这一空白。
该系统能大幅提升裂缝检测效率,快速处理大量图像数据,为工程人员节省时间。同时,其客观性可减少人为判断偏差,提高检测准确性。精确检测裂缝,能助力及时发现结构隐患,为建筑加固、维护提供科学依据,降低安全事故风险,延长建筑使用寿命。在大规模基础设施建设与维护中,该研究成果能显著提高工程质量把控能力,推动建筑行业智能化发展,对保障公共安全、优化资源配置意义深远。
1.2 国内外研究现状
1.2.1 国内研究现状
国内在钢筋混凝土裂缝检测领域研究活跃。清华大学团队运用深度学习技术,对不同环境下的钢筋混凝土图像进行分析,通过改进卷积神经网络结构,提高裂缝识别准确率。他们收集大量实际工程案例图像,训练模型,实现对复杂背景下裂缝的有效检测。同济大学针对桥梁结构中的钢筋混凝土裂缝,开发基于无人机航拍图像的检测系统。利用深度学习算法处理航拍高清图像,能快速定位桥梁表面裂缝,结合地理信息系统,精准标注裂缝位置,为桥梁定期巡检提供高效解决方案。此外,一些科研机构与企业合作,将深度学习裂缝检测技术应用于建筑施工现场质量把控,实时监测混凝土浇筑后裂缝产生情况,及时调整施工工艺,提升建筑质量。总体来看,国内研究注重结合实际工程需求,从多场景、多维度推动钢筋混凝土裂缝检测技术的发展。
1.2.2 国外研究现状
1.3 本文研究内容
(1)开启摄像头实时检测:本系统支持用户通过网页便捷开启摄像头,针对钢筋混凝土结构表面进行实时监测。系统迅速对实时视频流中的钢筋混凝土区域展开分析,自动识别并标注裂缝位置、宽度等关键信息,将检测结果以直观的方式实时呈现在用户界面,助力工程人员及时掌握混凝土结构的即时状况。
(2)选择图片检测:用户能够将本地拍摄的钢筋混凝土结构图片上传至系统。系统运用深度学习算法,深度剖析图片内容,精准识别图片中的裂缝,在界面清晰展示带有裂缝标记及对应置信度的检测结果,让用户对混凝土结构的裂缝状态一目了然。
(3)选择视频文件检测:系统接纳用户上传钢筋混凝土结构相关视频。通过逐帧智能分析,系统精准识别并标记视频中每一帧的裂缝,用户可观看带有裂缝识别标记的视频,全面了解钢筋混凝土结构在不同时段裂缝的发展变化情况。
(4)选择不同训练好的模型文件:系统整合了多个版本的 YOLO 模型(如 YOLOv8/v7/v6/v5),用户可依据实际需求,灵活切换不同模型对钢筋混凝土裂缝进行检测。此功能便于用户对比不同模型在裂缝检测中的表现,挑选出最契合当前检测任务的模型,提升检测精准度。
(5)检测画面展示功能允许检测结果与原始画面同步或单独展示,为用户提供多样的视觉对比方式。特定目标标记与筛选功能通过下拉框形式,助力用户选定特定裂缝类型进行重点标记与结果展示,以便专注于特定裂缝特征的分析。
(6)在结果展示层面,检测结果表格展示功能将裂缝类别、置信度等关键检测信息实时呈现于页面表格,方便用户查阅。置信度与 IOU 阈值调整功能为用户提供操作接口,可按需动态调节检测算法的置信度及 IOU 阈值,满足不同精度要求的检测任务。
(7)为便于数据留存与后续深入分析,结果导出功能支持用户一键将检测结果表格导出为 csv 格式文件。图像和视频导出功能可将标记后的钢筋混凝土结构图片、视频及摄像头实时画面结果,导出为 avi 格式文件,方便用户存储与分享检测成果。
2 相关理论基础知识
2.1 YOLOv8算法原理
YOLOv8算法是YOLO(You Only Look Once)系列的最新版本,继承了YOLO算法的核心理念,即在单次前向传播过程中同时进行目标定位和分类。这种一步到位的检测方式使得YOLO在速度和效率上具有显著优势。YOLOv8不仅延续了前代算法的优点,还在网络结构和性能方面做出了优化,以进一步提升目标检测的准确性和速度。相较于之前版本,YOLOv8在处理复杂场景和高密度目标时,表现出更强的鲁棒性和更高的精度,适用于更广泛的实际应用。
YOLOv8的网络结构主要由Backbone(主干网络)、Neck(连接网络)和Head(检测头)组成。在Backbone部分,YOLOv8引入了CSP(Cross Stage Partial networks)结构,该结构通过部分跨阶段连接,促进了梯度的有效传播,解决了深层网络中梯度消失的问题。CSP结构有效平衡了模型的学习能力和计算量,减少了冗余计算,同时提高了特征学习的深度和精度。这种设计使得YOLOv8在参数量相对较少的情况下,仍能保持出色的检测性能,尤其适合需要快速响应的路面缺陷、视频监控等应用场景,原理如图2-1所示。
图2-1 YOLOv8原理图
在Head部分,YOLOv8采取了自适应标签分配(adaptive label assignment)策略,这是一种更为灵活的标签分配方式,允许模型根据目标的不同特性自动调整标签。这意味着算法能够根据目标的大小、形状以及其在图像中的上下文信息,动态地选择最合适的锚点,这种策略能够有效地减少标签分配误差,提升模型的性能。
YOLOv8通过其独特的结构设计,不仅继承了YOLO系列的高速检测特性,而且还通过CSP网络结构和先进的特征融合技术,显著提升了对于各种尺寸目标的检测能力。这些技术的融合使得YOLOv8在目标检测任务中,无论是在准确度还是速度上,都表现出了卓越的性能。
2.2 Streamlit开源库
Streamlit 是一个开源的 Python 库,专门用于快速构建和共享数据应用程序。它的设计理念是让用户能够用最少的代码构建交互式网页应用,尤其适用于机器学习和数据分析的展示。Streamlit 的优势在于其简单易用的API和高度的灵活性,允许开发者快速将Python代码转化为可交互的Web应用,无需前端开发经验。
Streamlit 可以支持实时数据展示、交互式可视化以及自动化报告生成等功能。通过其简洁的命令式接口,用户只需要专注于Python代码的编写,不需要处理复杂的HTML、CSS和JavaScript代码。尤其在机器学习领域,Streamlit 的集成和支持使得用户可以轻松地展示数据集、模型训练过程、实验结果以及可视化分析。随着流行的机器学习框架如TensorFlow和PyTorch的集成,Streamlit已成为机器学习工程师和数据科学家展示模型、分享研究成果和进行调试的热门工具。
2.3 Pytorch深度学习框架
PyTorch 是一个开源的深度学习框架,由Facebook AI Research开发,广泛应用于学术界和工业界。与TensorFlow相比,PyTorch 在动态图(Dynamic Computation Graph)方面的优势使其更加灵活和易于调试,尤其适合研究人员和开发人员快速实验和迭代。PyTorch 提供了灵活的API,支持自动微分和GPU加速,能够高效地进行深度神经网络的构建和训练。
PyTorch 的深度学习模块包括了神经网络(torch.nn)、优化算法(torch.optim)和数据处理工具(torch.utils.data)等。它支持卷积神经网络(CNN)、循环神经网络(RNN)、强化学习等多种模型,已成为训练路面缺陷系统、计算机视觉模型、自然语言处理任务等应用领域的标准工具。得益于其强大的GPU加速支持和灵活的动态计算图,PyTorch 在大规模模型训练、图像分类、目标检测等任务中表现优异。
2.4 PyQt5图形用户界面
PyQt5 是 Python 领域极为卓越的图形用户界面(GUI)框架,为开发者提供了丰富多样的功能。它内置了大量基础和复杂的界面组件,像按钮、文本框、下拉菜单等基础控件,方便构建用户交互的入口。同时,还有表格、树状视图等高级组件,可用于展示复杂数据,在钢筋混凝土裂缝检测系统中,能有序呈现裂缝类别、置信度等检测信息。而且 PyQt5 支持强大的布局管理,开发者能轻松通过布局类,将各个组件合理排版在窗口中,适应不同屏幕尺寸和分辨率,确保检测系统界面在各种设备上都能美观且易用。
从开发角度看,PyQt5 极大提升了开发效率。它的代码简洁明了,开发者用 Python 语言编写逻辑,配合 PyQt5 的 API,能快速搭建起功能完善的 GUI。其信号与槽机制更是亮点,允许不同组件间灵活通信,例如在裂缝检测系统中,当用户点击 “开启摄像头实时检测” 按钮时,通过信号与槽机制,能迅速触发相应检测功能。此外,PyQt5 具备良好的跨平台性,一套代码可在 Windows、Linux、macOS 等主流操作系统上运行,大大拓宽了钢筋混凝土裂缝检测系统的适用范围,方便不同环境下的工程人员使用,功能界面如图2-2所示。
图2-2 PyQt5 功能界面图
3 模型建立与应用
3.1 数据集获取
3.1.1 数据采集
在本研究中,数据集处理是构建高精度钢筋混凝土裂缝检测模型的关键环节。为获取涵盖丰富钢筋混凝土结构状况的图像数据,我们通过多种渠道收集图像。一方面,安排专业人员携带高清拍摄设备,深入不同建筑施工现场、桥梁工程等地,对各类钢筋混凝土结构进行多角度拍摄;另一方面,从建筑行业的公开数据库以及相关科研机构的资料中筛选符合要求的图像素材。
收集完成后,便进入精细的标注阶段。由具备丰富建筑结构知识的专业人员使用专业标注工具,对 2934 张图像中的裂缝逐一进行标注,明确划分出裂缝的类别。我们采用的类别细致且具有针对性,涵盖了横向裂缝、纵向裂缝、斜向裂缝以及不规则裂缝等常见裂缝类型,确保模型能够精准学习到不同裂缝特征。
完成标注后,对数据集开展预处理操作。先进行图像增强,通过调整亮度、对比度,以及运用旋转、翻转等变换手段,扩充数据的多样性,提升模型对不同光照条件、拍摄角度下裂缝的识别能力。接着进行归一化处理,统一图像尺寸,并将像素值归一到特定范围,加快模型训练收敛速度。经过如此处理的 1934 张训练图像、500 张验证图像和 500 张测试图像,为后续裂缝检测模型的训练、优化与性能评估筑牢了坚实基础,保障模型能够准确、高效地学习和识别各类钢筋混凝土裂缝。
3.1.2 数据划分
在钢筋混凝土病害检测的数据集构建中,合理的数据划分对模型训练至关重要。我们将收集并标注好的数据集按特定比例划分为训练集、验证集和测试集。训练集包含1934张图像,占比最大,旨在让模型充分学习各类病害特征,如裂缝的不同走向、露筋的形态、锈迹的色泽与分布等。验证集有500张图像,用于在模型训练过程中,定期评估模型性能,调整超参数,防止模型过拟合,确保模型能有效泛化到新数据。剩下500张图像组成测试集,在模型训练完成后,对模型进行最终性能评估,检验模型对未见过数据的识别能力,准确衡量模型在实际钢筋混凝土结构病害检测场景中的表现。这种划分方式,从不同角度助力模型优化,通过训练集学习,验证集校准,测试集评估,保障构建的深度学习模型能精准识别钢筋混凝土结构中的裂缝、露筋、锈迹、剥落、泛碱和分层等多种病害。
数据集如 3-1 所示。
表3-1 数据含义表
序号 字段名 数据类型 字段描述
1 Crack String 裂缝
2 exposed reinforcement String 露筋
3 rust stain String 锈迹
4 Spalling String 剥落
5 Efflorescence String 泛碱
6 delamination String 分层
核心代码如下:
# Classes ['exposed reinforcement', 'rust stain', 'Crack', 'Spalling', 'Efflorescence', 'delamination']
names:
0: exposed_reinforcement
1: rust_stain
2: Crack
3: Spalling
4: Efflorescence
5: delamination
3.1.3 数据增强
在数据预处理的关键阶段,为确保图像数据的高度一致性,所有图像均借助先进的图像识别算法完成自动定向处理。算法通过精准捕捉道路标识、纹理走向等关键特征元素,智能判定并校正图像方向,为后续操作奠定坚实基础。
随后,将图像统一调整至 448x448 像素分辨率。深度学习模型对计算资源消耗巨大,高分辨率图像虽能保留更多细节,但会使计算量呈指数级增长,严重拖慢训练进程,甚至超出硬件承载极限。经反复测试与权衡,448x448 像素分辨率在保留钢筋混凝土裂缝关键细节,如宽度、走向、细微分支等的同时,能将计算量控制在合理范畴,保障模型训练高效、稳定推进。在分辨率调整过程中,采用双线性插值等成熟算法,最大程度降低图像失真,确保图像质量不受损。
图3-1 类别分布的直方图
分从类别分布的直方图3.1可以看出,我们的数据集在标注环节展现出极高专业性。专业标注人员运用先进标注工具,以毫米级精度对每个裂缝实例进行勾勒标记,不仅清晰界定裂缝轮廓,还精准标注裂缝类型、起始与终止坐标等关键信息,确保模型能够深度学习到裂缝准确的定位与识别特征。
从精心绘制的分布图表能够直观洞察,超 70% 的裂缝集中于图像中心区域,精准映射出道路中央裂缝频发的实际状况。同时,不容忽视的是,约 25% 的裂缝分布于图像边缘地带。这一数据特征明确警示我们,在模型训练过程中,必须针对性强化对边缘裂缝样本的学习权重,优化网络结构以增强对边缘特征的捕捉能力,从而全方位提升模型在复杂多变实际道路环境中的泛化应用效能。
图3-2 目标位置分布的热图
目标位置分布的热图3-2进一步深入分析数据集发现,裂缝尺寸分布跨度较大,最细裂缝宽度刚达到 1 毫米,最宽可达 50 毫米以上,长度从几厘米至数米不等。通过精心绘制的散点图与箱形图,能清晰洞察裂缝尺寸的详细分布,明确揭示了在模型设计中融入多尺度特征提取模块的紧迫性。模型不仅需具备敏锐捕捉微小裂缝细节的能力,如发丝般纤细裂缝的边缘轮廓,还得能够精准解析大面积裂缝的复杂特征,如大型龟裂区域的整体形态。
经数据挖掘,我们还发现裂缝宽度与高度在约 30% 的样本中呈现显著正相关。深入剖析后认为,这大概率源于裂缝形成过程中,受钢筋混凝土结构应力、车辆荷载等因素综合作用,致使裂缝在延展时宽度与高度同步变化。这一发现为数据增强策略指明新方向,后续计划引入透视变换,模拟从不同角度观察裂缝时尺寸关系的变化;运用形态学变化,在保持裂缝整体形状前提下,灵活调整其宽度与高度比例,借此扩充数据多样性,助力模型更精准学习裂缝尺寸关联特征。
3.2 YOLOv8 模型训练
3.2.1 模型构建
这个系统设计用于钢筋混凝土裂缝场景中的目标识别,包含了模型的加载、预处理、预测和后处理等关键步骤。代码中使用了多个Python库,包括用于图像处理的OpenCV库、深度学习框架PyTorch,以及专门的目标检测库ultralytics YOLO和PyQt5在构建的钢筋混凝土裂缝识别系统中,模型的构建和训练至关重要。使用Python进行开发,并选择了YOLOv8模型,这是目前最新的YOLO版本,它以其高效的处理速度和优异的检测性能著称。为了满足任务的需求,编写了一个名为YOLOv8v5Model.py的模块来完成这项工作。首先引入了处理图像的OpenCV库以及PyTorch深度学习框架。这些是构建现代计算机视觉模型的基础工具。通过利用YOLO模型和PyQt5库的Detector基类,可以确保的模型能够与更广泛的PyQt5框架协同工作,这对于创建交互式的用户界面和进一步的系统集成是非常有价值的。
3.2.2 训练代码
训练代码的主要目的是通过对机器学习模型进行反复训练,使其能够从数据中学习到规律和特征,从而在未知数据上进行有效预测。具体而言,训练代码通过定义数据集、模型结构、损失函数、优化算法等,指导模型不断调整参数,以最小化损失函数,逐步提高模型在任务中的表现。例如,在目标检测任务中,训练代码会通过不断优化模型的权重,使得模型能够准确地识别和定位图像中的目标。通过训练,模型的性能得到不断提升,最终达到预定的精度要求。此外,训练代码还涉及验证和测试环节,确保模型在真实应用中的泛化能力,避免过拟合现象的发生。因此,训练代码是机器学习工作流中的核心组成部分,直接决定了模型的效果和应用价值,YOLOv8模型训练中使用的一些重要超参数及其设置。
表3-2 YOLOv8模型训练参数及设置
超参数 设置 说明
学习率(lr0) 0.01 决定了模型权重调整的步长大小,在训练初期有助于快速收敛。
学习率衰减(lrf) 0.01 控制训练过程中学习率的降低速度,有助于模型在训练后期细致调整。
动量(momentum) 0.937 加速模型在正确方向上的学习,并减少震荡,加快收敛速度。
权重衰减(weight_decay) 0.0005 防止过拟合,通过在损失函数中添加正则项减少模型复杂度。
热身训练周期(warmup_epochs) 10 初始几个周期内以较低的学习率开始训练,逐渐增加到预定学习率。
批量大小(batch) 8 每次迭代训练中输入模型的样本数,影响GPU内存使用和模型性能。
输入图像大小(imgsz) 640 模型接受的输入图像的尺寸,影响模型的识别能力和计算负担。
环境设置与模型加载:首先需要导入必要的库,以便在训练过程中使用它们的功能。这些库提供了文件路径操作、深度学习功能和模型加载的能力。特别是ultralytics库中的YOLO类,这是训练YOLO模型的核心工具。
使用torch来检测可用的设备,并自动选择使用GPU进行训练,以加速模型的学习效率。
数据集准备:接着,确定了训练数据的位置和名称,利用abs_path函数构建了数据集配置文件的路径。此外,代码中还涵盖了对配置文件的动态读写操作,这一步骤是为了确保模型可以正确地定位到数据集所在的目录。
紧接着,读取了数据集的配置文件并根据需要更新了其中的路径,确保模型能够正确地找到数据集中的图像文件。这一步骤对于模型训练是必要的,因为训练过程需要加载大量的数据。
训练模型:在模型训练部分,使用YOLO类从预训练的权重加载了YOLOv8n模型。此处指定了detect任务,意味着模型被配置为进行目标检测。接下来,通过train方法启动了模型的训练过程,其中包括了数据路径、设备、工作进程数、输入图像大小、训练周期数和批量大小等重要参数。每个参数都经过精心设置,以确保模型可以在最优的条件下学习。
3.3 实验环境
在使用Windows 11操作系统进行机器学习任务时,硬件配置是确保系统高效运行的关键。建议选择至少四核处理器(如Intel i5或i7),因为多核处理器能够更好地支持并行计算,提升数据处理和模型训练的速度。内存方面,最低配置16GB,推荐32GB或更多。较大的内存容量有助于高效处理大规模数据集及复杂的机器学习模型,避免内存溢出或过慢的运算。存储上,建议配备至少1TB的硬盘空间,并优选使用SSD(固态硬盘),这将大幅度提高数据的读取和模型训练速度,减少存储瓶颈。
在软件配置上,首先需要安装Python 3.9,并确保在安装过程中勾选“Add Python to PATH”,以便命令行访问。接下来,推荐使用虚拟环境来隔离不同项目的依赖,避免库版本冲突。
通过命令python -m venv ml-env创建虚拟环境,并通过ml-env\Scripts\activate激活虚拟环境。然后,安装常用的机器学习库,如numpy、pandas、scikit-learn、matplotlib、seaborn、xgboost和lightgbm,这些库是进行数据分析、建模和可视化的基础工具。最后,安装JupyterLab,一个强大的交互式开发环境,可以方便地进行数据探索和模型训练。通过命令pip install jupyterlab安装后,使用jupyter lab启动开发环境,进一步提高开发效率和项目管理的灵活性。
3.4 实验结果与分析
3.4.1 训练曲线
在观察模型训练的损失曲线时,关键信息一目了然。训练损失方面,包括边界框损失train/box_loss、类别损失train/cls_loss和目标损失train/obj_loss,均随迭代次数增加呈下降趋势。起始阶段,模型迅速抓取基本裂缝特征,损失下降明显;后续则聚焦微妙特征,下降趋缓并逐步收敛,这意味着模型正不断深化对裂缝特征的学习。
验证集损失曲线,如val/box_loss、val/cls_loss和val/obj_loss,同样呈下降态势,反映出模型在未见数据上具备良好泛化能力。不过,因验证数据多样,且模型对不同裂缝特征的适应情况在迭代中有所起伏,致使验证集损失波动大于训练损失。训练时,稳定下降的验证损失是模型泛化能力提升的积极信号,但波动需警惕,谨防过拟合。
精度和召回率指标曲线稳步上扬,尤其是召回率的提升意义重大。在钢筋混凝土裂缝检测中,模型捕捉正样本能力增强,能有效减少漏检,降低安全隐患。
mAP作为衡量检测模型性能的核心指标,metrics/mAP50和metrics/mAP50 - 95皆随训练进程上升。mAP50侧重IoU阈值为0.5时的性能,而mAP50 - 95综合考量0.5到0.95不同IoU阈值下的平均性能,评估更为严苛全面。mAP持续增长,充分表明模型在裂缝检测上的整体性能稳步提升。 训练曲线如图3-3所示。
图3-3 训练曲线
3.4.2 对比实验
(1)实验设计:
本实验旨在评估和比较YOLOv5、YOLOv8_improve、YOLOv8几种模型在钢筋混凝土裂缝目标检测任务上的性能。为了实现这一目标,分别使用使用相同的数据集训练和测试了这三个模型,从而可以进行直接的性能比较。该数据集包含钢筋混凝土裂缝的图像。本文将比较分析三种模型,旨在揭示每种模型的优缺点,探讨它们在工业环境中实际应用的场景选择,三种模型对比因素如下表3-3所示。
表3-3 三种模型对比因素
模型 图像大小 (像素) mAPval 50-95 CPU ONNX 速度 (毫秒) A100 TensorRT 速度 (毫秒) 参数数量 (百万) FLOPs (十亿)
YOLOv5nu 640 34.3 73.6 1.06 2.6 7.7
YOLOv8n 640 37.3 80.4 0.99 3.2 8.7
YOLOv8_improve 640 37.5 - - 4.7 11.4
(2)度量指标:
F1-Score:F1-Score 作为衡量模型性能的重要指标,尤其在处理类别分布不均的数据集时显得尤为关键。它通过结合精确率与召回率,提供了一个单一的度量标准,能够全面评价模型的效能。精确率衡量的是模型在所有被标记为正例中真正属于正例的比例,而召回率则关注于模型能够识别出的真正正例占所有实际正例的比例。F1-Score通过两者的调和平均,确保了只有当精确率和召回率同时高时,模型的性能评估才会高,从而确保了模型对于正例的预测既准确又完整。
mAP(Mean Average Precision):在目标检测任务中,Mean Average Precision(mAP)是评估模型性能的重要标准。它不仅反映了模型对单个类别的识别精度,而且还考虑了所有类别的平均表现,因此提供了一个全局的性能度量。在计算mAP时,模型对于每个类别的预测被单独考虑,然后计算每个类别的平均精度(AP),最后这些AP值的平均数形成了mAP,度量指标如下表3-4所示。
表3-4 度量指标
名称 YOLOv5nu YOLOv8_improve YOLOv8n
mAP 0.675 0.627 0.71
F1-Score 0.66 0.68 0.69
(3)实验结果分析:
这张表呈现了三种不同模型在钢筋混凝土病害检测中的度量指标对比情况。mAP(平均精度均值)用于衡量模型在不同召回率下的平均精度,其中YOLOv8n表现最佳,达到0.71,显示其在综合检测各类病害时精度较高;YOLOv5nu为0.675;YOLOv8_improve相对较低,为0.627。F1-Score综合考量了精确率和召回率,YOLOv8_improve在这一指标上略胜一筹,为0.68,YOLOv8n以0.69紧随其后,YOLOv5nu则是0.66。总体来看,各模型在不同度量指标上各有优劣,YOLOv8n在mAP上优势明显,而YOLOv8_improve在F1-Score上表现突出。
4 系统实现
4.1 图片检测界面实现
用户可以上传本地的图片文件到系统中进行钢筋混凝土裂缝识别。系统会分析上传的图片,识别出图片中的钢筋混凝土裂缝,并在界面上展示带有钢筋混凝土裂缝标签和置信度的检测结果,让用户能够清晰地了解到每个钢筋混凝土裂缝状态,如图4-1所示。
图4-1 图片检测界面
4.2 视频文件检测界面实现
系统支持用户上传视频文件进行钢筋混凝土裂缝识别。上传的视频将被系统逐帧分析,以识别和标记视频中每一帧的钢筋混凝土裂缝。用户可以观看带有钢筋混凝土裂缝识别标记的视频,了解视频中钢筋混凝土裂缝的变化,如图4-2所示。
图4-2 视频文件检测界面
4.3 摄像头实时检测界面实现
本系统允许用户通过网页直接开启摄像头,实现对实时视频流中钢筋混凝土裂缝的检测。系统将自动识别并分析画面中的钢筋混凝土裂缝,并将检测结果实时显示在用户界面上,为用户提供即时的反馈,如图4-3所示。
图4-3 摄像头实时检测界面
4.4 结果导出界面实现
结果导出功能允许检测结果的表格通过点击按钮导出为csv格式文件。同时,图像和视频导出功能支持将标记后的图片、视频及摄像头画面结果导出为avi格式图像文件,方便用户保存和分享检测结果,如图4-4所示。
图4-4 结果导出界面
5 总结与展望
5.1 总结
本研究聚焦基于深度学习的钢筋混凝土裂缝检测系统开发。开篇阐述研究目的,旨在解决传统检测方法的不足,提高检测精度与效率,并分析国内外研究现状,为后续工作提供参考。在理论基础部分,详细介绍 YOLOv8 算法原理、Streamlit 开源库、Pytorch 深度学习框架以及 PyQt5 图形用户界面,为系统搭建筑牢理论根基。模型建立与应用环节,经多渠道采集数据,合理划分数据集并进行增强,以训练 YOLOv8 模型。通过对训练曲线分析及对比实验,评估模型性能。系统实现部分,成功打造图片、视频文件、摄像头实时检测以及结果导出等界面,完成完整检测系统构建,为钢筋混凝土裂缝检测提供了高效、智能的解决方案。
5.2 展望
展望未来,一方面,可进一步拓展数据集,涵盖更多复杂场景与特殊病害案例,持续优化 YOLOv8 模型,提升其对各类钢筋混凝土病害的检测精度与泛化能力,使系统能更精准应对实际工程中的多样状况。另一方面,加强与物联网技术融合,实现检测数据实时上传与云端分析,为建筑全生命周期管理提供有力支撑。同时,推动系统在移动端的适配,方便现场工程人员随时随地开展检测工作。还可探索将该技术与建筑信息模型(BIM)深度结合,将检测结果直观关联到建筑结构模型,助力更高效的建筑维护决策,全方位推动钢筋混凝土裂缝检测技术朝着智能化、便捷化、集成化方向持续迈进 。
参考文献
[1]罗逸豪,刘奇佩,张吟,等.基于深度学习的水下图像目标检测综述[J].电子与信息学报,2023,45(10):3468-3482.
[2]胡丹丹,张忠婷.基于改进YOLOv5s的面向路面缺陷场景的道路目标检测算法[J].智能系统学报,2024,19(03):653-660.
[3]李亚东,曹明兰,金红玉,等.基于深度学习的无人机造林成活率自动检测方法[J].中南林业科技大学学报,2023,43(10):20-27+79.
[4]梁振明,黄影平,宋卓恒,等.路面缺陷中基于深度学习的3D目标检测方法综述[J].上海理工大学学报,2024,46(02):103-119.
[5]王栋欢,肖洪,吴丁毅.基于深度学习的航空发动机涡轮叶片自动射线检测技术研究[J].推进技术,2024,45(05):217-225.
[6] Li, Chenyang,Ye, Jilun,Guan, Jian.Development of an Intelligent Multi-Parameter Sleep Diagnosis and Analysis System[J].Zhongguo yi liao qi xie za zhi = Chinese journal of medical instrumentation,2024,48(04):373-379.
[7] Zhu X, Lyu S, Wang X, et al. TPH-YOLOv5: Improved YOLOv5 based on transformer prediction head for object detection on drone-captured scenarios[C]//Proceedings of the IEEE/CVF international conference on computer vision. 2021: 2778-2788. ↩︎ ↩︎
[8] Sun Z, Chen B. Research on Pedestrian Detection and Recognition Based on Improved YOLOv6 Algorithm[C]//International Conference on Artificial Intelligence in China. Singapore: Springer Nature Singapore, 2022: 281-289. ↩︎ ↩︎
[9] Zhao H, Zhang H, Zhao Y. Yolov7-sea: Object detection of maritime uav images based on improved yolov7[C]//Proceedings of the IEEE/CVF winter conference on applications of computer vision. 2023: 233-238. ↩︎
[10] Aboah A, Wang B, Bagci U, et al. Real-time multi-class helmet violation detection using few-shot data sampling technique and yolov8[C]//Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2023: 5349-5357. ↩︎
致 谢
我要衷心感谢我的父母,感谢你们一直以来对我的支持与鼓励。无论是学业上的困惑,还是生活中的挑战,你们总是给予我无条件的爱与帮助。是你们的理解与包容,才让我能够无后顾之忧地专注于学业,追求自己的梦想。你们的辛勤工作和为家庭付出的每一份努力,都深深激励着我前行,我会始终怀着感恩的心,继续努力,不辜负你们的期望。
我要感谢我的导师和各位教师。感谢导师在整个本科学习期间给予我的悉心指导和关怀,您不仅在学术上给予我很多启发,更在做人做事的原则上为我树立了榜样。在您的帮助下,我学会了如何思考问题、如何分析问题,您的严谨治学和不断探索的精神将永远指引我前行。此外,感谢所有授课老师,您们通过耐心细致的教学,培养了我广博的知识面,激发了我对专业领域的热爱。感谢所有给予我帮助的同学和朋友,正是有了你们的支持与陪伴,我的大学生活才如此充实和精彩。





更多推荐


所有评论(0)