1.环境准备
安装依赖库
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ultralytics
2. 导出 YOLOv9t 的 ONNX 模型
from ultralytics import YOLO # 加载 yolov9t 的预训练权重
model = YOLO("yolov9t.pt") # 导出为 ONNX 格式,设置 dynamic shape,简化模型,并指定 opset 版本
model.export(format="onnx", dynamic=True, simplify=True, opset=12)
(2) 可选:使用官方脚本导出 ONNX
参考官方 ultralytics 提供的 ONNX Runtime 示例项目:
3.准备校准数据集
(1)数据格式要求
- 校准数据需为 .npy 格式
- 文件目录:如 imagenet1k640x640/npy/
- 每张图像应预处理成 NCHW 格式、尺寸为 640x640
(2) 保持一致性,推荐参考官方 ultralytics 数据预处理逻辑:
from ultralytics.utils import ops
import cv2 import numpy as np
def preprocess_image(image_path):
img = cv2.imread(image_path)
img = cv2.resize(img, (640, 640))
img = img[:, :, ::-1].transpose(2, 0, 1) # BGR to RGB and HWC to CHW
img = np.ascontiguousarray(img, dtype=np.float32) / 255.0
return img
4. 配置量化编译参数文件(config.yaml)

5.模型编译流程
(1)进入 oe Docker 镜像环境
(2)快速验证模型是否支持 (可选)
hb_compile --fast-perf --model yolov9t.onnx --march nash-m --input-shape images BXCXHXW
(3) 正式编译模型
hb_compile --config config.yaml
(4) 编译结果输出
- 输出目录为 model_output/
会生成对应的 HBM 模型文件
6. 部署模型至地平线设备
1. 搭建运行环境
请参考 Horizon 官方文档中“模型部署实践指导”章节,完成如下环境搭建:
安装运行时环境
准备测试脚本
- 拷贝 .hbm 模型文件至目标设备
2. 推理验证
使用地平线提供的 runtime API 或示例代码,对模型进行推理测试,并验证功能与精度。


