CN109919962A - 一种基于Zynq实现边缘检测算法加速的方法 - Google Patents

一种基于Zynq实现边缘检测算法加速的方法 Download PDF

Info

Publication number
CN109919962A
CN109919962A CN201910145250.7A CN201910145250A CN109919962A CN 109919962 A CN109919962 A CN 109919962A CN 201910145250 A CN201910145250 A CN 201910145250A CN 109919962 A CN109919962 A CN 109919962A
Authority
CN
China
Prior art keywords
edge detection
zynq
hardware
detection algorithm
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910145250.7A
Other languages
English (en)
Inventor
王培培
滕达
王果山
李光涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Chaoyue CNC Electronics Co Ltd
Original Assignee
Shandong Chaoyue CNC Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shandong Chaoyue CNC Electronics Co Ltd filed Critical Shandong Chaoyue CNC Electronics Co Ltd
Priority to CN201910145250.7A priority Critical patent/CN109919962A/zh
Publication of CN109919962A publication Critical patent/CN109919962A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Image Processing (AREA)

Abstract

本发明提供一种基于Zynq实现边缘检测算法加速的方法,属于机器视觉技术领域,本发明是针对Zynq‑7000的芯片,使用SDsoc集成开发环境,完成边缘检测算法Canny的实现和硬件加速。整个过程包括图像的读取、存储,高斯滤波,梯度的幅值和方向计算,边缘检测等。本发明实现了算法的性能加速,降低了运算延迟,满足实时性要求。

Description

一种基于Zynq实现边缘检测算法加速的方法
技术领域
本发明涉及机器视觉技术领域,尤其涉及一种基于Zynq实现边缘检测算法加速的方法。
背景技术
随着机器视觉领域的不断发展,特别是近年来图像分辨率在成倍的增长,对于大数据量的图像处理提出了更高的要求。在很多的机器视觉应用领域,都要求对图像进行处理时能够达到以高吞吐量的速度对大数据量的图像执行严格计算并且保持实时性。
边缘检测是许多视觉算法的第一步,其目的是标识数字图像中亮度变化明显的点。许多边缘检测算法,包括Robert算子,Prewitt检测,Sobel算子和Canny边缘检测都被广泛的应用。
ZYNQ-7000芯片是Xilinx将ARM Cortex-A9处理器和FPGA可编程逻辑资源进行集成,推出了全可编程片上系统,它提供了一种“ARM+FPGA”的单片解决方案,也就是PS部分和PL部分。PL适合高速、并行、确定性的计算类型,PS适合连续、动态、非确定性的计算类型。当应用中涉及到这两个计算单元的密切合作的时候,统一的Zynq架构能保证降低功耗和简化设计。PS和PL之间的连接具有低延迟、高带宽的优势,尤其在需要快速实时计算和反馈环路的系统中具有巨大的优势。
使用Zynq-7000进行嵌入式图像处理系统设计,既有FPGA在图像处理方面的计算优势,又能够充分利用ARM处理器提供的外围设施,非常适合计算密集、功能丰富的视觉应用。
SDSoC集成开发环境为使用者提供了类似于在VS上编写C/C++的代码的开发流程,通过交叉编译以及把C/C++函数的FPGA端和ARM CPU端相连接,使开发者能够将软件开发和硬件开发结合在一起使用。它提供的全系统优化编译器能够将纯软件的算法自动在Zynq芯片的PL端进行硬件加速,并且将加速之后的算法自动接入系统,从而实现了算法的硬件加速。
发明内容
本发明就是针对Zynq和SDsoc的优势,提出了一种基于Zynq实现边缘检测算法加速的方法。主要是利用Xilinx提供的SDSOC高层次集成开发工具,不仅实现了算法的性能加速,降低了运算延迟,满足实时性要求,还能缩短研制周期,加速产品上市。
本发明的技术方案是:
一种基于Zynq实现边缘检测算法加速的方法,针对Zynq-7000的芯片,使用SDsoc集成开发环境,完成边缘检测算法Canny的实现和硬件加速。整个过程包括图像的读取、存储,高斯滤波,梯度的幅值和方向计算,边缘检测等。
本发明合理利用了Zynq芯片中PS和PL两部分的优势,将整个系统分配在PS和PL中分别进行处理,如图像的灰度值计算需要对连续的几个像素点进行求卷积操作,因为像素点很多,如果采用在PS中串行处理,需要的时间较长,采用PL中并行处理能实现最优的性能。
本发明的硬件平台是ZC706开发板,其Zynq芯片的型号是XC7Z045-2FFG900C APSoC。
ARM(PS)端提供了ARM Cortex-A9处理器,大小为1GB的DDR3组件内存和外部存储接口。
在对图像进行处理之前,需要读取和存储图像数据,对于bmp格式的RGB图像,可以选用SDsoc中ap_bmp库开完成读取和写入操作。
软件和硬件直接的数据传输任务在代码中sds_lib库中的分配函数就可以保证数组分配到连续的物理地址。
对于读入的数据选择PIPELINE优化指令进行流水化操作,提高函数的并行性,并提高算法的执行效率。
实现边缘检测算法需要经过梯度计算、非极大值抑制、高斯平滑滤波和双阈值链接等步骤。将这些函数一起放在PL中加速,sdscc工具链会自动连接这些硬件函数,在它们之间形成数据流,最后一个硬件函数处理完后通过数据移动器将数据回传到PS中。
本发明的有益效果是
提高函数的并行性,并提高算法的执行效率;
减少数据在传输时间上的浪费,从而提高了系统效率。
附图说明
图1是本发明XC7Z045-2FFG900C AP SoC基本框图;
图2是SDsoc开发流程示意图;
图3是边缘计算算法流程示意图;
图4是边缘检测算法软硬件实现框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围
本发明的硬件平台是ZC706开发板,其Zynq芯片的型号是XC7Z045-2FFG900C APSoC。ARM(PS)端提供了ARM Cortex-A9处理器,大小为1GB的DDR3组件内存和外部存储接口。
ZC706的基本架构如图1所示,
SDsoc的开发流程如图2所示。
ZC706开发板对图像进行边缘检测的流程如图3所示。
在对图像进行处理之前,需要读取和存储图像数据,对于bmp格式的RGB图像,可以选用SDsoc中ap_bmp库开完成读取和写入操作。
软件和硬件直接的数据传输任务在代码中sds_lib库中的分配函数就可以保证数组分配到连续的物理地址。
对于读入的数据选择PIPELINE优化指令进行流水化操作,提高函数的并行性,并提高算法的执行效率。
本发明中边缘计算应用于大量的边缘点,实时性处理图像需要高计算能力,此时需要PS端和PL端结合起来,将计算密集型任务下载到PL端并行处理。
经过分析,在zynq芯片中实现边缘检测算法的软硬件功能分配如图4所示。
实现边缘检测算法需要经过梯度计算、非极大值抑制、高斯平滑滤波和双阈值链接等步骤。将这些函数一起放在PL中加速,sdscc工具链会自动连接这些硬件函数,在它们之间形成数据流,最后一个硬件函数处理完后通过数据移动器将数据回传到PS中。硬件函数直连可以减少数据在传输时间上的浪费,从而提高了系统效率。
在此选择需要处理的图像是bmp格式的RGB图像,分辨率为512*512,Sobel算子选择的是3*3的矩阵卷积核。图像流数据经过流水线优化后进入缓冲窗口,分别计算x、y方向的梯度并对其绝对值求和,然后进行阈值运算。通过计算,对512*512分辨率的图像进行处理仅需要262160个时钟,比使用纯软件实现性能提升接近20倍。
以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (8)

