可持续的边缘智能

边缘智能

简单来说,通过神经网络和机器学习算法,边缘智能设备能够在网络“边缘设备上”完成推理任务。问题是,为什么我们要在嵌入式设备越来越多地使用AI以及为什么整个行业开始关注深度学习和深度神经网络?

对于这个问题,答案与AI本身无关,而与带宽、延时、安全性或者分散式数据处理这些话题相关。这就涉及到了现代工业4.0应用的核心主题和挑战。把大量传感器或者相机数据过滤或者转换成边缘设备上已有的可用信息,以减少共享通信信道的内在带宽竞争,是一项重要的任务。即时数据处理能够在图像捕捉设备上直接做出处理决定,不会出现数据通信延时。从技术或者安全性的角度而言,甚至很难实现与中央处理器(可能在云端)进行可靠、持续的通信。以这种方式在边缘设备上封装获得的数据有助于分散数据储存和处理,减少整个系统受到攻击的可能性。毕竟,生成和传输的数据安全性对于每个组织而言都至关重要。

分布式系统智能对作业相关的任务进行了清晰的区分。比如,一个工厂可能有几百个工位,每个工位都需要图像分类服务,对不同组的目标进行分析。但是,在云端托管多个分类器并非免费。节省成本的解决办法就是训练云端的所有分类器,把模型发送到边缘设备,这些边缘设备已根据各个工位的情况进行过调整。每个模型的性能比在所有工位做出预测的分类器更好。此外,相对于在实现数据中心这一功能,这种简单的方案还缩短研发周期。所有这些都表明应该将推理下放至边缘设备。

表1-智能边缘设备减少了大量的传感器和图像数据。它们在边缘设备上直接生成有用信息,并且仅将这些信息发送给控制单元。

挑战

为什么“实际上”神经网络不适合嵌入式使用,“在边缘设备上”使用它们面临哪些挑战?在边缘设备上进行AI推理任务并不容易。总的来说,效率是边缘计算的核心。通常,边缘设备可用的计算、存储和能源资源都是有限的。因此,计算必须高效进行,同时在低延时的情况下提供高性能,这两者好像自相矛盾。我们也通过运行卷积神经网络(CNN)来解决这一矛盾。CNN以高密度计算而著称,处理一个输入时需要进行数十亿次计算。CNN架构本身需要数百万个参数描述,因此原则上并非边缘计算的理想候选方案。所谓的“参数高效”网络(如MobilNet、EfficientNet和SqueezeNet)由少量参数描述,适合嵌入式使用。这极大减少了内存和计算需求。不仅如此。为了进一步减少存储需求,必须压缩网络。例如,经过所谓的“剪枝”训练,可以删除不重要的参数,通过“量化”,也可以减少描述参数的位元数量。CNN内存减少对处理时间产生积极的影响。然后就是最后一个需要优化的层面。

虽然使用了参数高效和压缩网络,但是为了在边缘高效运行AI,必须继续使用一种为这些架构特别订制的计算系统。为此,需要考虑两个基本系统属性。除了已经提到的效率外,该系统还应具备灵活性以支持CNN架构的新技术发展。这一点很重要,尤其是在AI领域,每月都会研发出新的架构和层类型。今天的新技术明天可能就会成为昨日黄花。有哪些平台可供选择呢?

平台选择

  • 基于CPU的系统无疑提供最大灵活性。但与此同时,在运行CNN时,CPU效率非常低,能耗也很高。
  • GPU通过并行计算核心以较高功率运行CNN。GPU在图像处理方面比CPU专业,而且还拥有较高的灵活性。然而,GPU能耗大,因此在边缘设备上运行会存在很多问题。
  • 可编程 FPGA 架构可以在现场重新配置,因此可以适应新的CNN架构。FPGA支持并行运行模式,因此能够高效运行。然而,FGPA编程要求具备较高程度的硬件知识。
  • 作为定制的集成电路,全套ASIC解决方案在效率方面明显更胜一筹,因为它经过专门优化,能够有效执行给定的CNN架构。但是,如果新的或变更后的CNN架构得不到支持,灵活性就是一个问题。

FPGA技术具有“高性能,灵活和节能”等优势,因此在当前AI开发阶段,最适合用来在边缘设备上实现CNN加速器。

对于特殊的应用场合或CNN,通过新的配置文件更新即可在设备运行期间随时对它进行修改这一特点,使其成为一种可以长期使用的解决方案,因此,它适合工业应用场合。使用FPGA技术的最大挑战就是编程复杂,只能由专业人士完成。

开发策略

为了在“视觉边缘设备”(即:IDS NXT相机)中运行神经网络,我们决定在FPGA技术的基础上开发CNN加速器。我们称它为“深海核心”。但是为了以后尽可能简单地使用FPGA,我们只开发一种通用架构,而不是为了不同的CNN类型开发几种专门优化的配置。如果CNN由受支持的层组成,加速器能够运行任何CNN网络。然而,因为所有的常规层(卷积层、附加层、各种池化层或压缩激励层)已经得到支持,所以几乎所有重要的层类型都能使用。这就完全解决了编程困难的问题,因为用户不需要任何专业知识就能创建新的FPGA配置。通过对IDS NXT相机进行固件更新,深海核心不断进化以支持CNN领域发生的新变化。

深海核心

