news 2026/4/23 17:11:27

如何使用深度学习目标检测框架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/23 9:50:52

Docker Swarm 部署 Redis Cluster 集群

文章目录 Docker Swarm 部署 Redis Cluster 集群 一、前置准备 二、核心部署方案:Docker Stack 编排部署 1. 编写 docker-compose.yml 文件 2. 关键配置说明 3. 执行部署命令 4. 查看部署状态 三、Redis Cluster 集群初始化 1. 进入任意一个 Redis 容器 2. 执行集群初始化命令…

作者头像 李华
网站建设 2026/4/23 9:51:01

面向开发者的中文情绪识别工具|StructBERT镜像集成Flask服务

面向开发者的中文情绪识别工具&#xff5c;StructBERT镜像集成Flask服务 1. 引言&#xff1a;为什么需要轻量级中文情感分析方案&#xff1f; 在当前自然语言处理&#xff08;NLP&#xff09;广泛应用的背景下&#xff0c;中文情感分析已成为智能客服、舆情监控、用户反馈挖掘…

作者头像 李华
网站建设 2026/4/23 9:50:54

打工人必备!5 款免费好用且简单上手的 AI PPT 工具推

打工人必备&#xff01;免费好用又易上手的 AI PPT 工具推荐作为职场打工人&#xff0c;PPT 绝对是我们生活中的“必修课”。最让人崩溃的就是临近汇报&#xff0c;却突然接到修改 PPT 的需求&#xff0c;通宵熬夜改 PPT 已经成了很多人的常态。好不容易下定决心尝试 AI PPT 工…

作者头像 李华
网站建设 2026/4/23 9:48:35

AI vs. 传统测试:谁赢了2026的效率之战?

效率之战的背景与意义 在2026年的软件开发生态中&#xff0c;测试环节已成为数字化转型的核心瓶颈。随着敏捷开发和DevOps的普及&#xff0c;测试效率直接决定产品上市速度和竞争力。传统测试方法&#xff08;如手动测试和脚本自动化&#xff09;曾主导行业数十年&#xff0c;…

作者头像 李华
网站建设 2026/4/22 14:46:24

Mac M1芯片能否跑unet?ARM架构适配情况调查

Mac M1芯片能否跑unet&#xff1f;ARM架构适配情况调查 1. 背景与问题提出 随着苹果推出基于ARM架构的M系列芯片&#xff0c;越来越多的开发者开始关注在Mac设备上本地运行深度学习模型的可行性。其中&#xff0c;UNet类模型因其在图像分割、风格迁移等任务中的广泛应用而备受…

作者头像 李华
网站建设 2026/4/23 11:22:22

每日减重第五天:总爬楼数36,总步数:26486,最新体重144.4斤

背景&#xff1a;20160115体重是146.5&#xff0c;计划在一年的时间&#xff0c;把体重降到140以下。 一月目标&#xff1a;146.3以下 二月目标&#xff1a;145.75以下 三月目标&#xff1a;145.2 四月目标&#xff1a;144.65 今天的早上称的体重是144.4&#xff0c;如果仅按今…

作者头像 李华