命令行界面

Ultralytics 命令行界面 (CLI) 提供了一种直接使用 Ultralytics YOLO 模型的方法,无需 Python 环境。CLI 支持直接从终端通过 yolo 命令运行各种任务,无需任何自定义或 Python 代码。



Watch: Mastering Ultralytics YOLO: CLI
示例

Ultralytics yolo 命令使用以下语法:

yolo TASK MODE ARGS

说明:

  • TASK(可选)是 [detect, segment, classify, pose, obb] 之一
  • MODE(必选)是 [train, val, predict, export, track, benchmark] 之一
  • ARGS(可选)是任意数量的自定义 arg=value 对(例如 imgsz=320),用于覆盖默认设置。

在完整的 配置指南 中或通过 yolo cfg 查看所有 ARGS。

说明:

  • TASK(可选)是 [detect, segment, classify, pose, obb] 之一。如果不明确指定,YOLO 将尝试根据模型类型推断 TASK
  • MODE(必选)是 [train, val, predict, export, track, benchmark] 之一
  • ARGS(可选)是任意数量的自定义 arg=value 对(例如 imgsz=320),用于覆盖默认设置。有关可用 ARGS 的完整列表,请参阅 配置 页面和 default.yaml
警告

参数必须作为 arg=val 对传递,由等号 = 分隔,并在各对之间由空格分隔。不要使用 -- 参数前缀或在参数之间使用逗号 ,

  • yolo predict model=yolo26n.pt imgsz=640 conf=0.25
  • yolo predict model yolo26n.pt imgsz 640 conf 0.25
  • yolo predict --model yolo26n.pt --imgsz 640 --conf 0.25

训练

在 COCO8 数据集上训练 YOLO 100 个 epoch,图像尺寸为 640。有关可用参数的完整列表,请参阅 配置 页面。

示例

开始在 COCO8 上训练 YOLO26n,进行 100 个 epoch,图像尺寸为 640:

yolo detect train data=coco8.yaml model=yolo26n.pt epochs=100 imgsz=640

验证

验证训练后的模型在 COCO8 数据集上的 accuracy。不需要参数,因为 model 会保留其训练 data 和参数作为模型属性。

示例

验证官方 YOLO26n 模型:

yolo detect val model=yolo26n.pt

预测

使用训练好的模型对图像进行预测。

示例

使用官方 YOLO26n 模型进行预测:

yolo detect predict model=yolo26n.pt source='https://ultralytics.com/images/bus.jpg'

导出

将模型导出为不同的格式,如 ONNX 或 CoreML。

示例

将官方 YOLO26n 模型导出为 ONNX 格式:

yolo export model=yolo26n.pt format=onnx

可用的 Ultralytics 导出格式如下表所示。你可以使用 format 参数导出为任何格式,例如 format='onnx'format='engine'

格式format 参数模型元数据参数
PyTorch-yolo26n.pt-
TorchScripttorchscriptyolo26n.torchscriptimgsz, half, dynamic, optimize, nms, batch, device
ONNXonnxyolo26n.onnximgsz, half, dynamic, simplify, opset, nms, batch, device
OpenVINOopenvinoyolo26n_openvino_model/imgsz, half, dynamic, int8, nms, batch, data, fraction, device
TensorRTengineyolo26n.engineimgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device
CoreMLcoremlyolo26n.mlpackageimgsz, dynamic, half, int8, nms, batch, device
TF SavedModelsaved_modelyolo26n_saved_model/imgsz, keras, int8, nms, batch, data, fraction, device
TF GraphDefpbyolo26n.pbimgsz, batch, device
TF Litetfliteyolo26n.tfliteimgsz, half, int8, nms, batch, data, fraction, device
TF Edge TPUedgetpuyolo26n_edgetpu.tfliteimgsz, int8, data, fraction, device
TF.jstfjsyolo26n_web_model/imgsz, half, int8, nms, batch, data, fraction, device
PaddlePaddlepaddleyolo26n_paddle_model/imgsz, batch, device
MNNmnnyolo26n.mnnimgsz, batch, int8, half, device
NCNNncnnyolo26n_ncnn_model/imgsz, half, batch, device
IMX500imxyolo26n_imx_model/imgsz, int8, data, fraction, nms, device
RKNNrknnyolo26n_rknn_model/imgsz, batch, name, device
ExecuTorchexecutorchyolo26n_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n_axelera_model/imgsz, batch, int8, data, fraction, device
DeepXdeepxyolo26n_deepx_model/imgsz, int8, data, optimize, device

