【ATU Book-i.MX8 系列 - eIQ】eIQ介绍

一.   概述

随著深度学习越来越火热,近年恩智浦 NXP 也开始着手部属相关的应用 ; 就如人脸识别、物件识别、物件分类、肢体分析等等...故规划出一套相当完善的 机器学习开发环境 eIQ/PyeIQ/eIQ Auto 并应用于专门为 i.MX8 系列。这能够帮助使用者快速开发与应用机器学习,轻松入门机器学习的领域 !!

此文章将以系列博文的方式呈现 PyeIQ 的介绍。如下图文章架构图所示,此 机器学习开发环境 eIQ 是隶属 eIQ(edge intelligence) 机器学习开发环境 - 应用层 的子系列 !!此篇文章将逐一介绍 ; 什么是 什么是 eIQ ? PyeIQ ? 什么是 eIQ Auto ? 再来着重介绍此篇的主题 eIQ 的介绍 !

*** 此文章系列将以 NXP i.MX8M Plus 开发平台为主

机器学习快速上手方式,请参照 PyeIQ 实作 !!

大大通精彩方案  【ATU Book-i.MX8 系列 - PyeIQPyeIQ 2.0 安装与应用



eIQ 系列博文 - 文章架构示意图

 

二.  什么是 eIQ ? 什么是 PyeIQ ? 什么是 eIQ Auto? eIQ 种类介绍

eIQ (edge intelligence) 是 NXP 所开发的机器学习开发环境。因避免混淆,故在此厘清 eIQ / eIQ Auto / PyeIQ 各别的应用方向与说明。如图下所示,在 NXP i.MX8 系列的 eIQ 与 PyeIQ,以最简单的方式来区分的话,就仅是 C / C ++ 与 Python 的平台差异。虽然近年 Python 火热快速发展,有着大量丰富的代码资源,提供足够便利性,但从实际应用的角度仍是 C/C++ 较为适当快速,更能够有效控制应用资源,以达到程式最佳化的目的。故透过 NXP 所量身打造的 eIQ 机器学习开发环境,就能无缝衔接!

在 NXP S32V 系列的 eIQ 机器学习开发环境就称作 eIQ Auto !! 

大大通精彩方案    S32V 下的 eIQ auto 的安装使用简介分享


eIQ 各机器学习开发环境之示意图

 

在机器学习领域中,不外乎就是定义模型、训练模型、最佳化模型、转换模型、进行推理等流程步骤 !!而 eIQ 机器学习开发环境则是着重于 推理层(Inferenece) 的应用,这里将提供数种机器学习框架的推理引擎,如 Tensorflow Lite 、 ArmNN 、 ONNX 、OpenCV 等等 !! 能够给予使用者相当完善完整的环境,让应用无痛转移至 i.MX8 平台上 !!


eIQ 机器学习开发环境之定位示意图

 

三.  eIQ 介绍

eIQ 是 NXP 量身打造的机器学习开发环境(套件),主要语言是 C / C++
如下图所示,该套件里面整合 OpenCV 4.2、Tensorflow Lite 2.2.0 、 ArmNN 20.02.01、 ONNX Runtime 1.1.2 等开源推理引擎(Inference Engines),并提供相当丰富的硬体加速应用资源,像是 Arm Compute Libray、OpenCL、OpenVX ,可以直接向 CPU(Arm Cotex-A)、GPU(GC7000) 与 神经网路加速器 NPU(Vivante VIP8000) 沟通来达到硬体加速的目标 !


eIQ 机器学习开发环境架构示意图

 

此外,亦提供数个范例让开发者快速上手,如下图所示,含有 DNN 物件侦测(Object Classification)、物件分割(Object Segmentation)、YOLOv3、肢体识别(Bodys Detection) 等等应用; 单张运行测试i.MX8QM CPU 约 92.3 ms 、 i.MX8QM GPU 约 12.5 ms 、i.MX8MPlus NPU 约 2.5 ms !!


eIQ 机器学习开发环境 DEMO 示意图

 

 i.MX8 eIQ 套件安装方式 : 

仅需要在原有的 Yocto BSP 设置中,将 local.conf 档案添加以下段落 !! 则可开始重新编译专案与生成新的映像档(image),随后烧入至 SD 卡中即可。

(1) 找到conf 档案:

位于 : Yocto folder/buildxwayland/conf

(2) 重新设置 conf 档案:

请至 /buildxwayland/conf/local.conf 加入以下指令
$ IMAGE_INSTALL_append += "packagegroup-imx-ml"
$ PACKAGECONFIG_append_pn-opencv_mx8 += " test"

$ TOOLCHAIN_TARGET_TASK_append += "tensorflow-lite-staticdev tensorflow-lite-dev"
$ TOOLCHAIN_TARGET_TASK_append += "armnn-dev onnxruntime-dev"

(3) 再次进行 BSP 编译 :

支援 eIQ 所需的 Qt5 资源 (建议使用)
$ bitbake imx-image-full

补充说明 - eIQ 支援平台 :

 

 

四.  参考文件

[1] NXP Document - i.MX Machine Learning User's Guide
[2] NXP Document - i.MX Yocto Project User's Guide.pdf

如有任何相关 eIQ  技术问题,欢迎至博文底下留言提问 !!
接下来还会分享更多 eIQ  的技术文章 !!敬请期待 【ATU Book-i.MX8 系列 - eIQ】 !!

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论