历史上的今天
返回首页

历史上的今天

今天是:2025年01月09日(星期四)

正在发生

2018年01月09日 | CPU vs FPGA 图像处理谁更“应景”?

2018-01-09 来源:eefocus

机器视觉在工业自动化系统中的应用已经有一定的历史,它取代了传统的人工检查,提高了生产质量和产量。 我们已经看到了相机在计算机、移动设备和汽车等日常生活设备中的迅速普及,但是机器视觉的最大进步莫过于处理能力。随着处理器的性能以每两年翻一番的速度不断提升,以及多核CPU和FPGA等并行处理技术日益受到关注,视觉系统设计人员现在可以应用复杂的算法来可视化数据,并创建出更加智能的系统。

性能的提高意味着设计人员可以获得更高的数据吞吐量,从而实现更快速的图像采集,使用更高分辨率的传感器,并充分利用市场上具有最高动态范围的一些新款相机。性能的提高不仅可让设计人员更快速地采集图像,而且还能更快速地处理图像。预处理算法(如阈值和滤波)或处理算法(如模式匹配)也可以更快速地执行。最终设计人员能够比以往更快地基于可视化数据制定决策。

德州奥斯汀NI总部数据采集和控制产品市场经理,主要负责机器视觉领域的Brandon Treece认为,随着视觉系统越来越多地集成最新一代多核CPU和强大FPGA,视觉系统设计人员需要了解使用这些处理元件的好处和得失。他们不仅需要在正确的硬件上运行正确的算法,还需要了解哪些架构最适合作为其设计的基础。

内联处理和协处理

在研究哪种类型的算法最适合哪个处理元件之前,您应该了解每个应用最适合的架构类型。在开发基于CPU和FPGA的异构架构的视觉系统时,需要考虑两个主要的使用情况: 嵌入式处理和协处理。

如果是FPGA协处理,FPGA和CPU将共同工作,共享处理负载。这种架构最常用于GigE Vision和USB3 Vision相机,因为它们的采集逻辑最好是在CPU上实现:

您可以使用CPU采集图像,然后通过直接存储器访问(DMA)将其发送到FPGA,以便FPGA可以执行诸如滤波或颜色平面提取等操作。然后,您可以将图像发送回CPU以进行更高级的操作,例如光学字符识别(OCR)或模式匹配。

在某些情况下,您可以在FPGA上实现所有的处理步骤,并只将处理结果发送回CPU。这使得CPU可以将更多的资源用于运动控制、网络通信和图像显示等其他操作。

在FPGA协处理中,图像使用CPU进行采集后,通过DMA发送到FPGA,然后由FPGA对图像进行处理。

在嵌入式FPGA处理架构中,您可以将相机接口直接连接到FPGA的引脚,以便像素可直接从相机发送到FPGA。这种架构通常与Camera Link相机一起使用,因为它们的采集逻辑易于使用FPGA上的数字电路来实现。 这个架构有两个主要的好处:

首先,与协处理一样,在FPGA上执行预处理功能时,可以使用嵌入式处理将部分工作从CPU转移到FPGA。例如,在将像素发送到CPU之前,可以在FPGA上执行高速预处理,如滤波或阈值处理。这也减少了CPU必须处理的数据量,因为CPU上的逻辑只需捕获感兴趣区域的像素,这最终提高了整个系统的吞吐量。

这种架构的第二个好处是可以在不使用CPU的情况下直接在FPGA内进行高速控制操作。FPGA是控制应用的理想选择,因为它们可以提供非常快速且高度确定的循环速率。其中一个例子就是高速分类,其中FPGA向执行器发送脉冲,当脉冲通过执行器时,执行器会对零件进行剔除或分类操作。

在嵌入式FPGA处理架构中,您可以将相机接口直接连接到FPGA的引脚,以便像素可直接从相机发送到FPGA。

CPU与FPGA视觉算法

