UltralyticsYOLOv8_ultralytics使用

这篇博客介绍了如何使用Ultralytics库来操作YOLOv8模型,从创建新模型到加载预训练模型,再到模型训练、验证、图像检测、模型导出和批处理推理等步骤。还展示了使用YOLOv8n模型进行对象检测、分割、姿势识别和分类等多种任务的方法。
摘要由CSDN通过智能技术生成

pip install ultralytics



> 
> PyPI 是 Python Package Index 的缩写,是一个存储和分发 Python 软件包的公共仓库。开发者可以通过 PyPI 找到并安装各种 Python 软件包,使得在 Python 环境中轻松地使用这些包的功能。
> 
> 
> 


Ultralytics 命令行界面 (CLI) 允许使用简单的单行命令,而无需Python 环境。


### Ultralytics 命令行界面 (CLI)


Ultralytics yolo 命令使用以下语法:



yolo TASK MODE ARGS


1.训练检测模型 10 次,初始学习率为 0.01



yolo train data=coco128.yaml model=yolov8n.pt epochs=10 lr0=0.01


2.在图像大小为 320 时,使用预训练的分割模型预测 YouTube 视频:



yolo predict model=yolov8n-seg.pt source=‘https://youtu.be/LNwODJXcvt4’ imgsz=320


3.在批量大小为 1、图像大小为 640 时,验证预先训练的检测模型:



yolo val model=yolov8n.pt data=coco128.yaml batch=1 imgsz=640


4.将YOLOv8n 分类模型导出为ONNX 格式,图像大小为 224 x 128(无需 TASK)



yolo export model=yolov8n-cls.pt format=onnx imgsz=224,128


5.运行特殊命令可查看版本、查看设置、运行检查等:



yolo help
yolo checks
yolo version
yolo settings
yolo copy-cfg
yolo cfg


### Ultralytics+Python



from ultralytics import YOLO

Create a new YOLO model from scratch

创建一个新的YOLO模型(从头开始)

model = YOLO(‘yolov8n.yaml’)

Load a pretrained YOLO model (recommended for training)

加载一个预训练的YOLO模型(推荐用于训练)

model = YOLO(‘yolov8n.pt’)

Train the model using the ‘coco128.yaml’ dataset for 3 epochs

使用’coco128.yaml’数据集对模型进行3个时期的训练

results = model.train(data=‘coco128.yaml’, epochs=3)

Evaluate the model’s performance on the validation set

评估模型在验证集上的性能

results = model.val()

Perform object detection on an image using the model

使用模型对图像进行目标检测

results = model(‘https://ultralytics.com/images/bus.jpg’)

Export the model to ONNX format

将模型导出为ONNX格式

success = model.export(format=‘onnx’)


## 二、图像预测


![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/969e2039b44e4ff79029b0f51458eefd.png#pic_center)


在机器学习和计算机视觉领域,从可视数据中找出意义的过程被称为 "推理 "或 “预测”。


### 预测模式的主要功能


**1.返回一个包含 stream=False**



from ultralytics import YOLO

Load a model

加载模型

model = YOLO(‘yolov8n.pt’) # pretrained YOLOv8n model

Run batched inference on a list of images

在图像列表上运行批处理推理

results = model([‘im1.jpg’, ‘im2.jpg’]) # return a list of Results objects

Process results list

处理结果列表

for result in results:
boxes = result.boxes # Boxes object for bounding box outputs
# 用于边界框输出的边界框对象
masks = result.masks # Masks object for segmentation masks outputs
# 用于分割掩模输出的掩模对象
keypoints = result.keypoints # Keypoints object for pose outputs
# 用于姿势输出的关键点对象
probs = result.probs # Probs object for classification outputs
# 用于分类输出的概率对象
result.show() # display to screen
# 显示到屏幕
result.save(filename=‘result.jpg’) # save to disk
# 保存到磁盘


**2.返回一个带有 stream=True**



from ultralytics import YOLO

Load a model

model = YOLO(‘yolov8n.pt’) # pretrained YOLOv8n model

加载一个模型:使用预训练的YOLOv8n模型

Run batched inference on a list of images

results = model([‘im1.jpg’, ‘im2.jpg’], stream=True) # return a generator of Results objects

对图像列表进行批量推理:返回一个Results对象的生成器

Process results generator

for result in results:
boxes = result.boxes # Boxes object for bounding box outputs
masks = result.masks # Masks object for segmentation masks outputs
keypoints = result.keypoints # Keypoints object for pose outputs
probs = result.probs # Probs object for classification outputs
result.show() # display to screen
result.save(filename=‘result.jpg’) # save to disk
# 处理结果生成器:boxes表示边界框输出的Boxes对象
# masks表示分割掩模输出的Masks对象
# keypoints表示姿势输出的Keypoints对象
# probs表示分类输出的Probs对象
# 显示到屏幕
# 保存到磁盘



> 
> 使用 stream=True 用于处理长视频或大型数据集,以有效管理内存。当 stream=False在这种情况下,所有帧或数据点的结果都会存储在内存中,这可能会迅速累加,并导致大量输入出现内存不足错误。与此形成鲜明对比的是 stream=True 利用生成器,它只将当前帧或数据点的结果保存在内存中,从而大大减少了内存消耗并防止出现内存不足的问题。
> 
> 
> 


### 推理源


**1.图像**:在图像文件上运行推理。



from ultralytics import YOLO

Load a pretrained YOLOv8n model

加载预训练的YOLOv8n模型

model = YOLO(‘yolov8n.pt’)

Define path to the image file

定义图像文件的路径

source = ‘path/to/image.jpg’

Run inference on the source

在源图像上运行推理

results &#

  • 30
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值