1 CPU与FPGA视觉算法产品应用案例-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CPU与FPGA视觉算法产品应用案例

5RJg_mcuworld 来源:互联网 作者:佚名 2018-01-23 09:51 次阅读

机器视觉工业自动化系统中的应用已经有一定的历史,它取代了传统的人工检查,提高了生产质量和产量。 我们已经看到了相机在计算机、移动设备和汽车等日常生活设备中的迅速普及,但是机器视觉的最大进步莫过于处理能力。

随着处理器的性能以每两年翻一番的速度不断提升,以及多核CPUFPGA等并行处理技术日益受到关注,视觉系统设计人员现在可以应用复杂的算法来可视化数据,并创建出更加智能的系统。

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

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

1内联处理和协处理

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

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

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

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

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

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

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

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

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

2CPU与FPGA视觉算法

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

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

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

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

图3.由于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倍。

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

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

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

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

虽然FPGA可以直接访问内部和外部存储器,但通常情况下,FPGA可用的存储器数量远不及CPU可用的数量,或是这些处理操作所需的数量。

4克服编程复杂性

FPGA用于图像处理的优势,取决于每种应用要求,包括应用的特定算法、延迟或抖动要求、I/O同步和功耗等因素。通常使用具有FPGA和CPU的架构,能充分利用FPGA和CPU各自的优势,并且在性能、成本和可靠性方面都具有竞争优势。然而,实现基于FPGA的视觉系统面临的最大挑战之一是克服FPGA的编程复杂性。

视觉算法开发本质上是一个迭代过程。完成任何一项任务都必须尝试多种方法。大多数情况下,需要确定的不是哪种方法可行,而是哪种方法最好,而“最好方法”的判定则因应用的不同而不同。例如,对于某些应用而言,速度至关重要;而对于另一些应用,则更看重准确度。至少,需要尝试几种不同的方法才能为特定应用找到最好的方法。

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

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

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21729

    浏览量

    602964
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10854

    浏览量

    211568
  • 视觉算法
    +关注

    关注

    0

    文章

    30

    浏览量

    5544

原文标题:CPU vs FPGA,图像处理谁更厉害?

文章出处:【微信号:mcuworld,微信公众号:嵌入式资讯精选】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    差分硅振替换SiTime产品应用于SSD,相位抖动低于350fs

    差分硅振替换SiTime产品应用于SSD,相位抖动低于350fs
    的头像 发表于 11-08 09:41 192次阅读
    差分硅振替换SiTime<b class='flag-5'>产品应用</b>于SSD,相位抖动低于350fs

    阿丘科技上榜CMVU“机器视觉创新产品TOP10”

    近日,机器视觉产业联盟(CMVU)揭晓“2023年度机器视觉创新产品TOP10”榜单结果,阿丘科技凭借工业视觉算法平台AIDI的卓越技术创新
    的头像 发表于 11-02 08:06 292次阅读
    阿丘科技上榜CMVU“机器<b class='flag-5'>视觉</b>创新<b class='flag-5'>产品</b>TOP10”

    锐思智芯展示融合视觉感知技术创新与产品应用

    日前,计算机视觉和人工智能领域最具影响力的顶级学术会议——IEEE国际计算机视觉与模式识别会议(CVPR2024)在美国西雅图会议中心拉开帷幕。
    的头像 发表于 08-28 14:36 489次阅读

    FPGA在自动驾驶领域有哪些应用?

    FPGA,分别用于传感器数据处理、视觉算法加速和车控算法优化。FPGA通过同时支持FMC和PCI,实现了与ARM等处理器的高速数据交互。激光
    发表于 07-29 17:09

    计算机视觉技术的AI算法模型

    计算机视觉技术作为人工智能领域的一个重要分支,旨在使计算机能够像人类一样理解和解释图像及视频中的信息。为了实现这一目标,计算机视觉技术依赖于多种先进的AI算法模型。以下将详细介绍几种常见的计算机
    的头像 发表于 07-24 12:46 797次阅读

    基于FPGA EtherCAT的六自由度机器人视觉伺服控制设计

    平台采用 dsp对图像进行处理,其处理速度较慢,无法满足图像处理实时性要求,限制了机器视觉的应用。FPGA作为一种硬件平台,用于数字图像处理,具有速度快、集成度高、可靠性强等优点。为了提高图像的质量
    发表于 05-29 16:17

    FPGA能实现什么样的算法

    FPGA功能如此强大,请问用FPGA能实现或者比较适合实现什么样的算法
    发表于 05-26 20:18

    武汉凡谷:现阶段已有产品应用到5.5G系统

    近日,武汉凡谷在接受机构调研时表示,公司具备5.5G方面的产品,如多频多通道滤波器,现阶段有相关的产品应用到客户的5.5G系统。
    的头像 发表于 05-20 09:54 532次阅读

    基于FPGA的常见的图像算法模块总结

    意在给大家补充一下基于FPGA的图像算法基础,于是讲解了一下常见的图像算法模块,经过个人的总结,将知识点分布如下所示。
    的头像 发表于 04-28 11:45 588次阅读
    基于<b class='flag-5'>FPGA</b>的常见的图像<b class='flag-5'>算法</b>模块总结

    FPGA压缩算法有哪些

    在图像压缩算法中可以采用哈夫曼编码的方式对编码冗余的信息进行压缩,可以采用预测的方式来减少像素间冗余,可以采用量化的方式完成心理视觉冗余信息的去除
    的头像 发表于 04-15 11:48 637次阅读
    <b class='flag-5'>FPGA</b>压缩<b class='flag-5'>算法</b>有哪些

    AI时代下的场效应管功能运用与产品应用

    AI时代下的场效应管功能运用与产品应用
    的头像 发表于 03-25 15:07 523次阅读
    AI时代下的场效应管功能运用与<b class='flag-5'>产品应用</b>

    计算机视觉的十大算法

    随着科技的不断发展,计算机视觉领域也取得了长足的进步。本文将介绍计算机视觉领域的十大算法,包括它们的基本原理、应用场景和优缺点。这些算法在图像处理、目标检测、人脸识别等领域有着广泛的应
    的头像 发表于 02-19 13:26 1231次阅读
    计算机<b class='flag-5'>视觉</b>的十大<b class='flag-5'>算法</b>

    AMAZINGIC晶焱科技:面板产品应用的EOS最佳解決方案

    AMAZINGIC晶焱科技:面板产品应用的EOS最佳解決方案
    的头像 发表于 01-24 10:16 602次阅读

    怎么用FPGA算法 如何在FPGA上实现最大公约数算法

    FPGA算法的优点在于它们可以提供高度的定制化和灵活性,使得算法可以根据实际需求进行优化和调整。此外,FPGA还可以实现硬件加速,提供比传统处理器更高的计算性能和吞吐量。因此,
    的头像 发表于 01-15 16:03 2221次阅读

    FPGA图像处理之CLAHE算法

    FPGA图像处理--CLAHE算法(一)中介绍了为啥要用CLAHE算法来做图像增强。
    的头像 发表于 01-04 12:23 2505次阅读
    <b class='flag-5'>FPGA</b>图像处理之CLAHE<b class='flag-5'>算法</b>