ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

FPGA神经网络部署 Zynq Ultrascale Yolov3-tiny VGG16

2021-10-06 11:02:15  阅读:439  来源: 互联网

标签:Yolov3 FPGA 卷积 Ultrascale 神经网络 加速器 AXI Yolov3tiny


工程描述:
该工程实现了一个通用的卷积神经网络加速器,成功搭载Yolov3tiny。配合摄像头采集+显示器回显环路,构建了一个高性能实时目标识别与检测系统。
验证平台:
Xilinx Zynq Ultrascale系列xzcu3eg芯片,Digilent官方Genesys ZU3EG板卡
基本外设:
Digilent PCAM 5C MIPI摄像头,Ultrascale标配的mini DisplayPort显示器接口
实现方式:
纯Verilog实现卷积加速器的设计,C语言实现Zynq PS端的开发,Python实现神经网络的搭建与量化
开发工具套件:
Vivado,Vitis,Python,Pytorch
性能指标:
Yolov3tiny推理时间小于50ms,VGG16主干推理时间小于200ms,最高时钟频率超过250MHz,峰值速率超过172GOPS,INT8量化
耗用资源:
24K个LUT,23K个FF,40个BRAM36K,296个DSP48
工程自带的demo:
基于Yolov3tiny的人脸口罩识别、基于Yolov3tiny的头盔识别
卷积加速器能实现的运算:
1x1 Conv,3x3 Conv,2x2 Maxpooling步长为=1/2,通过查表法实现任意激活函数,Relu,Tanh,sigmoid,leakyRelu
所需背景知识:
需要熟练掌握Verilog,熟悉Zynq架构,熟悉AXI总线,了解卷积神经网络

常见问题:
Q1:该工程只能实现Yolov3tiny算法吗?
A:该工程在PL端实现了一个通用的卷积加速器,理论上可以实现任意卷积神经网络的推理。需要在PS端自己根据网络的架构设计调度程序。
Q2:该工程支持哪些卷积神经网络的运算?
A:1x1 Conv,3x3 Conv,2x2 Maxpooling步长为=1/2,通过查表法实现任意激活函数,Relu,Tanh,sigmoid,leakyRelu
Q3:我能移植到我自己的开发板上吗?
A:可以。但是需要自己根据自己的摄像头,显示器,板子的约束,自己进行移植。
Q3:该加速器的实现耗用的资源大吗?
A:不大。24K个LUT,23K个FF,40个BRAM36K,几乎所有Xilinx的板子都有充足的资源。唯一的就是DSP耗用较多,如果芯片的DSP48不够的话,可以自己将乘法器映射成LUT。
Q4:不带CPU的Artix或者Virtex系列的FPGA能跑吗?
A:理论上可以。该加速器必须得有一个CPU进行调度。可以自己尝试例化MicroBlaze或者Cortex M1/3甚至Riscv的软核
Q5:Python训练好的权重数据怎么放到FPGA里面?
A:我将权重数据进行一定的预处理之后,放到SD卡里面,在PS端调用自带的xilff.h的SD卡驱动库,读取SD卡的二进制权重文件,灌入DDR之后,PL端通过AXI DMA核访问DDR的数据进行推理计算
Q6:该加速器的架构是怎样的?
A:该加速器的设计借鉴了清华大学汪玉老师的团队的两篇论文:Angel-Eye A Complete Design Flow for Mapping CNN Onto Embedded FPGA与Going Deeper with Embedded FPGA Platform for Convolutional Neural Network

我能从该工程里学到什么?
1 卷积加速器Verilog的设计。可以了解到如何通过Linebuffer计算卷积,如何堆并行,
2 AXI总线的设计。该系统大量使用了AXI LITE,AXI STREAM,AXI FULL的总线,可以学习到如何根据AXI总线协议进行数据交互。
3 摄像头显示器回路的搭建。该系统实现了采集+处理+显示回路,可以学习如何搭建摄像头与显示器回路。
4 神经网络的硬件实现。可以了解到如何进行Yolov3tiny的具体实现,如何将一个CNN完整地映射至FPGA当中。
5 Pytorch的相关知识。如何利用Pytorch进行线性INT8量化等等。

感兴趣可以加QQ交流,1830711937

 

标签:Yolov3,FPGA,卷积,Ultrascale,神经网络,加速器,AXI,Yolov3tiny
来源: https://www.cnblogs.com/adamgallas/p/15370744.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有