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的架构及其固有的优势都可以将机器视觉应用的性能提升一个等级。

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

    关注

    1646

    文章

    22074

    浏览量

    619766
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11097

    浏览量

    217676
  • 视觉算法
    +关注

    关注

    0

    文章

    32

    浏览量

    5809

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于FPGA实现FOC算法之PWM模块设计

    哈喽,大家好,从今天开始正式带领大家从零到一,在FPGA平台上实现FOC算法,整个算法的框架如下图所示,如果大家对算法的原理不是特别清楚的话,可以先去百度上学习一下,本教程着重介绍实现
    的头像 发表于 07-17 15:21 ?1420次阅读
    基于<b class='flag-5'>FPGA</b>实现FOC<b class='flag-5'>算法</b>之PWM模块设计

    基于Matlab与FPGA的双边滤波算法实现

    前面发过中值、均值、高斯滤波的文章,这些只考虑了位置,并没有考虑相似度。那么双边滤波来了,既考虑了位置,有考虑了相似度,对边缘的保持比前几个好很多,当然实现上也是复杂很多。本文将从原理入手,采用Matlab与FPGA设计实现双边滤波算法
    的头像 发表于 07-10 11:28 ?1087次阅读
    基于Matlab与<b class='flag-5'>FPGA</b>的双边滤波<b class='flag-5'>算法</b>实现

    基于FPGA的压缩算法加速实现

    本设计中,计划实现对文件的压缩及解压,同时优化压缩中所涉及的信号处理和计算密集型功能,实现对其的加速处理。本设计的最终目标是证明在充分并行化的硬件体系结构 FPGA 上实现该算法时,可以大大提高该算法
    的头像 发表于 07-10 11:09 ?1250次阅读
    基于<b class='flag-5'>FPGA</b>的压缩<b class='flag-5'>算法</b>加速实现

    shimetapi:开源RGB+EVS视觉融合相机事件相机工具链与算法

    事件相机的原始数据流,执行高级的计算机视觉算法,以提升数据质量、提取有用信息或进行三维理解。 包含的模块: 降噪 (Denoise): 去除事件流中的噪声,提高信号质量。 插值 (Inter
    的头像 发表于 06-26 13:52 ?201次阅读

    【「# ROS 2智能机器人开发实践」阅读体验】视觉实现的基础算法的应用

    的本质是解决“鸡与蛋”问题:机器人需要地图来定位,又需要准确定位来构建地图。书中从前端(传感器数据处理)和后端(位姿优化)两个层面解析了SLAM的算法逻辑。 激光雷达和视觉SLAM各有优劣,例如激光
    发表于 05-03 19:41

    湖南银河电气有限公司产品应用案例

    湖南银河电气有限公司产品应用案例
    发表于 04-23 11:21 ?0次下载

    FPGA开发任务

    我想请人帮我开发一款基于FPGA产品,把我写好MATLAB代码固化在FPGA中,实现算法加速和加密功能。有兴趣的联系我
    发表于 03-15 10:19

    fpgacpu的区别 芯片是gpu还是CPU

    一、FPGACPU的区别 FPGA(Field-Programmable Gate Array,现场可编程门阵列)和CPU(Central Processing Unit,中央处理器
    的头像 发表于 02-01 14:57 ?1759次阅读

    FPGA+GPU+CPU国产化人工智能平台

    算法架构可快速移植,接口灵活搭配,具备部署灵活、功耗和算力性价比高、支持人工智能推理应用部署等特点。FPGA+GPU+CPU多核异构平台架构示意图前面板实物图前面板
    的头像 发表于 01-07 16:42 ?1165次阅读
    <b class='flag-5'>FPGA+GPU+CPU</b>国产化人工智能平台

    如何制定一套优质的工业视觉检测算法方案?

    在现代工业生产中,视觉检测技术的应用正变得越来越广泛,它在提高产品质量、优化生产流程方面发挥着至关重要的作用。然而,与人脸识别、交通监控、安防监控等应用场景相比,工业视觉检测项目的场景更为特殊,它
    的头像 发表于 11-14 01:05 ?2603次阅读
    如何制定一套优质的工业<b class='flag-5'>视觉</b>检测<b class='flag-5'>算法</b>方案?

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

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

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

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

    TPA3255产品应用在消防广播,固定输入下, 如果输出负载变化时,输出电压还能保持不变吗?

    产品应用在消防广播或者公共广播。 固定输入下, 如果输出负载变化时,输出电压还能保持不变吗? 如果是100V定压 接20欧姆负载 能输出500W功率.
    发表于 10-09 08:07

    为什么FPGA属于硬件,还需要搞算法

    交流学习,共同进步。 交流问题(一) Q:为什么FPGA属于硬件,还需要搞算法? 刚入门准备学fpga但一开始学的是语法,感觉像是电路用软件语言描述出来,fpga
    发表于 09-09 16:54

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

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