命令行界面#
Ultralytics 命令行界面 (CLI) 提供了一种简单直接的方式,让你无需编写 Python 代码即可使用 Ultralytics YOLO 模型。你可以在终端中使用 yolo 命令直接运行各种任务。
观看: 精通 Ultralytics YOLO:CLI
Ultralytics yolo 命令使用以下语法:
yolo TASK MODE ARGS其中:
TASK(可选)是 [detect, segment, semantic, depth, classify, pose, obb] 中的一项MODE(必需)是 [train, val, predict, export, track, benchmark] 中的一项ARGS(可选)可以是任意数量的自定义arg=value键值对,例如imgsz=320,用于覆盖默认值。
请查看完整的配置指南或使用 yolo cfg 查看所有 ARGS。
其中:
TASK(可选)是[detect, segment, semantic, depth, 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 个轮次,图像尺寸为 640。有关所有可用参数的完整列表,请参阅配置页面。
在 COCO8 上启动 YOLO26n 训练,训练 100 个轮次,图像尺寸为 640:
yolo detect train data=coco8.yaml model=yolo26n.pt epochs=100 imgsz=640验证#
验证训练后模型在 COCO8 数据集上的准确率。如果省略 data,自定义模型会沿用训练时使用的 data;官方权重则会回退到该任务的默认 coco8.yaml。
验证官方 YOLO26n 模型:
yolo detect val model=yolo26n.pt data=coco8.yaml预测#
使用训练好的模型对图像进行预测。
使用官方 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 | ✅ | - |
| TorchScript | torchscript | yolo26n.torchscript | ✅ | imgsz, quantize, dynamic, nms, batch, device |
| ONNX | onnx | yolo26n.onnx | ✅ | imgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device |
| OpenVINO | openvino | yolo26n_openvino_model/ | ✅ | imgsz, quantize, dynamic, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n.engine | ✅ | imgsz, quantize, dynamic, simplify, opset, workspace, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n.mlpackage | ✅ | imgsz, dynamic, quantize, nms, batch, device |
| Apple Core AI | coreai | yolo26n.aimodel | ✅ | imgsz, batch, quantize |
| TF SavedModel | saved_model | yolo26n_saved_model/ | ✅ | imgsz, quantize, opset, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n.pb | ❌ | imgsz, opset, batch, device |
| TF Edge TPU | edgetpu | yolo26n_edgetpu.tflite | ✅ | imgsz, quantize, opset, data, fraction, device |
| LiteRT | litert | yolo26n.tflite | ✅ | imgsz, quantize, batch, data, fraction, device |
| PaddlePaddle | paddle | yolo26n_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n.mnn | ✅ | imgsz, batch, dynamic, quantize, simplify, opset, nms, device |
| NCNN | ncnn | yolo26n_ncnn_model/ | ✅ | imgsz, quantize, batch, device |
| IMX500 | imx | yolo26n_imx_model/ | ✅ | imgsz, quantize, data, fraction, nms, device |
| RKNN | rknn | yolo26n_rknn_model/ | ✅ | imgsz, batch, name, quantize, simplify, opset, data, fraction, device |
| ExecuTorch | executorch | yolo26n_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n_axelera_model/ | ✅ | imgsz, batch, quantize, data, fraction, device |
| DEEPX | deepx | yolo26n_deepx_model/ | ✅ | imgsz, quantize, simplify, opset, data, optimize, device |
| Qualcomm QNN | qnn | yolo26n_qnn.onnx | ✅ | imgsz, batch, name, quantize, simplify, opset, data, fraction, device |
| Hailo | hailo | yolo26n_hailo_model/ | ✅ | imgsz, name, quantize, data, fraction, simplify, conf, iou, device |
| Huawei Ascend | ascend | yolo26n_ascend_model/ | ✅ | imgsz, batch, name, quantize, opset, simplify, nms, device |
| AMD Xilinx | xilinx | yolo26n_xilinx_model/ | ✅ | imgsz, name, quantize, data, fraction, opset, simplify, device |
nms=None 默认输出原始结果,以供外部 NMS 使用。设置 nms=False 可选择可用的无 NMS 检测头;不支持的格式会回退到其原生输出路径。上方的 nms 条目表示可以通过 nms=True 嵌入 NMS 的格式。
请在 导出 页面查看完整的 export 详情。
覆盖默认参数#
通过在 CLI 中以 arg=value 键值对的形式传入参数,即可覆盖默认参数。
以 0.01 的学习率训练检测模型 10 个周期:
yolo detect train data=coco8.yaml model=yolo26n.pt epochs=10 optimizer=SGD lr0=0.01覆盖默认配置文件#
通过 cfg 参数传入新文件(例如 cfg=custom.yaml),即可完全覆盖 default.yaml 配置文件。
首先,在当前工作目录中使用 yolo copy-cfg 命令创建 default.yaml 的副本,该命令会生成 default_copy.yaml 文件。
然后,你可以将此文件作为 cfg=default_copy.yaml 传入,并附加其他参数,例如本例中的 imgsz=320:
yolo copy-cfg
yolo cfg=default_copy.yaml imgsz=320解决方案命令#
Ultralytics 通过 CLI 提供可直接使用的解决方案,适用于常见的计算机视觉应用。yolo solutions 命令提供目标计数、裁剪、模糊处理、锻炼监测、热力图、实例分割、VisionEye、速度估算、队列管理、分析、Streamlit 推理、基于区域的跟踪、区域计数、安全警报和停车管理;完整目录请参阅解决方案页面。运行 yolo solutions help 可列出所有支持的解决方案及其参数。
统计视频或实时流中的对象:
yolo solutions count show=True
yolo solutions count source="path/to/video.mp4" # specify video file path如需了解更多 Ultralytics 解决方案的信息,请访问解决方案页面。
常见问题#
要使用 CLI 训练模型,请在终端中执行一行命令。例如,要训练检测模型 10 个周期,请运行:
yolo train data=coco8.yaml model=yolo26n.pt epochs=10此命令使用带有特定参数的
train模式。有关可用参数的完整列表,请参阅配置指南。Ultralytics YOLO CLI 支持多种任务,包括检测、分割、语义分割、深度估计、分类、姿态估计和有向边界框检测。你还可以执行以下操作:
- 训练模型:运行
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>使用现成应用。
- 训练模型:运行
你可以将 YOLO 模型导出为多种格式,包括 ONNX、TensorRT、CoreML、TensorFlow 等。例如,要将模型导出为 ONNX 格式,请运行:
yolo export model=yolo26n.pt format=onnx导出命令支持多种选项,可针对特定部署环境优化模型。有关所有可用导出格式及其参数的完整详情,请访问导出页面。
Ultralytics 通过
solutions命令提供可直接使用的解决方案。例如,要统计视频中的对象:yolo solutions count source="path/to/video.mp4"这些解决方案只需极少配置,即可立即执行常见计算机视觉任务。要查看所有可用解决方案,请运行
yolo solutions help。每个解决方案都有可自定义的特定参数,以满足你的需求。