本研究展示了在Ultra96-V2异构平台上基于FPGA实现的Sobel边缘检测算法,评估了从256 × 256到2560 × 1440不同图像分辨率下的资源占用、功耗和处理速度。所提出的架构在实时图像处理应用中表现出亚线性的资源扩展特性。
本研究展示了在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(触发器)、DSP Slice(数字信号处理单元)和存储器。
表3 还展示了在 Ultra96-V2 上对高分辨率图像实现 Sobel 边缘检测时的实际时序和资源利用率。时序分析显示,最差负裕量为 3.102 ns,表明处理时间充足,因此可实现 144 MHz 的时钟频率。在 1920 × 1080 分辨率下达到的 144 MHz 工作频率,对应约 299 MP/s 的吞吐量,超过了30 fps下实时全高清视频处理所需的 62 MP/s。为了理解从低分辨率图像向高分辨率图像过渡过程中资源扩展情况及其对参数的影响,该表通过实验结果进行了说明,这些实验结果涉及对不同分辨率重复执行相同步骤的过程。
表4列出了图像尺寸及其对应的总像素数,以及以LUT、FF、BRAM和DSP表示的工作频率、功耗和资源占用情况。可以明显看出,当分辨率从最小的256 × 256提升至最高的2560 × 1440(像素数量增加了近56倍)时,各项参数仅变化了约20%。这明确表明了资源消耗呈亚线性扩展特性:尽管待处理的数据量大幅增加,但性能指标的下降却极为有限,因此该系统适用于实时部署。
表4中呈现的结果清楚地表明,在Ultra96-V2上应用Sobel边缘检测对于需要自适应分辨率的任务具有显著优势,因为在将图像尺寸从低分辨率更新到高分辨率时,其性能指标始终保持优化,且未出现显著变化。这一成功归因于所采用的混合实现方法,该方法避免了因图像数据过多而使FPGA逻辑过载,从而使开发板的处理器能够管理繁重的图像处理任务。处理器仅需将图像数据转发至FPGA逻辑模块,任何资源开销的增加或最大频率的降低,均仅由需要处理的大量数据所致。因此,可以认为本文所采用的方法实现了亚线性资源扩展,即使图像像素增加了近56倍。
还将所实现的工作与现有设计进行了比较,以了解在图像分辨率、时钟频率、功耗和资源利用率等性能指标上的差异。表5展示了与最新文献的对比结果。
正如表5所明确展示的,本文实现的工作具有适当的性能指标,但与此前已报道的现有解决方案9,10相比,其参数仍略逊一筹。然而,当进行整体比较时可以注意到,先前的研究工作9,10均基于较低的图像分辨率,并在传统的FPGA平台上实现;而本文所呈现的结果则基于自适应图像分辨率,所考虑的图像尺寸范围从最低256 × 256分辨率到高达2560 × 1440的高清分辨率。结果表明,所实现的Sobel边缘检测方法充分利用了异构FPGA板Ultra96-V2的处理器与逻辑资源,在像素数量几乎增加56倍的情况下,资源消耗仅增长20%,且功耗与速度的下降均低于20%,实现了近似亚线性的资源扩展。在最低分辨率下,资源使用率仅为5%,最高使用率也仅为23%,为后续进一步处理保留了充足的资源余量。因此可以明确指出,由于图像分辨率存在差异,直接比较存在一定困难;但若单独分析本文所实现的设计,则其工作时钟频率为136 MHz,功耗为2 W,资源利用率低于板载总资源的23%。需要强调的是,先前研究9,10所报道的实现方案在个别性能指标上表现更优。然而值得注意的是,这些研究均仅在单一固定图像分辨率下评估其设计性能,而本文提出的工作则在256 × 256至2560 × 1440的广泛分辨率范围内进行了评估。因此,设计目标存在根本性差异:文献9,10旨在特定分辨率下实现峰值性能优化,而本文提出的架构则优先考虑在多种分辨率下的适应性与亚线性资源扩展能力。这使得所实现的设计更适用于需要边缘检测的实际应用场景。
因此可以指出,在本研究中,亚线性资源扩展性被定义为资源利用率的百分比增长显著低于像素数量的百分比增长的情况。当分辨率从 256 × 256 提升至 2560 × 1440 时,像素数量增加了约 5600%,而板上资源利用率的增加则不足 20%。这种不成比例的低资源增长速率直接源于 PS-PL 异构分区策略,证实了所提出架构的亚线性扩展行为。尽管所提出的实现方案在测试的分辨率范围内展示了亚线性资源扩展性,但在准确解读结果时仍需注意某些局限性。工作频率从低分辨率到高分辨率降低了 18%,且若进一步外推至超过 2560 × 1440 的分辨率,可能需要进行架构调整以维持时序收敛。此外,由于图像数据传输由 ARM 处理器管理,PS 端的数据传输开销随像素数量线性增长,在连续高分辨率视频流应用中,其吞吐量可能受到限制,其限制程度超过仅由 PL 端指标所预示的范围。

图1:边缘检测的各种应用领域。边缘检测常用的一些代表性应用领域的示意图,包括计算机视觉、医学成像、监控、机器人技术以及工业自动化。请点击此处查看该图的放大版本。

图 2:Sobel 边缘检测算法步骤说明。工作流程图展示了 Sobel 边缘检测过程,包括提取 3 × 3 图像窗口、与水平和垂直 Sobel 卷积核进行卷积运算,以及生成边缘检测输出图像。请点击此处查看该图的放大版本。

图 3:在 Ultra96-V2 FPGA 板上通过处理系统(PS)与可编程逻辑(PL)部分之间的接口实现 Sobel 边缘检测的电路框图。该框图展示了用于 FPGA 实现的硬件架构,以及处理系统(PS)、可编程逻辑(PL)和支持 IP 核之间的互连结构。请点击此处查看此图的放大版本。

