需要JoVE订阅才能观看此内容。 请登录或开始免费试用

方法文章

一种用于实时Sobel边缘检测的分辨率自适应硬件架构,实现亚线性资源扩展

58 次观看

⸱

DOI:

10.3791/71589

⸱

2026年8月28日

 ,  , 

本文内容

摘要

本研究展示了在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边缘检测

  1. 打开 Vivado HLS 2019.2 工具并创建项目,选择 FPGA 开发板为 Ultra96-V2。
  2. 使用 C++ 语言编写 Sobel 边缘检测的高层语言代码,并将图像尺寸参数设为通用参数而非固定值。
    注意:图像的宽度和高度不固定,在代码中以通用参数形式编写,以便在改变图像分辨率时能够轻松修改,而无需在多个位置进行更改。
  3. 用 C++ 编写 Sobel 边缘检测算法的测试平台代码。
    注意:测试平台用于提供输入图像,以验证代码的正确性。
  4. 点击“运行 C 仿真”以模拟代码,检查其功能正确性。向测试平台提供一幅输入图像,然后检查生成的输出结果,输出应为一幅包含边缘信息的图像。
  5. 点击“运行 C 综合”以综合 HLS 代码,并导出用于 Sobel 边缘检测的 IP 核。
    注意:综合过程本质上是将编写的代码设计映射到硬件组件上,使设计兼容并准备好进行硬件实现。
  6. 检查工具生成的时序和资源占用报告,确保估计时间不超过目标时间。
    注意:HLS 平台产生的所有结果仅为估算值,实际参数需在设计实现于 FPGA 上后才能确定。
  7. 点击“导出 IP”以导出 Sobel 边缘检测流程的 IP 核。
    注意:该 IP 核将在下一步中用于 Vivado 工具中 FPGA 实现的框图设计。

2. 在 FPGA 平台 Ultra96-V2 上使用提取的 HLS IP 实现 Sobel 边缘检测

  1. 打开 Vivado 设计工具并创建一个新项目。选择目标开发板为 Ultra96-V2,然后点击“创建新的模块设计”。
  2. 导入刚刚从 HLS 工具导出的 Sobel 边缘检测 IP。添加其他必要的模块,以完成 PS 与 PL 部分之间的接口连接。
    注意:该模块图还使用了其他重要的 IP 模块,例如 Zynq Ultrascale IP、Smart Connect 和处理器复位模块等,用于通过高级可扩展接口(AXI)协议建立 PS 与 PL 之间的通信。
  3. 点击“验证设计”以验证模块设计。确保工具未报告任何设计错误。如果存在错误,请根据提示进行修正后重新验证。
    注意:此步骤可确保模块图中没有缺失的连接,但不会验证模块设计的功能正确性。
  4. 点击“创建 HDL 包装器”,为模块设计生成通用的 HDL 代码。
  5. 点击“运行综合”以综合设计,并检查是否存在报错。若无错误,工具将提示综合成功。综合成功后,查看时序综合报告,检查是否存在时序违规。
  6. 为检查时序违规,请确保报告中没有任何时序信息以红色文字显示,因为红色表示所用时间超过设定目标,即存在时序违规。
  7. 点击“运行实现”,对设计进行实现,并评估时序、功耗以及资源使用情况报告。
  8. 生成“.bit”文件,用于对 FPGA 开发板进行编程。
    注意:Ultra96-V2 上 Sobel 边缘检测的模块图如图 3所示。如前所述,该模块图主要用于建立 FPGA 开发板上 PS 与 PL 部分之间的接口。

3. 编程 FPGA 开发板

  1. 准备 SD 卡时,下载适用于 Ultra96-V2 开发板的 PYNQ 镜像文件(.img)16,并将下载的文件写入 SD 卡。
  2. 根据 Ultra96-V2 参考手册16中的说明设置拨码开关位置,以 SD 卡启动模式为开发板上电。
  3. 访问网址 http://192.168.3.1,在提示时输入用户名和密码,均为“xilinx”。
    注意:建议使用 Google Chrome 浏览器,以避免可能出现的技术兼容性问题。
  4. 进入 Jupyter 平台,编写 PS 端的 Python 代码,用于读取输入的图像或视频,并将读取到的图像发送至 PL 端进行处理。
  5. 编写代码实现将 PL 端处理后的图像写回 PS 端并显示结果的功能。
    注意:在 Ultra96-V2 上显示结果时,使用 PYNQ 平台可显著简化输出图像的显示过程,仅需通过 Python 代码结合 OpenCV 库即可实现。
    图 4 展示了本节所述 Ultra96-V2 方案的实施步骤及获得的输出结果。

访问受限。请登录或开始试用以查看此内容。

结果

