历史上的今天
今天是:2024年09月29日(星期日)
2020年09月29日 | 工业领域的人工智能导入正在变得简单易行
2020-09-29 来源:EEWORLD
想了解工业物联网的人工智能处理,首先你需要考虑的是大量的数据处理在哪里发生。
人工智能(AI)有能力使工业物联网(IIoT)的嵌入式系统更加灵敏和可靠,除了以更具成本效益的方式安排日常维护工作外,这项技术已经被用于监测机械状况和识别是否即将发生故障。
当涉及到在嵌入式系统中部署人工智能技术时,考虑这些数据处理的位置是至关重要的。人工智能算法在计算性能上差异很大,同时处理算法所需的内容和处理的位置也有很大影响。
对于系统设计者来说,开发基于人工智能的嵌入式系统有三种明确的方法,包括使用基于云的人工智能服务、部署具有内置人工智能的系统或创建他们自己的算法,通常都是基于开源软件。
深度神经网络(DNN)体系结构是一种计算密集型算法的例子,尤其是在训练阶段,每次更新模型时都需要数十亿个浮点运算。由于DNN的强烈需求,典型的方法是将数据发送到云端进行远程处理。工业控制中支持AI的设备可以利用使用云服务而创建的工具和框架进行远程处理,其中许多都是以开源形式提供的。
一个流行的例子是Google的TensorFlow,它为在创建人工智能算法方面经验丰富的工程师以及刚刚起步的工程师提供了多个层次的抽象。Keras API是TensorFlow框架的一部分,它使探索机器学习技术和启动应用程序变得很容易。
然而,基于云处理的一个缺点在于所需的带宽。可靠的互联网连接对维护服务至关重要,值得注意的是,云AI下,消费者应用依赖宽带连接,但工厂中的机床可能由于网络问题无法访问实时更新的远程AI模型。
因此,通过在本地进行更多的处理,可以大幅缩减带宽需求。对于许多工业应用程序,通过关注内容,所需的数据量可以大幅缩减。在监控环境变量的应用程序中,许多变量在很长一段时间内不会发生变化。对于模型来说,重要的是高于或低于特定阈值的变化。即使传感器可能需要以毫秒为单位分析传感器输入,云服务器的更新速率可能只是每秒更新几次,甚至更少。
构建人工智能软件
对于更复杂形式的数据,如音频或视频,需要更大程度的预处理。在进行图像处理之前,人工智能不仅有助于节省图像处理前的总体带宽,而且有助于提高系统的整体性能。例如,在压缩前去噪通常会提高压缩算法的效率。这与对高频信号敏感的有损压缩技术特别相关。边缘检测可以与图像分割结合使用,使模型只聚焦在感兴趣的对象上。这减少了在训练和推理过程中需要输入到模型中的无关数据量。
虽然图像处理是一个复杂的领域,但在许多情况下,开发人员可以在本地处理算法,利用现成的库并消除对高带宽互联网连接的需求。一个流行的例子是开源的计算机视觉库OpenCV,它用于对AI模型的数据进行预处理。在C++中,开发人员可以调用C++、java、python和MATLAB代码,在移植算法到嵌入目标之前支持简单原型开发。
通过使用OpenCV并在本地处理数据,集成商还消除了与在云中传输和存储数据相关的安全风险。终端用户最关心的是数据传输到云端时的隐私和安全性。状态监测和工业检测是关键的过程,需要尽可能好的数据分析。尽管云运营商已经制定了防止数据泄露的措施,但将数据保存在每个设备中,可以限制黑客入侵风险。
除了对图像处理的支持外,OpenCV的最新版本还包含了对使用许多流行框架(包括Caffe、PyTorch和Tensorflow)构建的机器学习模型直接支持。在将模型移植到嵌入式平台之前,使用云进行初始或原型开发,这是一种已经被证明可行的方法。
对于任何移植到嵌入式设备的机器学习模型来说,性能是首要考虑的问题。由于训练数据对性能有很高的要求,一种选择是在本地或云服务器上执行训练(取决于隐私问题),并在设备本身执行推断(当训练模型接收到实时数据时)。
如果需要本地设备更高性能,可能的解决方案是Avnet Ultra96-V2,它集成了Xilinx Zynq UltraScale+ZU3EG MPSoC。Arm处理器内核与嵌入式信号处理引擎和完全可编程逻辑阵列的结合,为DNN模型和图像处理例程提供了有效的支持。重新配置提供了在本地处理训练的能力,以及在应用程序具有高吞吐量需求的情况下进行推理的能力。