查看关于 export 的完整详情,请参阅 Export 页面。

覆盖默认参数

通过在 CLI 中以 arg=value 的键值对形式传递参数,可以覆盖默认参数。

提示

训练一个检测模型,进行 10 个 epoch,学习率为 0.01:

yolo detect train data=coco8.yaml model=yolo26n.pt epochs=10 lr0=0.01

覆盖默认配置文件

Override the default.yaml configuration file entirely by passing a new file with the cfg argument, such as cfg=custom.yaml.

To do this, first create a copy of default.yaml in your current working directory with the yolo copy-cfg command, which creates a default_copy.yaml file.

然后,你可以将此文件作为 cfg=default_copy.yaml 传递,并附带任何附加参数,例如本例中的 imgsz=320

示例
yolo copy-cfg
yolo cfg=default_copy.yaml imgsz=320

解决方案命令

Ultralytics 通过 CLI 为常见的计算机视觉应用提供了开箱即用的解决方案。yolo solutions 命令涵盖了目标计数、裁剪、模糊处理、锻炼监控、热图、实例分割、VisionEye、速度估计、队列管理、分析、Streamlit 推理和基于区域的跟踪——请参阅 Solutions 页面获取完整目录。运行 yolo solutions help 以列出所有受支持的解决方案及其参数。

示例

在视频或实时流中统计目标数量:

yolo solutions count show=True
yolo solutions count source="path/to/video.mp4" # specify video file path

有关 Ultralytics 解决方案的更多信息,请访问 Solutions 页面。

常见问题 (FAQ)

如何使用 Ultralytics YOLO 命令行界面 (CLI) 进行模型训练?

要使用 CLI 训练模型,请在终端中执行单行命令。例如,要以 0.01 的 learning rate 训练一个检测模型 10 个 epoch,请运行:

yolo train data=coco8.yaml model=yolo26n.pt epochs=10 lr0=0.01

该命令使用带有特定参数的 train 模式。有关可用参数的完整列表,请参考 Configuration Guide

我可以使用 Ultralytics YOLO CLI 执行哪些任务?

Ultralytics YOLO CLI 支持各种任务,包括 detectionsegmentationclassificationpose estimationoriented bounding box detection。你还可以执行如下操作:

  • 训练模型:运行 yolo train data=<data.yaml> model=<model.pt> epochs=<num>
  • 运行预测:使用 yolo predict model=<model.pt> source=<data_source> imgsz=<image_size>
  • 导出模型:执行 yolo export model=<model.pt> format=<export_format>
  • 使用解决方案:运行 yolo solutions <solution_name> 以获取现成的应用程序。

你可以使用各种参数自定义每个任务。有关详细语法和示例,请参阅各个部分,例如 TrainPredictExport

如何使用 CLI 验证已训练 YOLO 模型的准确性?

To validate a model's accuracy, use the val mode. For example, to validate a pretrained detection model with a batch size of 1 and an image size of 640, run:

yolo val model=yolo26n.pt data=coco8.yaml batch=1 imgsz=640

该命令会在指定数据集上评估模型,并提供诸如 mAPprecisionrecall 等性能指标。有关更多详细信息,请参考 Val 部分。

我可以使用 CLI 将 YOLO 模型导出为哪些格式?

你可以将 YOLO 模型导出为多种格式,包括 ONNX、TensorRT、CoreML、TensorFlow 等。例如,要将模型导出为 ONNX 格式,请运行:

yolo export model=yolo26n.pt format=onnx

导出命令支持众多选项,用于针对特定部署环境优化你的模型。有关所有可用导出格式及其特定参数的完整详情,请访问 Export 页面。

如何使用 Ultralytics CLI 中的预构建解决方案?

Ultralytics 通过 solutions 命令提供开箱即用的解决方案。例如,在视频中统计目标数量:

yolo solutions count source="path/to/video.mp4"

这些解决方案需要极少的配置,并为常见的计算机视觉任务提供了即时功能。要查看所有可用解决方案,请运行 yolo solutions help。每个解决方案都有特定的参数,可以根据你的需求进行自定义。

评论