STM32Cube.AI是业界最先进的工具包,能够与流行的深度学习库互操作,以转换任何用于 STM32 微控制器的人工神经网络( MCU)运行优化推理。该软件套件包括 X-Cube 扩展软件X-CUBE-AI 、为我们的SensorTile 开发套件 (STEVAL-STLKT01V1)提供应用示例的功能包FP-AI-SENSING1,以及对我们的ST BLE 传感器的更新为功能包的演示提供 GUI 和控件的 iOS 和 Android 应用程序。仅发布这些解决方案已经是一个开创性的公告,因为目前没有任何工具可以与此功能集相媲美。然而,STM32Cube.AI 不仅仅是一个简单的工具包,而是反映了我们希望通过将神经网络带给所有 STM32 开发人员来改变物联网格局的愿望。
倾向于专门研究使用我们 STM32 MCU 的嵌入式系统类型的人可能不熟悉神经网络的最新进展。同样,使用几乎无限的云资源进行机器学习的数据科学家可能对嵌入式平台的内存和计算限制不熟悉。因此,STM32Cube.AI 通过揭开人工智能和嵌入式系统的神秘面纱弥合了差距。我们展示了专家和工具随时可用,并且很容易利用边缘计算的日益普及在我们的平台上运行推理。换句话说,STM32Cube.AI 证明了嵌入式系统上的神经网络已经存在。
STM32Cube.AI 将数据科学带给嵌入式系统专家
STM32Cube.AI 套件的基础部分是 X-CUBE-AI,它用作 STM32CubeMX 代码生成器的扩展包。不熟悉我们生态系统的人会喜欢我们的分步指南,该指南解释了如何使用它来配置微控制器的引脚和时钟树等,并生成将启动他们的应用程序的头文件。X-CUBE-AI显着扩展了 STM32CubeMX 的功能集,使其能够导入由当今一些最流行的库(例如 Keras、TensorFlow、Caffe、Lasagne 或 ConvnetJS)训练的人工神经网络。通过 X-CUBE-AI,STM32CubeMX 将在 STM32 MCU 上映射神经网络并优化生成的库例如,折叠它的一些层并减少它的内存占用。然后代码生成器将生成一个开发人员可以在应用程序中使用的库。
如果专业人士甚至爱好者想要快速开始试验我们的 STM32Cube.AI 计划,他们可以使用功能包 FP-AI-SENSING1,其中包括两个充分利用我们的 SensorTile 开发套件的应用示例。其中之一使用车载麦克风捕获音频、预处理信号,然后使用推理来确定声音是来自室内、室外还是来自车辆内部。
类似地,另一个示例程序跟踪运动以确定用户是静止的、步行的、跑步的、骑自行车的还是开车的。我们已经编译了二进制文件,因此用户只需将文件拖放到他们的系统上即可开始使用这些应用程序以加载演示。我们还提供硬件抽象层、驱动程序和源代码等,因此开发人员可以从我们的实现中学习并开始编写他们的测试软件。
区分神经网络和决策树
X-CUBE-AI 和 FP-AI-SENSING1 都可以提供神经网络,这要归功于对物联网平台上深度学习系统实施的多年研究。然而,今天的公告具有高度的象征意义,因为 STM32Cube.AI 将所有这些论文和发现结合在一个解决方案中,通过允许将大量拓扑转换到我们的平台上以用于许多不同的应用,扩大了以前可能的范围。
虽然新工具实现了人工神经网络,但我们想要区分这样一个事实,即我们还通过使用决策树为资源稀缺的运动传感器带来机器学习能力。从最广泛的意义上说,机器学习使用数学模型来处理数据并估计最佳结果或决策。决策树是机器学习中的分类器模型,它反复将特征空间解析为一系列路径(分支)并贯穿它们,直到系统到达一个端点(叶子),它代表一个类或决策。2019 年,我们的惯性传感器 LSM6DSOX 将使用决策树来提供机器学习功能因为这是提供新的低功耗特性的好方法,无需微控制器的帮助即可处理来自一个或两个传感元件的数据。
与决策树相反,神经网络不是使用 if-then-else 语句解析特征空间的算法,而是连接单元(神经元)的框架,这些单元(神经元)在系统通过示例学习时获得不同的权重。然后应用程序可以使用生成的模型来推断和估计最合适的响应。神经网络中的决策过程并不那么明显,在某些用例中,它可能需要比决策树更多的资源,但它可以处理更大的数据流,以便在更广泛的领域提供更准确的结果应用程序。
STM32Cube.AI 为数据科学家带来嵌入式系统
依赖于神经网络的应用程序的性能和准确性来自对必须收集的数据类型和质量的正确分析,并与适当网络拓扑的选择紧密结合。当我们谈论深度嵌入式解决方案时,情况更是如此。因此,我们确保我们的合作伙伴计划将包括能够在此过程中提供必要专业知识来指导我们的客户的公司。
我们计划的一些成员掌握了特定的研究领域,例如Lenord+Bauer专注于运动传感器,并展示了我们的平台和人工智能如何导致火车轨道的预测性维护。其他公司,如SIANA Systems,为医疗、工业、家庭自动化和可穿戴应用提供更丰富的经验。无论如何,这些合作伙伴将使 STM32 开发人员能够摆脱我们应用示例的限制,并将神经网络模型训练到与新商业产品兼容的水平。
STM32Cube.AI 为拓扑专家带来嵌入式系统
我们的合作伙伴还将协助公司选择正确的拓扑结构。拓扑是网络神经元之间互连的表示,它显示了它们如何与输入交互、相互影响以及获得一个或多个输出。最简单的拓扑(多层感知器)添加多个输入并提供具有全方位连接的输出,而当今更常见的拓扑(例如卷积神经网络)使用一系列输入互连到一组异构过滤提供越来越可能的输出的神经元。今天,数据科学家继续改进和优化这些拓扑,但基本原理保持不变。
例如,音频应用程序传统上使用门控循环单元 (GRU),它依赖于具有能够回忆先前信息的记忆的神经元。然而,今天,专家们倾向于更喜欢长期/短期记忆拓扑 (LSTM),这种拓扑在利用长期时间信息方面更强大,但代价是更多的内存和计算。
STM32Cube.AI:2019 年会发生什么?
STM32Cube.AI 工具箱的美妙之处在于它使开发人员能够立即开始使用神经网络,即使他们不是数据挖掘和拓扑方面的专家。此外,这些解决方案帮助他们提高生产力,因为他们不再需要编写耗时的库,因为 STM32CubeMX 只是生成它们。事实上,Function Pack 使用应用示例帮助工程师和爱好者在几分钟内试验我们的解决方案,我们将在 2019 年第一季度将这些应用示例提供给更多客户,因为我们带来了 FP-AI 的演示-SENSING1 到B-L475E-IOT01A 发现物联网节点。因此,我们的计划将继续接收更新,以使其更易于使用并可供更多开发人员使用。
我们还将确保 STM32CubeMX 可以在更多 MCU 上转换预训练的人工神经网络。代码生成器包括一个选择工具,可以分析网络的复杂性,以推荐具有适当计算吞吐量和内存量的 STM32。今天,X-CUBE-AI 只能将网络转换为具有浮点单元的微控制器,这意味着它需要一个至少具有 Cortex M4 的模型。然而,我们正在努力更新我们的工具以支持定点实现,这最终将把神经网络带入甚至更低功耗的系统或加速我们更强大的微控制器的推理。同样,我们将逐步添加对其他 AI 框架的支持,使 STM32Cube.AI 工具包更加全面。