管道漏水识别和数据集 深度学习YOLOV8模型如何训练管道滴漏检测数据集 识别检测管道水管滴漏检测数据集
深度学习YOLOV8模型如何训练管道滴漏检测数据集 识别检测管道水管滴漏检测数据集
文章目录
- 深度学习YOLOV8模型如何训练管道滴漏检测数据集 识别检测管道水管滴漏检测数据集
- 📁 水管滴漏检测数据集说明(YOLO格式)
- 📂 数据集目录结构(标准 YOLO 格式)
- 🧩 `data.yaml` 配置文件内容
- 🚀 YOLOv8 训练代码(Python 脚本)
- 1. 安装依赖
- 2. 训练脚本(`train_leak_detection.py`)
- ▶️ 运行训练
- 🔍 推理示例(检测新图像)
数据集描述:
水管滴漏检测数据集(YOLO格式)
该数据集包含3000多张高清水管滴漏检测图像。
图像均已完成标注,YOLO格式的TXT标注文件和YAML配置文件,直接使用。
此数据集非常适合用于水管滴漏检测的模型训练和验证。
(使用 Ultralytics YOLOv8 库),方便您直接用于模型训练。
📁 水管滴漏检测数据集说明(YOLO格式)
| 项目 | 描述 |
|---|---|
| 数据集名称 | 水管滴漏检测数据集 |
| 图像数量 | 超过 3000 张高清图像 |
| 标注格式 | YOLO 格式.txt文件(每图对应一个标签文件) |
| 类别数量 | 1 类(drip_leak,滴漏) |
| 建议用途 | 水管滴漏智能检测、工业巡检、异常检测 |
| 数据划分 | 建议按 8:1:1 划分为训练、验证、测试集 |
📂 数据集目录结构(标准 YOLO 格式)
water_leak_dataset/ │ ├── images/ │ ├── train/# 训练图像│ ├── val/# 验证图像│ └── test/# 测试图像│ ├── labels/ │ ├── train/# 训练标签(.txt)│ ├── val/# 验证标签(.txt)│ └── test/# 测试标签(.txt)│ └── data.yaml# 数据集配置文件🧩data.yaml配置文件内容
# data.yaml# 类别名称names:0:drip_leak# 类别数量nc:1# 训练和验证数据集路径(相对于运行训练命令的路径)train:./water_leak_dataset/images/trainval:./water_leak_dataset/images/valtest:./water_leak_dataset/images/test# 类别名称列表(可选)names:['drip_leak']✅ 请将
data.yaml放在与训练脚本同级目录或指定路径。
🚀 YOLOv8 训练代码(Python 脚本)
1. 安装依赖
pipinstallultralytics2. 训练脚本(train_leak_detection.py)
fromultralyticsimportYOLOimportyamlimportos# -------------------------------# 配置参数# -------------------------------DATA_PATH='water_leak_dataset/data.yaml'# 修改为你的 data.yaml 路径MODEL_NAME='yolov8s.pt'# 可选: yolov8n, yolov8s, yolov8m, yolov8l, yolov8xEPOCHS=100BATCH_SIZE=16IMG_SIZE=640PROJECT_NAME='water_leak_detection'EXPERIMENT_NAME='exp1'# -------------------------------# 检查数据配置文件是否存在# -------------------------------ifnotos.path.exists(DATA_PATH):raiseFileNotFoundError(f"数据配置文件未找到:{DATA_PATH}")# 可选:打印 data.yaml 内容进行验证withopen(DATA_PATH,'r')asf:print("数据集配置:")print(f.read())# -------------------------------# 加载预训练模型# -------------------------------model=YOLO(MODEL_NAME)# 加载预训练模型# -------------------------------# 开始训练# -------------------------------results=model.train(data=DATA_PATH,epochs=EPOCHS,batch=BATCH_SIZE,imgsz=IMG_SIZE,device=0ifos.environ.get('CUDA_AVAILABLE')else'cpu',# 使用 GPU 0,若无 GPU 则用 CPUproject=PROJECT_NAME,name=EXPERIMENT_NAME,exist_ok=True,patience=10,# 早停轮数save=True,save_period=10,# 每 10 轮保存一次cache=False,# 可设为 True 加快训练(内存足够时)workers=4,# 数据加载线程数optimizer='AdamW',# 可选: SGD, Adam, AdamWlr0=0.001,# 初始学习率lrf=0.1,# 最终学习率 = lr0 * lrfaugment=True,# 启用数据增强degrees=10.0,translate=0.1,scale=0.2,flipud=0.0,fliplr=0.5,mosaic=1.0,mixup=0.1,copy_paste=0.1,)# -------------------------------# 可选:验证模型# -------------------------------print("训练完成,开始验证...")metrics=model.val()print("验证 mAP:",metrics.box.map)▶️ 运行训练
python train_leak_detection.py训练过程中,结果将保存在:
water_leak_detection/exp1/ ├── weights/ # best.pt, last.pt ├── results.png # 损失、mAP 等曲线 ├── labels/ # 预测标签 └── ...🔍 推理示例(检测新图像)
fromultralyticsimportYOLO model=YOLO('water_leak_detection/exp1/weights/best.pt')results=model.predict('test_image.jpg',conf=0.5,save=True)forrinresults:print(r.boxes)# 输出检测框