在对构建异构视觉系统的不同方式有了基本了解,您可以看一下在FPGA上运行的最佳算法。 首先需要了解CPU和FPGA的工作原理。 为了解释这一概念,我们假设一个理论算法可对图像执行四个不同的操作,然后看一下这四个操作部署到CPU和FPGA上时分别是如何运行的:

CPU按顺序执行操作,因此第一个操作必须在整个图像上运行结束后,第二个操作才能启动。在本例中,假设算法中的每个步骤在CPU上运行需要6ms; 因此,总处理时间是24ms。

现在考虑在FPGA上运行相同的算法。由于FPGA本质上是大规模并行的,所以该算法中的四个操作可以同时对图像中的不同像素上操作。这意味着接收第一个处理的像素仅需2ms的时间,处理整个图像需要4ms的时间,因而总处理时间为6ms。这比CPU的执行速度快得多。

即使使用FPGA协处理架构并将图像传输到CPU,整个处理时间(包括传输时间)也比单独使用CPU要短得多。

由于FPGA在本质上是大规模并行的,因此相比CPU,可显着性能提升。

现在考虑一个真实的例子,比如粒子计数所需的图像。

首先需要应用卷积滤镜来锐化图像。

接下来,通过阈值运行图像以生成二进制图像。这不仅可以通过将其从8位单色转换为二进制来减少图像中的数据量,还可以为二进制形态学应用准备图像。

最后一步是使用形态学来应用关闭功能。 这会去除二进制粒子中的任何孔。

如果仅在CPU上执行上述算法,则必须在阈值步骤开始之前完成整个图像的卷积步骤。使用NI公司面向LabVIEW的视觉开发模块(Vision Development Module)和基于Xilinx Zynq-7020全可编程SoC的cRIO-9068 CompactRIO控制器时,执行上述算法需要的时间为166.7ms。

但是,如果在FPGA上运行相同的算法,则可以并行执行每个步骤。在FPGA上运行相同的算法只需8ms即可完成。请记住,8ms的时间中包括将图像从CPU发送到FPGA的DMA传输时间,以及算法完成的时间。在某些应用中,可能需要将处理后的图像发回到CPU,以供应用中的其他部分使用。如果加上这个时间的话,整个过程也只需8.5ms。总的来说,FPGA执行这个算法要比CPU快20倍。

使用FPGA协同处理架构运行视觉算法,性能比仅用CPU运行同样的算法提高了20倍。

那么,为什么不在FPGA上运行每个算法呢?

尽管FPGA比CPU更有益于视觉处理,但是要享受这些优势也要做出一定的权衡。例如,考虑CPU与FPGA的原始时钟频率。FPGA的时钟频率在100~200MHz数量级。很显然,FPGA的时钟频率低于CPU的时钟频率,CPU可以轻松地在3GHz或更高的频率下运行。因此,如果一个应用需要一种必须迭代运行的图像处理算法,并且不能利用FPGA的并行性,那么CPU能够更快地进行处理。

前面讨论的示例算法在FPGA上运行可以获得20倍的速度提升。该算法中的每个处理步骤同时对各个像素或一组像素进行操作,因此该算法可以利用FPGA的并行优势来处理图像。 然而,如果算法使用诸如模式匹配和OCR这样的处理步骤,这些要求立即分析整个图像,这时候FPGA的优势就比较勉强了。这是由于缺少处理步骤的并行化,以及需要大量内存进行图像与模板之间的比对分析。虽然FPGA可以直接访问内部和外部存储器,但通常情况下,FPGA可用的存储器数量远不及CPU可用的数量,或是这些处理操作所需的数量。

克服编程复杂性

