2.3T算力,真的强!1分钟学会NPU开发,基于NXP i.MX 8MP平台!

科技飞速发展,人工智能与工业领域的融合日益深入。NXP旗下的i.MX 8M Plus作为一款高端工业处理器,NPU算力高达2.3TOPS,正引领着工业智能化的浪潮,为众多工业场景带来了前所未有的变革潜力。

图 1

i.MX 8M Plus NPU特性

i.MX 8M Plus的NPU支持INT16/INT32/FP16/FP32等多种数据类型,兼容性卓越,与TensorFlow Lite/Arm NN/ONNX Runtime/DeepViewRT等框架无缝对接。这一特性,为开发者们打造了一个极为丰富的工具和库生态系统,更便利进行模型开发与训练工作,轻松应对各种复杂的大数据运算场景,无论是海量工业数据的分析处理,还是精准智能决策的模型构建,更加游刃有余。

i.MX 8M Plus NPU开发流程

第一步:模型开发

首先,从TensorFlow预训练模型库中选择一个合适的模型,或根据具体任务需求创建自定义模型。然后,收集和准备训练数据集。

第二步:模型训练

可通过eIQ Toolkit工具调整参数(如Weight initialization、Input size、Learning rate等)优化模型性能,配置训练参数后,开始模型训练。

第三步:模型量化

可通过量化一个训练后的模型,减少其大小,并加快在NPU上的推理时间,实现最小的精度损失。

图 2 开发流程示意图

i.MX 8M Plus 典型工业应用

图 3

NPU开发案例演示

本文主要介绍基于i.MX 8M Plus的NPU开发案例,适用开发环境如下。

Windows开发环境:Windows 7 64bit、Windows 10 64bit

虚拟机:VMware15.5.5

开发环境:Ubuntu20.04.6 64bit

U-Boot:U-Boot-2022.04

Kernel:Linux-5.15.71-rt51

LinuxSDK:Real-Time Edge Software 2.5

硬件平台:创龙科技TLIMX8MP-EVM工业评估板(基于i.MX 8M Plus)

为了简化描述,本文仅摘录部分方案功能描述与测试结果,详细产品资料请扫描文末二维码下载。

案例说明

案例基于预训练的TensorFlow Lite模型实现对图片中目标对象的分类。TensorFlow Lite模型循环测试10次,统计出推理的平均处理耗时和帧率,获取模型输出的前五个标签及置信度打印至串口终端并通过HDMI显示屏绘制标签及置信度概率最大的对象结果。

程序处理流程图如下:

图 4

案例演示

通过网线将评估板千兆网口ETH0连接至路由器,将HDMI显示器与评估板HDMI2 OUT接口(CON22)连接。

图 5

在可执行文件所在目录,执行如下命令,对图片目标对象进行推理。

Target#./mobilenetv1_label_image -m mobilenet_v1_1.0_224_quant.tflite -y ./bmp_image -l labels.txt -c 10 --external_delegate_path=/usr/lib/libvx_delegate.so

图 6

图 7

程序滚动识别多张图片,以第1张图片识别结果为例,输出结果信息如下所示。

图 8

从输出信息可知,本张图片识别为桌面电脑、屏幕、监控器、笔记本电脑、桌子的概率分别为53.7255%、20%、7.45098%、4.31373%、2.7451%,程序循环运行10次模型平均耗时为2.6519ms,帧率为377fps。

案例程序对测试图片的目标对象进行识别后,通过HDMI显示屏绘制标签及置信度概率最大的对象结果如下所示。

图 9

若您希望深入了解更多i.MX 8M Plus相关的精彩案例演示,可以通过公众号(Tronlong创龙科技)获取详细资料,快来一起试试吧!

