
一、项目介绍MounRiver Studio 2MRS2内置 TFLite Micro 边缘 AI 推理框架支持TFLite 模型一键导入、可视化模型结构解析、模型文件转嵌入式源码、算子自动匹配与初始化并可实现嵌入式 AI 工程一键搭建及模型数据自动挂载。同时MRS2 配套专用优化算子库支持AI模型在MCU平台上的开发与部署实现从模型分析、工程搭建、编译、调试到下载运行的全流程开发。本案例主要包含以下开发流程AI 图像分类模型训练TFLite 模型生成与量化MRS2 AI 工程创建模型导入与 TFLite Micro 部署MCU 端 AI 推理调用云端大模型接口连接识别结果与营养信息显示。最终实现效果MCU 本地完成水果图像识别云端大模型提供水果营养数据分析设备端实时显示识别结果和营养信息。二、准备水果识别模型在进行MCU部署前需要准备适用于嵌入式运行的水果识别模型。本项目基于 TensorFlow/Keras 完成模型训练与量化。针对 MCU 资源有限的特点模型采用轻量化网络结构并加入非水果拒识功能。实际应用中当摄像头采集到桌面、手掌等非水果目标时模型可以避免强制分类提高识别可靠性。最终模型设计为“水果分类 非水果检测”的双输出结构并转换为 INT8 量化 TFLite 模型通过MRS2部署到 CH32V407 MCU 平台运行。2.1 数据准备与训练数据集包含苹果、香蕉、菠萝三类水果的 64×64 的 RGB888 图像每类共 700 张其中 560 张用于模型训练140 张用于模型验证。非水果图像涵盖室内桌面、墙壁、手掌、键盘等常见背景场景共计为700张按 8:1:1 比例划分为训练集、验证集和测试集。2.2 输入处理与数据增强训练过程中采用随机翻转、缩放、对比度调整等数据增强方式扩充样本分布提高模型对不同拍摄角度、光照条件以及背景变化的适应能力。考虑到实际嵌入式设备通常使用低成本摄像头采集图像而MCU摄像头常输出RGB565格式数据为减少训练数据与端侧输入之间的分布差异训练阶段以 95% 概率对输入图像进行RGB565量化模拟将RGB888图像压缩至RGB565色彩精度后再还原使模型提前适应实际运行环境提高部署后的识别稳定性class RandomRgb565(layers.Layer): def __init__(self, prob0.95, **kwargs): super().__init__(**kwargs) self.prob prob def call(self, x, trainingNone): if training is False: return x return tf.cond( tf.random.uniform([]) self.prob, lambda: simulate_rgb565_tensor(x), lambda: x ) class LightColorJitter(layers.Layer): def __init__(self, brightness0.07, saturation0.10, **kwargs): super().__init__(**kwargs) self.brightness brightness self.saturation saturation def call(self, x, trainingNone): if training is False: return x x tf.clip_by_value(x, 0.0, 255.0) / 255.0 x tf.image.random_brightness(x, max_deltaself.brightness) x tf.image.random_saturation( x, lower1.0 - self.saturation, upper1.0 self.saturation ) x tf.clip_by_value(x, 0.0, 1.0) return x * 255.02.3 模型结构设计本项目采用轻量化卷积神经网络结构以满足 MCU 平台运行需求。模型输入为 64×64×3 RGB 图像通过 Conv2D 卷积层和深度可分离卷积模块提取水果特征在降低参数量和计算量的同时提升嵌入式运行效率。模型采用双输出结构其中水果检测分支通过Sigmoid判断当前目标是否为水果实现非水果拒识水果分类分支通过 Softmax 输出具体水果类别如苹果、香蕉和菠萝。系统运行时先进行水果检测再进行类别识别从而降低背景物体误识别提高实际应用稳定性。2.4 模型量化与部署格式完成训练后将模型转换为INT8量化TFLite 模型。生成的TFLite模型可以直接导入MRS2通过TFLite Micro 框架部署到MCU工程中运行。三、MRS2 AI工程创建与模型部署第一步打开MRS2开发环境创建对应MCU工程。第二步导入训练好的INT8的TFLite 模型。导入过程中MRS2 会自动完成模型文件解析、模型格式检测、输入输出节点识别、Tensor 信息读取、全整型模型判断以及算子库的导入。同时MRS2 内置 Netron 模型分析功能可直接查看网络结构、节点连接关系以及 Tensor 参数信息方便快速了解模型结构。第三步导入模型后MRS2会新建一个包含此模型和推理框架的CH32V407应用工程用户可以直接进行编译无需进行多余的配置。其中Model_date文件夹为模型转换后的代码TFLM文件夹为TFLite Micro推理框架代码。当后续需要替换模型时只需点击 Export Model as Source File将导出的模型源文件直接替换 model_data 文件夹即可。第四步TFLite Micro推理框架配置在MCU运行TFLite Micro模型时需要提前配置推理所需内存内存大小需要根据实际模型推理情况进行调整并注册模型运行所需算子。MRS2 导入模型后会自动分析网络结构识别模型中使用的算子并完成对应初始化配置用户可直接基于生成的运行环境进行应用代码开发。四、MCU端AI识别与云端大模型营养分析完成模型部署后设备通过 OV5640 摄像头采集水果图像并经过预处理后输入本地 AI 模型进行推理。模型同时输出水果检测结果和类别信息通过置信度判断、类别过滤以及多帧投票机制提高识别稳定性降低误识别。整体识别流程如下确认水果类别后MCU 通过 MQTT 将结果发送至云端大模型服务由大模型进一步解析水果营养信息包括热量、维生素含量等数据并返回设备端显示。