当前位置: 首页 > java >正文

地平线rdk x5部署yolo11

# 下载OE-v1.2.8交付包
wget -c ftp://x5ftp@vrftp.horizon.ai/OpenExplorer/v1.2.8_release/horizon_x5_open_explorer_v1.2.8-py310_20240926.tar.gz --ftp-password=x5ftp@123$%
 
#地平线旭日5 算法工具链 用户开发文档(按需下载)
wget -c ftp://x5ftp@vrftp.horizon.ai/OpenExplorer/v1.2.8_release/x5_doc-v1.2.8-py310-cn.zip --ftp-password=x5ftp@123$%


#Ubuntu20.04 CPU Docker镜像
wget -c ftp://x5ftp@vrftp.horizon.ai/OpenExplorer/v1.2.8_release/docker_openexplorer_ubuntu_20_x5_cpu_v1.2.8.tar.gz --ftp-password=x5ftp@123$%

安装docker镜像:
sudo docker load -i docker_openexplorer_ubuntu_20_x5_cpu_v1.2.8.tar.gz 

执行 sudo docker image ls
REPOSITORY                                   TAG            IMAGE ID       CREATED        SIZE
openexplorer/ai_toolchain_ubuntu_20_x5_cpu   v1.2.8-py310   86481e1a065b   7 months ago   5.16GB

进入docker:
sudo docker run -it --name my_ai_toolchain openexplorer/ai_toolchain_ubuntu_20_x5_cpu:v1.2.8-py310 /bin/bash 

或者:

sudo docker exec -it horizon /bin/bash   horizon是容器names

sudo docker run -it -d -v /home/yao/workspace/projects/rdk/docker:/data --name horizon 86481e1a065b

查询正在运行的容器:

sudo docker ps -a

Container is not running解决:

sudo docker start 5fcc8a9e438d容器ID
 

sudo docker run -it -d -v /home/yao/workspace/projects/rdk/docker:/data --name horizon e9307ee87b1a

sudo docker images 查镜像ID

容器文件夹映射到本机文件夹目录:

docker run -it -v /宿主机目录:/容器目录 镜像名:版本号

docker run -it -v /home/sunrise:/workspace openexplorer/ai_toolchain_ubuntu_20_xj3_cpu:v2.6.4

注意 执行完以上命令后进入到容器的是openexplorer文件夹,要后退一步才行。

进去容器,把模型放入文件夹:

#根据自己的模型路径修改--model参数:以下命令对我们的模型进行检查
hb_mapper checker --model-type onnx --march bayes-e --model yolo11n-seg.onnx

主要输出:

2025-05-09 10:34:04,719 INFO Input ONNX Model Information:
ONNX IR version:          6
Opset version:            ['ai.onnx v11', 'horizon v1']
Producer:                 pytorch v2.1.0
Domain:                   None
Version:                  None
Graph input:
    images:               shape=[1, 3, 640, 640], dtype=FLOAT32
Graph output:
    output0:              shape=[1, 80, 80, 80], dtype=FLOAT32
    output1:              shape=[1, 80, 80, 64], dtype=FLOAT32
    520:                  shape=[1, 80, 80, 32], dtype=FLOAT32
    542:                  shape=[1, 40, 40, 80], dtype=FLOAT32
    528:                  shape=[1, 40, 40, 64], dtype=FLOAT32
    550:                  shape=[1, 40, 40, 32], dtype=FLOAT32
    572:                  shape=[1, 20, 20, 80], dtype=FLOAT32
    558:                  shape=[1, 20, 20, 64], dtype=FLOAT32
    580:                  shape=[1, 20, 20, 32], dtype=FLOAT32
    490:                  shape=[1, 160, 160, 32], dtype=FLOAT32
 

准备校准数据:

generate_calibration_data.py脚本,只需设置图片输入和保存目录即可:

脚本所在目录rdk_model_zoo/demos/tools/generate_calibration_data/

生成的数据保存在calibration_data_rgb_f32_640文件夹,在config_yolo11_seg_bayese_640x640_nv12.yaml文件中需要填写cal_data_dir

执行模型转换,得到.bin文件:
hb_mapper makertbin --model-type onnx --config config_yolo11_seg_bayese_640x640_nv12.yaml

config_yolo11_seg_bayese_640x640_nv12.yaml文件是在rdk_model_zoo/demos/Seg/YOLO11-Seg/YOLO11-Seg_YUV420SP/路径下

执行过程中可能遇到报错,先不管:[E:onnxruntime:, sequential_executor.cc:183 Execute] N...input_shape.Size()) == size was false. The input tensor cannot be reshaped to the requested shape. Input shape:{8,256,20,20}, requested shape:{1,2,128,400} 

查看可删除的节点:

hb_model_modifier yolo11n_seg_bayese_640x640_nv12.bin 

生成的节点文件为hb_model_modifier.log

删除以下节点:

hb_model_modifier yolo11n_seg_bayese_640x640_nv12.bin \
-r "490_HzDequantize" \
-r "/model.23/cv2.0/cv2.0.2/Conv_output_0_HzDequantize" \
-r "/model.23/cv4.0/cv4.0.2/Conv_output_0_HzDequantize" \
-r "/model.23/cv2.1/cv2.1.2/Conv_output_0_HzDequantize" \
-r "/model.23/cv4.1/cv4.1.2/Conv_output_0_HzDequantize" \
-r "/model.23/cv2.2/cv2.2.2/Conv_output_0_HzDequantize" \
-r "/model.23/cv4.2/cv4.2.2/Conv_output_0_HzDequantize"

得到修改后的yolo11n_seg_bayese_640x640_nv12_modified.bin文件。




 

http://www.xdnf.cn/news/4881.html

相关文章:

  • el-form的label星号位置如何修改
  • 一个开源的快速准确地将 PDF 转换为 markdown工具
  • 动态规划-62.不同路径-力扣(LeetCode)
  • 量化解析美英协议的非对称冲击:多因子模型与波动率曲面重构
  • 支持向量机案例
  • springmvc实现文件上传
  • [6-1] TIM定时中断 江协科技学习笔记(45个知识点)
  • 布隆过滤器:高效的数据结构与应用详解
  • 通过Linux系统服务管理IoTDB集群的高效方法
  • C语言 第六章 结构体(2)
  • 大数据——Mac环境DataSpell集成Jupyter
  • 2025年5月通信科技领域周报(4.28-5.4):5G-A技术引领峰会通信 卫星通信加速全球化布局
  • 数据库系统概论(七)初识SQL与SQL基本概念
  • 小程序消息订阅的整个实现流程
  • 养生:开启健康生活的钥匙
  • buck和boost总结
  • B站pwn教程笔记-9
  • 使用 React Native实现鸿蒙开发的详细方案
  • 数据结构 集合类与复杂度
  • Windows平台下的Qt发布版程序打包成exe可执行文件(带图标)|Qt|C++
  • SPC:通过对抗性博弈,让LLM左右互搏提升性能
  • 【Linux】swap交换分区管理
  • 特殊版本,官宣永久免费
  • 从入门到深入:Vue.js 学习全攻略
  • C++ 模板方法模式详解与实例
  • 基于多模态大模型的十二指肠穿孔诊疗技术方案
  • NeurIPS 2024 | 工业质检缺陷检测相关论文梳理
  • el-table中合并表格后横向变高样式无效
  • 找不到自定义包出现报错ModuleNotFoundError: No module named
  • 基础编程题目集 6-9 统计个位数字