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

imx6ull移植ncnn框架并运行yolo11目标检测模型(2)移植ncnn致imx6ull并成功跑通例程

文章目录

  • 1. 概要
  • 2. NCNN框架移植
    • 2.1 下载NCNN的框架包于PC中
    • 2.2 调用交叉编译工具链部署 NCNN 框架
    • 2.3 进行交叉编译,获得arm框架开发板(imx6ull)可使用的可执行程序和库等
    • 2.4 将相关包传至imx6ull上
  • 3.总结:
  • 4.参考链接
  • 5. 章节

1. 概要

在实际场景中,深度学习模型通常通过 PyTorch、TensorFlow 等框架来完成,直接通过这些模型来进行推理效率并不高,特别是对延时要求严格的线上场景。由此,经过工业界和学术界数年的探索,模型部署有了一条流行的流水线:


这一条流水线解决了模型部署中的两大难点:使用对接深度学习框架和推理引擎的中间表示,开发者不必担心如何在新环境中运行各个复杂的框架;通过中间表示的网络结构优化和推理引擎对运算的底层优化,模型的运算效率大幅提升。

本文将会讲述如何移植NCNN框架到开发板imx6ull上并成功运行例程。

需要设备:PC宿主机(ubuntu18.04等),开发板(imx6ull)。
整体流程如下:
1.下载NCNN的框架包于PC中
2.设置交叉编译工具链(arm版本)
3.进行交叉编译,获得arm框架开发板(imx6ull)可使用的可执行程序和库等
4.将相关包传至imx6ull上

2. NCNN框架移植

2.1 下载NCNN的框架包于PC中

(1) 首先拉取 NCNN 代码:

git clone https://github.com/Tencent/ncnn.git

(2) 安装相关依赖:

sudo apt update sudo apt install build-essential git cmake libprotobuf-dev protobuf-compiler libvulkan-dev vulkan-utils libopencv-dev

(3)编译 Vulkan 后端(可选,如果有gpu的话,如果没有,跳至(2.2)):

wget https://sdk.lunarg.com/sdk/download/1.2.182.0/linux/vulkansdk-linux-x86_64-1.2.182.0.tar.gz tar xvf vulkansdk-linux-x86_64-1.2.182.0.tar.gz export VULKAN_SDK=$(pwd)/1.2.182.0/x86_64

拉取 NCNN 子模块:

cd ncnn git submodule update--init

2.2 调用交叉编译工具链部署 NCNN 框架

(1) 100ASK-6ULL-V11 开发板添加编译配置(该开发板芯片为imx6ull)
在toolchains目录下,我们可以看到很多其它开发板的编译配置文件:

参照其它开发板的配置文件,为 100ASK-6ULL-V11 开发板添加配置文件arm-buildroot-gnueabihf.toolchain.cmake:
终端打开此页面,执行下述命令:

vi arm-buildroot-gnueabihf.toolchain.cmake

执行之后自动进入该文件,复制粘贴如下内容

set(CMAKE_SYSTEM_NAME Linux)set(CMAKE_SYSTEM_PROCESSOR arm)set(CMAKE_C_COMPILER"arm-buildroot-linux-gnueabihf-gcc")set(CMAKE_CXX_COMPILER"arm-buildroot-linux-gnueabihf-g++")set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)set(CMAKE_C_FLAGS"-march=armv7-a -mfloat-abi=hard -mfpu=neon")set(CMAKE_CXX_FLAGS"-march=armv7-a -mfloat-abi=hard -mfpu=neon")# cache flagsset(CMAKE_C_FLAGS"${CMAKE_C_FLAGS}"CACHE STRING"c flags")set(CMAKE_CXX_FLAGS"${CMAKE_CXX_FLAGS}"CACHE STRING"c++ flags")

注意,你得确保你的arm的gcc,g++编译工具已存在,如下:

至于如何设置这个工具链,在此就不多展开了,可以看一看韦东山imx6ull的文档或者其他博主的交叉编译工具设置的文档,韦东山老师文档中通过如下命令设置,使得该交叉编译工具能被系统识别(前提是已经安装好了交叉编译工具)

2.3 进行交叉编译,获得arm框架开发板(imx6ull)可使用的可执行程序和库等

在配置好 iMX6ULL 开发板所需的交叉编译工具链后,就可以使用cmake命令来生成编译所需的makefile文件了,为了方便,我们在后续编译的同时生成样例程序:

