嵌入式视觉图像处理:FPGA与GPU

  嵌入式视觉系统在许多方面与传统的机器视觉系统不同。从其设计到在非传统应用中的使用,它们的构建方式都与通常位于工厂内部,高度结构化的环境中并可以捕获高质量图像的机器视觉系统完全不同。

  嵌入式视觉系统需要高度紧凑,并在具有挑战性和非结构化的环境中运行,同时仍要提供高质量的图像。因此,它们的处理体系结构不同于大多数机器视觉系统中发现的体系结构。尽管嵌入式视觉仍然是一种新兴技术,但迄今为止,嵌入式系统中通常使用两种主要类型的处理器:现场可编程门阵列(FPGA)和图形处理单元(GPU)。

  什么是GPU?为什么将它们用于Embedded Vision?

  GPU被广泛用于嵌入式视觉系统中,因为它们能够提供大量的并行计算潜力。这甚至可以包括加速处理流水线中处理像素数据的关键部分。这在生成大量图像数据的高分辨率或高速应用中特别有用。通用GPU(GPGPU)是为满足各种应用程序的需求而构建的常见的GPU。

  所有GPU都利用软件来执行成像算法。这有很多好处,因为它允许用户根据需要调整或更改成像功能。这为一个系统完成多种类型的成像功能以及在现场微调视觉系统提供了较大的灵活性,这对于在户外和远离PC的许多嵌入式应用程序中都是很重要的。

  什么是FPGA?为什么在嵌入式视觉系统中使用FPGA?

  GPU是一种流行的选择,但是近年来,FPGA作为图像处理器而受到青睐。它们的主要缺点一直是,并且在某种程度上仍是FPGA缺乏GPU灵活性的事实。FPGA利用算法的硬件表示,这意味着要花费更多的时间和资源来重新编程或微调利用FPGA的系统的图像处理。

  但是,硬件要比软件快得多。FPGA由于较低的等待时间水平而得到了普及。它们还提供了更大的处理潜力,而能耗却低得多,并且可以加速计算机视觉管线的多个部分,而GPU只能加速一个。

  每种形式的处理器都有其自身的优点和缺点。如果您的应用程序需要高度的灵活性,那么GPU可能是正确的答案。如果低延迟和速度至关重要,那么FPGA可能是该应用的处理器。

  无论使用哪种类型的处理器,嵌入式视觉系统都在颠覆传统视觉行业,并在无法利用旧机器视觉系统的应用程序中增加视觉功能。