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

东莞网站建设怎么做做网站 excel

东莞网站建设怎么做,做网站 excel,无锡网站关键词优化,网站开启伪静态一、YOLO V8 YOLO V8 是由 2023 年 ultralytics 公司开源的发布,是结合了前几代 YOLO 的融合改进版。YOLO V8 支持全方位的视觉 AI 任务,包括检测、分割、姿态估计、跟踪和分类。并且在速度和准确性方面具有无与伦比的性能。能够应用在各种对速度和精度…

一、YOLO V8

YOLO V8 是由 2023ultralytics 公司开源的发布,是结合了前几代 YOLO 的融合改进版。YOLO V8 支持全方位的视觉 AI 任务,包括检测、分割、姿态估计、跟踪和分类。并且在速度和准确性方面具有无与伦比的性能。能够应用在各种对速度和精度要求较高的应用和领域。

网络结构如下图所示:

在这里插入图片描述

YOLO V8 相对于 YOLO V5还是有很大的不同,例如:YOLO V8 相对于 YOLO V5,依然使用的是CSP的思想,不过将 V5 中的C3模块换成了C2F模块,以减轻模型的大小,也依旧使用 V5 架构中的SPPF模块。但是在 PAN-FPN 层面,V8V5 中的上采样阶段中的卷积结构去除了。同时借鉴了 YOLOXDecoupled-Head 结构,分类和回归两个任务的 HEAD 不再共享参数等。

在模型上 V8 和 V5 类似,包括不同大小的模型,从小到大包括:yolov8n、yolov8s、yolov8m、yolov8l、yolov8x等:

模型的比较如下:

在这里插入图片描述

更多的介绍可以参考官方的文档:

https://docs.ultralytics.com/de/models/yolov8/

本文借助ultralyticsYOLO V8 迁移训练自定义的目标检测模型,在本次的实验中,主要训练一个人脸检测模型,包括数据标注、数据拆分、训练、测试等过程。

本次采用ultralytics 公司发布的 ultralytics 框架,可以帮助开发人员高效完成数据训练和验证任务,由于 ultralytics 默认采用的为 PyTorch 框架,因此实验前请安装好 cudatorch 环境,如果没有 GPU 环境,由于YOLO V8 已经足够轻量级,使用CPU 也是可以训练。

安装 ultralytics 库:

pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple

ultralytics 使用文档:

https://docs.ultralytics.com/zh/quickstart/#use-ultralytics-with-python

测试 YOLO V8 的效果:

测试图片:
在这里插入图片描述

这里使用 yolov8n 模型,如果模型不存在会自动下载

from ultralytics import YOLO
# Load a model
model = YOLO('yolov8n.pt')  # pretrained YOLOv8n modelresults = model.predict('./img/1.png')
# Show results
results[0].show()

在这里插入图片描述

二、数据收集及标注

图像数据可以从网上找一些或者自己拍摄,我这里准备了一些 人 的图片:

在这里插入图片描述

这里可以准备两个目录,data/imagesdata/labels,其中 labels 存放标注后的文件,将收集到的图像放在 images 目录下:

在这里插入图片描述

下面使用 labelimg 工具进行标注,如果没有安装,使用下面命令安装:

pip install labelimg -i https://pypi.tuna.tsinghua.edu.cn/simple

然后在控制台输入:labelimg 打开可视化工具:

在这里插入图片描述

注意:数据集格式默认是 VOC 格式的,要选择为 YOLO ,我这里的人脸标签为 face ,这个后面需要使用到。

标注完成后,可以在 /data/labels 下看到标注后的文件:

在这里插入图片描述

三、数据拆分

这里拆分为 90% 的训练集,10% 的验证集,拆分脚本如下,