1.一种基于Zynq实现边缘检测算法加速的方法,其特征在于,
针对Zynq-7000芯片,使用SDsoc集成开发环境,完成边缘检测算法Canny的实现和硬件加速。
2.根据权利要求1所述的方法,其特征在于,
边缘计算算法的整个过程包括图像的读取、存储,高斯滤波,梯度的幅值和方向计算,边缘检测。
3.根据权利要求2所述的方法,其特征在于,
利用Zynq芯片中PS和PL两部分的优势,将整个系统分配在PS和PL中分别进行处理。
4.根据权利要求3所述的方法,其特征在于,
硬件平台采用ZC706开发板,其Zynq芯片的型号是XC7Z045-2FFG900C AP SoC;ARM(PS)端提供了ARM Cortex-A9处理器,大小为1GB的DDR3组件内存和外部存储接口。
5.根据权利要求4所述的方法,其特征在于,
在对图像进行处理之前,需要读取和存储图像数据,对于bmp格式的RGB图像,选用SDsoc中ap_bmp库开完成读取和写入操作。
6.根据权利要求5所述的方法,其特征在于,
软件和硬件直接的数据传输任务在代码中sds_lib库中的分配函数可以保证数组分配到连续的物理地址。
7.根据权利要求6所述的方法,其特征在于,
对于读入的数据选择PIPELINE优化指令进行流水化操作。
8.根据权利要求7所述的方法,其特征在于,
将PS端和PL端结合起来,将计算密集型任务下载到PL端并行处理;
实现边缘检测算法需要经过梯度计算、非极大值抑制、高斯平滑滤波和双阈值链接步骤;将这些函数一起放在PL中加速,sdscc工具链会自动连接这些硬件函数,在它们之间形成数据流,最后一个硬件函数处理完后通过数据移动器将数据回传到PS中。
CN201910145250.7A 2019-02-27 2019-02-27 一种基于Zynq实现边缘检测算法加速的方法 Pending CN109919962A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910145250.7A CN109919962A (zh) 2019-02-27 2019-02-27 一种基于Zynq实现边缘检测算法加速的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910145250.7A CN109919962A (zh) 2019-02-27 2019-02-27 一种基于Zynq实现边缘检测算法加速的方法

