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’)
## 二、图像预测

在机器学习和计算机视觉领域,从可视数据中找出意义的过程被称为 "推理 "或 “预测”。
### 预测模式的主要功能
**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