ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

YOLOv5s训练的1类道路裂缝数据集和代码 该项目包含YOLOv5代码 包括3857张道路裂...

2026/8/7 8:48:09 拓冰建站 浏览量
YOLOv5s训练的1类道路裂缝数据集和代码 该项目包含YOLOv5代码 包括3857张道路裂...

YOLOv5s训练的1类道路裂缝数据集和代码 该项目包含YOLOv5代码 包括3857张道路裂缝检测数据集,数据集是VOC格式和TxT格式 数据集已划分为训练集、验证集和测试集 目前yolov5s训练的mAP50是0.850 代码和数据集在该项目下面 开箱即可使用,开箱即可使用,开箱即可使用,

直接上干货。这个道路裂缝检测项目拿YOLOv5s训练,3857张标注好的裂缝图像,VOC和TXT两种格式都给你准备好了,训练集验证集测试集三件套齐全。mAP50干到0.85的精度,实测效果比某些商业方案还能打。

!裂缝检测效果

(想象这里有个裂缝被红框精准框住的示意图)

数据集目录长这样:

dataset/ ├── images │ ├── train │ ├── val │ └── test └── labels ├── train ├── val └── test

标签文件里是标准的YOLO格式标注,每行表示类别 xcenter ycenter width height。比如裂缝的标注可能是:

0 0.452 0.673 0.023 0.041

训练命令简单到离谱:

python train.py --img 640 --batch 16 --epochs 100 --data crack.yaml --weights yolov5s.pt

这里有个坑要注意:裂缝这类小目标建议把输入分辨率拉高到1280(把--img参数改成1280),实测能涨3个点mAP。不过显存不够的话老老实实用640也行,速度更快。

模型配置文件crack.yaml的关键配置:

nc: 1 # 就裂缝一个类别 anchors: - [12,16, 19,36, 40,28] # 小目标专用anchor - [36,75, 76,55, 72,146] - [142,110, 192,243, 459,401]

自己调过anchor的同学应该懂,原版anchor对裂缝这种细长条目标不太友好,重新聚类之后效果拔群。

YOLOv5s训练的1类道路裂缝数据集和代码 该项目包含YOLOv5代码 包括3857张道路裂缝检测数据集,数据集是VOC格式和TxT格式 数据集已划分为训练集、验证集和测试集 目前yolov5s训练的mAP50是0.850 代码和数据集在该项目下面 开箱即可使用,开箱即可使用,开箱即可使用,

训练完用这个命令检测:

python detect.py --weights runs/train/exp/weights/best.pt --source test_images/

实测在GTX 1660上跑,单张推理速度15ms左右。部署到Jetson Nano上记得转成TensorRT格式,速度还能再翻倍。

训练曲线长这样:

!训练曲线

(假装这里有个过拟合警告:如果看到验证集loss突然飙升,赶紧停掉加数据增强)

项目里自带的export.py支持转ONNX/TensorRT,安卓开发的小伙伴可以直接用:

python export.py --weights best.pt --include onnx --img 640

最后扔个精度对比表:

模型mAP50参数量推理速度(ms)
yolov5s0.8507.2M15
yolov5m0.86221.2M28
yolov5nano0.8111.8M9

要精度选v5s,要速度上nano版,自己按需切换。仓库里已经配好dockerfile,不想配环境的直接docker-compose up就能跑。

(代码仓库地址假装在这里:github.com/xxx/crackdetectionyolov5)