import os
import shutil
from tqdm import tqdm# 图片地址
image_dir = "data/images/"
# 标准文件地址
label_dir = "data/labels/"
# 训练集的比例
training_ratio = 0.9
# 拆分后数据的位置
train_dir = "train_data"def split_data():list = os.listdir(image_dir)all = len(list)train_count = int(all * training_ratio)train_images = list[0:train_count]val_images = list[train_count:]# 训练集目录os.makedirs(os.path.join(train_dir, "images/train"), exist_ok=True)os.makedirs(os.path.join(train_dir, "labels/train"), exist_ok=True)# 验证集目录os.makedirs(os.path.join(train_dir, "images/val"), exist_ok=True)os.makedirs(os.path.join(train_dir, "labels/val"), exist_ok=True)# 训练集with open(os.path.join(train_dir, "train.txt"), "w") as file:file.write("\n".join([train_dir + "images/train/" + image_file for image_file in train_images]))print("save train.txt success!")# 拷贝数据for item in tqdm(train_images):label_file = item.replace(".jpg", ".txt")shutil.copy(os.path.join(image_dir, item), os.path.join(train_dir, "images/train/"))shutil.copy(os.path.join(label_dir, label_file), os.path.join(train_dir, "labels/train/"))# 验证集with open(os.path.join(train_dir, "val.txt"), "w") as file:file.write("\n".join([train_dir + "images/val/" + image_file for image_file in val_images]))print("save val.txt success!")# 拷贝数据for item in tqdm(val_images):label_file = item.replace(".jpg", ".txt")shutil.copy(os.path.join(image_dir, item), os.path.join(train_dir, "images/val/"))shutil.copy(os.path.join(label_dir, label_file), os.path.join(train_dir, "labels/val/"))if __name__ == '__main__':split_data()

在这里插入图片描述
可以在 train_data 中看到拆分后的数据集格式:

在这里插入图片描述

四、训练

使用 ultralytics 框架训练非常简单,仅需三行代码即可完成训练,不过在训练前需要编写 YAML 配置信息,主要标记数据集的位置。

创建 face.yaml 文件,写入下面内容:


path: D:/pyProject/yolov8/train_data # 数据集的根目录, 建议使用绝对路径
train: images/train # 训练集图像目录
val: images/val # 验证集图像目录
test: # test images (optional)# 分类
names:0: face

注意分类中的 face 就是上面标注时的标签名。

开始训练:

from ultralytics import YOLO# 加载模型
model = YOLO('yolov8n.pt')# 训练
model.train(data='face.yaml', # 训练配置文件epochs=50, # 训练的周期imgsz=640, # 图像的大小device=[0], # 设备,如果是 cpu 则是 device='cpu'workers=0,lr0=0.001, # 学习率batch=8, # 批次大小amp=False # 是否启用混合精度训练
)

运行后可以看到打印的网络结构:

在这里插入图片描述

训练中:

在这里插入图片描述

训练结束后可以在 runs 目录下面看到训练的结果:

在这里插入图片描述

其中 weights 下面的就是训练后保存的模型,这里可以先看下训练时 loss 的变化图:

在这里插入图片描述

五、模型测试

使用 best.pt 模型

from ultralytics import YOLO
# 加载模型
model = YOLO('runs/detect/train/weights/best.pt')# 预测
results = model.predict('data/images/8.jpg')# Show results
results[0].show()

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

http://www.yayakq.cn/news/197830/

相关文章:

  • 网站建设中搜索引擎做图片素材的网站有哪些
  • 2024免费网站推广大全项目计划书ppt模板免费
  • 内部建设网站需要什么条件如何选择网站改版公司
  • 小荷特卖的网站谁做的做二手房比较好的网站有哪些
  • 网站项目建设周期制作手机app用什么语言
  • 网站建设深圳给原码青岛东橙网站建设
  • 旅行社电商网站怎么做辽宁建设工程信息网专家库官网
  • 微信公众号和网站建设的意义在哪几个网站里做自媒体赚钱
  • 立方集团 网站菏泽网站建设熊掌号
  • 用户体验网站顺德做营销网站公司
  • 烟台seo做的好的网站wordpress大量发文章
  • 网站建设吉金手指专业15网站投票系统怎么做
  • 网站的按钮怎么做网页设计理念及设计思路
  • 网站建设可以自己建设服务器吗哪个网站开发小程序
  • 江西师范大学两学一做专题网站大连设计工作室
  • 商丘市做1企业网站的公司游戏充值代理平台
  • 四川住房建设厅官方网站北京最新
  • php mysql网站开发全程实例 pdf如何进入wordpress前台
  • 司瓦图网站浏览器主页网址推荐
  • 关于做女装的网站北京列表网
  • 网站备案模板建设银行网站调用支付源码
  • 买了阿里云怎么做网站一起做网店白沟
  • 网站设计O2O平台网上广告怎么推广
  • 郓城做网站哪家好绵阳网站建设scmmwl
  • 成都做网站建设金华做公司网站
  • 教育培训东莞网站建设go做网站
  • 绍兴做网站选哪家网络服务商电话
  • 相城苏州网站建设手机版百度一下
  • 深圳中小企业网站建设wordpress 页脚插件
  • 重庆市建设工程管理协会网站win2003 wordpress 安装