收藏 分销(赏)

基于HLS和PYNQ图像缩放的硬件加速器设计.pdf

上传人:自信****多点 文档编号:633059 上传时间:2024-01-19 格式:PDF 页数:6 大小:4.11MB
下载 相关 举报
基于HLS和PYNQ图像缩放的硬件加速器设计.pdf_第1页
第1页 / 共6页
基于HLS和PYNQ图像缩放的硬件加速器设计.pdf_第2页
第2页 / 共6页
基于HLS和PYNQ图像缩放的硬件加速器设计.pdf_第3页
第3页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、Journal of Yancheng Institute of Technology(Natural Science Edition)Jun.20232023年0 6 月Vol.36No.2盐城工学院学报(自然科学版)第36 卷第2 期doi:10.16018/32-1650/n.202302010基于HLS和PYNQ图像缩放的硬件加速器设计赵思捷,高尚尚,王如刚,王媛媛,周锋,郭乃宏(1.盐城工学院信息工程学院,江苏盐城224051;2.盐城雄鹰精密机械有限公司,江苏盐城224006)摘要:针对CPU进行图像处理已经无法满足系统实时性需求这一情况,提出了一种基于HLS和PYNQ的图像处理硬

2、件加速器设计。该设计利用了FPGA具有数据并行处理的优势,克服了FPGA不易开发、移植性较差的缺陷。首先选择图像缩放处理算法作为实验的测试对象;然后在ZYNQ平台上根据软硬件协同的特点分配不同的系统任务,通过HLS开发工具使用C+实现和优化图像处理算法,并转化成RTL文件,再打包成IP核输出;在Vivado2018.3上搭建硬件实验平台,通过JupyterLab对实验进行验证和分析。结果表明,缩放算法的处理速度由CPU端的1110ms缩减为FPGA端的2 13ms,执行速度提升了5倍。关键词:FPGA;缩放算法;HLS;PYNQ;JupyterLab中图分类号:TP183文献标志码:A文章编号

3、:16 7 1-532 2(2 0 2 3)0 2-0 0 55-0 6随着现代电子技术的迅速发展,人们对机器视觉以及图像处理的要求逐渐提高。目前,图像处理技术主要集中在基于PC机、DSP等传统平台技术和基于现场可编程门阵列(field program-mablegate array,FPGA)硬件平台技术等1-3。基于传统的PC机平台中,存在体积较大、不方便携带以及对高速图像信号难以实时处理等缺点,使得该技术不能运用在无人机侦查等场合。基于DSP平台的技术中,只能处理某些特定的图像算法,不能实现实时图像信息的采集与处理;若利用多个DSP芯片并行运算实现快速处理,则大大提高了系统的成本。FPG

4、A是在可编程器件PAL、G A L、CPL D 的基础上进一步发展的产品,可以更加高效地处理数据,既解决了定制电路的不足,又克服了原有可编程器件门电路个数有限的缺点。但FPGA使用的是硬件描述性语言,开发难度大、可移植性差,因此利用FPGA对图像进行实时处理是一种挑战。近些年,随着Xilinx公司高层次综合(high-level synthesis,H L S)工具的运用,可以使用C、SystemC和C+语言代替传统的Verilog语言进行编程,大大降低了开发难度,减少了开发时间4;而PYNQ框架的出现不仅缩短了开发周期,提高了开发效率,还可以实现高性能应用程序如并行硬件执行、实时信号处理、高

5、顿率视频处理和硬件加速算法等5 的运用。由于HLS工具可以减少FPGA的植人时间,而PYNQ框架可以提高生产力6 ,因此它们在理论研究中得到了大量的运用。Vashist等7 使用HLS提供的xfOpenCV库实现了Canny的边缘检测,提出了使用xfOpenCV库可以更好地检测带有噪声图像的边缘,但是它并没有在PYNQ框架上使用;张瑞琰等8 提出了基于PYNQ框架的高精度异构无预选框检测模型,处理时长由ARM端的9.228s缩减到FPGA端的0.0 0 8 s,大大提高了检测模型的速度;Cui等9 提出了基于PYNQ框架的核相关滤波异构跟踪系统,该系统具有良好的实时性,跟踪速度平均为2 7.9

