必发彩票

广州乐行机器视觉设备技术有限公司

 

服务热线:

当前位置:主页 > 行业资讯 >

行业资讯

CPU或FPGA:谁更适合图像处理

时间:2019-01-02来源:广州乐行机器视觉设备技术有限公司浏览次数:

机器视觉在工业自动化系统中的应用有一定的历史。它取代了传统的手工检测,提高了生产质量和产量,摄像机在计算机、移动设备和汽车等日常生活设备中的普及率很高,但机器视觉的最大提高是处理能力,随着处理器性能每两年翻一番。随着对多核CPU和FPGA等并行处理技术的日益重视,可视化系统设计人员现在可以使用复杂的算法来实现数据的可视化和创建更智能的系统。
    
     性能改进意味着设计师可以实现更高的数据吞吐量,从而实现更快的图像采集,使用更高分辨率的传感器,并充分利用市场上动态范围最高的一些新相机。性能改进不仅使设计师能够更快地收集图像,而且还可以处理图像更快。预处理算法(如阈值和过滤)或处理算法(如模式匹配)也可以更快地执行。最终,设计者可以比以往更快地根据可视数据做出决策。
    
     随着视觉系统越来越多地集成最新一代的多核CPU和功能强大的FPGA,视觉系统设计者需要了解使用这些处理元素的好处和好处。他们不仅需要在正确的硬件上运行正确的算法,而且还需要知道哪种架构最适合T.继承人设计。
    
     在研究哪种算法最适合哪种处理元素之前,您应该了解最适合每个应用程序的体系结构类型。在开发基于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。这种架构通常用于摄像头链接摄像头,因为在FPGA上使用数字电路可以很容易地实现它们的采集逻辑。URE有两个主要优点:第一,与协同处理一样,在FPGA上执行预处理功能时,可以使用嵌入式处理将部分工作从CPU传输到FPGA。例如,在将像素发送到CPU之前,可以在FPGA上执行过滤或阈值处理等高速预处理。这也是减少了CPU必须处理的数据量,因为CPU上的逻辑只需要捕获感兴趣区域的像素,这最终提高了整个系统的吞吐量。这种体系结构的第二个优点是不使用CPU.fpgas ar就可以在FPGA中直接执行高速控制操作。e非常适合控制应用程序,因为它们提供非常快和高度确定的循环速率。一个例子是高速分类,其中FPGA向执行器发送脉冲。当脉冲通过执行器时,执行器将删除或分类零件。
    
     图2。在嵌入式FPGA处理架构中,您可以将摄像头接口直接连接到FPGA的管脚,这样像素就可以直接从摄像头发送到FPGA。
    
     通过对构建异构视觉系统的不同方法的基本了解,您可以看到在FPGA上运行的最佳算法。首先,我们需要了解CPU和FPGA的工作原理。为了解释这一概念,我们假设一个理论算法可以对图像执行四种不同的操作,然后看看如何通过当分别部署到CPU和FPGA时,ese四个操作工作。
    
     CPU按顺序执行操作,因此在启动第二个操作之前,必须对整个映像完成第一个操作。在这种情况下,假设算法中的每个步骤在CPU上运行需要6毫秒;因此,总处理时间为24毫秒。现在考虑在FPGA上运行相同的算法。因为由于FPGA的大规模并行性,算法中的四个操作可以同时对图像中的不同像素进行操作,这意味着接收第一个处理的像素只需2 ms,处理整个图像只需4 ms,因此总处理时间为6 ms,这比CPU执行速度快得多,即使使用在FPGA的协同处理架构和图像传输到CPU的过程中,整个处理时间(包括传输时间)比单独使用CPU要短得多。
    
     现在考虑一个真实的例子,例如粒子计数所需的图像。首先,我们需要应用卷积滤波器来锐化图像。然后,图像经过一个阈值生成一个二进制图像。这不仅通过将图像从8位单色转换为二进制来减少图像中的数据量,而且还为B准备图像。自然形态的应用。最后一步是使用形态来应用关闭功能。这样可以去除二元粒子中的任何空穴。
    
     如果仅在CPU上执行上述算法,则整个图像卷积步骤必须在阈值步骤开始之前完成。当使用NI的LabVIEW定向视觉开发模块和Xilinx Zynq-7020完全可编程的基于SOC的CRIO-9068 Compactrio控制器时,需要166.7 ms来实现上述算法。但是,如果相同算法在FPGA上运行,每一步都可以并行执行,在FPGA上运行同一个算法只需要8毫秒,请记住,8毫秒的时间包括从CPU发送到FPGA的DMA传输时间和算法完成的时间,在某些应用中,可能需要发送处理后的图像B。返回到CPU供应用程序的其他部分使用,如果再加上这一次,整个过程只需要8.5毫秒,一般情况下,该算法的FPGA实现速度比CPU快20倍。
    
     那么为什么不在FPGA上运行每个算法呢虽然FPGA比CPU更适合视觉处理,但也有一些折衷的优点。例如,考虑到CPU和FPGA的原始时钟频率。FPGA的时钟频率在100-200兆赫之间。显然,FPGA的时钟频率低于CPU的时钟频率,并且CPU可以在3GHz或高频率下轻松运行。因此,如果一个应用程序需要一个图像处理算法,该算法必须迭代运行,并且不能利用FPGA的并行性,CPU可以更快地处理它。前面讨论的示例算法在FPGA上运行时可以实现20倍的速度增长。该算法中的每个处理步骤都在每个像素上运行。R同时有一组像素,因此该算法可以利用FPGA的并行优势来处理图像,但是如果该算法使用模式匹配和OCR等处理步骤,则这些要求需要对整个图像进行即时分析,那么该FPGA的优势就比较勉强,这是由于缺乏对图像的并行性。LLEL的处理步骤和对大量内存的需要进行图像到模板的比较分析。虽然FPGA可以直接访问内存的内部和外部,但一般来说,FPGA可用的内存数量远远小于CPU可用的内存数量,或这些处理操作所需的内存数量。
    
     在图像处理中使用FPGA的优势取决于每个应用需求,包括应用特定的算法、延迟或抖动需求、I/O同步和功耗。通常,使用FPGA和CPU的架构可以充分利用各自的优势,在性能方面具有竞争优势。CE、成本和可靠性。然而,在实现基于FPGA的视觉系统中,最大的挑战之一是克服了FPGA的编程复杂性。视觉算法的开发实质上是一个迭代过程。有很多方法可以完成任何任务。在大多数情况下,需要确定的不是哪种方法可行,而是t哪种方法是最好的,最佳方法的确定随应用的不同而不同。例如,对于某些应用,速度至关重要;对于其他应用,精度更重要。至少,有几种不同的方法可以为特定应用找到最佳方法。
    
     为了最大限度地提高效率,无论使用哪个处理平台,都需要立即获得算法的反馈和基准信息,在使用迭代探索方法时,实时查看算法的结果将节省大量时间,正确的阈值是什么用二元形态滤光片去除颗粒有多大或多小哪种图像预处理算法和算法参数能最好地清除图像这是开发可视化算法的常见问题,关键是我们能否改变和快速查看结果。然而,传统的FPGA开发方法可能会减慢创新,因为在算法的每次设计更改之间都需要编译时间。解决这一问题的一种方法是使用算法开发。l允许您在编译FPGA时在相同的环境中开发CPU和FPGA,而不会遇到麻烦。ni vision assistant是一种算法工程工具,用于开发部署在CPU或FPGA上的算法,以帮助您简化视觉系统设计。您还可以在编译和运行之前使用vision assistant测试算法。g在目标硬件上,同时方便地访问吞吐量和资源利用率信息。
    
     图5。在FPGA硬件上采用基于配置的工具开发算法,结合集成的基准测试,可以减少代码编译的等待时间,从而提高开发速度。
    
     那么,在考虑谁更适合图像处理、CPU或FPGA时答案取决于具体情况。在使用最适合设计的处理元素之前,您需要了解应用程序的目标。但是,无论是哪种应用程序,基于CPU或FPGA的体系结构及其固有的优点都可以将机器视觉应用程序的性能提高一个级别。
    
     作者:BrandonTreece,德克萨斯州奥斯汀市NI总部数据采集与控制产品营销经理,负责机器视觉。
    
    

广州乐行机器视觉设备技术有限公司专业从事自动化检测设备,视觉传感器研究与开发,提供各种行业的解决方案,作为专注于机器视觉应用的公司,我们在视觉、机械、电气方面的整合能力达到了较高水平。能在短期内根据客户的需求研发、设计、生产出较高水平的非标设备、检测系统。

江南娱乐mn-seolink.com版权所有
联系电话:

企业邮箱:

友情链接:江南娱乐  江南娱乐登陆  江南娱乐充值  江南娱乐APP  江南娱乐  江南娱乐开户  

免责声明: 本站资料及图片来源互联网文章,本网不承担任何由内容信息所引起的争议和法律责任。所有作品版权归原创作者所有,与本站立场无关,如用户分享不慎侵犯了您的权益,请联系我们告知,我们将做删除处理!