用于加速机器学习的边缘计算开发平台

电子说

1.3w人已加入

描述

机器学习正在从云端转移到网络边缘,目的是进行实时处理、降低延迟、提高安全性、更高效地使用可用带宽以及降低整体功耗。而处于这些边缘节点上的物联网 (IoT) 设备只有有限的资源,因此开发人员需要弄清如何有效地添加这一全新的智能水平。

在边缘位置基于微控制器系统使用机器学习,为开发人员提供了几项新机会,可以彻底改变他们设计系统的方式。开发人员可以使用几种不同的架构和技术将智能添加到边缘节点。学习完本文后,我们将更加熟悉这些架构以及一些可用于加快该过程的技术。

边缘机器学习的作用

边缘机器学习对嵌入式系统工程师非常有用,原因有很多。首先,智能系统可以解决开发人员通常难以通过编码解决的问题。以简单的文本识别为例。识别文本是编程的噩梦,但如果使用机器学习,那么几乎就像用 C 语言编写“Hello World”应用程序一样简单。

其次,智能系统可以很轻松地针对新数据和情况进行扩展。例如,如果某个系统接受了识别基本文本的训练,然后突然采用新字体提供文本,这时并不需要推倒重来。相反,只需提供额外的训练图像,使该网络也能学习识别新字体便可。

最后,我们还可以了解到,边缘机器学习可以帮助开发人员降低某些应用类型的成本,例如:

图像识别

语音和音频处理

语言处理

机器人

第一次检查边缘机器学习时,使用应用处理器似乎是个不错的选择。包括 OpenCV 在内的几种开源工具专为计算机视觉而设计,我们可以从使用这些工具开始。不过,许多应用中仅使用应用处理器可能还不够,因为这些处理器不具备确定性的实时行为。

边缘机器学习架构

使用边缘机器学习时,有三种典型方法:

边缘节点获取数据,然后在云端完成机器学习

边缘节点获取数据,然后在芯片上完成机器学习

边缘节点获取数据,然后在边缘进行第一遍机器学习,最后在云端进行更深入的分析

前两个解决方案是目前业界探索最多的解决方案,在本文中,我们将会重点关注这两个解决方案。

使用边缘设备获取数据并使用基于云的机器学习系统来处理数据,这样的架构有几个优点。首先,边缘设备不需要运行机器学习算法所需的强大处理能力和资源。其次,边缘设备可以继续使用资源受限的低成本设备,就像许多嵌入式系统开发人员习惯创建的系统一样。唯一的区别是,边缘设备需要能够通过 HTTPS 连接到基于云的服务提供商,以便分析它们的数据。第三,基于云的机器学习正在以惊人的速度发展,将这些功能转移到片载解决方案将非常困难、耗时且成本高昂。

对于希望从基于云的机器学习开始的开发人员来说,他们可以使用 STMicroelectronics 公司的 STM32F779I-EVAL 板(图 1)这类开发板。该开发板基于 STMicroelectronics 公司的 STM32F769NIH6 微控制器,配备了 Arm® Cortex®-M7 内核、板载摄像头、用于与云进行高速通信的以太网端口,以及板载显示器。该开发板可与诸如 Express Logic 公司的 X-Ware IoT 平台等软件配合使用,轻松连接到任何机器学习云提供商,如 Amazon Web Services (AWS)、Microsoft Azure 和 Google Cloud。

在云端进行机器学习对于开发团队来说可能意义非常重大,但有几个原因可以解释为什么机器学习开始从云端转向边缘。虽然这些原因具有很强的应用针对性,但确实也包括了一些重要因素,例如:

实时处理需求

带宽限制

延迟

安全要求

如果某个应用存在这方面的问题,那么将神经网络从云端转移到边缘是可以行得通的。这种情况下,开发人员必须对他们希望嵌入式处理器负责处理的内容做到心里有数,以便应用能够尽可能高效地执行。

选择用于机器学习的处理器

在嵌入式处理器上运行机器学习需要考虑几个重要因素。首先,处理器必须能够高效地执行 DSP 指令,因此浮点运算单元 (FPU) 非常有用。其次,需要具备可以在处理器上运行的机器学习库。学习库需要包括卷积、池化和激活。如果没有这些学习库,开发人员基本上需要从头开始编写深度学习算法,不但费时,而且成本高昂。

最后,开发人员需要确保微控制器上具有足够的 CPU 周期,以便可以完成神经网络执行以及分配给处理器的任何其他任务。

Arm Cortex-M 处理器现在配有 CMSIS-NN 扩展,这是一个神经网络库,其设计目的是在资源受限的环境中可以在微控制器上高效地运行机器学习,这一特性使其成为基于边缘的智能系统的绝佳选择。确切的处理器选择将取决于手头的应用,因此详细了解几款不同的开发板及其最适合的应用非常重要。

首先介绍 SparkFun Electronics 公司的 OpenMV 机器视觉开发板(图 2)。该模块采用基于 Cortex-M7 的 STM32F765VI 处理器,运行频率 216 MHz,支持 512 KB RAM 和 2 MB 闪存。

OpenMV 模块可用于:

通过帧差分检测运动

颜色跟踪

市场跟踪

人脸检测

眼动跟踪

线条和形状检测

模板匹配

由于该模块的软件基于 Arm CMSIS-NN 库,因此可以在处理器上尽可能高效地运行机器学习网络。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分