FPGA用于图像处理的优势,取决于每种应用要求,包括应用的特定算法、延迟或抖动要求、I/O同步和功耗等因素。通常使用具有FPGA和CPU的架构,能充分利用FPGA和CPU各自的优势,并且在性能、成本和可靠性方面都具有竞争优势。然而,实现基于FPGA的视觉系统面临的最大挑战之一是克服FPGA的编程复杂性。视觉算法开发本质上是一个迭代过程。完成任何一项任务都必须尝试多种方法。大多数情况下,需要确定的不是哪种方法可行,而是哪种方法最好,而“最好方法”的判定则因应用的不同而不同。例如,对于某些应用而言,速度至关重要;而对于另一些应用,则更看重准确度。至少,需要尝试几种不同的方法才能为特定应用找到最好的方法。

为了实现生产率的最大化,不论使用哪种处理平台,都需要立即获得关于算法的反馈和基准测试信息。当使用迭代探索性方法时,实时查看算法结果将会节省大量时间。什么是正确的阈值?用二进制形态滤波器剔除的颗粒多大或多小? 哪种图像预处理算法和算法参数可以最好地清理图像? 这些都是开发视觉算法时的常见问题,而关键在于是否能够更改并快速查看结果。然而,传统的FPGA开发方法可能会减缓创新,因为算法的每个设计变化之间需要编译时间。克服这一点的一个方法是使用一个算法开发工具,可让您在同一个环境进行CPU和FPGA的开发工作,而不会在FPGA编译时陷入困境。NI Vision Assistant是一种算法工程工具,用于开发部署到CPU或FPGA上的算法,以帮助您简化视觉系统设计。您还可以使用Vision Assistant在目标硬件上编译和运行之前测试算法,同时轻松访问吞吐量和资源利用率信息。

在具有集成基准测试的FPGA硬件上使用基于配置的工具开发算法,可减少等待代码编译的时间,从而提高了开发速度。

因此在考虑谁更适合进行图像处理时,CPU还是FPGA?答案是“视情况而定”。您需要了解应用的目标,才能使用最适合该设计的处理元件。但是,不管是什么应用,基于CPU或FPGA的架构及其固有的优势都可以将机器视觉应用的性能提升一个等级。


推荐阅读

史海拾趣

台湾凯励(Carli)公司的发展小趣事

在电子行业中,品质控制和质量管理是企业生存和发展的关键。凯励公司深知这一点,建立了严格的质量管理体系和检测机制。公司从原材料采购到生产制造、产品检测等各个环节都严格把控品质,确保产品的稳定性和可靠性。此外,凯励公司还引进了先进的生产设备和检测仪器,提高了生产效率和产品质量。

AdaptivEnergy公司的发展小趣事

随着技术的不断成熟和市场的不断拓展,凯励公司开始在全球范围内布局。1997年,公司在广东省东莞市设立“东莞凯励电子有限公司”,进一步扩大生产规模。2002年,又在浙江省嘉兴市设立“浙江嘉兴凯励电子有限公司”,进一步完善了公司的产业布局。这些举措不仅提升了凯励公司的产能和效率,也使其能够更好地满足全球客户的需求。

风华邦科(FH-BK)公司的发展小趣事

近年来,随着国家对电子信息和无人机行业的政策支持力度不断加大,FlyWin集团迎来了快速发展的机遇。公司充分利用政策红利,加大在技术创新、市场拓展和人才培养等方面的投入。同时,公司还积极参与地方政府组织的各类科技创新活动和产业论坛,与同行企业、科研机构及政府部门建立了良好的合作关系。在多方努力下,FlyWin集团的业务规模不断扩大,品牌影响力显著提升,成为了电子行业中一颗璀璨的新星。

Herley New York公司的发展小趣事

在电子科技领域,FlyWin集团不断投入研发资源,致力于新技术的开发与应用。公司成立了专门的研发团队,专注于人工智能、物联网等前沿技术的探索。通过不断的技术创新,FlyWin成功推出了一系列具有自主知识产权的电子产品,如智能传感器、物联网解决方案等。这些产品不仅提升了公司的市场竞争力,也为公司的长远发展提供了强大的技术支撑。

浙江凡华(FANHAR)公司的发展小趣事

