日期
06/12
2020
咨询
  • QQ扫一扫

  • Vision小助手
    (CMVU)

如何为机器视觉应用选择最佳处理平台
收藏
2020-06-12 14:36:26来源: 中国机器视觉网

   在机器视觉应用中,三种最常见的图像处理平台的是中央处理器(CPU)、图像处理器(GPU)和现场可编程门阵列(FPGA)。

   CPU是传统台式计算机和笔记本电脑的心脏。在手机或平板电脑中,功耗更低的ARM处理器发挥着CPU的功能。CPU具有较大的指令集和大量的本地计算机语言库,例如C、C++、Java、C#和Python。其中一些语言具有可将功能转移到GPU并在GPU上运行的软件包。

   传统上,GPU用于在PC上的视频游戏中渲染像素(即图像)。笔记本电脑也通常具有GPU。GPU越好,能够呈现的图像质量越好,帧率也越高。GPU专门用于执行图像处理功能。

   在视频游戏中,GPU主要用于在分辨率为数百万个像素的屏幕上渲染图像效果;而在机器视觉中,GPU处理数百万个像素以帮助软件解析和理解图像。因为GPU具有由许多并行内核和优化的像素数学组成的架构,所以能够非常有效地处理图像和绘制图形。

   FPGA的可编程电路运行下载到卡上的自定义程序,以对其进行配置,从而能以更低级的逻辑来完成预期的任务,消耗的功耗比CPU或GPU更低。FPGA也不需要操作系统的开销。

   机器视觉系统的开发人员和集成人员,可以在开发系统的其余部分之前,尝试决定使用哪些平台。首先对系统进行原型设计,通常可以确定平台的选择。如果针对特定应用的数学运算无法在某个平台上运行,那么它可能将无法在任何平台上运行。

   设置系统(镜头、光源、相机等)的物理特性,收集一系列图像,并在任何感觉舒适的环境中测试数学运算,都可以为平台选择提供依据。例如,某些智能相机包括板载FPGA,可以对相机进行编程以进行不同的测试。如果原型使用智能相机可以按预期运行,则FPGA可能是该应用的正确平台,这时候就不需要再考虑CPU或GPU了。