6、 顿/s,具有较高的执行效率,易于开发和移植,具有一定的工程参考价值。收稿日期:2 0 2 2-0 9-2 4基金项目:国家自然科学基金项目资助(6 16 7 310 8);江苏省研究生实践创新计划项目资助(SJCX21_1517);江苏省高等学校自然科学研究重大项目资助(19 KJA110002)。作者简介:赵思捷(19 9 8 一),女,江苏盐城人,硕士生,主要研究方向为智能控制系统及其信号检测。通信作者:王如刚(19 7 5一),男,江苏睢宁人,教授,博士,主要研究方向为通信技术、计算机视觉及图像处理等。56.盐城工学院自然科学版)第3 6 卷基于以上研究,本文提出了基于HLS和PYNQ

7、的图像处理硬件加速器设计,利用HLS工具实现缩放算法,再经过优化、仿真、综合后生成IP核;在Vivado2018.3硬件平台上连接IP核,并输出硬件描述文件和比特流文件;把PYNQ镜像复制到SD卡并启动开发板,再在浏览器上打开JupyterLab进行运行验证和分析。1缩放算法在图像处理过程中,图像缩放是对图像大小作一定的调整,目的是为了适应显示区域的大小。图像缩放包含图像的缩小和放大,分别称为图像的下采样和上采样,一般是利用图像的插值实现的。常见的图像插值算法有最近邻算法、双线性插值法和双三次插值法等10-1,其中最近邻算法具有计算量小、算法简单、处理速度快、占用资源少等特点,但采样后的图像具

8、有明显的不连续现象,且图像放大时会出现马赛克,缩小时会有失真现象;双线性插值法具有连续性好,缩小时具有较好的图像品质,但放大时会有一定的细节损失;双三次插值法具有计算精度高、图像品质好等特点,但算法复杂、计算量大。经综合比较,本文采用双线性插值法进行加速测试,原因是双线性插值法比最近邻算法只是计算量稍大一些,但缩放后图像质量高,基本克服了最近邻插值算法灰度值不连续的特点。双线性插值又称为双线性内插,即在两个方向上分别进行一次线性插值(在一个方向上使用线性插值,然后在另一个方向上再使用线性插值执行双线性插值),如图1所示。0XoXX1A1BPPPDC图1双线性插值坐标Fig.1Bilinear

9、interpolation coordinates图1中,设二元函数z=f(x,y),A、B、C、D 点的坐标分别为(o,yo)(x,y)(x,yi)(x o,y i),若P点的横、纵坐标分别为x、y,则要在A、B、C、D中通过插值法计算点P的z轴坐标z,计算步骤如下:(1)根据AD与BC的线性关系,得:X0(1)X0(2)设P。、P,分别为线段AD、BC上的任意一点,其z轴坐标分别为ZZ,令=(-x)(-x。),则P。P,的z轴坐标分别为:Z。=(1-)f(xo,yo)+f(xo,yi)(2)Z,=(1-)f(xi,yo)+f(xi,yi)(3)(3)令=(y-yo)/(yi-y),则P点在

10、z轴上的坐标z为:2=(1-)Z。+Z)(4)整理式(4),得z表达式为:z=(1-)(1-)f(xo,yo)+f(xo,yi)+(1-)f(xi,yo)+f(xiyi)=(1-)(1-)f(xo,yo)+(1-)f(xo,yi)+.(1-)f(x,yo)+f(xi,yi)(5)2硬件加速器设计2.1系统整体设计根据对缩放算法的特性分析,可以发现执行缩放算法时一方面需要系统控制和过程调度,另一方面需要大量的计算。因此,硬件加速器的实验开发板采用Xilinx公司的ZYNQ-7000系列XC7Z020CLG400-2芯片为核心,实验平台采用Vivado2018.3、H L S2 0 18.3以及F

11、irefox。在缩放算法中,由于涉及的数据重复程度高,但计算结构并不繁琐,因此采用具有并行加速度特性的PL(p r o g r a mma b l e l o g i c)端来实现(即FPGA来实现);算法涉及的复杂结构化过程控制与调度部分,由PS(p r o c e s s i n g s y s t e m)端来实现(即ARM来实现)。PS与PL的互联完成了硬件加速器控制流与数据流的交互。硬件加速器整体系统如图2 所示。从图2 可以看出,该系统分成3部分。在第一部分的HLS里,编写缩放算法的C代码和C测试代码;功能验证成功后,添加优化指令并进行高层次综合;高层次综合后再对结果进行评估。评估