mkdir-p build-imx6ull# 在工程根目录中新建 build-imx6ull 文件夹 即你下载的ncnn文件夹下cd build-imx6ull cmake-DCMAKE_BUILD_TYPE=Release-DNCNN_SIMPLEOCV=ON-DCMAKE_TOOLCHAIN_FILE=../toolchains/arm-buildroot-gnueabihf.toolchain.cmake-DNCNN_BUILD_EXAMPLES=ON..

开始编译:

make-j4

查看编译结果
编译完成后,在build-imx6ull目录下,我们可以看到benchmark目录和example目录,前者目录中的benchncnn就是 NCNN 的基准测试工具,后者目录中是编译完成的样例程序:

2.4 将相关包传至imx6ull上

把build-imx6ull/benchmark目录下的benchncnn整个文件夹复制到开发板的/home/root/ncnn/目录下,同时将在开发板中的/home/root/ncnn/benchncnn目录下运行命令:

./benchncnn

稍后即可看到基准测试的结果:

3.总结:

本章节将NCNN框架下载到PC中进行交叉编译,生成适合imx6ull运行的arm版本,之后上传开发板进行测试。下一章节将会详细讲述在移植成功的情况下如何使用第一章终得ultralytics官方提供的工具包生成的.bin和.param文件。

4.参考链接

[1]在嵌入式开发板上部署深度神经网络(二):基于 I.MX6ULL 执行图像分类任务和目标检测任务
[2]嵌入式Linux入门级板卡的神经网络框架ncnn移植与测试-米尔i.MX6UL开发板

5. 章节

imx6ull移植ncnn框架并运行yolo11目标检测模型(1)转换yolo11模型: Torch -> NCNN

imx6ull移植ncnn框架并运行yolo11目标检测模型(3)部署yolo11目标检测模型,交叉编译自己写的检测文件

http://www.jsqmd.com/news/560932/

相关文章:

  • Fast-F1实战指南:如何用Python构建专业的F1数据分析系统
  • BepInEx全流程指南:从环境适配到插件开发
  • C语言真的过时了吗?看排行榜就懂了
  • 革新性植物大战僵尸辅助工具:PVZ Toolkit的全场景应用解析
  • 高效压缩qcow2镜像的三种方法及性能影响分析
  • 防脱精华液功效深度测评:从强韧发根到促进新生 - 博客万
  • Torch-Pruning支持神经辐射场(NERF):3D重建模型压缩终极指南
  • 每日算法题 20---206.反转链表
  • 面试必备之项目细节技能参考
  • LoRaWAN节点功耗优化指南:从扩频因子选择到上报周期设置的7个技巧
  • 提升Blender创作效率的终极资源指南:从新手到专家的完整解决方案
  • 外贸AI营销平台怎么选?从AI出海提效系统到海外市场AI推广平台,这几家值得关注(附带联系方式) - 品牌2026
  • 当电力系统遇上MATLAB:手把手玩转SVC设计
  • IFN-γ蛋白在CAR-T治疗中的双重作用研究
  • 【从零开始】手写BLE协议栈(4-2)高精度调度器
  • PicView图片浏览器完全指南:从零开始掌握高效图片管理
  • 深入QNN SDK:从动态库加载到模型执行,一次搞懂qnn-sample-app的核心工作流
  • 老旧S7-200系统以太网升级改造:对接S7-1200与触摸屏通讯实例
  • SD 协议
  • 2026年湖南长沙月子中心/月子会所选购指南:湖南爱睦母婴服务有限公司 - 2026年企业推荐榜
  • 2026 年 3 月北京发电机出租公司口碑推荐榜单:发电车/静音发电机/发电机组租赁电话,北京及周边服务商选择指南 - 海棠依旧大
  • Twitter API v2研究数据获取与API应用全面指南
  • 面试必备之功能测试技能参考
  • 企业级智能体开发首选:腾讯云平台助力高效便捷实现,收藏必备!
  • 【SqlServer】SQL Server Management Studio (SSMS) 从零到精通:下载、安装、配置与实战技巧全解析
  • 头皮精华推荐2026:新手入门必看的选购指南 - 博客万
  • 基于RST数字控制器设计(二自由度控制)的pmsm电流环控制,速度环负载扰动补偿 (1)基于离...
  • 春招进入下半场,这些坑不避开,很容易白投几百份简历
  • CoPaw创意写作与营销文案生成效果比拼
  • 万亿规模:零碳园区建设方案