如何为机器视觉应用选择最佳处理平台收藏

网友投稿 279 2024-01-23


   在机器视觉应用中,三种最常见的图像处理平台的是中央处理器(CPU)、图像处理器(GPU)和现场可编程门阵列(FPGA)    CPU是传统台式计算机和笔记本电脑的心脏在手机或平板电脑中,功耗更低的ARM处理器发挥着CPU的功能。

如何为机器视觉应用选择最佳处理平台收藏

CPU具有较大的指令集和大量的本地计算机语言库,例如C、C++、Java、C#和Python其中一些语言具有可将功能转移到GPU并在GPU上运行的软件包    传统上,GPU用于在PC上的视频游戏中渲染像素(即图像)。

笔记本电脑也通常具有GPUGPU越好,能够呈现的图像质量越好,帧率也越高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的组合在单个平台上可能存在有关功耗和处理速度的多种选择最佳性能决定着什么是正确的解决方案

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:军事应用推动生物识别技术发展收藏
下一篇:智能制造系统集成(系统集成策略在智能制造中的应用)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~