当前位置: 首页 > news >正文

高端网站建设哪些好丹阳杨文军

高端网站建设哪些好,丹阳杨文军,关键词排名点击软件怎样,免费app大全下载文章目录 前言一、环境搭建二、构建数据集三、修改配置文件①数据集文件配置②模型文件配置 四、模型训练和测试模型训练模型验证模型推理 总结 前言 专栏目录#xff1a;YOLOv11改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改… 文章目录 前言一、环境搭建二、构建数据集三、修改配置文件①数据集文件配置②模型文件配置 四、模型训练和测试模型训练模型验证模型推理 总结 前言 专栏目录YOLOv11改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进 专栏地址YOLOv11改进专栏——以发表论文的角度快速准确的找到有效涨点的创新点 提示本文是YOLOv11的分割模型训练自己数据集的记录教程需要大家在本地已配置好CUDA,cuDNN等环境没配置的小伙伴可以查看我的往期博客在Windows10上配置CUDA环境教程 2024年9月30日YOLOv11是Ultralytics最新发布的计算机视觉模型。支持多种任务包括目标检测、实例分割、图像分类、姿态估计、有向目标检测以及物体跟踪等本文主要讲述其分割任务的模型搭建训练流程。 代码地址https://github.com/ultralytics/ultralytics 一、环境搭建 在配置好CUDA环境并且获取到YOLOv11源码后建议新建一个虚拟环境专门用于YOLOv11模型的训练。将YOLOv11加载到环境后安装剩余的包连接镜像安装更快一些。 pip install ...二、构建数据集 YOLOv11模型的训练需要原图像及对应的YOLO格式标签还未制作标签的可以参考我这篇文章Labelme安装与使用教程。注意labelme的标签是json格式的这在训练前需要将json转成yolo的txt格式链接里提供了相关的转换代码。 将原本数据集按照811的比例划分成训练集、验证集和测试集三类划分代码如下注意改成自己的文件路径。我的原始数据存放在/root/ultralytics-main/dataimages里面包含全部图像newLabel中包含打好的标签。 0 0.5655737704918032 0.460093896713615 0.5655737704918032 0.49765258215962443 0.5737704918032787 0.5352112676056338 0.5819672131147541 0.5915492957746479 0.5922131147540983 0.5821596244131455 0.5840163934426229 0.5305164319248826 0.5778688524590164 0.48826291079812206# 将图片和标注数据按比例切分为 训练集和测试集 import shutil import random import os# 原始路径 image_original_path data/images/ label_original_path data/newLabel/cur_path os.getcwd() #cur_path D:/image_denoising_test/denoise/ # 训练集路径 train_image_path os.path.join(cur_path, datasets/images/train/) train_label_path os.path.join(cur_path, datasets/labels/train/)# 验证集路径 val_image_path os.path.join(cur_path, datasets/images/val/) val_label_path os.path.join(cur_path, datasets/labels/val/)# 测试集路径 test_image_path os.path.join(cur_path, datasets/images/test/) test_label_path os.path.join(cur_path, datasets/labels/test/)# 训练集目录 list_train os.path.join(cur_path, datasets/train.txt) list_val os.path.join(cur_path, datasets/val.txt) list_test os.path.join(cur_path, datasets/test.txt)train_percent 0.8 val_percent 0.1 test_percent 0.1def del_file(path):for i in os.listdir(path):file_data path \\ ios.remove(file_data)def mkdir():if not os.path.exists(train_image_path):os.makedirs(train_image_path)else:del_file(train_image_path)if not os.path.exists(train_label_path):os.makedirs(train_label_path)else:del_file(train_label_path)if not os.path.exists(val_image_path):os.makedirs(val_image_path)else:del_file(val_image_path)if not os.path.exists(val_label_path):os.makedirs(val_label_path)else:del_file(val_label_path)if not os.path.exists(test_image_path):os.makedirs(test_image_path)else:del_file(test_image_path)if not os.path.exists(test_label_path):os.makedirs(test_label_path)else:del_file(test_label_path)def clearfile():if os.path.exists(list_train):os.remove(list_train)if os.path.exists(list_val):os.remove(list_val)if os.path.exists(list_test):os.remove(list_test)def main():mkdir()clearfile()file_train open(list_train, w)file_val open(list_val, w)file_test open(list_test, w)total_txt os.listdir(label_original_path)num_txt len(total_txt)list_all_txt range(num_txt)num_train int(num_txt * train_percent)num_val int(num_txt * val_percent)num_test num_txt - num_train - num_valtrain random.sample(list_all_txt, num_train)# train从list_all_txt取出num_train个元素# 所以list_all_txt列表只剩下了这些元素val_test [i for i in list_all_txt if not i in train]# 再从val_test取出num_val个元素val_test剩下的元素就是testval random.sample(val_test, num_val)print(训练集数目{}, 验证集数目{}, 测试集数目{}.format(len(train), len(val), len(val_test) - len(val)))for i in list_all_txt:name total_txt[i][:-4]srcImage image_original_path name .jpgsrcLabel label_original_path name .txtif i in train:dst_train_Image train_image_path name .jpgdst_train_Label train_label_path name .txtshutil.copyfile(srcImage, dst_train_Image)shutil.copyfile(srcLabel, dst_train_Label)file_train.write(dst_train_Image \n)elif i in val:dst_val_Image val_image_path name .jpgdst_val_Label val_label_path name .txtshutil.copyfile(srcImage, dst_val_Image)shutil.copyfile(srcLabel, dst_val_Label)file_val.write(dst_val_Image \n)else:dst_test_Image test_image_path name .jpgdst_test_Label test_label_path name .txtshutil.copyfile(srcImage, dst_test_Image)shutil.copyfile(srcLabel, dst_test_Label)file_test.write(dst_test_Image \n)file_train.close()file_val.close()file_test.close()if __name__ __main__:main()划分完成后将会在datasets文件夹下生成划分好的文件其中images为划分后的图像文件里面包含用于train、val、test的图像已经划分完成 labels文件夹中包含划分后的标签文件已经划分完成里面包含用于train、val、test的标签train.txt、val.txt、test.txt中记录了各自的图像路径。 在训练过程中也是主要使用这三个txt文件进行数据的索引。 三、修改配置文件 ①数据集文件配置 数据集划分完成后在根目录下新建data.yaml文件即data.yaml用于指明数据集路径和类别我这边只有一个类别只留了一个多类别的在name内加上类别名即可。data.yaml中的内容为 path: ../datasets/images # 数据集所在路径 train: train # 数据集路径下的train.txt val: val # 数据集路径下的val.txt test: test # 数据集路径下的test.txt# Classes names:0: bubbeplume ②模型文件配置 在ultralytics/cfg/models/11文件夹下存放的是YOLOv11分割模型的各个版本的模型配置文件检测的类别是coco数据的80类。在训练自己数据集的时候只需要将其中的类别数修改成自己的大小。此处以yolo11-seg.yaml文件中的模型为例将 nc: 1 # number of classes 修改类别数 修改成自己的类别数如下 # Ultralytics YOLO , AGPL-3.0 license # YOLO11-seg instance segmentation model. For Usage examples see https://docs.ultralytics.com/tasks/segment# Parameters nc: 1 # number of classes scales: # model compound scaling constants, i.e. modelyolo11n-seg.yaml will call yolo11-seg.yaml with scale n# [depth, width, max_channels]n: [0.50, 0.25, 1024] # summary: 355 layers, 2876848 parameters, 2876832 gradients, 10.5 GFLOPss: [0.50, 0.50, 1024] # summary: 355 layers, 10113248 parameters, 10113232 gradients, 35.8 GFLOPsm: [0.50, 1.00, 512] # summary: 445 layers, 22420896 parameters, 22420880 gradients, 123.9 GFLOPsl: [1.00, 1.00, 512] # summary: 667 layers, 27678368 parameters, 27678352 gradients, 143.0 GFLOPsx: [1.00, 1.50, 512] # summary: 667 layers, 62142656 parameters, 62142640 gradients, 320.2 GFLOPs# YOLO11n backbone backbone:# [from, repeats, module, args]- [-1, 1, Conv, [64, 3, 2]] # 0-P1/2- [-1, 1, Conv, [128, 3, 2]] # 1-P2/4- [-1, 2, C3k2, [256, False, 0.25]]- [-1, 1, Conv, [256, 3, 2]] # 3-P3/8- [-1, 2, C3k2, [512, False, 0.25]]- [-1, 1, Conv, [512, 3, 2]] # 5-P4/16- [-1, 2, C3k2, [512, True]]- [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32- [-1, 2, C3k2, [1024, True]]- [-1, 1, SPPF, [1024, 5]] # 9- [-1, 2, C2PSA, [1024]] # 10# YOLO11n head head:- [-1, 1, nn.Upsample, [None, 2, nearest]]- [[-1, 6], 1, Concat, [1]] # cat backbone P4- [-1, 2, C3k2, [512, False]] # 13- [-1, 1, nn.Upsample, [None, 2, nearest]]- [[-1, 4], 1, Concat, [1]] # cat backbone P3- [-1, 2, C3k2, [256, False]] # 16 (P3/8-small)- [-1, 1, Conv, [256, 3, 2]]- [[-1, 13], 1, Concat, [1]] # cat head P4- [-1, 2, C3k2, [512, False]] # 19 (P4/16-medium)- [-1, 1, Conv, [512, 3, 2]]- [[-1, 10], 1, Concat, [1]] # cat head P5- [-1, 2, C3k2, [1024, True]] # 22 (P5/32-large)- [[16, 19, 22], 1, Segment, [nc, 32, 256]] # Detect(P3, P4, P5) 修改完成后模型文件就配置好啦。 四、模型训练和测试 YOLOv11训练可使用命令或者代码进行运行在训练过程中使用的具体的参数信息可在ultralytics/cfg/default.yaml路径下找到。 首先需要将default.yaml中的task设置成segment 模型训练 命令训练 打开终端输入命令 yolo tasksegment modetrain modelultralytics/cfg/models/11/yolo11-seg.yaml datadata.yaml batch32 epochs300 imgsz640 workers10 device0task表示任务为目标分割可选detect segmentclassifymode表示模式可选trainvalpredictexportmodel表示使用的模型这里我就是使用的刚刚新建的yolov8-mask.yamldata表示训练的图像文件device表示是否使用GPU进行训练可选012…或者cpuepoch表示训练的轮次batch表示每次送人训练的图像数量当报错OOM时需调小batch大小但大小需要设置为2的幂次最小为1imgsz表示图像大小会统一缩放成指定大小workers指数据装载时cpu所使用的线程数过高时会报错[WinError 1455] 页面文件太小无法完成操作此时就只能将default调成0了。 代码训练 from ultralytics import YOLOif __name__ __main__:model YOLO(rultralytics/cfg/models/11/yolo11-seg.yaml) model.train(datardata.yaml,imgsz640,epochs100,single_clsTrue, batch16,workers10,device0,) 训练情况 模型验证 命令验证 yolo tasksegment modeval modelruns/segment/train/best.pt datadata.yaml device0在验证阶段mode模式为验证modeval模型使用训练完成的权重文件第一次训练完存放在runs/segment/train/best.ptbest.pt就是训练完成后的最佳权重。 当然也需要指定数据集datadata.yaml和所用的设备device0和训练时一致。也可以添加batch、imgsz含义和训练时一致。 代码验证 import warnings warnings.filterwarnings(ignore) from ultralytics import YOLOif __name__ __main__:model YOLO(runs/segment/train/best.pt)model.val(datadata.yaml,imgsz640,batch16,splittest,workers10,device0,) 模型推理 命令推理 yolo tasksegment modepredict modelruns/segment/train/best.pt sourceinference device0在推理阶段mode模式为预测mode predict模型使用训练完成的权重文件runs/segment/train/best.ptsource表示需要预测的图像文件路径inference中存放了准备预测的图像。 代码推理 import warnings warnings.filterwarnings(ignore) from ultralytics import YOLOif __name__ __main__:model YOLO(runs/segment/train/best.pt)model.predict(sourceinference,imgsz640,device0,) 总结 以上就是YOLOv11训练自己数据集的全部过程啦欢迎大家在评论区交流~
http://www.tj-hxxt.cn/news/140226.html