通用CNN加速器如何运作?要运行一个受训的神经网络,哪些步骤是必要的?加速器只需要一种显示构成CNN网络各层的“二进制描述”。这也不需要编程就能实现。但是,经过Keras训练的神经网络处于一种加速器无法理解的特殊的“Keras高级语言”状态。因此,必须将神经网络转换为类似“链表”的二进制格式。CNN网络的每一层都变成节点端描述符,对各层进行精确地描述。最终结果是CNN(以二进制表示)的完整串联列表。整个转换过程由工具自动化完成。不需要任何专业知识。生成的二进制文件会进入相机的内存并由深海核心进行处理。CNN网络现在就可以在IDS NXT相机上运行。

运行的灵活性

将CNN表示作为链表在加速器灵活性方面具有明显的优势。它可以实现在动态网络之间随时无缝切换,而且还没有延迟。相机的工作内存可以加载数个以“链表”形式存在的不同神经网络。选择要运行的CNN之前,深海加速器必须指向其中一个表的起始位置。唯一要做的是更改其中一个表内存的“指针值”。FPGA寄存器的这种简单写入操作随时都可以快速进行。

以下示例解释了快速切换CNN网络的重要性。比如您的一条产品线同时运行两种类型的产品。而您想要检查产品质量。首先确认产品位置,然后在已确认的产品类别基础上,根据产品特定的缺陷对质量进行分类。

要解决该任务,可以通过对各个产品组的所有潜在失败案例进行预训练,从而训练庞大的CNN网络来找到对象并同时对它们分类。这个方法成本高昂,还会增加网络规模并且可能导致运行缓慢,但是确实可行。它的难点在于如何达到足够的精确度。凭借随时可以改变主用CNN网络这一特性,您可以将不同目标的本地化和分类区分开,结果是单个CNN更容易训练。要识别对象,您只需区分两个分类并提供它们的位置。对于产品相关的属性和缺陷分类,需额外训练两个网络。根据本地化的产品,相机应用程序会自动决定要激活哪个分类网络,以确定相应的产品质量。通过这种方法,边缘设备处理的任务变得相对简单,参数也很少。结果就是,单个网络规模大幅缩小,需要区分的功能也减少很多,导致效率提升,能耗减少,非常适合在边缘设备上执行。

表2 - 凭借能够改变神经网络执行方式这一特性,我们可以将图像分析细分成各个简化的推理工作流程,这些流程在相机上运行效率更高、更快,也更稳定。

性能强,效率高

IDS NXT推理相机中基于FPGA的CNN加速器通过带64位计算核心的Xilinx Zynq Ultrascale SoC来运行。很多知名图像分类网络(例如MobileNet、SqueezeNet或EfficientNet)可以达到每秒67帧的帧率。对于边缘计算而言,有些网络架构(Inception 或ResNet)被认为过于复杂,但是也能达到每秒20帧,已经能够满足很多应用程序的需要。FPGA能够进一步开发深海加速器的性能。固件更新对所有现场的相机都有利。

然而,对于边缘计算来说,更为重要的是能效。它表示每使用一瓦电,系统每秒可以处理的图像数量。因此能效对于比较不同边缘解决方案而言是一个很好的指标。以下图表比较了不同的CNN加速器。实现FPGA的深海核心,配备Jetson TX 2A的GPU 解决方案,配备最新Intel Core-i7 CPU的传统CPU解决方案,Raspberry Pi嵌入式CPU解决方案以及以Intel Movidius AI芯片为代表的ASIC解决方案。

表3 - 特别是对于参数有效网络(例如MobilNets或SqueezeNet)来说,FPGA架构无疑是最适合的。它在所有参与对比的系统中能效最高。因此,深海核心更适用于边缘智能。

一体化推理相机解决方案

为了使基于FPGA的CNN加速器更易于使用,IDS提供了完整的推理相机解决方案,让每个人都可以轻松使用这种技术。无需任何在深度学习,图像处理或相机/FPGA编程方面的任何专业知识,用户即可训练和运行神经网络,并且可以立即启用基于AI的图像处理。简单上手的工具降低了入门门槛,让用户在几分钟内就可以创建推理任务并立即在相机上运行。整个概念不仅涉及智能相机平台IDS NXT(配备以FPGA技术为基础的CNN加速器“深海核心” ),还包括易用的神经网络训练软件。所有组件均由IDS直接开发,可实现完美协作。这不仅简化了工作流程,还提高了整个系统的效率。

可持续的边缘智能

本文列举的所有神经网络加速方案都有各自的优点和缺点。如果终端用户必须处理必要的组件以便将AI用于机器视觉任务,则倾向于他们使用完全集成的AI加速器,例如Intel Movidius。即用型芯片解决方案效率高,能够实现只有大批量采购才能获得的单价,并且由于存在大量的功能文档记录,因此可以快速、相对轻松地集成到系统中。但是,有一个问题。AI环境如今发展势头强劲,日新月异,而即用型芯片解决方案开发周期过长。为了开发在今天能够普遍使用并且高度灵活的“边缘智能”,系统组件必须满足其他要求。FPGA集灵活性、性能、能效和可持续性于一身。毕竟,衡量工业产品的一个最重要的标准就是“工业适用性”,而确保“工业适用性”的因素包括长期可用性和简单以及长期的可维护性。如今,易用的IDS NXT推理相机平台与FPGA CNN加速器相结合,提供了一种可持续的边缘智能端到端解决方案,使终端用户无需担心单个组件和AI更新。