Publications (1)

Publication Number Publication Date
CN109919962A true CN109919962A (zh) 2019-06-21

Family

ID=66962435

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910145250.7A Pending CN109919962A (zh) 2019-02-27 2019-02-27 一种基于Zynq实现边缘检测算法加速的方法

Country Status (1)

Country Link
CN (1) CN109919962A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114511477A (zh) * 2022-01-20 2022-05-17 上海盈方微电子有限公司 一种适用于高斯平滑的neon优化方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102044071A (zh) * 2010-12-28 2011-05-04 上海大学 基于fpga的单像素边缘检测方法
CN104851069A (zh) * 2015-04-28 2015-08-19 电子科技大学 一种线缆表观图像缺陷检测装置
CN105046681A (zh) * 2015-05-14 2015-11-11 江南大学 一种基于SoC的图像显著性区域检测方法
CN109167966A (zh) * 2018-09-29 2019-01-08 南京邮电大学南通研究院有限公司 基于fpga+arm的图像动态检测系统及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102044071A (zh) * 2010-12-28 2011-05-04 上海大学 基于fpga的单像素边缘检测方法
CN104851069A (zh) * 2015-04-28 2015-08-19 电子科技大学 一种线缆表观图像缺陷检测装置
CN105046681A (zh) * 2015-05-14 2015-11-11 江南大学 一种基于SoC的图像显著性区域检测方法
CN109167966A (zh) * 2018-09-29 2019-01-08 南京邮电大学南通研究院有限公司 基于fpga+arm的图像动态检测系统及方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
吴进: "机器视觉中边缘检测算法的SDSoC加速实现", 《计算机工程与应用》 *
李超: "基于Zynq-7000平台的边缘特征匹配算法研究与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 *
袁文强: "基于FPGA的实时目标跟踪系统关键技术研究和实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 *
谭检成: "基于 Zynq 的图像边缘检测系统设计", 《电子测试》 *
阮远忠: "基于ZYNQ-7000的视频图像处理系统设计与实现", 《软件导刊》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114511477A (zh) * 2022-01-20 2022-05-17 上海盈方微电子有限公司 一种适用于高斯平滑的neon优化方法

Similar Documents

Publication Publication Date Title
US9928642B2 (en) Using a geometry shader for variable input and output algorithms
US11200724B2 (en) Texture processor based ray tracing acceleration method and system
Saeedi et al. Navigating the landscape for real-time localization and mapping for robotics and virtual and augmented reality
Woop et al. B-kd trees for hardware accelerated ray tracing of dynamic scenes
US20210272354A1 (en) Combined world-space pipeline shader stages
US10102662B2 (en) Primitive culling using automatically compiled compute shaders
WO2014105268A1 (en) REORDERING OF COMMAND STREAMS FOR GRAPHICAL PROCESSING UNITS (GPUs)
RU2003110511A (ru) Системы и способы обеспечения промежуточных адресатов в графической системе
US8854374B2 (en) Tessellation patterns
CN110751676A (zh) 一种基于目标检测的异构计算系统、方法和可读存储介质
CN102298567A (zh) 一种集成中央运算和图形加速的移动处理器架构
CN110502278B (zh) 基于RiscV扩展指令的神经网络协处理器及其协处理方法
Brown Accelerating advection for atmospheric modelling on Xilinx and Intel FPGAs
US20200098169A1 (en) Method and system for depth pre-processing and geometry sorting using binning hardware
CN109919962A (zh) 一种基于Zynq实现边缘检测算法加速的方法
Xia et al. PAI-FCNN: FPGA based inference system for complex CNN models
CN110490308B (zh) 加速库的设计方法、终端设备及存储介质
CN107506773A (zh) 一种特征提取方法、装置及系统
WO2018140238A1 (en) Out of order pixel shader exports
CN114595813A (zh) 异构加速处理器及数据计算方法
CN112035056B (zh) 一种基于多计算单元的并行ram访问设备及访问方法
CN210721562U (zh) 一种基于PYNQ-z2的运动目标检测系统
Siegel The path to embedded vision & AI using a low power vision DSP
Sankaran et al. EVE: A flexible SIMD coprocessor for embedded vision applications
Qin et al. A CNN hardware accelerator designed for YOLO algorithm based on RISC-V SoC

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190621