FlyWin集团旗下的另一家公司,专注于电子元器件的回收与再利用。随着电子产品的快速迭代,废旧电子设备的处理成为一大难题。该公司通过建立完善的回收网络和先进的处理技术,有效回收了包括粤翔贴片排阻在内的多种电子元器件。这些回收的元件经过专业检测和处理后,部分被重新用于生产,部分则被安全环保地处置,有效减少了电子垃圾对环境的污染。这一举措不仅为公司带来了经济效益,也为社会的可持续发展贡献了一份力量。

ASM公司的发展小趣事

在集成电路商业化发展的黄金时期,ASM公司凭借其在硅材料领域的深厚积累,不断推出创新产品,满足市场日益增长的需求。公司通过杂志、展会等营销工具,积极推广其产品和服务,逐渐在行业内树立了良好的口碑。同时,ASM公司还不断拓展其业务领域,从最初的半导体材料供应逐渐扩展到更广泛的电子材料和设备领域。

问答坊 | AI 解惑

DIY STM32

冥冥中,ARM江湖中出现一位超牛战士,话说他身披华丽的战甲(2.8寸彩屏触摸模块),手握强捍的战刀(JLINK V7传真器),拥有强劲的生命力(STM32F103RBT6 ARM Cortex-M3内核).听闻战士武艺高超,不知何时从何地,掀风鼓浪,再战江湖....... http://item.taoba ...…

查看全部问答>

招 聘

招   聘 公司简介: 深圳市中海资讯科技有限公司成立于2001年,注册资本1000万元,是中国海外集团旗下专业从事物流信息技术产品研发与服务的子公司。 公司致力于运用最先进信息技术、物流技术为物流企业提供包括咨询、软件开发、硬件 ...…

查看全部问答>

求m68k的c/c++编译器!!哪位好心的人帮帮忙给个地址。要能用的哦

求m68k的c/c++编译器!!哪位好心的人帮帮忙给个地址。要能用的哦…

查看全部问答>

跪求!!!!!!!!关于benq m23GPRS模块的数据成功发送后的问题

求助各位大侠,小弟最近用c51控制m23上网发送数据,看说明上写到如下 ---------------------------------------------------------------- 问:在数据通讯状态下,模块在什么条件下确认一帧数据发送完毕并通过 INTERNET 网发送到远端? 答: 由于 ...…

查看全部问答>

MXB7843触摸屏驱动问题

我现在在做wince下的触摸屏驱动,用A/D转换控制芯片MXB7843.现在驱动加载了,但是检测不到触摸屏按下的中断信号.这个中断信号是由芯片MXB7843产生的,当屏被按下进,MXB7843输出中断信号到CPU的中断I/O引脚上.现在是MX7843的中断信号产生不了,一直为低. ...…

查看全部问答>

基于LabVIEW图形界面的TI LM3S8962的开发--LabVIEW学习札记

如果初学LabVIEW的坛友,我想这个对你会很有帮助的…

查看全部问答>

产品被同事剽窃买给别家公司怎么办?

                                 我知道的至少两次,而且手段极其下流无耻,第一次说老板要他做一个设备与我的设备配套,需要我的源码和图纸,结果 ...…

查看全部问答>

求快热式电热水器仿真

(一)用2位数码管显示出水温度,能显示设定功率档位。    (二)温度测试显示范围为00-99℃,精度为±1℃。    (三)设置3个功率档位指示灯,1-4档1个灯亮,5-8档2个灯亮,9档3个灯全亮,0档无功率输出,档位灯不亮。 &nb ...…

查看全部问答>

【挖电源】晒一下我身边的电源

我款电源意义重大,是我哥哥送给我的,当时我记得他的一句话。“就让它开始你的单片机开发吧”。说出来怕你不信这个电源跟我十来年了,要不是这次活动我还不拿出来呢。 这个电源老好,有+5、-5、正12、地 三路软出2A模样。唉,有次它不干活了,电 ...…

查看全部问答>