工业机器视觉应用有必要使用边缘计算吗
作者|贸泽电子MarkPatrick
译者| 君谦
随着我们对工业4.0领域以及工业物联网(IIoT)的深入研究,自动化技术越来越显得尤为重要。伴随着机器视觉技术的快速发展,在提高制造商产品质量水平的同时加快生产效率,可以说拥有巨大的潜力。这项技术的影响范围也在不断地扩大,各种新的应用注定会在我们的日常生活中发挥更大的作用。比如,在汽车的ADAS系统中处理目标检测与识别,使基于面部的安全机制集成到便携式电子设备以及无数其他关键任务中。
为了降低延迟并在必要时能够立即采取行动,很大一部分工业机器视觉需要在边缘网络实现计算处理。通过这一点,将有可能避免代价高昂的生产线停机风险,并防止员工的生命受到威胁。不过,还有一些重大的影响因素需要考虑,因为这意味着必须在边缘端拥有巨大的自主权。
通过机器学习推断,从捕获的数据中提取特征,以便将来在处理类似场景时作出更好的决策。然而,必须指出的是,在边缘端应用这种人工智能(AI)具有与之相关的重大技术挑战,特别是在资源有限的情况下。
无处不在的机器视觉系统!
机器视觉系统无处不在,它们是你所使用产品的一部分,无论走到哪里,你都会发现它们的踪影。从垃圾邮件过滤器到图像识别和处理,它们已经渗透到我们的日常生活中的方方面面,无论是在家里、在公司,还是在通勤的路上。在工业制造和生产环境中,已经部署了许多基于机器视觉的系统。最基本的方法是用数码相机拍摄,比如包装和密封大米的图像。实际上,计算机算法被用来处理图像,并通过与已知的“好”图像进行比较来发现问题,也许袋子裂开了,或者密封时留下了一个角落。随着机器视觉技术的发展,其检测潜在故障的能力也越来越强,从而提高了生产质量和生产能力。
这种机器视觉系统中使用的算法被广泛归类为基于人工智能(AI)的算法,并利用深度学习神经网络对要检查的对象进行数字化的“检查”。随着工业4.0和工业物联网(IIoT)等举措不断改变制造业厂商,机器视觉应用将在提高运营效率方面发挥越来越大的作用。与早期需要大量计算资源的人工智能实现不同,这些计算资源往往被限制在数据中心内,今天的人工智能机器视觉应用需要更靠近“边缘”端,以便提供高精度、快速和可操作的图像检测。
深度学习和神经网络
传统的计算机程序是为了在给定的输入条件下输出一组结果而编写的。当你知道会输入什么并且输入的数量有限时,这是有效的一种方法。然而,当一个系统遇到它以前从未遇到过的情况时,将会发生什么———你如何使它以适当和有用的方式作出反应?
机器学习概念允许算法从过去的数据中学习特征,以便在未来遇到数据时作出决策或预测。分析数据或图像可以采取多层的方法,其中每一层都比上面一层更详细。通过这种方法,一个系统就可以通过学习对以前从未见过的场景作出恰当的反应。机器学习在目标检测和识别中特别流行,通常使用人工神经网络或卷积神经网络(CNN)来实现。
卷积神经网络是对部分大脑处理视觉信息的数字解释。与任何神经网络(见图1)一样,CNN包含多层节点,但它们的不同之处在于,某些神经元只连接起来选择其他神经元,这是因为CNN就像我们的大脑一样,强调数据的空间结构。例如,当看起来像是汽车图像(例如车轮、挡风玻璃和车门后视镜)时,我们会在相同区域内寻找其他元素来证实或反驳这一假设,例如方向盘、车门立柱或灯组。观察图像其他区域的价值会降低,因为它不太可能让我们对图像是否真的是一辆汽车有一个明确的答案(增强学习)。CNN的工作原理与此相同,因此比全连接网络的效率更高,特别是在处理大型图像时。
图1神经网络基本概念
CNN在机器视觉中的应用
CNN的结构被称为“网络拓扑结构”,并且已经发展成为标准,其中包括流行的AlexNet和GoogleNet,这些都得到了快速的普及,并且比AlexNet复杂得多。其他拓扑结构包括VGG和ResNet。从开发的角度来看,有许多开源库、CNN框架和跨平台并行编程语言可用于帮助CNN的编码和快速部署。Caffe是一个流行框架的例子,它包含创建、训练、测试和刷新CNN所需的所有网络元素。
如何建立CNN网络将取决于目前和将来要实现的目标。你要找的“东西”有多少个不同的类别———是有限数量,还是成千上万?你将使用哪种图像分辨率或帧速率?这些参数会增加吗?你只需要检测一个物体,还是需要对目标进行详细的细节描述并跟踪它的运动轨迹?
对于工业机器视觉应用,例如在快速移动的生产线上有许多特定的图像识别挑战,其中大部分与检测图像的质量有关,可能涉及到一定程度的CNN算法前图像处理。除了能够在检测区域内隔离物体外,物体照明的均匀性也是另一个考虑因素。例如,要识产品标签是否正确地固定在瓶子上,需要检测标签的边缘和瓶子的边缘。如果瓶子是由透明玻璃制成的,标签背面是透明的,图像处理需要产生更多的暗像素,这样边缘就可以清晰地识别。同时,它还需要避免由于生产设备或其他运动部件的光线反射而导致的错误识别。在这些情况下,通常使用边缘检测和阈值算法来提高识别的可靠性。
选择在哪个硬件平台上运行机器视觉应用程序涉及许多因素。尽管现场可编程门阵列(FPGA)一直是热门的候选,随着处理器性能的提升,在高性能CPU或GPU上运行现实更受欢迎。FPGA使您能够动态地构建一个专门解决自己问题的计算体系结构,并能够提供极高的性能。这是由于FPGA的特性决定的,其包括数千个专用的单精度浮点乘法器和累加器块,以及一个可以配置成一系列缓冲和缓存结构,并且能够和FPGA计算单元紧密耦合的嵌入式高带宽存储器。这使得片上系统具有非常低的延迟和片间可编程互连的功能,同时能够结合逻辑,来构建所需的拓扑结构。最终,硬件的选择将取决于视觉检测系统能够检测到的速度,如果超出可选界限,则会提示错误,以便另一个进程可以干预。
对基于人工智能的机器视觉应用的需求日益增长,导致许多制造商打包开发完整的系统评估和开发平台,以加快系统验证和原型制作。例如,专业的嵌入式视觉摄像机制造商Basler[1]为其Dart系列摄像机[2]提供了一个完整的评估工具包,其中包括挂架摄像机软件套件(见图2)。基于IntelAtom四核处理器,图3[3]所示的AAEONUP嵌入式视觉套件还包括一个Basler摄像头和配套软件。
图2塔式相机软件套件(来源:Basler)
图3AAEONUP开发工具包(来源:AAEONUP)
上述两个工具都为简单的机器视觉应用提供了一个良好的起点,但功能齐全的基于人工智能的方法保证了更多的计算资源和能力来加速神经网络处理过程。例如,Intel就提供了许多不同的机器视觉方法。如前所述,FPGA长期以来一直与机器视觉联系在一起,非常适合运行神经网络。IntelMax10FPGA系列[4]是一个很受欢迎的设备系列,它非常适合许多基于人工智能的视觉应用程序,其功能块如图4所示。
图4IntelMax10机器视觉基本功能体系结构(来源:Intel)
最新发布的OpenVINO(开放式视觉推理与神经网络优化)软件工具包(见图5)完全支持Intel的FPGA和CPU,它有助于加速应用程序设计,并优化一系列Intel硬件设备的工作负载性能。OpenVINO支持通过一个公共API跨CPU、FPGA和GPU异构地执行CNN任务,它使用一个函数库和预优化的内核来帮助缩短整个开发周期并加快产品上市速度。它还托管OpenCV计算机视觉库和OpenVX跨平台计算机视觉来加速API的优化调用。
该工具包包括三个部分———深度学习、基于CNN的计算机视觉技术和硬件加速———同时,工具包还包括一些预先训练的深度学习模型。计算机视觉方面包括一个基于Python的优化器,可以通过命令行接口从Caffe等框架中导入经过训练的模型。
图5IntelOpenVINO框架(来源:Intel)
加速,即添加重要的计算资源(通常是并行计算资源)的过程,不仅限于机器视觉应用程序,还可以在越来越多的其他应用程序中找到,例如用于加快浏览器搜索速度的数据中心。然而,许多工业视觉应用更强调在“边缘”端进行计算,即系统可以在不依赖云服务的情况下正常运行。
Intel最近宣布了Intel神经计算棒2——一个基于IntelMovidiusMyriadX视觉处理单元(VPU)的USB神经网络处理平台。MovidiusVPU包括16个128位超长指令字(VLIW)可用C语言编程的混合架构矢量引擎(SHAVE)内核,以及一个专用的神经计算加速器引擎。MovidiusMyriadXVPU能够为神经网络处理提供每秒1万亿次运算处理(TOPS),如图6所示。
图6Intel神经计算棒2(来源:Intel)
神经计算棒可以使深入学习神经网络在一台笔记本电脑中进行部署,它提供了IntelOpenVINO发行版,以进一步帮助用户快速实现与部署。一旦实现了工作原型系统,它就可以快速部署在基于Movidius的单板模块上,如基于AAEONUPAI核的miniPCIExpress系统[5]。
基于人工智能的机器视觉应用如今能够快速开发和部署,要归功于神经网络软件和开发工具包的完备性,比如和Caffe近似的OpenVINO和CNN框架。紧凑、低功耗硬件原型平台的发展进一步加快了边缘节点视觉系统的开发速度。
相关链接
[1]https://eu.mouser.com/new/basler/basler-embedded-vision-kits/
[2]https://eu.mouser.com/new/basler/basler-dart-cameras/
[3]https://eu.mouser.com/new/aaeon-up/aaeon-up-visionstarter-kit/
[4]https://eu.mouser.com/new/altera/altera-max10-fpga/
[5]https://eu.mouser.com/Product-Detail/AAEONUP/PER-TAIC-A10-001?qs=sGAEpiMZZMve4%2fbfQkoj%2bLqKGsVIVeBf0TsgGZ%2bgdAY%3d
作者
MarkPatrick:曾在RS组件公司担任高级营销职务,2014年7月加入MouserElectronics。在进入RS之前,马克曾在德州仪器公司(TexasInstruments)担任应用支持和技术销售职务8年,并在考文垂大学(CoventryUniversity)获得电子工程一级荣誉学位。
本文授权来自本刊的合作伙伴Elektor媒体集团,如果希望免费订阅Elektor的英文在线内容,请访问www.elektor.com。
1.RISC-V处理器嵌入式开发网课上线!
2.刚刚!官方发布:中美达成第一阶段贸易协议,美分阶段取消关税!
3.一幅趣味漫画,让你秒懂Linux内核!
4.NXP推出了新一款8位MCU,看看适合你的应用不?
5.手机CPU与电脑CPU性能究竟相差多少?
6.FPGA老大把研发5年的软件平台开源了!