12、时,如果速度、资源等不满足条件,则需要重新优化设计,直到满足条件后,导出RTL作为IP核。第二部分由开发板的PL端和PS端组成,PL端的作用是在Vivado平台上设计Blockdesign并连接IP核,然后Stream 接口:(5)将输人图像和输出图像综合成AXI4-57赵思捷,等:基于HLS和PYNQ图像缩放硬件加速器的设计第2 期导出.hwh文件和.bit文件;PS端的作用是在ARM上启动装有PYNQ镜像的SD卡。第三部分是通过网线或者USB连接PC端,在Firefox上打开JupyterLab运行代码并查看结果。HLSZYNQ7020FPGAPCC代码C测试代码连接IP核C功能验证jup

13、yter高层次综合AXI4-lnterconnectARMRTL输出ARMCortex-A9产生IP核Jupyter LabSD卡DDR3控制Memory制作PYNO外围设备镜像USB.Ethermetetc图2整体系统框图Fig.2Block diagram of overall system2.2HLS设计为了加速传统“寄存器传输级(registertrans-ferlevel,RTL)”开发FPGA的时间,Xilinx公司推出了可以提升行为抽象等级的编译器VivadoHLS。该编译器可以使用C+对算法进行设计开发,并最终综合成HDL描述。HLS设计流程如图3所示。在编写C代码时,首先使用

14、hls:A X I v id e o 2 Ma t 函数将AXI4-Stream格式的输人图像转换成HLS工具可以处理的hls:Ma t 格式,然后调用HLSVideoLibrary里的函数或者自定义算法函数进行图像处理,最后使用hls:Ma t 2 A X Iv i d e o 函数将hls:Ma t 格式的图像转换成FPGA可以处理的AXI4-Stream格式;同时结合C测试代码验证算法功能的有效性,并进行高层次综合;然后根据高层次综合的评估结果,观察FPGA中的资源使用情况,以及支持的最高时钟频率是否满足条件等。如果不满足条件,则需要重新优化,直到满足条件为止,然后导出IP核。在上述过程

15、中还需要对代码进行优化,而优化HLS代码的方式有约束和指令两种。约束是指对时钟周期、资源利用情况等指标进行限制,确保实验结果能够满足系统要求;而指令的添加可以优化C代码中的循环、数组和运算延时等,能够在很大程度上改变RTL的输出结果。因此,本文在设计缩放算法代码时,添加了如下优化。(1)#pragma HLS UNROLL:FPGA可以实现并行处理,所以代码可以展开循环,并创建多个独立的操作,即在单个时钟里并行处理for循环中的操作。(2)#pragmaHLSPIPELINE:PIPELINE可以允许上一个操作完成前,同时执行下一个操作,即循环流水线操作,以提高系统的吞吐率。(3)#pragm

16、aHLSLOOP_FLATTENOFF:可以防止优化等级过高,把嵌套循环结构优化成单层次循环结构。(4)#pragmaHLSdataflow:可以使各个图像处理函数能够并行执行,并获得高质量处理结果。#pragmaHLSINTERFACEaxisport=INPUT_STREAM#pragmaHLSINTERFACEaxisport=OUTPUT_STREAM。(6)将图像行数和列数配置成AXI4-lite接口:#pragma HLS INTERFACE s_axilite port=rows#pragmaHLSINTERFACE s_axilite port=cols。在高层次综合后,经对综

17、合结果评估后得到资源占用情况,如表1所示。从表1可以看出,缩放算法占用资源较少,能够满足系统的要求。58:第36 卷盐城工学院学报(自然科学版)C代码设计图像输入AXIvideo2Mat高层次综合导C仿真验证结果评估HLS视频库出OR优化RTL固化库生成Mat2AXIvideo2IP核图像输出C测试代码设计C语言描述RTL语言描述图3HLS设计流程图Fig.3Flow chart of HLS design表1缩放算法占用资源情况Table 1Resource usage of scaling algorithmsBRAM_资源名DSP48EFFLUT18K片上资源总计6409.4347582

18、设计使用280220106 40053200利用率/%2188142.3Overlay设计Overlay设计本质上就是ZYNQ的PL端设计,它既可以加速软件应用程序,也可以定制相应的硬件平台。缩放算法的Overlay系统框图如图4所示。图4中1号位置所指的IP是HLS综合后导出的缩放IP,它采用的是双线性插值算法,上采样支持小于或等于8 倍的放大比例,下采样支持大于或等于2 5%的缩小比例。2 号位置所指的IP是Vivado平台自带的IP,可以直接添加。DRAM中的数据是DMAIP利用位宽转换IP将32 位图像数据转换成缩放IP可处理的2 4位图像数据;数据处理完毕后,将2 4位图像数据转换成