Avnet Ultra96-V2
推理产生的开销比训练低,对于传感器而不是图像流,在软件中运行DNN内核的微控制器可能是令人满意的。但是对于低功耗设备来说,需要更低的数据速率流。一些团队通过优化来减少推断所需的计算数量,即使这会增加开发的复杂性。人工智能模型通常包含高度冗余,通过修剪神经元之间的连接并将计算精度降低到8位整数甚至更低的分辨率,可以显著节省处理能力。
内置人工智能的边缘设备
另一种选择是将推断放到本地网关设备上运行。如果每个节点的吞吐量相对较低,一个网关可以处理多个传感器节点的推断任务。从面向云的框架中分配工作负载、移植和优化模型的需求都增加了开发的复杂性,因此另一个选择是采用一个已经为嵌入式应用而优化的框架。Octanion公司开发的Brainium平台为嵌入式系统提供了一个完整的开发框架。它的软件环境直接支持使用云系统进行原型设计,在物联网设备和网关上部署使用Avnet的SmartEdge Agile硬件。
Brainium软件环境协调设备、网关和云层的活动,以形成一个完整的人工智能环境。为了使应用程序能够扩展到深度嵌入的节点上,环境支持一些比DNN中使用的计算密集度低的人工智能技术。网关软件可以部署在现成的硬件上,如树莓派或任何能够运行Android或iOS的平台上。在需要更高性能的地方,Brainium的云层可以部署在AWS、Azure或自定义服务器解决方案上。
施耐德电气(Schneider Electric)和费斯托(Festo)已将本地人工智能支持纳入特定应用的控制产品中。前者提供了预测分析应用程序来识别影响性能的系统行为发生的细微变化。2018年,Festo收购了数据科学领域专家Resolto,其SCRAITEC软件可以了解系统的健康状态,以便检测每一个异常。
OEM或集成商在部署人工智能时采用哪种方法取决于具体情况。除了可用的处理能力之外,还有其他因素正在促使企业采用云计算、构建新软件和/或集成边缘设备等方式来管理人工智能。例如,当用户试图利用大数据分析时,他们可能希望将许多系统中的信息放到一个更大的数据库中,因此倾向于使用云服务。其他人则希望确保数据的高度隐私,处理负载是一个关键因素的情况下,可以通过使用基于本地网关的引擎到广泛使用云计算来解决这一问题。重要的是,有许多环境可以轻松原型化并部署到您选择的任意体系结构中。
史海拾趣
|
就在虚拟机上跑. 我的VXWORKS有http服务器的源码, 但是编译时组件树里面没有http的可选组件. 找到http的文件夹下面, 没有makefile, 不知道如何来编译. 有经验的请指教, 帮上忙的加分.… 查看全部问答> |
|
我有一宏基笔记本, 摄相头是本上原装的, 换了系统之后就不能用了?? 下载官方的驱动软件也驱动不了, 提示“该硬件无法驱动”。 郁闷几个星期了! 在网上搜索相关资料没一个合适的。 请有经验的师傅帮忙解决一下。… 查看全部问答> |
|
写了个键盘驱动key_scan.c, 1.请问想编译成key_scan.o该在Makefile中怎么写编译语句?谢谢。 2.int register_chrdev(unsigned int major, const char *name, struct file_operations *fops);函数的参数 name该用什么?是key_scan吗?它与mknod的 ...… 查看全部问答> |
|
wince 烧写中giveio.inf与giveio.sys驱动安装错误分析 我用的是杭州高联dm 2410b+arm9开发实验平台,在开机检测中遇到一个麻烦,顺利解决后觉得有必要写下,与大家分享。 在开机前,有一步是安装驱动,烧写boot.bin与eboot-rtc.nt0两个文件进nand flash的0块与2块。在用sjf烧写前,有一步 ...… 查看全部问答> |
|
37岁的爱德格•卡梅兹(Edgar Camez)是一名工程师,在密歇根州迪尔伯恩(Dearborn)的福特设计中心(Ford Design Center)工作时,他成为了一名为汽车设计发动机支架的专才。但在工作了11年后他希望能做点不同的事,他感到自己的小圈子限制了自 ...… 查看全部问答> |
|
当在同一个空间的多个zigbee网络,如果都使用相同的物理信道,会导致通讯效率下降。 在zstack中,通常的解决办法就是手动修改DEFAULT_CHANLIST这个宏的取值,这个方法需要网络的所有节点重新编译程序,方法本身使用也有一些限制。 zigbee 2007/pr ...… 查看全部问答> |




