news 2026/6/10 13:39:12

如何使用深度学习目标检测框架yolov8训练积水漏水液体滴水漏洒数据集 来识别液体 滴出漏出洒出,训练自己的积水滴水漏水数据集及权重

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何使用深度学习目标检测框架yolov8训练积水漏水液体滴水漏洒数据集 来识别液体 滴出漏出洒出,训练自己的积水滴水漏水数据集及权重

使用深度学习目标检测框架yolov8训练_液体滴漏洒识别检测数据集 yolo数据集 1200张,识别漏水积水滴水检测

标注名称以及数量:
Spill:1577
液体滴漏洒识别检测数据集


基于液体滴漏洒识别检测数据集进行目标检测任务。数据集包含1200张图片,并且已经标注为YOLO (TXT) 格式。以下是详细的步骤,包括数据准备、模型训练和评估。

文章内容及代码仅供参考:

环境准备

确保您已经安装了以下软件和库:

  • Python 3.8 或更高版本
  • PyTorch 1.9 或更高版本
  • torchvision 0.10 或更高版本
  • OpenCV
  • numpy
  • pandas
  • matplotlib
  • albumentations(用于数据增强)

您可以使用以下命令安装所需的Python库:

pipinstalltorch torchvision opencv-python numpy pandas matplotlib albumentations ultralytics

数据集准备

假设您的数据集已经按照YOLO格式组织好,并且包含训练集、验证集和测试集。以下是数据集的预期结构:

datasets/ └── liquid_spill_detection/ ├── images/ │ ├── train/ │ ├── val/ │ └── test/ └── labels/ ├── train/ ├── val/ └── test/

同时,有一个classes.txt文件包含类别名称,每行一个类别名称。

类别文件 (classes.txt)
Spill

划分数据集的脚本

假设您已经有了一个脚本来划分数据集,我们将其命名为split_dataset.py。以下是一个示例脚本:

[<title="Data Splitting Script">]importosimportshutilimportrandomfromsklearn.model_selectionimporttrain_test_splitdefcreate_directory_structure(root_dir):forsplitin['train','val','test']:os.makedirs(os.path.join(root_dir,'images',split),exist_ok=True)os.makedirs(os.path.join(root_dir,'labels',split),exist_ok=True)defmove_files(source_img_dir,source_label_dir,dest_img_dir,dest_label_dir,files):forfileinfiles:img_file=f"{file}.jpg"label_file=f"{file}.txt"shutil.move(os.path.join(source_img_dir,img_file),os.path.join(dest_img_dir,img_file))shutil.move(os.path.join(source_label_dir,label_file),os.path.join(dest_label_dir,label_file))defsplit_dataset(data_root,train_ratio=0.7,val_ratio=0.15,test_ratio=0.15):image_files=[os.path.splitext(f)[0]forfinos.listdir(os.path.join(data_root,'images'))iff.endswith('.jpg')]# Shuffle the filesrandom.shuffle(image_files)# Split the filestrain_files,temp_files=train_test_split(image_files,test_size=(1-train_ratio))val_files,test_files=train_test_split(temp_files,test_size=test_ratio/(val_ratio+test_ratio))# Move files to respective directoriesmove_files(os.path.join(data_root,'images'),os.path.join(data_root,'labels'),os.path.join(data_root,'images/train'),os.path.join(data_root,'labels/train'),train_files)move_files(os.path.join(data_root,'images'),os.path.join(data_root,'labels'),os.path.join(data_root,'images/val'),os.path.join(data_root,'labels/val'),val_files)move_files(os.path.join(data_root,'images'),os.path.join(data_root,'labels'),os.path.join(data_root,'images/test'),os.path.join(data_root,'labels/test'),test_files)if__name__=='__main__':data_root='../datasets/liquid_spill_detection/'create_directory_structure(data_root)split_dataset(data_root)

模型训练

我们将使用YOLOv8进行训练。首先,克隆YOLOv8仓库并设置环境。

gitclone https://github.com/ultralytics/ultralytics.gitcdultralytics pipinstall-r requirements.txt
准备配置文件

创建一个data.yaml文件来定义数据集路径和类别:

[<title="YOLOv8 Data Configuration File">]train:../datasets/liquid_spill_detection/images/train/val:../datasets/liquid_spill_detection/images/val/nc:1# number of classesnames:['Spill']# list of class names
训练模型

使用以下命令开始训练:

yolotask=detectmode=trainmodel=yolov8n.ptdata=data.yamlepochs=50imgsz=640batch=16

结果评估

训练完成后,可以使用以下命令评估模型性能:

yolotask=detectmode=valmodel=runs/detect/train/weights/best.ptdata=data.yaml

使用说明

  1. 配置路径

    • 确保datasets/liquid_spill_detection/目录结构正确。
    • 确保data.yaml中的路径和类别名称正确。
  2. 运行脚本

    • 在终端中依次运行数据分割脚本、训练脚本和评估脚本。
  3. 注意事项

    • 根据需要调整超参数和训练设置。
    • 可以通过修改model参数来选择不同的YOLOv8模型架构(如yolov8s.pt,yolov8m.pt,yolov8l.pt,yolov8x.pt)。

示例

假设您的数据集文件夹结构如下:

datasets/ └── liquid_spill_detection/ ├── images/ │ ├── all/ │ ├── train/ │ ├── val/ │ └── test/ └── labels/ ├── all/ ├── train/ ├── val/ └── test/

并且all/目录包含所有的图片和对应的TXT标注文件。运行上述脚本后,您可以查看训练日志和最终的模型权重文件。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 9:56:53

java-SSM358的校园大学生兼职系统vue-springboot

目录具体实现截图校园大学生兼职系统&#xff08;SSMVueSpringBoot&#xff09;摘要系统所用技术介绍写作提纲源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;具体实现截图 校园大学生兼职系统&#xff08;SSMVueSpringBoot&#xff09…

作者头像 李华
网站建设 2026/6/10 9:57:34

java-SSM377建材钢材销售管理系统前端vue-springboot

目录具体实现截图系统概述技术架构核心功能模块创新设计应用价值系统所用技术介绍写作提纲源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;具体实现截图 系统概述 建材钢材销售管理系统基于SpringBoot和Vue.js开发&#xff0c;采用前后…

作者头像 李华
网站建设 2026/6/10 9:56:53

电商人像批量抠图方案|基于科哥CV-UNet镜像高效实现

电商人像批量抠图方案&#xff5c;基于科哥CV-UNet镜像高效实现 在电商、广告设计和内容创作领域&#xff0c;高质量的人像抠图是提升视觉表现力的关键环节。传统手动抠图效率低、成本高&#xff0c;难以满足大规模商品图处理需求。随着深度学习技术的发展&#xff0c;基于图像…

作者头像 李华
网站建设 2026/6/9 18:38:53

PaddleOCR-VL手写体识别教程:古籍数字化实战

PaddleOCR-VL手写体识别教程&#xff1a;古籍数字化实战 1. 引言 在古籍数字化和历史文献保护领域&#xff0c;手写体文字的自动识别长期面临巨大挑战。传统OCR技术多针对印刷体优化&#xff0c;在处理字迹模糊、版式复杂、语言多样化的手写古籍时表现不佳。随着深度学习与视…

作者头像 李华
网站建设 2026/6/10 9:49:51

如何通过数据分析提升品牌影响力

如何通过数据分析提升品牌影响力 关键词:数据分析、品牌影响力、数据挖掘、市场调研、营销优化 摘要:本文围绕如何通过数据分析提升品牌影响力展开。详细阐述了数据分析在品牌建设中的重要性,介绍了相关核心概念及联系,深入讲解核心算法原理与具体操作步骤,运用数学模型和…

作者头像 李华
网站建设 2026/6/9 15:07:54

2026 年 PHP 函数式编程 优势与实际应用

2026 年 PHP 函数式编程 优势与实际应用 函数式编程&#xff08;FP&#xff09;已经存在几十年了&#xff0c;但近年来在实际开发中用得越来越多。这篇文章整理一下 FP 的核心概念和实际应用场景。 什么是函数式编程 在深入优势和应用之前&#xff0c;先快速回顾一下函数式编…

作者头像 李华