19、32 位图像数据,再经过DMA传到DRAM。其余方框是系统根据设计自动生成的。IP核添加完成后,进行配置和连线,从而完成Overlay的设计。adi_interconneo+S00:AXDDRCTRACLKFOXEOALHPOZYNQARESETNAN_GAALACEKMASOO,ARESETKFKCUMOA+MOOLACLXM_pa7O100MMOARKSRTN_ACLXOLARESETN_Lmb_obuLmaxdinterconnodhad+500A0ProcesscrSyslemRebel+$1.A0ACL团ARESETNSOACLKMo_A+SO_ARESETN0ACLKSPLARES

20、ETNMOO.ACLKOOARESETNAxintercommect图4缩放算法的Overlay系统框图Fig.4Block diagram of Overlay system with scaling algorithm59.第2 期赵思捷,等:基于HLS和PYNQ图像缩放硬件加速器的设计2.4PYNQ框架随着Python的流行,Xilinx公司推出了可以使用Python语言和特定库的PYNQ框架。该框架利用ZYNQ中的FPGA和ARM快速构建高性能的嵌人式应用程序,不仅免除了传统的SDK开发方式,还代之以不限平台的浏览器开发,极大地方便了软件开发人员使用硬件设备。PYNQ框架包括以下几层:

21、(1)FPG A 为主的硬件层:FPGA部分的设计被称为Overlay设计,在Vivado2018.3平台上搭建并连接好IP核后,点击综合分析,在生成bit流文件后,就可以在软件上调用API,实现FPGA逻辑功能的动态切换以及PS和PL的协同交互。(2)Li n u x 内核加Python为主的软件层:主要是运行在ZYNQ的ARM端,可以通过Python调用API库来访问FPGA端的处理单元。(3)Ju p y t e r La b 为主的应用层:JupyterLab是一个基于浏览器的交互式实验环境,在这环境里,可以使用Python语言运行代码、查看结果和可视化分析等。3实验与结果在Firef

22、ox上打开在线编辑工具JupyterLab,然后导人文件库,下载Bitstream文件,最后将准备存放在SD卡中图片加载到DDR3中。图片加载完成后,JupyterLab会显示原始图像的尺寸。为了方便调用,可以创建DMA和ResizeIP对象,然后通过Overlay字典查看DMAIP和ResizeIP的配置信息(IP字典会显示具有AXILite接口且需要用户进行控制调配的AXIIP)。鉴于计算复杂,Jupyter染大图片时可能需要一段时间。为了获得更好的视觉效果,可以将显示图片的画布在JupyterLab上增加一倍。图5 为在JupyterLab中实现ResizeIP的情况。由图5 可知,加载

23、的测试图片大小为38 40pixelsx2 400 pixels,在 Jupyter Lab上执行ResizeIP后的图像大小为192 0 pixelsx1200pixels,测试图片缩小为原图像的一半。此外,本文在JupyterLab上还设计软件版本的缩放算法,该算法是由Python环境和PYNQ框架提供的OpenCV库实现的。bupyfertabhupytertabO&pmgssoasO&pynq:9090/tabJupyter NoebookupytentabPyo ttroductionSetingHeip#用网证 京东宽城CJupyter Notebook Jupyterlab 喝P

24、YNQ IintroductionresiaerpiLipynbKernelTabsSettings056400.Help口Codov5640.gary_median_sobel.Xresizer_ptipynb+口CCodeDisplayresized imageplt.lnsoorlginal_laae)f17:print(Image size:(x)pixels,.format(newwidth,new_height)plt.imshow(resized_image)Imagesize:1920 x1200 pixels.20040080200010001200250 500750100

25、0125015001750a原始图像b本文算法后的图像图5在JupyterLab中实现Resize IPFig.5Implementing Resize IP in Jupyter LabResizeIP执行时间如表2 所示。从表2 可以看出,软件实现本文算法的执行时间为1110 ms,而硬件实现本文算法的执行时间为2 13ms,硬件加速下处理性能提升了5 倍左右。4结论针对CPU上无法满足图像实时处理的需求,提出了一种基于PYNQ框架的图像处理加速器设表2 ResizeIP执行速度Table2Execution speed of ResizeIP配置执行时间/ms速度提升/倍CPU11101

26、.0FPGA2135.2计。首先选取缩放算法作为图像加速测试的算法,再利用HLS工具使用C+语言完成了Resize责任编辑:李华云.60第3 6 卷盐城工学院学自然科学版)IP的设计,最后在JupyterLab上完成了算法的验证与分析。实验结果表明,基于PYNQ硬件平台的执行速度约是软件平台的5 倍,极大地提高了算法的处理速度;并且硬件平台系统是模块化IP设计,便于移植和二次开发,在计算机图像处理领域具有一定的工程应用价值。参考文献:1 GAOSS,WANGY Y,CHENZ F,et al.Design and implementation of local threshold segmen