相关文章:

  • 培训教材网站建设宝塔ssl文件位置wordpress
  • 小米商城的网站建站网站开发栏目需求1
  • 建设网站需要两种服务支持网站建设网上接单
  • 深圳专业网站制作技术企业公司如何做网站
  • 长春建站模板展示网页设计与网站建设期末考试
  • 上海专业的网站建中卫企业管理培训网站
  • 帮传销做网站违法吗优化教育培训
  • 2015做导航网站好视频网站开发前景
  • 郑州做网站优化公购物网站排名第一的有哪些
  • 科技创新的评价机制的作用南京seo公司哪家好
  • 怎样建网站卖东西宝应百度贴吧
  • 响应式网站好不好平面设计网站导航
  • 安居客房产官方网站东莞网站开发后缀
  • 山西太原门户网站开发公司自媒体网站大全
  • 移动网站设计教程郑州网站建设技术支持
  • 郑州网站建设网站制作淘宝装修可以做代码的网站有哪些
  • 邵阳网站seo可以用wordpress的什么文件大小
  • 网站 关键词 出现频率企业展厅方案
  • 泰州专一做淘宝网站注册域名卖钱很暴利吗
  • 惠州技术支持网站建设网站开发设计心得
  • 如何建设一个网站网站手机版模板免费下载
  • 安宁区网站制作网站备案都审核什么资料
  • 本地网站可以做吗2020最近的新闻大事10条
  • 保安公司网站如何做常用的关键词挖掘工具有哪些
  • 做网站设计前景怎么样加强网站建设 实施政务公开
  • 网站开发流程可规划为那三个阶段竞价推广返点开户
  • 网站定制开发成本网络运营计划方案
  • 怎么制作网站发布茂名做网站dyiee
  • 网站每年要交钱吗做公司网站需要多少钱
  • 网站服务器是主机吗网站后台设计教程