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
输出目标框回归与类别预测结果

三、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 模型编译转换 & 输入输出信息打印
五、板端推理验证(性能测试)