27、tation based on FPGAJ.Journal of Electrical and Computer Engineering,2022,2022:1-7.2 高尚尚,王新宇,王小丫,等基于以太网传输的图像处理系统设计及FPGA实现 J计算机测量与控制,2 0 2 2,30(7):213-218.3周晓波,王洪,周郭飞一种基于峰度系数的脉冲噪声检测算法的研究及其FPGA实现 J.电子与信息学报,2021,43(7):1816-1820.【4】刘估.基于HLS的Sobel边缘检测实现与优化 J.山西电子技术,2 0 2 2(2):5 6-5 8,6 5.5王成辰,王小丫,郭乃宏,等.传

28、送带偏移检测技术研究及FPGA实现 J.计算机测量与控制,2 0 2 2,30(9):40-45,53.6 LEEHS,JEON J W.Accelerating image processing on FPCAs using HLS and PYNQCJ/2020 IEEE International Confer-ence on Consumer Electronics-Asia(ICCE-Asia).November 1-3,2020,Seoul,Korea(South).IEEE,2020:1-2.7 VASHIST L,KUMAR M.Design of canny edge det

29、ection hardware accelerator using xfOpenCV library MJ/Computa-tional Vision and Bio-Inspired Computing.Cham:Springer International Publishing,2020:1171-1178.【8 张瑞琰,姜秀杰,安军社,等。PYNQ框架的高精度异构无预选框检测模型实现 J。哈尔滨工业大学学报,2 0 2 2,54(5):24-33.9 CUIZ J,CHEN C L,AN JS,et al.Heterogeneous tracking system of kernel c

30、orrelation filtering based on PYNQ frame-work C/2020 3rd International Conference on Electron Device and Mechanical Engineering(ICEDME).May 1-3,2020,Suzhou,China.IEEE,2020:722-726.【10】杨丽娟,李利基于双线性插值的内容感知图像缩放算法仿真 J.计算机仿真,2 0 19,36(12):2 44-2 48.11】汪志宁,刘春,戴雷,等小波变换组合双线性插值法在北斗周跳中的应用 J电子测量与仪器学报,2 0 2 0,34

31、(11):50-57Design of Image Scaling Hardware Accelerator Based on HLS andPYNQZHAO Sijie,GAO Shangshang,WANG Rugang,WANG Yuanyuan,ZHOU Feng,GUO Naihong?(1.School of Information Technology,Yancheng Institute of Technology,Yancheng Jiangsu224051,China;(2.Yancheng Xiongying Precision Machinery Company Lim

32、ited,Yancheng Jiangsu224006,ChinaAbstract:In view of the fact that image processing by CPU can no longer meet the real-time requirements of the system,a hard-ware accelerator design for image processing based on HLS and PYNQ is proposed.This design makes use of the advantages ofdata parallel process

33、ing of FPCA,and overcomes the defects of difficult development and poor portability of FPGA.First,the Im-age scaling processing algorithm is selected as the test object of the experiment.Then,different system tasks are assigned onZYNQ platform according to the characteristics of software and hardwar

34、e cooperation.The image processing algorithm is realizedand optimized by using C+through HLS development tools,which is converted into RTL files and then packaged into IP coresfor output.A hardware experimental platform was built on Vivado2018.3,and the experiment was verified and analyzed by JupyterLab.The results show that the processing speed of the scaling algorithm has been reduced from 1 110 ms on the CPU side to 213ms on the FPGA side,and the execution speed is increased by 5 times.Keywords:FPCA;scaling algorithm;HLS;PYNQ;Jupyter Lab

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 论文指导/设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服