专栏算法工具链地平线J6m部署yolov9

地平线J6m部署yolov9

Huanghui2025-04-24
179
0

1.环境准备

安装依赖库

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ultralytics

2. 导出 YOLOv9t 的 ONNX 模型 

(1) 创建 Python 脚本文件(如 export_onnx.py) 

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 示例项目:

官方 GitHub 示例代码仓库(包含 ONNX 模型导出及预处理) https://github.com/ultralytics/ultralytics/blob/main/examples/YOLOv8-ONNXRuntime/main.py

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 或示例代码,对模型进行推理测试,并验证功能与精度。

             

算法工具链
征程6技术深度解析杂谈
评论0
0/1000