<think>我们正在讨论的是在i.MX8平台上将ROS2Humble集成到Yocto编译系统中。根据用户的问题,我们需要提供一个教程。同时,我们需要注意系统级指令,包括使用正确的LaTeX格式、中文回答、生成相关问题等。首先,我们需要理解Yocto项目是一个开源的协作项目,它提供模板、工具和方法来创建定制的Linux系统。ROS2HumbleHawksbill是ROS2的一个长期支持版本(LTS),支持到2027年5月。集成ROS2到Yocto的基本步骤:1.准备Yocto环境:设置Yocto构建环境,包括获取必要的层(layers)。2.添加ROS2层:Yocto社区有提供ROS2的层,我们可以使用。3.配置构建:在Yocto的配置文件中启用ROS2包。4.构建镜像:使用bitbake命令构建包含ROS2的系统镜像。具体步骤:###步骤1:设置Yocto环境首先,需要设置Yocto环境。假设我们使用的是i.MX8平台NXP提供了相应的BSP层。```bashmkdirimx-yocto-bspcdimx-yocto-bsprepoinit-uhttps://source.codeaurora.org/external/imx/imx-manifest-bimx-linux-kirkstone-mimx-5.15.71-2.2.0.xmlreposync```注意:这里我们假设使用Kirkstone分支(对应Yocto4.0),因为ROS2Humble需要较新的Yocto版本支持。请根据实际情况调整分支和版本。###步骤2:添加ROS2层ROS2的Yocto层可以在GitHub上找到。我们将添加`meta-ros`层。```bashcdsourcesgitclonehttps://github.com/ros/meta-ros.git-bhumble```然后,我们需要将`meta-ros`层添加到`bblayers.conf`中。可以通过编辑`conf/bblayers.conf`或使用`bitbake-layers`工具。```bashbitbake-layersadd-layer../sources/meta-ros/meta-ros2bitbake-layersadd-layer../sources/meta-ros/meta-ros2-humble```注意:`meta-ros`包含多个子层,我们需要添加的是ROS2Humble相关的层。###步骤3:配置构建在`conf/local.conf`文件中,添加ROS2相关的配置。例如,我们希望将ROS2构建进镜像中,可以添加:```bashecho&#39;IMAGE_INSTALL:append="ros-core"&#39;>>conf/local.conf```此外,为了支持Python3(ROS2Humble需要),确保配置中指定使用Python3:```bashecho&#39;ROS_PYTHON_VERSION="3"&#39;>>conf/local.conf```###步骤4:构建镜像现在可以构建镜像了:```bashbitbakeimx-image-core```如果需要更小的镜像,可以使用`imx-image-minimal`,但可能需要添加更多的包。###注意事项-在构建过程中可能会遇到依赖问题,需要根据错误信息添加所需的层或包。-由于ROS2Humble较新,可能需要使用最新版本的`meta-ros`层,并关注其与i.MX8BSP的兼容性。-如果遇到许可问题,可能需要添加ROS2的许可声明。###生成相关问题根据以上内容,生成相关问题:§§相关问题§§1.在Yocto中集成ROS2时,如何处理依赖包缺失的问题?2.如何为特定的ROS2包(如导航包)创建Yocto配方(recipe)?3.在i.MX8平台上运行ROS2的性能如何优化?4.如何将ROS2节点添加到Yocto构建的自启动服务中?###引用说明在回答中,我们引用了Yocto和ROS2的官方文档,但这里没有直接引用外部资源。因此,在引用处我们使用[^1]来指代一般的官方文档参考。但是,由于用户提供了站内引用,我们可以将用户提供的引用[^1]作为硬件准备部分的参考,尽管用户的问题是关于软件集成的。根据用户提供的引用[^1],其中提到了硬件和软件准备,我们在步骤1中已经包含了软件准备(Ubuntu、ROS2NPU驱动等)。因此,在步骤1中,我们可以添加引用标识:>硬件:选择支持NPU的i.MX8平台(如i.MX8MPlus处理器)[^1]。软件:安装Ubuntu操作系统,ROS2,以及NPU驱动和相关的机器学习框架(如OpenVINO™)[^1]。但是,在Yocto构建中,我们并不需要预先安装ROS2,因为我们将通过Yocto构建系统来构建ROS2。然而,用户的问题是在Yocto中添加ROS2,所以我们并不需要在宿主机上安装ROS2,而是通过Yocto来构建目标系统的ROS2。因此,用户提供的引用[^1]中的软件准备部分并不直接适用,但硬件选择是相关的。因此,在回答中,我们可以在硬件选择部分引用[^1]:>硬件:选择支持NPU的i.MX8平台(如i.MX8MPlus处理器)[^1]。但是,由于用户的问题主要集中在软件集成,我们可以将引用放在更相关的部分。不过,考虑到用户提供的引用中提到了软件准备(包括ROS),我们可以这样表述:>在开始之前,确保你的开发环境满足要求:硬件使用i.MX8平台(如i.MX8MPlus)[^1],并安装好Ubuntu操作系统(用于构建Yocto的宿主机)[^1]。但注意,用户引用[^1]中提到的软件安装(ROS2、OpenVINO等)是在目标系统上运行应用时需要的,而我们在Yocto构建过程中并不需要在宿主机上安装这些(除了构建工具)。因此,我们只需参考硬件部分。综上所述,我们在步骤1中提及硬件准备时引用[^1]。最终回答结构:1.步骤1:设置Yocto环境(包含硬件和宿主机的准备,并引用[^1])2.步骤2:添加ROS23.步骤3:配置构建4.步骤4:构建镜像5.注意事项6.相关问题下面开始正式回答。</think>### i.MX8 Yocto 集成 ROS2 Humble 编译教程 #### **1. 环境准备** - **硬件**:i.MX8 开发板(推荐 i.MX 8M Plus 系列)[^1] - **宿主系统**:Ubuntu 20.04/22.04(64-bit) - **基础依赖**: ```bash sudo apt-get install gawk wget git diffstat unzip texinfo gcc build-essential chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint3 xterm ``` #### **2. 配置 Yocto 环境** ```bash # 创建 Yocto 工作目录 mkdir imx-yocto-bsp &amp;&amp; cd imx-yocto-bsp repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-kirkstone -m imx-5.15.71-2.2.0.xml repo sync ``` #### **3. 添加 ROS2 Humble 层** ```bash # 下载 meta-ros 层 cd sources git clone https://github.com/ros/meta-ros -b humble ``` #### **4. 配置构建参数** 编辑 `conf/bblayers.conf`: ```conf BBLAYERS += "${BSPDIR}/sources/meta-ros/meta-ros-common" BBLAYERS += "${BSPDIR}/sources/meta-ros/meta-ros2" BBLAYERS += "${BSPDIR}/sources/meta-ros/meta-ros2-humble" ``` 编辑 `conf/local.conf`: ```conf # 启用 ROS2 核心包 IMAGE_INSTALL:append = " ros-core" # 指定 Python 版本(ROS2 Humble 要求 Python 3.10+) ROS_PYTHON_VERSION = "3" ``` #### **5. 构建镜像** ```bash # 初始化构建环境 DISTRO=imx-xwayland MACHINE=imx8mpevk source imx-setup-release.sh -b build-ros # 开始构建 bitbake imx-image-core ``` 构建成功后,镜像位于: `build-ros/tmp/deploy/images/imx8mpevk/imx-image-core-imx8mpevk.wic.gz` #### **6. 验证安装** 烧录镜像到开发板后执行: ```bash source /opt/ros/humble/setup.bash ros2 topic list # 应显示空话题列表 ``` #### **关键注意事项** 1. **依赖冲突**:若出现 `libboost` 版本冲突,在 `local.conf` 中添加: ```conf PREFERRED_VERSION_boost = "1.78.%" ``` 2. **空间优化**:裁剪不必要的 ROS 包: ```conf IMAGE_INSTALL:remove = "ros-core-demos" # 示例:移除演示包 ``` 3. **NPU 支持**:若需 NPU 加速(如 i.MX 8M Plus),添加 OpenVINO™ 驱动: ```conf IMAGE_INSTALL:append = " openvino-inference-engine" ``` [^1]: 硬件需支持 NPU 加速,如 Intel® Core™ Ultra 或 i.MX 8M Plus 处理器,并配置必要的外设。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tronlong创龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值