平台标准

   选择特定平台的第一个、也是最重要的标准是速度。一旦原型应用在测试平台上工作后,必须确定该应用每秒需要处理多少个零件,或者实时视频的处理帧率必须达到多少。通常,对于实时视频,大约30fps的帧率才能创建逼真的图像。

   除了要考虑图像的处理速度,还必须要考虑其他速度问题,例如时延问题。系统可能能够在10ms内处理一帧图像,但是却需要200ms才能将这帧数据从相机传输到主处理器;GigE Vision驱动程序需要100ms来接收该帧,并将其提供给应用程序;另外还需要10ms来处理该帧。在零件检查应用中,情况很可能是这样的:当帧数据传输到应用程序时,被检查的零件已经移动走了。

   在一个假设的系统中,可能不得不开始对零件图像进行排队,以跟上零件在生产线上移动的速度。这种情况下,将需要具有确定性时序的可编程逻辑控制器(PLC)来跟踪生成排队图像的零件的位置;如果零件未通过机器视觉系统的检测,就可以将其从生产线上剔除。

   还必须考虑启动时延。并非所有的应用都可以在工厂车间连续运行,或者在生产线开始运行前让其启动几分钟。诸如户外系统和消费类系统的一些应用(例如自动驾驶汽车中的系统),可能需要在上电后的几毫秒内就准备好运行。具有多层软件的机器视觉系统(例如具有操作系统的CPU),可能难以满足较短的启动时间要求。

   当针对速度进行原型设计时,可以通过秒表计时来进行测试。将渲染到屏幕上的帧与秒表上显示的时间进行比较,从而可以轻松量化时延,并确定系统可能需要更改或改进的方式。

   When prototyping speed, tests can beconducted by filming a high-resolution stopwatch. Frames rendered to a screencan be compared to the time displayed on the stopwatch, which allows for easyquantification of latency and determination of how a system may need alter- ingor improvement.

   考虑系统所需的功耗,对于某些应用至关重要,而对于其他应用则不那么重要。对于在移动设备或无人机等电池供电的硬件上运行的应用程序,可能不适合使用CPU或传统的GPU,因为这些平台的功耗很大。但是,诸如英伟达的Jetson之类的移动GPU,则为用户体提供了一种低功耗选项。基于Raspberry Pi的片上系统(SoC)平台,其功耗也低于CPU。

   还要考虑电源的可靠性。特别是对于基于无人机、户外或移动的应用而言,必须要求平台足够牢固可靠,以应对反复的电源中断。

   平台的散热和所需空间也是一个考虑因素。为工厂车间构建的应用通常会为控制板留出空间,可以容纳所有电子设备以及风扇,以帮助冷却系统。在多尘的环境或设备必须防水的情况下,需要适当的防护等级(分别为IP65/IP67),还可能将需要密封可能会迅速升温的控制板。在这些条件下,需要更大的控制板和无风扇组件。安装到控制板的器件越多,它们产生的热量就越多,系统可能引发的问题也就越多,并且价格可能也会变得更高。

   考虑平台与其他设备的通信。几乎在所有的情况下,所选平台都需要与其他设备进行通信,这是机器视觉应用的一个关键方面,但往往是直到设计过程临近结束时,才考虑到这个方面。以必须发送数据进行打印的应用为例,就必须严格要求CPU与打印机进行通信。

   数据存储和检索要求可能也会影响平台选择。CPU具备将信息写入硬盘的能力。在GPU和FPGA上处理内存和持久存储,可能会更困难。在某些情况下,可能需要CPU来增强GPU或FPGA的功能,以严格处理与数据相关的问题。智能相机和紧凑的嵌入式视觉系统,可以是包括CPU、GPU、FPGA和数字信号处理器(DSP)的多种平台的组合。

   还必须考虑系统依赖性和将来的适用性。硬件可靠性和潜在的更换时间表应予以估计。多长时间内可以购买硬件和软件?如果所需要的处理能力发生变化,系统是否能够按要相应的需求向上或向下更新?对于所选的组件,多长时间能够提供相应的技术支持?是否有足够的人员具备操作组件的必要技能?将来寻找人员来运行系统是否会带来长期问题?

   还应该考虑所选组件的发展,以及它们将来是否会满足系统要求。如果FPGA或GPU产品线背后的工程师,以“解决机器视觉系统将要遇到的特定挑战”的心态开发下一代硬件,那么可能意味着赞成在应用中采用FPGA或GPU。如果硬件供应商试图针对一个不同的问题进行工程设计,而忽略了特定应用的需求,则可能对其硬件产品线的使用推广不利。

   考虑定制代码开发的要求以创建变通办法,有助于未来系统的适用性。机器视觉应用需要的自定义代码越多,系统开发缺陷的潜在可能性就越大,这是不利的一面。但是,如果要让应用程序长期满足最终用户的使用要求,则还需要自定义和扩展功能。如果供应商提供面向特定平台的工具,针对今天的问题提供解决方案,并具有很少甚至没有定制代码,但是如果需要的话,也可以添加定制代码,这可能就是采用该平台的原因。

   用户界面要求,通常可以被视为平台选择的准则。大多数系统最终不得不与人进行某种程度的通信。像素处理可以100%正确,但是如果系统无法与任何人交流信息,则系统可能不足以执行任务。CPU具有开发用户界面的最佳工具。

   可以将基于GPU、FPGA或CPU/GPU组合的系统设计为不带用户界面,而是通过网页提供总结信息,以监控结果。

   对于任何机器视觉任务,没有唯一正确的答案。但是,从三个不同的机器视觉系统中,可以看出对平台标准的考虑将如何推动这些系统的设计。

