工业机器视觉需要边缘计算吗
扫描二维码
随时随地手机看文章
为了降低延迟并在必要时能够立即采取行动,很大一部分工业机器视觉需要在边缘网络实现计算处理。通过这一点,将有可能避免代价高昂的生产线停机风险,并防止员工的生命受到威胁。不过,还有一些重大的影响因素需要考虑,因为这意味着必须在边缘端拥有巨大的自主权。
通过机器学习推断,从捕获的数据中提取特征,以便将来在处理类似场景时作出更好的决策。然而,必须指出的是,在边缘端应用这种人工智能(AI)具有与之相关的重大技术挑战,特别是在资源有限的情况下。
无处不在的机器视觉系统!
这种机器视觉系统中使用的算法被广泛归类为基于人工智能(AI)的算法,并利用深度学习神经网络对要检查的对象进行数字化的“检查”。随着工业4.0和工业物联网(IIoT)等举措不断改变制造业厂商,机器视觉应用将在提高运营效率方面发挥越来越大的作用。与早期需要大量计算资源的人工智能实现不同,这些计算资源往往被限制在数据中心内,今天的人工智能机器视觉应用需要更靠近“边缘”端,以便提供高精度、快速和可操作的图像检测。
深度学习和神经网络
传统的计算机程序是为了在给定的输入条件下输出一组结果而编写的。当你知道会输入什么并且输入的数量有限时,这是有效的一种方法。然而,当一个系统遇到它以前从未遇到过的情况时,将会发生什么———你如何使它以适当和有用的方式作出反应?
卷积神经网络是对部分大脑处理视觉信息的数字解释。与任何神经网络(见图1)一样,CNN 包含多层节点,但它们的不同之处在于,某些神经元只连接起来选择其他神经元,这是因为CNN 就像我们的大脑一样,强调数据的空间结构。例如,当看起来像是汽车图像(例如车轮、挡风玻璃和车门后视镜)时,我们会在相同区域内寻找其他元素来证实或反驳这一假设,例如方向盘、车门立柱或灯组。观察图像其他区域的价值会降低,因为它不太可能让我们对图像是否真的是一辆汽车有一个明确的答案(增强学习)。CNN的工作原理与此相同,因此比全连接网络的效率更高,特别是在处理大型图像时。
图1 神经网络基本概念
CNN在机器视觉中的应用
CNN的结构被称为“网络拓扑结构”,并且已经发展成为标准,其中包括流行的AlexNet和GoogleNet,这些都得到了快速的普及,并且比AlexNet复杂得多。其他拓扑结构包括VGG和ResNet。从开发的角度来看,有许多开源库、CNN框架和跨平台并行编程语言可用于帮助CNN的编码和快速部署。Caffe是一个流行框架的例子,它包含创建、训练、测试和刷新CNN所需的所有网络元素。
如何建立CNN 网络将取决于目前和将来要实现的目标。你要找的“东西”有多少个不同的类别———是有限数量,还是成千上万? 你将使用哪种图像分辨率或帧速率? 这些参数会增加吗? 你只需要检测一个物体,还是需要对目标进行详细的细节描述并跟踪它的运动轨迹?
选择在哪个硬件平台上运行机器视觉应用程序涉及许多因素。尽管现场可编程门阵列(FPGA)一直是热门的候选,随着处理器性能的提升,在高性能CPU 或GPU上运行现实更受欢迎。FPGA 使您能够动态地构建一个专门解决自己问题的计算体系结构,并能够提供极高的性能。这是由于FPGA 的特性决定的,其包括数千个专用的单精度浮点乘法器和累加器块,以及一个可以配置成一系列缓冲和缓存结构,并且能够和FPGA 计算单元紧密耦合的嵌入式高带宽存储器。这使得片上系统具有非常低的延迟和片间可编程互连的功能,同时能够结合逻辑,来构建所需的拓扑结构。最终,硬件的选择将取决于视觉检测系统能够检测到的速度,如果超出可选界限,则会提示错误,以便另一个进程可以干预。
对基于人工智能的机器视觉应用的需求日益增长,导致许多制造商打包开发完整的系统评估和开发平台,以加快系统验证和原型制作。例如,专业的嵌入式视觉摄像机制造商Basler [1] 为其Dart系列摄像机 [2] 提供了一个完整的评估工具包,其中包括挂架摄像机软件套件()。 基于Intel Atom 四核处理器,图3[3] 所示的AAEONUP嵌入式视觉套件还包括一个Basler摄像头和配套软件。
上述两个工具都为简单的机器视觉应用提供了一个良好的起点,但功能齐全的基于人工智能的方法保证了更多的计算资源和能力来加速神经网络处理过程。例如,Intel就提供了许多不同的机器视觉方法。如前所述,FPGA长期以来一直与机器视觉联系在一起,非常适合运行神经网络。Intel Max 10 FPGA系列 [4] 是一个很受欢迎的设备系列,它非常适合许多基于人工智能的视觉应用程序,
最新发布的OpenVINO(开放式视觉推理与神经网络优化)软件工具包(见图5)完全支持Intel的FPGA 和CPU,它有助于加速应用程序设计,并优化一系列Intel硬件设备的工作负载性能。OpenVINO 支持通过一个公共API跨CPU、FPGA和GPU 异构地执行CNN 任务,它使用一个函数库和预优化的内核来帮助缩短整个开发周期并加快产品上市速度。它还托管OpenCV 计算机视觉库和OpenVX 跨平台计算机视觉来加速API的优化调用。
该工具包包括三个部分———深度学习、基于CNN 的计算机视觉技术和硬件加速———同时,工具包还包括一些预先训练的深度学习模型。计算机视觉方面包括一个基于Python的优化器,可以通过命令行接口从Caffe等框架中导入经过训练的模型。
加速,即添加重要的计算资源(通常是并行计算资源)的过程,不仅限于机器视觉应用程序,还可以在越来越多的其他应用程序中找到,例如用于加快浏览器搜索速度的数据中心。然而,许多工业视觉应用更强调在“边缘”端进行计算,即系统可以在不依赖云服务的情况下正常运行。
Intel最近宣布了Intel神经计算棒2——一个基于Intel Movidius Myriad X视觉处理单元(VPU)的USB神经网络处理平台。Movidius VPU 包括16个128位超长指令字(VLIW)可用C 语言编程的混合架构矢量引擎(SHAVE)内核,以及一个专用的神经计算加速器引擎。Movidius Myriad XVPU 能够为神经网络处理提供每秒1万亿次运算处理(TOPS),
神经计算棒可以使深入学习神经网络在一台笔记本电脑中进行部署,它提供了Intel OpenVINO发行版,以进一步帮助用户快速实现与部署。一旦实现了工作原型系统,它就可以快速部署在基于Movidius的单板模块上,如基于AAEON UP AI 核的mini PCI Express系统 [5] 。
基于人工智能的机器视觉应用如今能够快速开发和部署,要归功于神经网络软件和开发工具包的完备性,比如和Caffe近似的OpenVINO和CNN 框架。紧凑、低功耗硬件原型平台的发展进一步加快了边缘节点视觉系统的开发速度。