亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Equipment >> 工业机器人

在i.MX RT1060 MCU上部署手写数字识别:基于TensorFlow Lite

本指南演示如何在i.MX RT1060跨界MCU上实现手写数字识别,利用TensorFlow Lite模型和触控GUI。

i.MX RT1060搭载Arm® Cortex®-M7内核,擅长成本效益工业方案和需要丰富显示界面的高性能消费设备。本教程构建嵌入式机器学习应用,使用流行MNIST eIQ示例检测分类用户手绘数字。

MNIST数据集与模型概览

使用标准MNIST数据集:60,000训练和10,000测试图像,居中灰度手写数字,每张28×28像素。数据源自美国高中生和人口普查局员工,反映北美书写风格。卷积神经网络(CNN)在该数据集表现优异,即使适度架构也能达高准确率,使TensorFlow Lite成为嵌入式硬件部署理想选择。

在i.MX RT1060 MCU上部署手写数字识别:基于TensorFlow Lite

图1. MNIST数据集示例

TensorFlow官方GitHub提供基于Keras、tf.data、tf.estimator的Python MNIST模型实现。CNN在测试集达优异性能,作为转换参考。

在i.MX RT1060 MCU上部署手写数字识别:基于TensorFlow Lite

图2. 模型架构可视化

下方为对应可视化的原始模型定义。

在i.MX RT1060 MCU上部署手写数字识别:基于TensorFlow Lite

图3. TensorFlow模型定义

什么是TensorFlow Lite及此处如何使用?

TensorFlow是Google维护的广泛采用开源深度学习框架。为将TensorFlow推理带至资源受限设备,Google推出TensorFlow Lite,支持TensorFlow操作子集的轻量级运行时。TensorFlow Lite模型不可在设备上进一步训练,但可通过量化、剪枝等训练后技术优化,减小体积、提升推理速度。

模型转换为TensorFlow Lite

先用TensorFlow 1.13.2训练模型确保转换工具兼容。用以下命令转为.tflite格式:

tflite_convert --saved_model_dir= --output_file=converted_model.tflite --input_shape=1,28,28 --input_array=Placeholder --output_array=Softmax --inference_type=FLOAT --input_data_type=FLOAT --post_training_quantize --target_ops TFLITE_BUILTINS

转换后用xxd将二进制模型嵌入应用:

xxd -i converted_model.tflite > converted_model.h

xxd生成含模型字节数组的C/C++头文件,使eIQ项目编译时直接加载。详细说明见eIQ用户指南和TensorFlow Lite官方文档。

Embedded Wizard Studio快速入门

为利用MIMXRT1060-EVK图形能力,引入Embedded Wizard Studio构建触控GUI。IDE从NXP SDK生成MCUXpresso和IAR项目,开发者可即时硬件测试界面。评估版限制GUI复杂度并加水印,正式授权解锁无限功能。

生成GUI代码为C而eIQ示例为C/C++,故用以下包装所有包含头文件:

#ifdef __cplusplus extern "C" { #endif /* C代码 */ #ifdef __cplusplus } #endif

同时将源码和头文件迁移至SDK中间件文件夹并调整包含路径。合并器件特定配置文件确保顺利构建。

完成功能与特性

GUI提供触控绘图输入区和显示分类结果输出区。两按钮允许运行推理或清空画布。推理后应用向标准输出打印预测数字和置信度供调试。

在i.MX RT1060 MCU上部署手写数字识别:基于TensorFlow Lite

图4. 带输入、输出、控制按钮的应用GUI

TensorFlow Lite模型准确率

CNN在纸质MNIST样本达高准确率,但触摸屏手绘数字差异显著。此差异凸显用匹配目标输入模态的生产级数据训练的重要性。为提升性能,用触摸屏采集新数据集并应用迁移学习,详见NXP社区演示。

实现细节

Embedded Wizard用槽响应用户交互。绘图槽捕获触摸移动,主色渲染1像素线。清空槽重置输入输出字段为背景色。触发运行推理槽时,获取位图数据、缩放至28×28、送入TensorFlow Lite解释器。

输入画布112×112,预处理如下:

图5展示预处理后中间数组。

在i.MX RT1060 MCU上部署手写数字识别:基于TensorFlow Lite

图5. 预处理后待推理输入数组

TensorFlow Lite解释器启动时初始化一次。每次推理请求,将预处理输入张量逐像素复制入解释器输入缓冲。内存占用和运行时特性详见NXP应用笔记。

TensorFlow Lite:可行方案

嵌入式设备部署手写数字识别面临算力受限、输入模态多变挑战。TensorFlow Lite通过轻量运行时和丰富优化工具生态缓解这些问题。i.MX RT1060 M7内核配合SDK中间件,使数字键盘电子锁等复杂用例落地可行。

基于真实生产数据训练模型——手指触摸屏绘制数字——对保持高准确率至关重要。此外,设计数据集时应考虑地区书写差异。

i.MX RT跨界MCU系列提供性能与成本平衡,适配广泛嵌入式应用。详情访问i.MX RT产品页。

行业文章允许行业合作伙伴以编辑内容不适合的方式,向All About Circuits读者分享有用新闻、信息和技术。所有行业文章均遵循严格编辑准则,旨在为读者提供有用新闻、技术专长或故事。行业文章观点为合作伙伴所有,不代表All About Circuits或其作者立场。


工业机器人

  1. 树莓派手写数字识别:TensorFlow 与 OpenCV 实战部署
  2. 通过 OPC UA 客户端调用 PLC 功能块:实用指南
  3. 自主机器人削减浪费与能源成本
  4. 使用TensorFlow构建变分自编码器:实战指南
  5. 激光测距传感器助力机器人传输系统升级改造
  6. 使用协作机器人自动化CNC机床上下料:提升效率与精度
  7. 安川 Motoman 机器人编程入门:提升速度与精度的实战指南
  8. 新手指南:在树莓派上搭建RoboDK
  9. 掌握NXP i.MX RT500跨界MCU电源管理
  10. 利用 NXP i.MX RT500 实现 DSP 赋能的智能设备:多线程、XOS 与 Cadence Fusion F1 音频 DSP
  11. 专业指南:环氧树脂用于艺术品保存
  12. Java 接口详解:定义、实现与实战示例