图4:使用PYNQ平台对Ultra96-V2开发板进行Sobel边缘检测编程的步骤,以及在输入图像上实现Sobel边缘检测的结果。工作流程展示了使用PYNQ平台对Ultra96-V2开发板进行编程的过程,以及FPGA实现后获得的代表性输出图像。请点击此处查看此图的放大版本。

图 5:使用 Vivado HLS(2019.2)对不同标准图像进行 Sobel 边缘检测的仿真结果。 使用 Vivado HLS 2019.2 对 Sobel 边缘检测算法进行功能仿真期间获得的代表性输入图像及其对应的边缘检测输出结果。请点击此处查看该图的放大版本。
表1:FPGA在计算机视觉研究中的应用演变(2006–2024年)。2006年至2024年间报道的代表性基于FPGA的计算机视觉应用汇总。请点击此处下载该表格。
表2:关于在 FPGA 上实现边缘检测算法的相关文献(2020–2025年)。 近期基于 FPGA 的边缘检测实现方案的比较,包括平台、方法学及报告的性能指标。请点击此处下载该表格。
表3:FPGA上的Sobel边缘检测实现:估计参数与实际参数。 FPGA实现所获得的估计HLS综合结果以及相应的实现后时序和资源利用率。请点击此处下载该表格。
表4:不同图像分辨率下实现的Sobel边缘检测算法的资源利用率与性能指标。不同图像分辨率下,所提出实现方案的性能指标、工作频率、功耗以及FPGA资源利用率。请点击此处下载该表格。
表5:FPGA上实现的Sobel边缘检测与现有方法的比较。 使用代表性性能指标将所提出的FPGA实现与先前报道的Sobel边缘检测实现进行比较。请点击此处下载该表格。
本文重点在于实现Sobel边缘检测算法,该算法是计算机视觉和图像处理多个领域中各种应用的关键组成部分2,3,4,5,6。Sobel边缘检测的实现采用Vivado HLS工具完成,从而可以使用高级语言编程,而无需依赖硬件描述语言。Vivado HLS代码在Ultra96-V2开发板上运行。实现后的结果表明,所设计的系统支持高分辨率图像,工作频率达到136 MHz,功耗为2 W,且占用板上总资源不足20%。此外,实验结果还表明该方法适用于图像的自适应分辨率处理,因为不同应用可能需要使用不同尺寸的图像,而边缘检测通常是复杂设计流程中频繁执行的中间步骤2,3,4,5,6。因此,可以认为所设计的系统可用于需要边缘检测的实时应用中。丰富的资源余量表明,可在该系统中进一步集成多种其他处理步骤6,7,8,9,10,11,12,13,14,15。
在 Ultra96-V2 开发板上成功实现 Sobel 边缘检测器需要仔细关注多个实际方面。PYNQ 框架通过 Python 库实现对硬件的控制,显著简化了 PS–PL 之间的交互,从而降低了软件开发的工作量。然而,必须从官方来源下载正确的 PYNQ 镜像,并在部署前正确配置 SD 卡。在导出 IP 核之前,使用完整的测试平台对 HLS 设计进行功能验证至关重要,因为早期验证有助于在硬件实现前发现算法和接口错误。在 FPGA 实现过程中,框图设计也需要设计人员高度关注,建议充分理解所用 FPGA 硬件的架构,从而选择合适的模块并正确连接。不建议完全自动化连接过程,因为这可能导致遗漏连接或生成不符合设计需求的连接。在 PS–PL 接口阶段,可能出现 AXI 地址映射错误、时钟域不匹配或 DMA 传输配置不当等问题,从而阻碍处理器与可编程逻辑之间的正常通信。这些问题可通过 Vivado 的设计验证工具进行识别,并在生成比特流之前通过检查地址分配、时钟配置、中断连接和 DMA 设置加以解决。在 FPGA 实现过程中,由于组合逻辑路径过长或流水线设计不足,可能会出现时序违规。增加流水线级数、优化循环结构或在适当情况下放宽时序约束,有助于实现时序收敛。
尽管本研究专门针对Sobel边缘检测验证了所提出的PS-PL分区架构,但该架构方法本身具有通用性。任何可表示为滑动窗口卷积的算法——包括Prewitt、Roberts、高斯拉普拉斯(Laplacian of Gaussian)或Canny算法的梯度阶段——均可采用类似方法实现,主要在HLS设计上进行相应调整3,4,5,6。本研究存在一定的局限性。其中之一是由于FPGA的PS部分与PL部分之间的数据传输带来的延迟,这会影响算法的整体执行时间。此外,亚线性扩展性的发现特属于Ultra96-V2异构架构16,可能不直接适用于缺乏专用处理器核心的同构FPGA平台。
未来的研究方向包括通过特定优化进一步改进设计,以提升运行速度并进一步降低功耗。此外,将该实现方案应用于实时场景也是未来值得考虑的潜在方向。
作者声明无利益冲突。在本稿件的撰写过程中未使用任何人工智能(AI)工具。
作者无任何致谢声明。本研究未获得外部资金支持。
| 姓名 | 公司 | 目录编号 | 评论 |
|---|---|---|---|
| Ultra96-V2 FPGA 开发板 | Xilinx | 2018 年推出 | 用于实现行人检测算法的硬件实现平台 |
| Vivado HLS | AMD | 2019.2 | 高层次综合工具,用于对本文中的行人检测代码进行高级编程,以导出知识产权核(IP) |
| Vivado | AMD | 2019.2 | FPGA 编程工具,用于将 Sobel 边缘检测算法编程至 Ultra96 v2 FPGA 开发板 |