机器学习在边缘的方面

文章:John Fogarty

在嵌入式设备的资源受限环境中制作机器学习工作可以成为Quagmire。本文将专注于通过具有重要ML组件的假设设备的问题。

机器学习(ml)很难;在嵌入式设备的资源受限环境中使其工作可以很容易地成为Quagmire。根据这种恶劣的现实,任何试图在嵌入式系统中实施ML的人都必须考虑,并且经常重新审视,所以设计方面至关重要受其要求。一点提前规划使项目成功与失败之间的差异。

对于本文,我们的重点是建立具有重要甚至主导,ML组件的商业级应用。We’ll use a theoretical scenario in which you have a device, or better yet an idea for one, which will perform complex analytics, usually in something close to real time, and deliver results in the form of network traffic, user data displays, machine control, or all three. The earlier you are in the design process, the better positioned you’ll be to adjust your hardware and software stack to match the ML requirements. The available tools, especially at the edge, are neither mature, nor general purpose. Also keep in mind that, the more flexible you are, the better your odds of building a viable product.

让我们首先描述假设的设备,然后通过一些与其设计的ML相关问题进行工作。

智能安全摄像头

为我们的设计,让我们看一下网络的安全摄像头。作为一个IOT设备,它持续连接到互联网。我们假设我们的设备将至少有4GB的SDRAM,64位ARM CPU,并运行一个支持Anaconda Python分布,OpenCV,DLIB和TensorFlow的嵌入式Linux。

我们的ML相关目标为此应用程序是:1)录制,识别和标记“有趣的”框架,以及2)警报安全人员对可疑活动。

与大多数本质的项目一样,我们受到各种物理,环境和成本因素的限制。为了充分利用可用数据,我们需要使用ml来检查和分类来自每个图像帧的多个对象。我们将探索的第一个设计策略是使用基于边缘的ML来识别感兴趣的帧并做一些简单的初始分类,以及基于云的服务来处理可能的警报的实际确定。我们应该如何着手?

为网络边缘带来一些基本ML功能的“智能”监视摄像头可以显着提高性能,并降低基于云的安全系统的重复服务成本。但识别正确的分割策略和成本/性能权衡是必不可少的。

在云中处理图像?

无论在处理发生的情况下,此应用程序都需要识别视频帧中的各种对象,例如人员,面部,车辆等。每个对象组需要执行的ML模型的(推断),其产生一组界限,标记对象。典型的相机将录制每秒约30帧。如果我们想最大限度地减少相机的成本和复杂性,它不能只将原始数据发送到云提供商?忽略其他考虑因素,每天约为250万张图像。即使在深度折扣下,使用商业ML服务提供商处理此数量的图像将在每天约1000美元,而且为每个识别模型进行计费。显然,我们需要做出其他选择。

机器学习正在成为各种应用的广泛使用的技术,包括图像识别系统。分布式ML应用程序的大型设计挑战之一是如何最有效地分区其边缘和基于云的元素之间的各种任务。

通过检查原始输入流来启动。每个原始720p(标准HD 1280×720px)帧使用大约5 MB,因此如果我们在网络上发送30帧/秒,我们需要一个令人难以置信的1.5 Gbps连接(每两个小时左右的TBYTE)。对于全高清和更高,将此乘以四到10倍。我们不会发送原始,未压缩的视频。我们的问题是我们的ML模型只能针对各个图像帧。我们应该在哪里做出权衡?

我们困境的一些线索位于视频的基本性质中,它产生了大量数据,但在大多数情况下,给定帧中的信息很少与前面的信息不同。这就是为什么各种压缩技术工作非常好,而原始数据减少100-1000×是典型的。假设压缩可以将1.5 Gbps流减少到1.5 Mbps附近的东西是合理的,因此我们可以使用云服务进行我们的ML推断,只要我们托管我们自己的机器实例而不是支付ML服务。根据我们的工作量,我们可以期望处理24×7视频,每月50美元到200美元。

是否有任何其他因素可能偏向更多云处理?

  • 我们的初始开发预算更有限。
  • 我们的ML模型尚未在有限的加工/内存环境中证明是有效的。
  • 我们需要灵活地快速更改我们用于处理的型号。
  • 我们知道可用的网络连接是强大的,并且不需要“离线”操作。
  • 我们对云服务的预算可以显着超过边缘硬件的成本。

请记住,在云中或边缘执行处理的决定不是二进制决定,而是一种选择。万博投注网址设计可以大量受益于甚至有限的边缘计算;在某些情况下,可以在边缘上实现简单的检测(运动/车辆/人/脸),以减少云工作负载,其数量级,实用程序没有损失。

[继续阅读EDN US:我们可以在边缘做大部分工作吗?]

约翰福蒂耶是Base2解决方案的咨询软件工程师。

相关文章

发表评论