在物体检测和分类等机器视觉任务中,高效的特征提取至关重要。Basler视觉方案利用 FPGA处理流程简化了这一过程,通过直接在FPGA上运行Blob分析,提高了方案的实时性能,这一独特优势能够显著优化计算成本。
高效特征提取:专注于关键信息
典型的特征提取过程:去拜耳 > 色彩空间转换 > HSI 阈值处理 > 图像形态学处理 > Blob 分析
特征提取可将原始图像数据转化为数字特征,为物体检测和分类等任务提供更精确和专业的支持。通过专注于关键图像特征并降低数据维度,特征提取不仅能提高数据处理的实时性,还能提高处理效率。
上图展示了基于 FPGA 和 CPU 架构的典型特征提取流程:去拜耳、色彩空间转换、HSI 阈值处理、形态过滤和 Blob 分析。这些步骤将图像转换成计算机可以解读的格式。在最后一步中,被测物被识别为 64 位格式的 Blob,左边的数字代表其边界框,右边的数字显示其面积。
FPGA处理流程:提高帧速率,降低CPU负载
基于FPGA和CPU典型特征提取步骤对比
Basler采用500万像素的CXP-12接口相机进行演示,将其设置为以122fps的速率运行。随后,在PC端CPU与图像采集处理卡端的FPGA上,分别采用VisualApplets以进行典型特征提取流程的对比,并得出以下结论:
· CPU:占用100%CPU负载,帧速率降至9fps;
· FPGA:占用9%CPU负载,帧速率维持在122fps;
由此可以看出,对于复杂且对时序要求严格的视觉任务,FPGA 处理流程可确保最佳性能,以最优的 CPU 负载维持高帧率运行。
了解 Blob 分析的作用
Blob 分析可识别并分析二进制图像中的连接区域(Blob),提取关键图像数据,如对象的大小、形状、位置、面积和连接性。
虽然许多人认为 FPGA 在图像采集卡中的功能仅限于图像预处理,但其实远远不止于此。通常情况下,图像处理最后阶段执行的 Blob 分析由 CPU 处理。然而,考虑到 Blob 分析对资源的需求,将其转移到 FPGA 上可显著降低 CPU 负载,提高系统整体性能。
在FPGA端运行Blob分析产生显著差异的原因?
在另一组测试中,Basler采用2500万像素的CXP-12相机,并使其以72fps的帧速率进行51*51,共计2601点网格的检测,在CPU和FPGA端同时运行Blob分析并进行对比。结果如下:Blob 分析需要高强度、高密度的计算,如果由中央处理器处理,会大大降低实时任务的速度,导致装配线缺陷检测等关键应用出现延迟。将 Blob 分析硬连接到 FPGA 上可大大降低 CPU 负载,使系统以最低延迟全速运行。
由FPGA和CPU进行Blob分析的对比
在难度高、对时序要求高的应用场景(如高速网状检测系统)中,通过在FPGA上执行图像预处理和分析,仅需处理存在缺陷的区域,从而将PC端数据负载大幅降低。借助Basler 简单易用的FPGA编程软件VisualApplets,能够实现快速、高效的处理,且延迟极低。我们的FPGA方案采用单次通过算法,一次性处理图像,并以最小的计算成本优化实时应用。
基于FPGA的Blob分析的主要优势:
· 数据处理高效:在流程初期即进行预处理,减轻数据负载。
· 无额外延迟:保证实时性能,不牺牲速度。
· 系统性能提升:最大化相机和系统能力。
· 应用广泛:适用于快速移动和复杂应用环境。
(来源:Basler计算机视觉)