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

yolov8训练和预测

介绍

Ultralytics YOLOv8 是一种前沿、最先进 (SOTA) 的模型,它在之前的 YOLO 版本的成功基础上引入了新功能和改进,以提高性能和灵活性。YOLOv8 旨在快速、准确、易于使用,是广泛应用于目标检测和跟踪、实例分割、图像分类和姿态估计等任务的优秀选择。

与之前的 YOLOv5 不同的是,YOLOv8 是在一个名为 Ultralytics 项目下,该项目将该团队之前制作的 YOLOv3、YOLOv5 整合到了一起,并添加了 YOLOv8。初次之外,Ultralytics 更是整合了 YOLOv6、YOLOv9、YOLOv8-World、百度的 RT-DETR。

原文链接:https://blog.csdn.net/weixin_44878336/article/details/138316279

安装

yolov8可以通过多种方式安装,比如通过pip直接安装:
pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple
也可以使用docker安装:

推理

使用命令行:
yolo predict model=yolov8n.pt source=bus.jpg
这里忽略了很多参数,其中比较重要的两个参数是imgsz和device,补充后如下所示:
yolo predict model=yolov8n.pt source=bus.jpg imgsz=640 device=0
其中imgsz代表图片无论是多大,都会将长宽缩放到640,其中长边缩放至640,短边按比例缩放(小于640)。
device代表使用GPU设备,0代表使用第一个GPU。
model参数很重要,它用于指定使用哪个模型,yolov8n.pt只是yolov8项目里训练好的模型中最小的那个(参数少,识别速度快,准确率相对最低)。除此之外,还支持如下模型:

  • yolov8n: 适用于CPU的小型模型,适用于快速检测。
  • yolov8s: 中等大小的模型,适合中级资源的系统。
  • yolov8m: 大型模型,适合中高级资源的系统。
  • yolov8l: 超大型模型,适合高级资源的系统。
  • yolov8x: 极大型模型,适合最高资源的系统。
    使用上述模型时,第一次预测会自动下载该模型(可能很慢,要翻墙)。如果使用其他模型名,请确保当前目录下存在该模型(训练的模型)。
    根据系统配置,可选用合适的模型。
    使用Python:
    参考:https://docs.ultralytics.com/modes/predict/#key-features-of-predict-mode
from ultralytics import YOLO# Load a model
model = YOLO("yolov8n.pt")  # pretrained YOLOv8n model# Run batched inference on a list of images
results = model(["image1.jpg", "image2.jpg"])  # return a list of Results objects# Process results list
for result in results:boxes = result.boxes  # Boxes object for bounding box outputsmasks = result.masks  # Masks object for segmentation masks keypoints = result.keypoints  # Keypoints object for pose outputsprobs = result.probs  # Probs object for classification outputsobb = result.obb  # Oriented boxes object for OBB outputsresult.show()  # display to screenresult.save(filename="result.jpg")  # save to disk

标注图片

标注图片建议使用label_studio,此工具使用pip安装,命令行启动,浏览器访问,针对创建的某个数据集,可随时追加新图片,标注部分时也可以随时导出用于训练。
安装参考:https://labelstud.io/guide/install.html#Install-using-pip
一条命令搞定:pip install label-studio
运行:label-studio
使用方法请自行搜索。可参考:https://zhuanlan.zhihu.com/p/705893073

准备数据集

标注好图片后,需要根据yolo所需训练集格式,准备数据集。
可在label-studio中导出yolo格式,然后解压下载的目录后,将其整理为COCO8 Dataset的格式,COCO8数据集下载地址:https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8.zip

训练

使用命令行,参考https://docs.ultralytics.com/usage/cli/:
yolo detect train data=coco8.yaml model=yolov8n.pt epochs=100 imgsz=640 device=0 batch=16
参数和预测时雷同。其中比较重要的是,如果训练集不大(比如几十张图片),就一定要指定model=yolov8n.pt,否则训练后的模型无法识别任何物体。另外,根据使用硬件设备GPU的显存情况,设置合适的imgsz很重要,数据集图片如果是2000像素以内的,imgsz=2000时,需要更大的显存的支持,此时可以配合参数batch设置小一些,以减小对GPU显存的需求。
训练完成后,可使用命令行推理图片验证训练结果。
使用Python:

from ultralytics import YOLO# Load a model
model = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)# Train the model with 2 GPUs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=[0, 1])

http://www.mrgr.cn/news/35647.html

相关文章:

  • 实现3D热力图
  • java:继承题练习
  • 【FreeRL】MAPPO的简单复现
  • 浅谈:基于三维场景的视频融合方法
  • GitLab 降级安装出现 500 错误,如何解决?
  • Apache服务安装
  • Spring Cloud :Hystrix实现优雅的服务容错
  • 数据库学习2
  • 基于SpringBoot - Netty框架的云快充协议(充电桩协议)
  • JavaScript (JS)与TypeScript (TS)------讲清楚二者的区别与联系 + 市场主流趋势
  • golang学习笔记32——哪些是用golang实现的热门框架和工具
  • 关系数据库标准语言SQL(3,4)
  • sql中的having与where对比
  • 洛谷P1205 [USACO1.2] 方块转换
  • Java服务端服务发现:Nacos与Eureka的高级特性
  • Oracle(145)如何进行数据库的日常维护?
  • 【Go语言】Go语言结构体全面解析
  • 2048 游戏AI实现,轻松达到8192
  • 网络安全科普系统小程序的设计
  • python-list-append-method
  • 心觉:如何重塑高效学习的潜意识(1)两种方法的优缺点
  • C#:动态为Object对象添加新属性的方法
  • 【Linux 从基础到进阶】Hadoop 大数据平台搭建与优化
  • DevOps学习路线图
  • **CentOS7安装redis**
  • 物理学基础精解【16】