焊接查看器

   美国Artemis Vision公司签订合同,设计一款主要针对教学使用的焊接观察器。焊接涉及视场中部非常明亮的光线,以及黑暗的环境/背景,因此需要高动态范围(HDR)成像,才能同时显示焊接位置的背景和细节。

   该应用需要以不同的曝光时间进行多次曝光,然后再将图像拼接在一起,以渲染显示不同光量的单帧。要产生流畅的视频,至少需要帧率达30fps的输出。该系统最初是在英特尔i7 CPU上进行原型设计的。每幅输入帧需要30~35ms的处理时间,这意味着每60~70ms输出一幅经过处理的组合帧。该速度太慢无法支持30fps的输出帧率,每帧需要30~35ms的处理时间,因此CPU对于该应用不是可行的平台。

   考虑转移到多核服务器并对算法进行并行化处理,将算法移植到FPGA上。客户想要适合教学使用的系统,因此该系统需要使用工程教学中已经存在的硬件进行构建。

   教学中的计算机具有相当强大的GPU,可为工程软件渲染图像。将HDR算法放到GPU上的选项最有意义(见图1)。该算法是在一款NVIDIA图形卡上的CUDA中执行的。GPU在5~6ms内处理一帧,并在另外5~6ms内将帧复制到GPU内存。除了相机本身以外,不需要其他硬件即可创建焊接查看器。

图1 焊接检查应用程序的用户界面(UI)其使用GPU实现了快速图像处理速度

3D激光轮廓仪

   3D激光轮廓仪需要快速处理以支持较高的生产线速度。对于垂直于行进轴的视场中的1000个像素,最佳系统将捕获方形轮廓。该系统具有1000mm行程范围的1000mm视场,应该能够处理1000帧以获得1mm/像素的分辨率,通常每秒可处理数百帧(见图2)。

图2 FPGA为该3D激光轮廓仪提供速度确定性时序快速启动时间和可靠性

   需要快速启动时间,以使3D轮廓仪能够充分捕获和处理运动零件的图像。确定性的时序避免了使用编码器和排队零件,从而使系统的组装和调试更加简单。

   直接进出GPU内存的能力,给为GPU在3D激光轮廓分析应用中的使用提出挑战。设计为PC组件的GPU不需要操作系统,很容易通过CPU的操作系统使用。因此,FPGA通常被视为3D激光线轮廓仪的平台。FPGA提供速度、确定性时序、快速启动时间和可靠性。

尺寸测量系统

   使用片状材料的客户希望测量各种尺寸的板。要求的测量时长为2s。生产线以每分钟120英尺(约6m)的速度运行。板的尺寸从4x4英尺到4x8英尺,并且该系统需要检测拐角和边缘上的破碎。

   需要操作人员界面,以便可以更改板的类型,并且与任何工业系统一样,如果系统无法正常运行,则需要用户界面来提供错误消息。

   该系统最初由运行速度太慢的CPU构建。测量电路板尺寸并计算拐角和边缘是否完整,大约需要5s。边角算法花费了大量时间。

   通过指定感兴趣区域(ROI)来减少需要处理的像素数量,可以提高应用的速度。通过实施一个系统来裁剪出有限的边缘和拐角的ROI。由于采用了紧密裁剪的区域来验证边缘和拐角,计算时间减少到0.8~1.2s。对算法的更改,使得将应用保留在基于CPU的平台上成为可能(见图3)。

图3在这个尺寸测量系统中对于用户界面UI的需求使得CPU平台比较合适

结论

   正如这些示例所示,不存在适用于机器视觉应用的“万能”平台。选择CPU、GPU或FPGA,或者是这三者的某种组合,会受到许多变量因素的影响。智能相机可以使用CPU、DSP或CPU和FPGA的组合。在单个平台上可能存在有关功耗和处理速度的多种选择。最佳性能决定着什么是正确的解决方案。

为你推荐