专栏算法工具链J5 YOLOv11模型部署实战

J5 YOLOv11模型部署实战

YCJ2025-12-31
107
0

J5 YOLOv11 模型部署实战

面向地平线 J5 平台,从 YOLOv11 模型结构理解,到 ONNX 导出、工具链量化编译,再到板端性能测试的完整实战记录。


一、模型简介

YOLOv11 是 Ultralytics 团队推出的最新一代实时目标检测模型,延续了 YOLO 系列的高效与精度优势,并在网络架构上进行了进一步优化。该模型整体包含 Backbone、Neck 和 Head 三部分,其中 Backbone 主要由多个 Conv、C3k2 模块以及 SPPF 和 C2PSA 等组成;Neck 部分通过 Upsample、Concat 和 C3k2 等操作实现多尺度特征融合;Head 部分则在 20×20、40×40 和 80×80 三个不同尺度的特征图上进行检测,实现多层级目标识别。YOLOv11 在保持推理速度的同时,进一步提升了检测精度与鲁棒性,适用于多种复杂场景下的实时视觉任务。


二、YOLOv11-det 模型结构解析

YOLOv11-det 依然沿用经典的三段式结构:

  • Backbone
    负责特征提取,逐层下采样,生成多尺度语义特征
  • Neck
    对不同尺度特征进行融合,增强对大小目标的检测能力
  • Head
    输出目标框回归与类别预测结果
Description

三、ONNX 模型导出流程

3.1 项目拉取

  • 使用 Ultralytics 官方 YOLOv11 工程

3.2 环境准备

3.3 修改Detect输出(将模型输出改为10个,去掉DFL)

  • 在 ./ultralytics/ultralytics/nn/modules/head.py 文件中找到 Detect 类,将 forward 方法替换为以下代码

3.4 pt->onnx

四、量化编译

4.1 验证 ONNX 模型

  • 注:若验证不通过,hb_compile 工具会报出 ERROR,在当前工作目录下会生成 hb_mapper.log 文件,从文件中可以查看到具体的报错。如果不存在ERROR,则顺利通过校验。

4.2 校准数据准备

注:

  • 1.校准数据集应来自训练集或验证集。

  • 2.校准数据集的图片应具有代表性,避免使用异常样本(例如纯色图片、不含任何检测或分类目标的图片)

  • 3.校准数据集的预处理应与原始浮点模型数据前处理过程一致。

4.3 模型转换

4.3.1 yaml 文件

4.3.2 模型编译转换 & 输入输出信息打印

五、板端推理验证(性能测试)

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