在FPGA上进行图像处理及其示例

在FPGA上进行图像处理及其示例,第1张

借助FPGA技术和NI视觉开发模块,您可以对从相机采集的图像进行高速现场可编程门阵列(FPGA)处理。 FPGA处理尤其适用于要求图像采集和处理之间具有低延迟的应用。 本文概述了如何在FPGA上进行图像处理,包括典型的应用案例。
 

1. FPGA编程介绍

NI LabVIEW FPGA模块是LabVIEW图形化编程环境的自然扩展。 您可以使用VHDL等底层语言进行复杂的FPGA编程。 但是如果您熟悉LabVIEW,您将可快速学会使用LabVIEW FPGA。 这可大幅缩短FPGA编程应用的开发时间,避免进行自定义硬件设计。 与使用HDL进行编程不同,您可以在LabVIEW程序框图界面上开发应用,LabVIEW FPGA会合成图形化代码并将其部署到FPGA硬件上。

2. FPGA图像处理

许多图形处理算法具有内在并行性,因此适用于使用FPGA。 这些包含感兴趣像素、行和区域运算的算法不需要图案(pattern)等高级图像信息。 您可以同时对多个小区域位或图像的多个区域执行这些函数。 图像数据也可以并行传输到FPGA并同时进行处理,这是因为数据的处理不需要使用中央处理器。 NI视觉开发模块包含了50多个图像处理函数,可结合NI LabVIEW FPGA模块在FPGA上处理图像。 以下列出了几个视觉开发模块可以用于FPGA的图像处理函数示例:

预处理 

图像变换

图像算子

阴影校正

拜尔解码

色彩空间转换

一维和二维快速傅里叶变换

滤波(平滑/锐化)

二值形态学

特征抽取

边缘、线和棱角

二进制对象

颜色

测量

质心

面积测算

 

3. 视觉开发模块FPGA功能概述

视觉开发模块与NI LabVIEW FPGA模块一起安装后,“视觉”选板就会包含用于FPGA图像处理的函数。

在FPGA上进行图像处理及其示例,图1. 视觉选板包含了多个用于FPGA图像处理的函数。,第2张

图1. 视觉选板包含了多个用于FPGA图像处理的函数。

视觉选板包含了图像变换VI,可用于FPGA和CPU之间的图像传输。 第二部分——FPGA视觉应用案例探讨了不同的应用场景以及为什么FPGA和CPU之间传输图像时有时需要转换图像。

NI视觉开发模块包含了Vision Assistant Express VI,该VI可通过握手和同步自动生成LabVIEW FPGA图像处理代码,无需编写底层同步代码。 您可以通过LabVIEW程序框图打开Vision Assistant,也可以将其作为一个独立的程序打开来创建针对特定NI硬件的LabVIEW项目。

在FPGA上进行图像处理及其示例,图2. Vision Assistant可作为一个独立的程序打开来生成针对特定硬件的代码。,第3张

图2. Vision Assistant可作为一个独立的程序打开来生成针对特定硬件的代码。

选择好硬件之后,Vision Assistant可以估算出图像处理脚本所需的FPGA资源。 然后生成一个包含一个主机VI和FPGA VI的LabVIEW项目来进行图像处理和转换。

在FPGA上进行图像处理及其示例,图3. 创建图像处理脚本之后,Vision Assistant将自动生成一个包含硬件终端、主机VI(如果规定的话)和FPGA VI的LabVIEW项目来进行图像处理和转换。,第4张

图3. 创建图像处理脚本之后,Vision Assistant将自动生成一个包含硬件终端、主机VI(如果规定的话)和FPGA VI的LabVIEW项目来进行图像处理和转换。

4. FPGA视觉应用案例

应用场景1: 仅FPGA的处理,用于高速控制

FPGA图像处理可降低图像分析所需的计算资源。 由于FPGA是一个硬件资源,因而可将CPU资源释放出来来执行其他运算。 执行分析时不需要CPU的干预,因此大大降低了图像处理到控制信号输出之间的延迟。 图4显示的例子可帮助您了解如何使用FPGA来释放CPU资源。 在本例中,FPGA执行所有的图像处理并生成输出信号。 这使得系统延迟降到最低,从而能够快速生成控制信号。

在FPGA上进行图像处理及其示例,图4. 所有处理任务均在终端的FPGA上执行。 这使得CPU能够执行其他任务,从而最大程度降低系统延迟。,第5张

图4. 所有处理任务均在终端的FPGA上执行。 这使得CPU能够执行其他任务,从而最大程度降低系统延迟。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2644112.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-12
下一篇 2022-08-12

发表评论

登录后才能评论

评论列表(0条)

保存