本研究展示了在Ultra96-V2异构平台上基于FPGA实现的Sobel边缘检测算法,评估了从256 × 256到2560 × 1440不同图像分辨率下的资源占用、功耗和处理速度。所提出的架构在实时图像处理应用中表现出亚线性的资源扩展特性。
需要JoVE订阅才能观看此内容。 请登录或开始免费试用
本研究展示了在Ultra96-V2异构平台上基于FPGA实现的Sobel边缘检测算法,评估了从256 × 256到2560 × 1440不同图像分辨率下的资源占用、功耗和处理速度。所提出的架构在实时图像处理应用中表现出亚线性的资源扩展特性。
边缘检测是计算机视觉中的一个关键领域,已成为多种应用领域的重要组成部分。边缘检测能够识别图像中的边缘,这些边缘是图像中的关键特征,代表了有助于从图像中提取关键且具有区分性信息的重要属性。边缘检测的硬件实现必须具备高速性、资源占用少、功耗低,并能适应不同的图像分辨率。本文在 Ultra96-V2 这一现代异构现场可编程门阵列(FPGA)平台上,实现了适用于自适应图像分辨率的 Sobel 边缘检测,支持从低分辨率图像到全高清图像的处理。结果显示,对于低分辨率图像,仅使用了板载 FPGA 资源的 5%,包括查找表(LUTs)、触发器(FF)、数字信号处理器(DSP)和块存储器(BRAM),而高分辨率图像则消耗了约 23% 的板载资源。这表明从低分辨率过渡到高分辨率图像时,资源使用量的增加不到 20%。此外,最高分辨率下的功耗约为 2 W,高分辨率图像的最大工作频率为 136 MHz,低分辨率图像为 166 MHz,频率仅下降 18%。所提出的架构实现了亚线性资源扩展,在像素数量增加 56 倍的情况下,资源使用量增加不到 20%,速度和功耗的降低也均小于 20%,充分体现了现代异构 FPGA 架构的优势。因此,该设计具备自适应分辨率能力和低资源扩展特性,特别适用于对高质量图像处理有要求的实时边缘检测应用。
边缘检测已成为当今各种应用领域中几乎所有计算机视觉技术的关键组成部分1。边缘检测是一种特征提取步骤,负责从图像中提取具有信息量且显著的细节,可广泛应用于多种场景2。图像中的边缘表示亮度发生突变的区域,因此能够提供关于该图像的重要且独特的信息。该过程有助于消除不必要和无关的细节,仅保留关键且独特的元素,以便针对特定应用进行进一步处理。
边缘检测的重要性体现在其在多种任务中的应用,包括图像分割、目标检测与识别、特征提取、图像增强、目标识别、医学成像、监控、工业自动化、自动驾驶、增强现实和机器人技术2,3,4,5,6,如图所示 图1.
现有的边缘检测方法包括Sobel、Prewitt、Roberts、Canny等。在这些技术中,Sobel边缘检测因其应用简单、实现复杂度低且在边缘检测中具有高精度而尤为突出3,4,5,6。Sobel边缘算法通过使用核Gx和Gy分别计算图像在水平和垂直方向上的梯度,如下所示2,4。
Gx 突出显示 × 方向的边缘,Gy 突出显示 y 方向的边缘12,13。当两者结合时,可完整定义图像中的所有边缘6。通过卷积核操作和滑动窗口,可将 Sobel 边缘检测应用于图像。逐次从图像中取出一个窗口(例如 3×3 像素),并将该窗口与滤波矩阵进行卷积,以获得中心像素的新值。整个图像均以这种方式再次处理。Sobel 边缘检测使用两个这样的卷积核:一个用于提取 x 方向的边缘,另一个用于提取 y 方向的边缘。为了获得全部边缘,需将这两个结果进行合并。Sobel 边缘检测能够产生准确且可靠的结果,且可通过一些预处理进一步增强效果4,5,15。完整的 Sobel 边缘检测过程如图 2所示。
尽管已有文献在边缘检测领域做出了重要贡献,但大多数已报道的研究均基于低分辨率图像,而本文所提出的工作则针对不同分辨率的图像,范围从低分辨率图像(256 × 256)到全高清(HD)图像分辨率(2560 × 1440)。因此,研究Sobel边缘检测算法在不同图像分辨率下的硬件实现,对于理解其在面对不同图像分辨率的实时应用场景时的实现效率至关重要。现场可编程门阵列(FPGA)因其适用于快速原型开发,以及具备可重配置性等优势,被公认为硬件实现的合适平台,这种可重配置性使得设计修改更加便捷,无需更改整个硬件配置6,7,8,9,10,11,12,13。此外,FPGA具备并行处理和流水线操作的潜力;一旦性能指标得到优化且平台经过验证,设计便可进一步推进至专用集成电路(ASIC)的实际生产14,15。FPGA的另一重要特性是其可重配置性,使设计者能够在不更换任何硬件的情况下随时修改产品设计,仅需对芯片重新编程即可完成,耗时和工作量均较少,前提是设计者熟练掌握VHDL/Verilog等硬件描述语言4,6,13,16,17。在FPGA实现分析中,主要考虑的关键参数包括速度(最高频率)、资源利用率和功耗效率。表1展示了FPGA领域发表文献数量的增长趋势,并反映了从2006年至2024年期间FPGA相关出版物的发展演变。该表明确表明,FPGA研究领域现已转向实时应用、增强现实、边缘计算及其他高端应用13,14,15,16,17,18,19,20,21,22,23。
表2重点列出了2020年至2025年间现有文献中关于在FPGA上实现Sobel边缘检测的相关工作。表2提到了各参考文献所使用的FPGA开发板、实现的算法、设计方法、研究结果、评估指标、应用领域以及面临的挑战。
作者4建议采用8方向Sobel边缘检测法以提高边缘检测的准确性,但他们报告称所提出的方法资源消耗较高。Navinkumar 等人采用了一种技术,用于减少传统Sobel边缘检测中涉及的复杂数学运算(如乘法和平方根),从而节省板载资源并提高处理速度9。作者17记录了使用Sobel边缘检测算法在高级驾驶辅助系统中识别车道的情况,其目标是在缩短处理时间的同时加快检测速度。总体而言,未来可将边缘检测的使用视为一种可靠的感兴趣区域提取方法,这在需要从图像中提取特定区域而忽略其他无关信息的多种应用中可能非常有用。文献中共同报告的挑战包括资源和内存占用较高、对噪声敏感、计算成本高,以及对高分辨率图像的可扩展性有限4,5,6,11,12,13,21,22,23。
本研究在 Ultra96-V2 FPGA 开发板上实现了传统的 Sobel 边缘检测算法,适用于从低分辨率 256 × 256 到全高清分辨率 2560 × 1440 的多种图像分辨率。Ultra96-V2 是一款将 FPGA 可编程能力与高性能 Arm 处理器(Cortex-A53/R5)相结合的开发板,适用于高性能应用。该开发板于 2018 年首次发布,采用 16 nm FinFET 工艺节点18。
为确保可重复性,整个实现过程采用标准工具链完成,包括用于高层次综合(HLS)的 Vivado HLS 2019.2、用于布局布线的 Vivado 2019.2,以及由 Ultra96-V2 资源发布的 PYNQ 镜像。HLS 代码用于生成 Sobel 边缘检测 IP(知识产权核),该 IP 被导出并集成到 Vivado 设计套件中。 IP 核实现在 FPGA 的 PL(可编程逻辑)部分,而 PS(处理系统)部分负责数据传输和控制机制。PS 与 PL 之间的接口通过 AXI 协议实现。所有报告的指标——频率、资源利用率和功耗——均来自实现后的报告,而非 HLS 估算结果。实验过程中实现设置保持一致,仅改变图像分辨率。
本工作的显著成果体现在低功耗、低资源占用和高速性能方面。实验结果表明,对于高分辨率图像,片上资源占用率低于20%(其中查找表(LUTs)占18%,触发器(FF)占11%,存储器占3%,DSP占10%),表明仍有大量可用资源可用于集成更复杂的图像处理任务,这在任何计算机视觉系统中都是预期的,因为边缘检测仅是中间步骤。此外,功耗约为2 W,最高工作频率达到144 MHz。结果表明,当图像尺寸扩大约56倍时,资源占用仅增加约20%,速度和功耗的下降也均仅为约20%。本研究从一个此前文献中尚未报道的不同角度对算法进行了深入分析,因此表明该实现方案非常适合实时应用,无需将图像限制在较小尺寸或较低分辨率,而后者必然会降低边缘检测后续阶段所需的信息量。
本研究的创新之处不在于算法本身,而在于评估传统Sobel边缘检测算法在现代异构FPGA架构上、针对不同图像分辨率下的性能表现,并利用基于高级综合(HLS)的实现技术优势。本文的主要贡献在于将一种混合方法应用于FPGA,有效在架构的处理系统(PS)和可编程逻辑(PL)部分之间分配工作负载,从而使设计能够轻松适应不同的分辨率。另一项贡献是通过实验评估资源扩展性随图像分辨率变化的情况,这有助于理解不同配置和多样化应用场景下的性能表现。
访问受限。请登录或开始试用以查看此内容。
1. 在HLS工具上实现Sobel边缘检测
2. 在 FPGA 平台 Ultra96-V2 上使用提取的 HLS IP 实现 Sobel 边缘检测
3. 编程 FPGA 开发板
访问受限。请登录或开始试用以查看此内容。
本节讨论在 Ultra96-V2 上设计 Sobel 边缘检测所获得的结果。 图5 下图展示了通过HLS仿真获得的输入与输出图像。所使用的图像是尺寸为512 × 512的标准图像。这些结果表明,为Sobel边缘检测编写的HLS代码在功能上是正确的。在输出图像中,边缘应清晰可见。
表3展示了在Ultra96-V2上以FPGA部分为xczu3eg-sbva484-1-e时的综合报告,以及生成的时序和资源使用情况参数。该报告包含与时序相关的信息,用于说明设计是否满足用户指定的时序约束。根据时序汇总,估计时间为8.544 ns,小于目标时间10 ns,这明确表明设计满足用户的约束条件。
HLS 工具还会生成预估的资源利用率,为设计人员提供板载资源可能使用情况的估算。实际的资源利用参数只能在实际硬件实现后生成。尽管 FPGA 上存在大量且不同类别的资源,但最常用的硬件包括 LUT(查找表)、FF(触发器)、DS...
访问受限。请登录或开始试用以查看此内容。
本文重点在于实现Sobel边缘检测算法,该算法是计算机视觉和图像处理多个领域中各种应用的关键组成部分2,3,4,5,6。Sobel边缘检测的实现采用Vivado HLS工具完成,从而可以使用高级语言编程,而无需依赖硬件描述语言。Vivado HLS代码在Ultra96-V2开发板上运行。实现后的结果表明,所设计的系统支持高分辨率图像,工作频率达到136 MHz,功耗为2 W,且占用板上总资源不足20%。此外,实验结果还表明该方法适用于图像的自适应分辨率处理,因为不同应用可能需要使用不同尺寸的图像,而边缘检测通常是复杂设计流程中频繁执行的中间步骤2,3,4,
访问受限。请登录或开始试用以查看此内容。
作者声明无利益冲突。在本稿件的撰写过程中未使用任何人工智能(AI)工具。
作者无任何致谢声明。本研究未获得外部资金支持。
访问受限。请登录或开始试用以查看此内容。
| 姓名 | 公司 | 目录编号 | 评论 |
|---|---|---|---|
| Ultra96-V2 FPGA 开发板 | Xilinx | 2018 年推出 | 用于实现行人检测算法的硬件实现平台 |
| Vivado HLS | AMD | 2019.2 | 高层次综合工具,用于对本文中的行人检测代码进行高级编程,以导出知识产权核(IP) |
| Vivado | AMD | 2019.2 | FPGA 编程工具,用于将 Sobel 边缘检测算法编程至 Ultra96 v2 FPGA 开发板 |
访问受限。请登录或开始试用以查看此内容。