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

云南模板网站建设公司自己开发聊天软件

云南模板网站建设公司,自己开发聊天软件,北京出大大事了,河北seo网络优化培训之前写过一篇 使用YOLOv8训练自己的【目标检测】数据集-【收集数据集】-【标注数据集】-【划分数据集】-【配置训练环境】-【训练模型】-【评估模型】-【导出模型】#xff0c;里面带大家整个流程走过一遍了#xff0c; 这篇文章我们来介绍如何使用 YOLOv8 训练分割数据集里面带大家整个流程走过一遍了 这篇文章我们来介绍如何使用 YOLOv8 训练分割数据集 这里我会讲解分割数据集的格式就不带大家标注了因为标注分割数据集真的太麻烦了。。 文章目录 1. 数据格式2. 配置环境3. 训练模型4. 评估模型5. 推理模型6. 分割怎么改进 1. 数据格式 我们先看下官方给我们提供的分割数据集示例下载地址在这里https://ultralytics.com/assets/coco8-seg.zip 打开后是这样子的 我们先读下 README.md Ultralytics COCO8-seg 数据集Ultralytics COCO8-seg 是一个小型但多才多艺的实例分割数据集由 COCO train 2017 集的前 8 张图像组成其中 4 张用于训练4 张用于验证。 该数据集非常适用于测试和调试分割模型或者尝试新的检测方法。有了 8 张图像它足够小易于管理同时又足够多样可以用于测试训练流程是否存在错误并在训练更大数据集之前作为健全性检查。此数据集旨在与 Ultralytics YOLOv8 一起使用。数据集的结构就是下面这样的图片没有什么可说的主要说下标签文件 coco8-seg├─images│ ├─train│ └─val└─labels├─train└─val随便点开一个我们就会发现相较于规范的检测任务分割任务的标签显得比较的复杂 我这里给大家写了一个小脚本可以将对应的标签和图片输入进去得到可视化结果 看到这里大家可能也猜出来标签的含义了每行的第一个数字表示类别的标识符后续的数字表示一个由 x x x 和 y y y 坐标组成的序列代表一个分割的多边形或轮廓这个多边形由这些坐标点依次连接而成。 22 0.00746875 0.0539294 0.117891 0.0921412 0.231297 0.110118 ......第一个数字 22 22 22 是类别标识符。 后续的数字是 x x x 和 y y y 坐标的交替序列表示分割多边形的各个顶点。 可视化代码 # by https://blog.csdn.net/weixin_43694096 import cv2 import numpy as npdef restore_masks_to_image(mask_data, image_path, output_path):# 读取图像img cv2.imread(image_path)# 将掩码数据还原到图像上for mask in mask_data:values list(map(float, mask.split()))class_id int(values[0])mask_values values[1:]# 将掩码数据转换为NumPy数组mask_array np.array(mask_values, dtypenp.float32).reshape((int(len(mask_values) / 2), 2))# 将相对于图像大小的百分比转换为具体坐标值mask_array[:, 0] * img.shape[1] # 宽度mask_array[:, 1] * img.shape[0] # 高度# 将坐标值转换为整数mask_array mask_array.astype(np.int32)# 在图像上绘制掩码cv2.polylines(img, [mask_array], isClosedTrue, color(0, 255, 0), thickness2)# 在图像上绘制每个坐标点for point in mask_array:cv2.circle(img, tuple(point), 3, (255, 0, 0), -1) # -1 表示填充圆# 保存带有掩码和坐标点的图像cv2.imwrite(output_path, img)if __name__ __main__:mask_data [22 0.00746875 0.0539294 0.117891 0.0921412 0.231297 0.110118 0.2895 0.0674118 0.331281 0.0472 0.3865 0.0696706 0.423813 0.0943765 0.446188 0.105624 0.467078 0.1528 0.517813 0.182024 0.577516 0.253929 0.658094 0.379765 0.690922 0.532588 0.687937 0.6 0.650625 0.555059 0.658094 0.644941 0.668547 0.755059 0.676 0.838212 0.658094 0.894376 0.613328 0.925835 0.589453 0.914612 0.590938 0.856188 0.552141 0.791012 0.523781 0.725835 0.528266 0.633718 0.498422 0.577529 0.444703 0.505624 0.407391 0.505624 0.395453 0.541576 0.417844 0.591012 0.450672 0.642706 0.456641 0.642706 0.461109 0.725835 0.458125 0.786518 0.450672 0.853929 0.444703 0.898871 0.401422 0.869671 0.411875 0.815741 0.423813 0.734824 0.425297 0.694376 0.361125 0.608988 0.316359 0.588753 0.280547 0.703365 0.271594 0.757294 0.261141 0.829224 0.268609 0.869671 0.277562 0.901129 0.250703 0.937082 0.222344 0.939318 0.231297 0.901129 0.222344 0.844941 0.238766 0.7236 0.246219 0.642706 0.271594 0.510118 0.182062 0.507859 0.0999844 0.525835 0.0208906 0.494376 0.0015 0.0516941]image_path 000000000034.jpgoutput_path 000000000034_out.jpgrestore_masks_to_image(mask_data, image_path, output_path) 2. 配置环境 代码地址https://github.com/ultralytics/ultralytics 首先我们要下载源码如果你会使用 git 工具请直接拉取最新的代码。 git clone https://github.com/ultralytics/ultralytics.git基础不好的同学请使用我上传的文件或手动下载代码。 这里我想强调下环境的配置如果你是新手请使用如下的指令安装切记不要使用 pip install ultralytics 这条指令 这样可以避免你遇到我教程外的错误。 cd ultralytics pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple3. 训练模型 下载好后我们到这个路径下ultralytics/ultralytics/cfg/datasets 在这里我们可以看到 coco8-seg.yaml 这个文件就是我们导入数据集的关键文件 我这里使用官方提供的文件所以不需要太多的更改如果大家使用自己的数据集那需要对应的改下里面的内容 这个文件重要的地方有几处 path 代表的根目录的路径train 代表的是训练集图片位置val 代表验证集图片位置test 代表测试集图片位置names 代表数据类别download 代表下载地址这个我们可以忽略掉 这部分要说的就是这么多和检测任务没有区别。 训练过程和检测差别也不大就是模型和数据集yaml的区别接下来我们要新建一个 train-seg.py 文件内容直接复制我的所有的参数我写到下面了大家对应的看就好了 最重要的就是 yolov8-seg.yaml 路径和 coco8-seg.yaml 的路径这里推荐大家写绝对路径避免出错 改好了这两个位置直接运行这个文件就开始训练了。 from ultralytics import YOLOif __name__ __main__:# 加载模型model YOLO(ryolov8-seg.yaml) # 不使用预训练权重训练# model YOLO(ryolov8-seg.yaml).load(yolov8n-seg.pt) # 使用预训练权重训练# 训练参数 ----------------------------------------------------------------------------------------------model.train(datarcoco8-seg.yaml,epochs300, # (int) 训练的周期数patience50, # (int) 等待无明显改善以进行早期停止的周期数batch32, # (int) 每批次的图像数量-1 为自动批处理imgsz640, # (int) 输入图像的大小整数或whsaveTrue, # (bool) 保存训练检查点和预测结果save_period-1, # (int) 每x周期保存检查点如果小于1则禁用cacheFalse, # (bool) True/ram、磁盘或False。使用缓存加载数据device, # (int | str | list, optional) 运行的设备例如 cuda device0 或 device0,1,2,3 或 devicecpuworkers8, # (int) 数据加载的工作线程数每个DDP进程projectruns/train, # (str, optional) 项目名称nameexp, # (str, optional) 实验名称结果保存在project/name目录下exist_okFalse, # (bool) 是否覆盖现有实验pretrainedTrue, # (bool | str) 是否使用预训练模型bool或从中加载权重的模型stroptimizerSGD, # (str) 要使用的优化器选择[SGDAdamAdamaxAdamWNAdamRAdamRMSPropauto]verboseTrue, # (bool) 是否打印详细输出seed0, # (int) 用于可重复性的随机种子deterministicTrue, # (bool) 是否启用确定性模式single_clsFalse, # (bool) 将多类数据训练为单类rectFalse, # (bool) 如果modetrain则进行矩形训练如果modeval则进行矩形验证cos_lrFalse, # (bool) 使用余弦学习率调度器close_mosaic0, # (int) 在最后几个周期禁用马赛克增强resumeFalse, # (bool) 从上一个检查点恢复训练ampTrue, # (bool) 自动混合精度AMP训练选择[True, False]True运行AMP检查fraction1.0, # (float) 要训练的数据集分数默认为1.0训练集中的所有图像profileFalse, # (bool) 在训练期间为记录器启用ONNX和TensorRT速度freeze None, # (int | list, 可选) 在训练期间冻结前 n 层或冻结层索引列表。# 分割overlap_maskTrue, # (bool) 训练期间是否应重叠掩码仅适用于分割训练mask_ratio4, # (int) 掩码降采样比例仅适用于分割训练# 分类dropout0.0, # (float) 使用丢弃正则化仅适用于分类训练# 超参数 ----------------------------------------------------------------------------------------------lr00.01, # (float) 初始学习率例如SGD1E-2Adam1E-3lrf0.01, # (float) 最终学习率lr0 * lrfmomentum0.937, # (float) SGD动量/Adam beta1weight_decay0.0005, # (float) 优化器权重衰减 5e-4warmup_epochs3.0, # (float) 预热周期分数可用warmup_momentum0.8, # (float) 预热初始动量warmup_bias_lr0.1, # (float) 预热初始偏置学习率box7.5, # (float) 盒损失增益cls0.5, # (float) 类别损失增益与像素比例dfl1.5, # (float) dfl损失增益pose12.0, # (float) 姿势损失增益kobj1.0, # (float) 关键点对象损失增益label_smoothing0.0, # (float) 标签平滑分数nbs64, # (int) 名义批量大小hsv_h0.015, # (float) 图像HSV-Hue增强分数hsv_s0.7, # (float) 图像HSV-Saturation增强分数hsv_v0.4, # (float) 图像HSV-Value增强分数degrees0.0, # (float) 图像旋转/- degtranslate0.1, # (float) 图像平移/- 分数scale0.5, # (float) 图像缩放/- 增益shear0.0, # (float) 图像剪切/- degperspective0.0, # (float) 图像透视/- 分数范围为0-0.001flipud0.0, # (float) 图像上下翻转概率fliplr0.5, # (float) 图像左右翻转概率mosaic1.0, # (float) 图像马赛克概率mixup0.0, # (float) 图像混合概率copy_paste0.0, # (float) 分割复制-粘贴概率) 开始训练时会打印出模型的参数量计算量结构信息。 训练结束后会打印出各种指标包括 PRmAPSpeed等。 4. 评估模型 评估模型时有个同学问的最多的问题就是测试集的精度怎么看 这里因为我们没有划分测试集所以没法看测试集的指标但是如果你划分了测试集 直接使用我给的脚本将 split 设置为 test 这样就会打印出测试集的指标。 from ultralytics import YOLOif __name__ __main__:# 加载模型model YOLO(ryolov8n.pt) # 验证模型model.val(valTrue, # (bool) 在训练期间进行验证/测试datarcoco128.yaml,splitval, # (str) 用于验证的数据集拆分例如val、test或trainbatch1, # (int) 每批的图像数量-1 为自动批处理imgsz640, # 输入图像的大小可以是整数或whdevice, # 运行的设备例如 cuda device0 或 device0,1,2,3 或 devicecpuworkers8, # 数据加载的工作线程数每个DDP进程save_jsonFalse, # 保存结果到JSON文件save_hybridFalse, # 保存标签的混合版本标签 额外的预测conf0.001, # 检测的目标置信度阈值默认为0.25用于预测0.001用于验证iou0.6, # 非极大值抑制 (NMS) 的交并比 (IoU) 阈值projectruns/val, # 项目名称可选nameexp, # 实验名称结果保存在project/name目录下可选max_det300, # 每张图像的最大检测数halfFalse, # 使用半精度 (FP16)dnnFalse, # 使用OpenCV DNN进行ONNX推断plotsTrue, # 在训练/验证期间保存图像) 5. 推理模型 推理使用我给的如下脚本就可以实现了。 import sys sys.path.append(/root/ultralytics) from ultralytics import YOLOif __name__ __main__:# 加载模型model YOLO(r/root/ultralytics/ultralytics/yolov8n-seg.pt) # YOLOv8n模型model.predict(sourcer/root/ultralytics/ultralytics/assets,saveTrue, # 保存预测结果imgsz640, # 输入图像的大小可以是整数或whconf0.25, # 用于检测的目标置信度阈值默认为0.25用于预测0.001用于验证iou0.45, # 非极大值抑制 (NMS) 的交并比 (IoU) 阈值showFalse, # 如果可能的话显示结果projectruns/predict, # 项目名称可选nameexp, # 实验名称结果保存在project/name目录下可选save_txtFalse, # 保存结果为 .txt 文件save_confTrue, # 保存结果和置信度分数save_cropFalse, # 保存裁剪后的图像和结果show_labelsTrue, # 在图中显示目标标签show_confTrue, # 在图中显示目标置信度分数vid_stride1, # 视频帧率步长line_width3, # 边界框线条粗细像素visualizeFalse, # 可视化模型特征augmentFalse, # 对预测源应用图像增强agnostic_nmsFalse, # 类别无关的NMSretina_masksFalse, # 使用高分辨率的分割掩码boxesTrue, # 在分割预测中显示边界框) 6. 分割怎么改进 有同学问分割怎么改进其实和检测任务一样的唯一区别就是下面红框中的区别 是用我给的改进和脚本很容易上手改进分割任务~
http://www.huolong8.cn/news/190187/

