news 2026/4/15 14:05:24

如何使用深度学习目标检测框架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/4/6 1:15:18

Docker Swarm 部署 Zookeeper 集群

文章目录 Docker Swarm 部署 Zookeeper 集群 一、前置准备 二、核心部署方案:使用 Docker Stack 部署(推荐) 1. 编写 docker-compose.yml 文件 2. 关键配置说明 3. 执行部署命令 4. 查看部署状态 三、集群验证 1. 连接 Zookeeper 集群(客户端验证) 2. 查看集群状态 3. 验证…

作者头像 李华
网站建设 2026/4/13 13:59:20

GLM-ASR-Nano-2512云端部署:AWS GPU实例配置教程

GLM-ASR-Nano-2512云端部署&#xff1a;AWS GPU实例配置教程 1. 引言 1.1 业务场景描述 随着语音识别技术在智能客服、会议转录、内容创作等领域的广泛应用&#xff0c;对高性能、低延迟的自动语音识别&#xff08;ASR&#xff09;系统需求日益增长。GLM-ASR-Nano-2512 是一…

作者头像 李华
网站建设 2026/4/9 2:53:53

‌软件开发的AI化未来:开发者必备的5项新技能‌

当测试遇见AI的范式革命 随着GitHub Copilot贡献40%代码量、Diffblue自动生成单元测试覆盖率突破70%&#xff08;2025 Gartner数据&#xff09;&#xff0c;软件测试领域正经历结构性变革。传统的手动用例编写与重复性验证逐步被AI工具链替代&#xff0c;测试工程师的核心价值…

作者头像 李华
网站建设 2026/4/5 23:37:21

DeepSeek-R1-Distill-Qwen-1.5B镜像部署测评:开箱即用体验报告

DeepSeek-R1-Distill-Qwen-1.5B镜像部署测评&#xff1a;开箱即用体验报告 1. 引言 随着大模型在边缘计算和轻量化部署场景中的需求日益增长&#xff0c;如何在有限算力条件下实现高性能推理成为工程落地的关键挑战。DeepSeek-R1-Distill-Qwen-1.5B作为一款基于知识蒸馏技术优…

作者头像 李华
网站建设 2026/4/13 12:18:56

296. Java Stream API - 二元操作符与“单位元“

文章目录296. Java Stream API - 二元操作符与"单位元"&#x1f4cc; 什么是单位元&#xff1f;&#x1f4a5; 为什么单位元很重要&#xff1f;⚠️ 什么情况会出问题&#xff1f;&#x1f9ea; 为什么 MIN/MAX 没有单位元&#xff1f;&#x1f504; 空流归约怎么办&…

作者头像 李华
网站建设 2026/4/13 20:18:43

NewBie-image-Exp0.1部署疑问:为何必须16GB以上显存?详解

NewBie-image-Exp0.1部署疑问&#xff1a;为何必须16GB以上显存&#xff1f;详解 1. 引言&#xff1a;从“开箱即用”到显存瓶颈的思考 NewBie-image-Exp0.1 是一个专为高质量动漫图像生成设计的预置镜像&#xff0c;集成了完整的环境依赖、修复后的源码以及3.5B参数量级的大…

作者头像 李华