Litcherry/Road-Defect-Detection-MHSA
GitHub: Litcherry/Road-Defect-Detection-MHSA
基于YOLOv8s和MHSA的路面缺陷检测系统
Stars: 1 | Forks: 0
# 基于“基于多头自注意力机制的路面缺陷目标检测研究”的工程文件
本仓库包含论文**“基于多头自注意力机制的路面缺陷目标检测研究”**的工程文件。
该项目实现了一个基于YOLOv8s和多头自注意力机制(MHSA)的路面缺陷目标检测系统。模型训练使用迁移学习,以`yolov8s.pt`作为初始预训练权重。它包括数据集配置、模型训练、评估、可视化、Grad-CAM分析、训练曲线绘制、混淆矩阵绘制以及基于Python的视觉检测工具。
## 数据集
本项目保留的最终数据集如下:
```
datasets/RDD2022_China_Drone_MotorBike_yolov8_2500
```
数据集包含四种路面缺陷类别:
```
0 longitudinal_crack
1 transverse_crack
2 alligator_crack
3 pothole
```
数据集配置:
```
datasets/RDD2022_China_Drone_MotorBike_yolov8_2500/data.yaml
```
## 项目结构
```
road_defect_experiment.py Training, testing, and FPS evaluation
models/mhsa.py MHSA module
models/mhsa_yolov8s.yaml YOLOv8s+MHSA model configuration
road_defect_gui.py Image, video, and camera detection GUI
gradcam_compare.py Three-panel Grad-CAM comparison
gradcam_six_panel_compare.py Six-panel Grad-CAM and detection comparison
plot_training_curves.py Training curve plotting
plot_confusion_matrix_with_background.py Confusion matrix plotting
```
## 检查点
`checkpoints`目录用于存储模型权重和训练输出。在本项目中,最终的YOLOv8s+MHSA模型保存于:
```
checkpoints/repro_china_drone_motorbike_yolov8s_mhsa_p4p5_sgd_img640
```
最终的基线模型保存于:
```
runs/train/repro_china_drone_motorbike_yolov8s_sgd_img640
```
## 训练
YOLOv8s基线:
```
python road_defect_experiment.py train --model baseline --weights yolov8s.pt --run-name repro_china_drone_motorbike_yolov8s_sgd_img640 --data datasets/RDD2022_China_Drone_MotorBike_yolov8_2500/data.yaml --epochs 100 --batch 8 --imgsz 640 --lr0 0.01 --optimizer SGD --device 0
```
YOLOv8s+MHSA:
```
python road_defect_experiment.py train --model mhsa --weights yolov8s.pt --mhsa-yaml models/mhsa_yolov8s.yaml --run-name repro_china_drone_motorbike_yolov8s_mhsa_p4p5_sgd_img640 --data datasets/RDD2022_China_Drone_MotorBike_yolov8_2500/data.yaml --epochs 100 --batch 8 --imgsz 640 --lr0 0.01 --optimizer SGD --device 0
```
## 评估
YOLOv8s基线:
```
python road_defect_experiment.py eval --model baseline --baseline-weights runs/train/repro_china_drone_motorbike_yolov8s_sgd_img640/weights/best.pt --data datasets/RDD2022_China_Drone_MotorBike_yolov8_2500/data.yaml --device 0
```
YOLOv8s+MHSA:
```
python road_defect_experiment.py eval --model mhsa --mhsa-weights checkpoints/repro_china_drone_motorbike_yolov8s_mhsa_p4p5_sgd_img640/weights/best.pt --data datasets/RDD2022_China_Drone_MotorBike_yolov8_2500/data.yaml --device 0
```
## 结果
| 模型 | 测试精度 | 测试召回率 | mAP50(test) | FPS |
| --- | ---: | ---: | ---: | ---: |
| YOLOv8s | 0.7446 | 0.5893 | 0.6379 | 61.08 |
| YOLOv8s+MHSA | 0.7982 | 0.5993 | 0.6803 | 52.83 |
与YOLOv8s基线相比,YOLOv8s+MHSA将mAP50提高了0.0424绝对点,相当于相对提高了约6.65%。
## 视觉检测工具
运行Python视觉检测系统:
```
python road_defect_gui.py
```
标签:Apex, DNS解析, Grad-CAM, GUI, Mutation, Python, YOLOv8s, 交通工程, 可视化, 图像处理, 多头自注意力机制, 工程文件, 开源项目, 数据标注, 数据集配置, 无后门, 机器学习, 模型优化, 模型训练, 模型评估, 模型部署, 深度学习, 混淆矩阵, 目标检测, 科研, 自动驾驶, 视频分析, 计算机视觉, 训练曲线, 论文, 评估, 迁移学习, 逆向工具, 道路缺陷检测