相关文章:

  • 杭州电子网站建设方案有没有给人做简历的网站
  • 单页网站利润定制衣服app软件哪个好
  • 网站代做多少钱网站服务器被黑怎么办
  • 驾考学时在哪个网站做怎么做企业官网
  • 服务周到的上海网站建设深圳微信商城网站设计公司
  • 网络推广的方法和技巧专业排名优化网站
  • 重庆门户网站悟空crm官网
  • 绍兴网站建设推广深圳最近一个星期新闻
  • 房产网站开发方案文化网站建设需要的功能
  • 深圳市多语言网站建设公司wordpress 整容模板
  • 网站开发编程的工作方法dw怎么做百度网站
  • 临汾推广型网站建设做网站该注意哪些基本要素
  • 如何用rp做网站步骤代理网关app未运行怎么办
  • 安阳网站开发wordpress 幻灯片插件使用
  • 聊城手机站网站公司电话电子商务网站建设课后答案
  • 设计品质网站建设软件开发的步骤
  • 网站建设制作德州网站修改需要什么
  • asp网站相册国外网站 国内访问速度
  • 企业网站优化服务公司怎么做外国网站卖东西
  • 做网站的时候卖过假货而出过事搭建网页游戏教程
  • 孙红雷做的二手车网站校园网站建设方案书
  • 百度新站关键词排名网站对齐原则
  • 网站安全建设seo交流论坛
  • 做网络推广网站有哪些论医院网站的建设
  • 个人网站开发实例jsp网站开发教学
  • 重庆网站维护制作怎么做一个微信小程序
  • 检测网站是否正常国家大宗商品交易平台
  • 外贸建站推广网易企业邮箱收件服务器主机名
  • 三站合一的网站怎么做教程做网站建设的怎么寻找客户
  • 养殖公司网站厦门广告公司电话