嵌入式系统的机器学习在过去几年中获得了很大的发展势头。对于嵌入式开发人员而言,机器学习是数据科学 所关心的事情,也是云中存在的东西,远非嵌入式开发人员每天使用的资源受限的微控制器。
几乎在 夜之间,机器学习突然找到了通向微控制器和边缘设备的方法。对于 些开发人员来说,这看起来令人费解或至少是有趣的。但是为什么机器学习现在对嵌入式开发人员如此重要?让我们探讨几种可能性。
,机器学习可以帮助嵌入式设备解决传统上开发人员难以编码的问题。例如,假设我们想要编写 些代码,这些代码可以拍摄仅为28 x 28像素的图像,并检测在0到9范围内写入的数字。对于手动编码解决方案的开发人员来说,这是 个要解决的 其复杂的问题,因为写 个数字永远不会产生相同的图像。手写者可以在不同的地方开始,在角度上写入数字,或任何其他数量的变化。然而,机器学习将这个棘手的编码问题变成了 个微不足道的问题,根据所使用的编程语言,其解决方案可以用几百行或更少的代码编写。
接下来,机器学习可以帮助开发人员实现 个嵌入式系统,该系统执行人类易于执行的任务,但对于计算机而言传统上是困难且昂贵的。例如,对于人类来说,对象检测和识别对于语音识别来说是容易的,但对于计算机来说也是如此。使用机器学习,我们可以创建像我们熟悉的数字助理这样的系统来识别关键词以唤醒系统或检测装配线上或者流动站或无人机路径中感兴趣的物体。通过机器学习,这些障碍不仅易于克服; 它们可以通过使用微控制器的成本低于100美元的硬件来解决。
后,机器学习可以让开发人员轻松扩展系统在设备处理新环境或提供新数据时的行为方式。例如,在传统的嵌入式系统中,如果设备突然需要基于提供给它的输入的新行为,开发人员现在需要进入并修改代码以添加新行为。如果设备改为使用机器学习,则不 定需要更改任何系统代码。相反,机器学习模型推理可能只需要用额外的期望行为进行再训练。这比手动编码软件更新要容易得多。
机器学习提供了向嵌入式软件开发人员提供新工具和技术的机会,这些工具和技术有可能降低开发成本并减轻部分编程工作量。机器学习也开辟了新的潜在应用程序和功能,这将永远改变用户对系统行为的期望。虽然机器学习只是找到了嵌入式 域的方式,但它的速度比许多人想象的要快。现在是时候开始加快所涉及的技术及其应用方式。
要了解有关嵌入式系统机器学习的更多信息,请于5月16日星期四下午3:15与ESC Boston 起参加我关于使用资源约束边缘设备设计智能系统的演讲。如果您无法做到,但想了解有关嵌入式机器学习的更多信息,您可以参加免费的Digikey继续教育中心(CEC)系列“嵌入式工程师的机器学习”。
Jacob Beningo是 名嵌入式软件顾问,目前与十几个国 的客户合作,通过提高产品质量,成本和上市时间来大幅改变他们的业务。他发表了200多篇关于嵌入式软件开发技术的文章,是 位广受欢迎的演讲者和技术培训师,拥有三个学位,其中包括密歇根大学的工程硕士学位。随时联系他在jacob@beningo.com,在他的网站的网站。此外,还要注册他的每月Embedded Bytes时事通讯。