本节讨论在 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 AMD2019.2高层次综合工具,用于对本文中的行人检测代码进行高级编程,以导出知识产权核(IP)
Vivado AMD2019.2FPGA 编程工具,用于将 Sobel 边缘检测算法编程至 Ultra96 v2 FPGA 开发板 

参考文献

  1. Rani N. Image processing techniques: a review. J Today Ideas Tomorrow Technol. 2017;5(1):40-9.
  2. Gonzalez RC. Digital image processing. Pearson Education; India; 2009.
  3. Jena KK, Mishra S, Mishra S. An edge detection approach for fractal image processing. In: Examining Fractal Image Processing and Analysis. IGI Global; 2020. p. 1-22.
  4. Gayathri AG, Remya AS. VLSI implementation of improved Sobel edge detection algorithm [conference presentation]. Presented at: 2021 International Conference on Communication, Control and Information Sciences (ICCISc); 2021 Jun 16. Available from: https://ieeexplore.ieee.org/
  5. Obaid MT. Efficient Implementation of Sobel Edge Detection with ZYNQ-7000 [Master's thesis]. Purdue University.
  6. Asharani P, et al. A inventive method for door detection on FPGA using Sobel edge algorithm [conference presentation]. Presented at: 2022 2nd International Conference on Intelligent Technologies (CONIT); 2022 Jun 24. Available from: https://ieeexplore.ieee.org/
  7. Shylashree N, Anil Naik M, Sridhar V. Design and implementation of image edge detection algorithm on FPGA. Int J Circuits Syst Signal Process. 2022;16:628-36.
  8. Zhou G, Guo S, Chen Z. FPGA-based improved Sobel operator edge detection. Front Comput Intell Syst. 2023;5(2):6-11.
  9. Navinkumar K, Logesh R, VishnuBabu P, Ananthalakshmi AV. FPGA implementation of Sobel edge detection algorithm. EAI Endorsed Trans Internet Things. 2024;10.
  10. Ravichandran S, et al. Parallel processing of Sobel edge detection on FPGA: enhancing real-time image analysis. Sensors. 2025;25(12):3649.
  11. Baloch A, et al. Hardware synthesize and performance analysis of intelligent transportation using Canny edge detection algorithm. Int J Eng Manuf. 2021;11(4):22-32.
  12. Patel CS, Solanki N, Tailor N. Analysis of edge detection using Zynq based SoC FPGA. Turk Online J Qual Inq. 2021;12(7).
  13. Kashyap S, Bhandari AK, Giri P. Low resource FPGA implementation based efficient image edge detector architecture. Multimed Tools Appl. 2024;83(9):25595-615.
  14. Dakshayani V, et al. Design of a Gabor filter-based image denoising hardware model. Electronics. 2022;11(7):1063.
  15. Belmessaoud NM, Bentoutou Y, El-Mezouar MC. FPGA implementation of feature detection and matching using ORB. Microprocess Microsyst. 2022;94:104666.
  16. Castells-Rufas D, et al. A survey of FPGA-based vision systems for autonomous cars. IEEE Access. 2022;10:132525-63.
  17. Vedavyas Y, Vasavi S, Harsha SS, Subhash MS. An FPGA-based adaptive real-time quality enhancement system for drone imagery. SN Comput Sci. 2022;4(1):84.
  18. Avnet. Ultra96-V2 Single Board Computer Hardware User's Guide. Revision 1.0. Avnet; 2020 May.
  19. Singh G, et al. Optimizing IoT capabilities: leveraging FPGA for superior performance, efficiency and security [conference presentation]. Presented at: 2024 5th International Conference for Emerging Technology (INCET); 2024 May 24. Available from: https://ieeexplore.ieee.org/
  20. Kaur A. A survey on FPGA implementations in embedded augmented reality applications [conference presentation]. Presented at: 6th Edition of International Conference on Wireless Networks and Embedded Systems (WECON); 2018 Nov 16. Available from: https://ieeexplore.ieee.org/
  21. Kalaiselvi A, Sajina S, Nithish S, Sowmiya M. Implementation of Sobel edge detection. Int Res J Mod Eng Technol Sci. 2023;5(3):701-11.
  22. Narasimhamurthy CG, Kulkarni S. Fast architecture for low level vision and image enhancement for reconfigurable platform [conference presentation]. Presented at: 2021 International Conference on Advances in Electrical, Computing, Communication and Sustainable Technologies (ICAECT); 2021 Feb 19. Available from: https://ieeexplore.ieee.org/
  23. Pujare A, Sawant P, Sharma H, Pichhode K. Hardware implementation of Sobel edge detection algorithm [conference presentation]. Presented at: ITM Web of Conferences; 2020. Available from: https://www.itm-conferences.org/

访问受限。请登录或开始试用以查看此内容。

重印与许可

探索更多文章

实时边缘检测自适应图像分辨率FPGA架构硬件实现Ultra96-V2 FPGA图像处理计算机视觉