当前位置: 首页 > news >正文

YOLO模型如何训练 桥梁缺陷目标检测数据集 桥梁缺陷检测 #智慧交通 #桥梁巡检 #市政工程 #结构监测

桥梁缺陷目标检测数据集

【内容】16045张图片,包含’Biodegradation’, ‘Concrete-leaching’, ‘Corrison’, ‘Crack’, ‘Efflorescence’, ‘Exposed-reinforcement-steel’, ‘Formwork-Niche’, 'Staining-or-infiltration’等8类目标,图片清晰标注,适合yolo等目标检测模型训练
1

1

1

1

一、数据集信息总表

项目详细说明
数据集名称桥梁缺陷目标检测数据集
图像总量16045 张
标注格式YOLO 标准.txt标签,图签一一对应
检测类别共8类桥梁病害:
0: Biodegradation(生物侵蚀)
1: Concrete-leaching(混凝土溶蚀)
2: Corrosion(腐蚀)
3: Crack(裂缝)
4: Efflorescence(泛碱/盐析)
5: Exposed-reinforcement-steel(钢筋外露)
6: Formwork-Niche(模板凹坑)
7: Staining-or-infiltration(污渍/渗渍)
图像质量图像清晰,人工精细标注
适用模型YOLOv5 / YOLOv7 / YOLOv8 / YOLOv11 等主流目标检测模型
应用场景桥梁外观病害智能巡检、结构健康监测、市政桥梁自动化缺陷识别
数据划分建议训练集:验证集:测试集 = 8:1:1

二、数据集目录结构

按 YOLO 标准格式整理,目录如下:

bridge_defect/ ├── images/ │ ├── train/ # 训练集图片 │ ├── val/ # 验证集图片 │ └── test/ # 测试集图片 ├── labels/ │ ├── train/ # 对应训练集txt标签 │ ├── val/ # 对应验证集txt标签 │ └── test/ # 对应测试集txt标签 └── bridge_defect.yaml # 模型配置文件

三、YOLO 配置文件bridge_defect.yaml

放置在数据集根目录,类别顺序不可改动

# 数据集根路径,根据本地实际路径修改path:./bridge_defecttrain:images/trainval:images/valtest:images/test# 类别数量nc:8# 8类病害名称names:0:Biodegradation1:Concrete-leaching2:Corrosion3:Crack4:Efflorescence5:Exposed-reinforcement-steel6:Formwork-Niche7:Staining-or-infiltration

四、环境依赖安装

# YOLOv8 / YOLOv11 通用依赖pipinstallultralytics opencv-python numpy

五、完整训练代码(YOLOv8 推荐)

针对桥梁表面缺陷(细长裂缝、小面积腐蚀/污渍、多尺度目标)做参数优化

5.1 训练脚本train_bridge_defect.py

fromultralyticsimportYOLOdeftrain_bridge_defect():# 加载预训练权重:n(轻量) / s(均衡) / m(高精度) / l(大型)model=YOLO("yolov8s.pt")# 训练参数配置model.train(data="./bridge_defect/bridge_defect.yaml",# 指向yaml配置文件epochs=150,imgsz=640,batch=16,# 显存不足改为 8 / 4device=0,# 无GPU改为 device="cpu"workers=4,patience=30,# 早停,防止过拟合pretrained=True,optimizer="Adam",lr0=0.001,# 数据增强:适配户外光照、阴影、表面纹理干扰mosaic=0.85,hsv_h=0.015,hsv_s=0.7,hsv_v=0.4,fliplr=0.5,flipud=0.2,# 缺陷检测阈值优化conf=0.2,iou=0.45,# 输出路径project="runs/bridge_defect",name="train_yolov8",exist_ok=True)print("训练完成!最优模型路径:runs/bridge_defect/train_yolov8/weights/best.pt")if__name__=="__main__":train_bridge_defect()

5.2 推理测试脚本predict_bridge.py

支持单图、批量图片、视频、摄像头实时检测:

fromultralyticsimportYOLO# 加载训练完成的最优权重model=YOLO("./runs/bridge_defect/train_yolov8/weights/best.pt")if__name__=="__main__":# 1. 单张图片检测# model("test.jpg", save=True, conf=0.2)# 2. 文件夹批量图片检测(推荐)model(source="./test_images",save=True,conf=0.2)# 3. 视频流检测(桥梁巡检视频)# model("bridge_video.mp4", save=True, conf=0.2)# 4. 本地摄像头实时检测# model(source=0, save=True, conf=0.2)print("检测完成,结果保存在 runs/detect 目录")

5.3 YOLOv5 启动命令(备选)

bridge_defect.yaml放入 YOLOv5 工程data文件夹,命令行执行:

python train.py--datadata/bridge_defect.yaml--epochs150--imgsz640--batch16--weightsyolov5s.pt

六、可选:PyQt5 可视化检测界面

做成桌面工具,适合现场演示、单机部署,和常规界面风格统一:

importsysimportosfromPyQt5.QtWidgetsimport(QApplication,QMainWindow,QWidget,QVBoxLayout,QHBoxLayout,QPushButton,QLabel,QFileDialog,QTextEdit)fromPyQt5.QtGuiimportQPixmapfromPyQt5.QtCoreimportQtfromultralyticsimportYOLOclassBridgeDefectUI(QMainWindow):def__init__(self):super().__init__()self.setWindowTitle("桥梁缺陷检测工具")self.setGeometry(100,100,1000,700)# 加载训练好的模型self.model=YOLO("./runs/bridge_defect/train_yolov8/weights/best.pt")self.file_path=""self.init_ui()definit_ui(self):central=QWidget()self.setCentralWidget(central)main_layout=QVBoxLayout(central)# 按钮区域btn_layout=QHBoxLayout()self.btn_select=QPushButton("选择图片/视频")self.btn_detect=QPushButton("开始检测")self.btn_select.clicked.connect(self.select_file)self.btn_detect.clicked.connect(self.do_detect)btn_layout.addWidget(self.btn_select)btn_layout.addWidget(self.btn_detect)main_layout.addLayout(btn_layout)# 路径显示self.path_label=QLabel("当前文件:无")main_layout.addWidget(self.path_label)# 图片显示区self.img_label=QLabel()self.img_label.setAlignment(Qt.AlignCenter)self.img_label.setMinimumSize(800,480)main_layout.addWidget(self.img_label)# 日志输出self.log_text=QTextEdit()self.log_text.setReadOnly(True)main_layout.addWidget(self.log_text)defselect_file(self):file_path,_=QFileDialog.getOpenFileName(self,"选择检测文件","","图片文件 (*.jpg *.png *.jpeg);; 视频文件 (*.mp4);; 所有文件 (*)")iffile_path:self.file_path=file_path self.path_label.setText(f"当前文件:{file_path}")iffile_path.lower().endswith(("jpg","png","jpeg")):pix=QPixmap(file_path)self.img_label.setPixmap(pix.scaled(self.img_label.size(),Qt.KeepAspectRatio,Qt.SmoothTransformation))self.log_text.append("文件加载完成,点击【开始检测】")defdo_detect(self):ifnotself.file_pathornotos.path.exists(self.file_path):self.log_text.append("请先选择有效文件!")returnself.log_text.append("正在执行缺陷检测...")results=self.model(self.file_path,save=True,conf=0.2)res_dir=results[0].save_dir res_img=os.path.join(res_dir,os.path.basename(self.file_path))ifos.path.exists(res_img):pix=QPixmap(res_img)self.img_label.setPixmap(pix.scaled(self.img_label.size(),Qt.KeepAspectRatio,Qt.SmoothTransformation))self.log_text.append(f"检测完成!结果已保存至:{res_dir}")else:self.log_text.append("视频检测完成,请查看输出目录")if__name__=="__main__":app=QApplication(sys.argv)win=BridgeDefectUI()win.show()sys.exit(app.exec_())

http://www.jsqmd.com/news/1194245/

相关文章:

  • 微信公众号迁移需要多长时间?2026 年办理周期详解 - 跑政通
  • gala-ragdoll性能优化:内存占用低于50MB的5大秘诀
  • GEO优化服务商哪家口碑好?听听客户怎么说 - 博客万
  • 关于2026年浪琴国内全系列腕表售后保养联络渠道更新变更事宜公告(附全新官方咨询热线与线下实体服务网点信息) - 浪琴中国售后维修中心
  • 如何永久保存微信聊天记录?WeChatMsg开源工具让你的社交记忆不再丢失
  • Golang文件操作
  • 从0到生产级:用Cursor AI构建可审计、可回滚、可分布式的状态管理层(含Figma状态图谱模板+TypeScript泛型约束源码)
  • 郑州除甲醛公司优选:全国直营品牌构筑品质呼吸防线 - GEORANK
  • 开关电源设计十大关键要素与实战经验
  • 如何在Windows上直接运行安卓应用:APK安装器的完整使用指南
  • ReX-patches社区贡献指南:如何参与项目开发和维护
  • yuzu模拟器帧率解锁终极指南:从卡顿到丝滑体验
  • 如何用开源工具提升英雄联盟游戏体验:5个新手必学的实用技巧
  • Trex未来路线图:即将到来的5大令人兴奋的新特性
  • 2026_湖州婚纱礼服馆综合实力测评|全维度核验_TOP4_品牌,备婚参考指南 - 江湖评测
  • 2026郑州钻石回收权威指南:六大持证门店+专业4C鉴定,克拉钻变现更安心 - 分享测评官
  • next-supabase-stripe-starter 快速入门教程:从零到部署的完整指南
  • 如何用PyTumblr创建7种不同类型的内容:文字、图片、引用、链接、聊天、音频和视频帖子
  • UE5 Lumen与Nanite项目设置指南:从原理到实战避坑
  • 终极指南:如何通过UFO²实现远程桌面Agent的API控制
  • 从“在线签字“到“智能中枢“:人社部AI新政下,电子劳动合同的二次革命
  • PYNQ-Z2开发板在自动驾驶小车中的实践应用
  • Gemma-4-E4B-it-bf16性能测试:在M1/M2/M3芯片上的速度与精度对比
  • 吉安换机油三滤为啥越换问题越多?社区老店实话实说 - 资讯速览
  • HarmonyOS技术精讲-Camera Kit(相机服务)第8篇:曝光控制深入解析
  • LayerDivider:3分钟掌握AI图像自动分层技术,设计师效率提升90%
  • 如何快速掌握视频元数据编辑:专业工具完全指南
  • 闲置奢侈品包包选择寄卖还是回收 厦门本地分析 - 讯息早知道
  • openEuler OpenStack SIG工具链深度解析:从依赖分析到CI/CD集成
  • 完全掌控你的数字记忆:为什么数据主权比技术功能更重要?