《基于 eIQ NPU 实现机器学习》
一、板卡介绍
FRDM-MCXN947是一款紧凑且可扩展的开发板,可让您快速基于MCX N94x MCU开展原型设计。板卡上集成行业标准的接口,可轻松使用MCU的I/O、集成的开放标准串行接口、外部闪存和板载MCU-Link调试器。
本项目主要使用这款板卡的 eIQ NPU(Edge Intelligence Neural Processing Unit)给机器学习的达成带来了崭新的契机与考验。通过947单片机丰富的接口外设和NXP丰富的开发套件进行程序设计。
二、eIQ NPU 是什么
eIQ NPU 乃是专为边缘计算打造的神经处理单元,具备高效的运算能力以及低能耗的特性。相较传统的 CPU 和 GPU,eIQ NPU 能够更为迅速地处置大量的神经网络运算,为机器学习在终端设备上的即时应用给予了强有力的支撑。
比如,在智能手机领域,eIQ NPU 能够达成实时的图像辨别和语音处置,让用户得以畅享更为智能和便捷的服务。
eIQ NPU 在机器学习里的优势
1. 高效能表现
eIQ NPU 运用了专属的硬件架构,能够显著提升神经网络的计算速率。这意味着能够在更短促的时间内完成繁杂的机器学习任务,像是训练大型模型或者进行实时预测。
2. 低能耗特性
对于边缘设备而言,能耗是一项极为关键的要素。eIQ NPU 在保障高性能的同时,能够切实降低能耗,延长设备的电池使用时长。
3. 灵活性特质
它支持多种神经网络架构与算法,促使开发者能够依照具体的应用需求拣选最为适宜的模型。
eIQ NPU 实现机器学习的应用范畴
1. 智能安防领域
于监控摄像头中运用 eIQ NPU,能够实时剖析视频画面,辨别异常举动和潜在的安全隐患。
例如,能够迅速侦测到闯入禁区的人员或者车辆,并即刻发出警报。
2. 智能家居层面
通过与各类智能家电融合,eIQ NPU 能够实现对家居环境的智能感知与调控。
譬如,依据家庭成员的习惯自动调节灯光的亮度以及温度。
3. 工业自动化方面
在工厂生产线上,借助 eIQ NPU 展开质量检测和故障预测,提升生产效率与产品质量。
实现进程中的挑战与应对之策
1. 模型优化难题
鉴于 eIQ NPU 的硬件特性,需要对机器学习模型进行优化,以充分展露其性能。这涵盖压缩模型规模、降低计算量等等。
应对之法可以是采用量化技术、剪枝算法等等。
2. 数据管理困境
大量的数据对于训练高品质的机器学习模型极为重要,但在边缘设备上存储和处理大量数据存在难题。
能够通过数据预处理、数据压缩以及云边协同等途径来化解。
3. 开发工具与生态问题
当下,eIQ NPU 的开发工具和生态仍在持续完善之中,开发者或许会遭遇一些技术支持和资源短缺的状况。相关厂商和社区正在竭力提供更多的开发文档、示例代码以及技术支持,以推动 eIQ NPU 的广泛运用。
三、代码介绍
环境搭建
项目使用MCUXpresso IDE v11.10.0_3148进行开发,在NXP官网中,下载安装MCUXpresso IDE ,运行后需要对SDK进行下载,在MCUXpresso SDK | Software Development for Kinetis, LPC, and i.MX MCUs | NXP Semiconductors下载SDK后进行安装,实现环境搭建
模型训练
使用eIQ Portal工具进行训练,训练分为,数据集采集,数据清洗,模型训练,模型量化,模型部署等步骤
数据采集
本项目使用的模型均来自 images.cv 网站,里面具有大量不同类型的数据集可以获取使用
数据清洗
获取数据集后,由于数据集中存在一些干扰项,包括不清晰的图像和错误数据等,需要对其进行手动处理,去除干扰项进行训练。
模型训练
在eIQ Portal工具中,创建工程,并导入数据集
选择训练模型,这里选择针对嵌入式设备优化的mobilenet_v1模型
进入训练界面,将输入尺寸调成(128,128,3)点击开始训练即可,右侧会显示训练过程中,loss函数和metric函数信息,根据需要选择是否需要继续训练
训练完成后,点击VALIDATE对模型进行检验
确认无误,即可进行部署,按照如下配置,导出模型
对导出的模型进行转换,即可部署在单片机中
模型部署
模型部署程序基于Application Code Hub中的frdmmcxn947_cifar10_label_camera_image修改
下载工程后,在labels.h文件中,加入识别的标签,在model_data.h中修改模型文件的名称和位置
点击build进行编译
然后使用GUI Flash Tool将程序下载到单片机
运行结果
对本活动的心得体会
熟悉了eIQ工具链的使用,对单片机部署深度学习模型有了心的认识