智慧桥梁数据集,桥梁部件和缺陷多标签分割与检测数据集,5.4GB,来自100多座不同桥梁的9920张图像,专门为实际使用而设计的包括桥梁检查标准定义的所有视觉上独特的损伤类型。数据集中的标签类别,共分为3大类,19小类,分割提供yolo,json两种标注方式,检测提供yolo标注方式。
第一类[1]混凝土缺陷标签:空洞、风化、短吻鳄裂缝、剥落、重新成型、暴露的钢筋、空洞区域、裂缝、岩袋类,
第二类[2]一般缺陷标签:锈蚀、湿斑、风化、涂鸦类。
第三类[3]物体部件标签:轴承、伸缩缝、排水、防护设备、接缝胶带、冲刷/混凝土腐蚀等级
[1]concrete defect tag: cavity,efflorescence,alligator crack,spalling,restformwork,exposed rebars, hollowareas, crack, rockpocket classes,
[2]general defect tag: rust, wetspot, weathering, graffiti classes.
[3]object part tag: bearing, expansion joint, drainage, protective equipment, joint tape, washouts/concrete corrosion classes
以下是每一类的数量统计
Class类别ㅤImages数量ㅤObjects目标数ㅤCount on imageaverage(平均每张图目标数) Area on imageaverage(平均每张图目标占比)
rust➔polygon 3915 14720 3.76 4.55%
spalling➔polygon 3739 9884 2.64 5.48%
weathering➔polygon 3096 4634 1.5 34.5%
crack➔polygon 1981 3626 1.83 1.33%
efflorescence➔polygon 1729 3965 2.29 9.34%
protective equipment➔polygon 1494 1890 1.27 20.66%
cavity➔polygon 1355 9271 6.84 4.67%
hollowareas➔polygon 1252 1557 1.24 17.87%
drainage➔polygon 1181 1652 1.4 6.62%
wetspot➔polygon 1109 1661 1.5 18.57%
根据您提供的信息,这是一个包含桥梁部件和缺陷的多标签分割与检测数据集,共有5.4GB的数据量,来自100多座不同桥梁的9920张图像。数据集中的标签分为三大类,共19个小类,并且提供了YOLO格式和JSON格式的标注文件。接下来,我将为您详细说明如何处理这个数据集,包括数据准备、模型训练和评估。
1. 数据集准备
假设您的数据集目录结构如下:
bridge_dataset/
├── images/
│ ├── train/
│ └── val/
├── labels/
│ ├── train/
│ └── val/
└── bridge_data.yaml
每个图像文件对应一个标签文件,标签文件是TXT或JSON格式,具体取决于您选择使用的标注方式。
2. 创建数据集配置文件
创建一个 bridge_data.yaml
文件,内容如下:
train: ../bridge_dataset/images/train
val: ../bridge_dataset/images/val
nc: 19 # 总共有19个类别
names: ['cavity', 'efflorescence', 'alligator_crack', 'spalling', 'restformwork', 'exposed_rebars', 'hollow_areas', 'crack', 'rockpocket', 'rust', 'wetspot', 'weathering', 'graffiti', 'bearing', 'expansion_joint', 'drainage', 'protective_equipment', 'joint_tape', 'washouts_concrete_corrosion']
3. 准备YOLO配置文件
如果您使用的是YOLOv5,可以使用预定义的配置文件,例如models/yolov5s.yaml
。如果您需要自定义网络结构,可以根据需要修改配置文件。
4. 训练模型
使用YOLOv5进行训练
假设您已经安装了所有必要的依赖项,并且数据集和配置文件都已准备好,可以运行以下命令来开始训练:
python train.py --img 640 --batch 16 --epochs 100 --data bridge_data.yaml --cfg models/yolov5s.yaml --weights yolov5s.pt --name bridge_yolov5s
参数说明:
--img 640
:输入图像的大小。--batch 16
:批量大小。--epochs 100
:训练轮数。--data bridge_data.yaml
:数据集配置文件路径。--cfg models/yolov5s.yaml
:模型配置文件路径。--weights yolov5s.pt
:预训练权重文件。--name bridge_yolov5s
:实验名称,用于保存训练结果。
使用YOLOv7进行训练
如果您想使用最新的YOLOv7,可以按照以下步骤操作:
-
克隆YOLOv7仓库并安装依赖项:
git clone https://github.com/WongKinYiu/yolov7 cd yolov7 pip install -r requirements.txt
-
运行训练脚本:
python train.py --img 640 --batch 16 --epochs 100 --data bridge_data.yaml --cfg cfg/training/yolov7.yaml --weights yolov7.pt --name bridge_yolov7
参数说明:
--img 640
:输入图像的大小。--batch 16
:批量大小。--epochs 100
:训练轮数。--data bridge_data.yaml
:数据集配置文件路径。--cfg cfg/training/yolov7.yaml
:模型配置文件路径。--weights yolov7.pt
:预训练权重文件。--name bridge_yolov7
:实验名称,用于保存训练结果。
5. 评估模型
训练完成后,您可以使用以下命令来评估模型在验证集上的性能:
python val.py --data bridge_data.yaml --weights runs/train/bridge_yolov5s/weights/best.pt --img 640 --conf 0.5 --iou 0.5
参数说明:
--data bridge_data.yaml
:数据集配置文件路径。--weights runs/train/bridge_yolov5s/weights/best.pt
:最佳权重文件路径。--img 640
:输入图像的大小。--conf 0.5
:置信度阈值。--iou 0.5
:IOU阈值。
6. 推理和可视化
您可以使用以下命令来进行推理并可视化结果:
python detect.py --source bridge_dataset/images/val --weights runs/train/bridge_yolov5s/weights/best.pt --conf 0.5 --save-txt --save-conf --save-crop
参数说明:
--source bridge_dataset/images/val
:测试图像的路径。--weights runs/train/bridge_yolov5s/weights/best.pt
:最佳权重文件路径。--conf 0.5
:置信度阈值。--save-txt
:保存预测结果到TXT文件。--save-conf
:保存置信度信息。--save-crop
:保存裁剪后的目标图像。
7. 总结
以上步骤展示了如何使用YOLOv5或YOLOv7进行桥梁部件和缺陷的目标检测。您可以根据需要调整配置文件和训练参数,以获得更好的性能。