加入收藏 | 设为首页 |

覆盆子-CPU与FPGA哪个更适合图画处理?

海外新闻 时间: 浏览:245 次

跟着视觉体系越来越多地集成最新一代多核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要短得多。

现在考虑一个实在的比方,比方粒子计数所需的图画。

首要需求运用卷积滤镜来锐化图画。

接下来,经过阈值运转图画以生成二进制图画。这不只能够经过将其从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与FPGA哪个更适合图画处理?用CPU运转相同的算法提高了20倍。

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

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

前面评论的示例算法在FPGA上运转能够取得20倍的速度提高。该算法中的每个处理进程一起对各个像素或一组像素进行操作,因而该算法能够运用FPGA的并行优势来处理图画。 可是,假如算法运用比方形式匹配和OCR这样的处理进程,这些要求当即剖析整个图画,这覆盆子-CPU与FPGA哪个更适合图画处理?时候FPGA的优势就比较勉强了。这是由于短少处理进程的并行化,以及需求很多内存进行图画与模板之间的比对剖析。尽管FPGA能够直接拜访内部和外部存储器,但一般状况下,FPGA可用的存储器数量远不及CPU可用的数量,或是这些处理操作所需的数量。

战胜编程复杂性

FPGA用于图画处理的优势,取决于每种运用要求,包含运用的特定算法、推迟或颤动要求、I/O同步和功耗等要素。一般运用具有FPGA和CPU的架构,能充分运用FPGA和CPU各自的优势,而且在功能、本钱和可靠性方面都具有竞赛优势。可是,完结根据FPGA的视觉体系面对的最大应战之一是战胜FPGA的编程复杂性。视觉算法开发本质上是一个迭代进程。完结任何一项使命都有必要测验多种办法。大多数状况下,需求确认的不是哪种办法可行,而是哪种办法最好,而“最好办法”的判定则因运用的不同而不同。例如,关于某些运用而言,速度至关重要;而关于另一些运用,则更垂青准确度。至少,需求测验几种不同的办法才干为特定运用找到最好的办法。

为了完结生产率的最大化,不论运用哪种处理渠道,都需求当即取得关于算法的反应和基准测验信息。当运用迭代探索性办法时,实时检查算法成果将会节约很多时刻。什么是正确的阈值?用二进制形状滤波器除掉的颗粒多大或多小? 哪种图画预处理算法和算法参数能够最好地整理图画? 这些都是开发视觉算法时的常见问题,而关键在于是否能够更改并快速检查成果。可是,传统的FPGA开发办法或许会减缓立异,由于算法的每个规划改变之间需求编译时刻。战胜这一点的一个办法是运用一个算法开发东西,可让您在同一个环境进行CPU和FPGA的开发作业,而不会在FPGA编译时陷入困境。NI Vision Assistant是一种算法工程东西,用于开发布置到CPU或FPGA上的算法,以帮助您简化视觉体系规划。您还能够运用Vision Assistant在方针硬件上编译和运转覆盆子-CPU与FPGA哪个更适合图画处理?之前测验算法,一起轻松拜访吞吐量和资源运用率信息。

在具有集成基准测验的FPGA硬件上运用根据装备的东西开发算法,可削减等候代码编译的时刻,然后提高了开发速度。

因而在考虑谁更适合进行图画处理时,CPU仍是FPGA?答案是“视状况而定”。您需求了解运用的方针,才干运用最适合该规划的处理元件。可是,不论是什么运用,根据CPU或FPGA的架构及其固有的优势都能够将机器视觉运用的功能提高一个等级。

来历:FPGA之家