本篇博客文章介绍了物联网结合机器学习(ML)的应用场景,以及如何基于Silicon Labs(亦称“芯科科技”)的无线SoC平台展开机器学习的开发。
为什么需要物联网芯片制造商来实现机器学习应用?
对于芯片制造商来说,在设备网络的边缘而不是在接入点或云端中执行机器学习是非常重要的,因为这样可以在延迟等方面具有显著优势。对边缘数据的处理和相应的操作也会带来更好的系统性能。例如,启用设备的上下文感知功能可以降低带宽需求和功耗。由于不需要将原始传感器数据发送到云端,因此需要更少的带宽,并且无需使用云服务器来分析数据,从而节省了能耗。最终,隐私和安全性也可以通过机器学习来改善,例如,一个人的面部图像不需要被发送到云端,身份识别可以在本地就完成。
创建优化的无线平台,可以在有限的内存中运行ML
将机器学习集成到边缘设备一直是物联网领域备受期待的发展之一。作为物联网无线SoC制造商,Silicon Labs通过一种能够整合到嵌入式应用程序中的形式向开发人员提供了相关解决方案。
Silicon Labs已经在Wireless Gecko第一代和第二代无线SoC平台中提供机器学习应用开发的支持,包括最新发布的带有内置AI/ML硬件加速器的BG24和MG24系列产品。这是一个通过软件启用的协同处理器,我们的两个合作伙伴SensiML和Edge Impulse已经更新了他们的平台,以便在为BG24或MG24开发代码时自动使用硬件加速器。确切地说是选择TensorFlow内核由该协处理器加速,以减轻MCU的负担并允许它执行其他任务,如无线通信。任何将TensorFlow Lite用于微控制器(TensorFlow Lite for Microcontrollers, TFLM)的开发者或第三方都将能够自动利用硬件加速器的优势。
关于机器学习解决方案,开发者需要了解什么?
尽管可以完全围绕机器学习构建应用程序,但我们相信大多数人都会使用机器学习为嵌入式无线产品添加新的差异化功能。我们将这种方法称为“机器学习作为一种功能(Machine Learning as a Feature)”。开发一个将机器学习作为功能集成的应用程序需要两个不同的工作流程:
用于创建无线应用程序的嵌入式应用程序开发工作(使用Simplicity Studio或你喜欢的IDE)。
机器学习工作流用于创建可添加到嵌入式应用程序的机器学习功能。
当将机器学习作为一种功能的设备最终部署到现场时,应用程序将从相关传感器(例如麦克风)获取输入,并在一个称为推断的过程中对其进行分析。推理是通过机器学习模型运行实时数据点来预测分类的过程。通常还需要对模型输出进行额外的后处理(例如,阈值化和平均化)。
机器学习入门—根据所需功能选择合适工具
虽然Silicon Labs提供的平台可帮助您将机器学习纳入嵌入式应用中,但我们不提供实际的机器学习模型。因此,我们已经与许多模型工具和解决方案提供商合作,并进一步提供了可根据您的需求选择最佳工具的不同方法之文档。嵌入式开发人员选用最适合的工具取决于两个方面:机器学习技能的水平(见下图)和正在开发的用例。在文档页面的底部,您可以找到一些基于用例的示例和教程的链接。
亲自动手体验支持AI/ML的开发套件
我们的EFR32xG24和Thunderboard Sense开发工具包非常适合轻松地试用各种机器学习示例应用程序。上述所有软件都可以在任一开发工具包上运行。
学习合作伙伴的更多开发技巧
SensiML现有的AI工具利用了最新的AI/ML硬件加速功能,呈现在我们新的BG24和MG24 SoC中。SensiML的分析工具包带有内置autoML软件,使OEM快速创建功率优化的智能传感应用程序而无需数据科学专业知识,对MG24和BG24 SoC系列进行了补充。
Edge Impulse和Silicon Labs正在为构建人工智能感知产品的公司提供强大的嵌入式机器学习平台。有了新的MG24和BG24 SoC,嵌入式开发人员可以使用Edge Impulse的解决方案来设计自动化的数据标签、预先构建的数字信号处理和机器学习功能区块、实时分类测试和数字孪生(digital twins),这些比以往任何时候都更简单、更情境化且更易于开发。