在项目开发中,经常需要将训练好的YOLO模型转换成一个适用于Web环境的格式——ONNX(Open Neural Network Exchange)格式
导出方式
参考官方文档,给出了两种导出形式:
Python
from ultralytics import YOLO
# Load a model
model = YOLO("yolov8n.pt") # load an official model
# model = YOLO('path/to/best.pt') # load a custom trained model
# Export the model
model.export(
format="onnx", dynamic=True
) # export to ONNX (for deployment to C++, Android, iOS, etc.)
CLI
yolo export model=yolov8n.pt format=onnx # export official model
yolo export model=path/to/best.pt format=onnx # export custom trained model
参数
该表详细说明了可用于将YOLO模型导出为不同格式的配置和选项。这些设置对于优化导出模型的性能、大小和跨各种平台和环境的兼容性至关重要。正确的配置确保模型可以以最佳效率部署到预期的应用程序中。
| Argument | Type | Default | Description |
|---|---|---|---|
format | str | 'torchscript' | 导出模型的目标格式,例如“onnx”、“torchscript”、“tensorflow”或其他格式,定义与各种部署环境的兼容性。 |
imgsz | int or tuple | 640 | 模型输入所需的图像大小。正方形图像可以是整数,特定尺寸可以是元组(height, width)。 |
keras | bool | False | 能够导出到Keras格式的TensorFlow SavedModel,提供了一种服务和api的兼容性。 |
optimize | bool | False | 在导出到TorchScript时对移动设备进行优化,可能会减少模型大小并提高性能。 |
half | bool | False | 实现FP16(半精度)量化,减少模型大小,并可能加快支持的硬件上的推理。 |
int8 | bool | False | 激活INT8量化,进一步压缩模型并以最小的精度损失加快推理,主要用于边缘设备。 |
dynamic | bool | False | 允许ONNX和TensorRT导出的动态输入大小,增强了处理不同图像尺寸的灵活性。 |
simplify | bool | False | 简化了ONNX导出的模型图,可能会提高性能和兼容性。 |
opset | int | None | 指定ONNX opset版本,以兼容不同的ONNX解析器和运行时。如果没有设置,则使用支持的最新版本。 |
workspace | float | 4.0 | 设置以GB为单位的最大工作空间大小,用于TensorRT优化,平衡内存使用和性能。 |
nms | bool | False | 在CoreML导出中添加了非极大值抑制(NMS),这对于准确和高效的检测后处理至关重要。 |
通过调整这些参数,可以定制导出过程以适应特定的需求,例如部署环境、硬件约束和性能目标。选择适当的格式和设置对于实现模型大小、速度和精度之间的最佳平衡至关重要。








Comments | NOTHING