FPGA上实现YOLOv5的一般过程

在FPGA上实现YOLOv5

YOLO算法现在被工业界广泛的应用,虽说现在有很多的NPU供我们使用,但是我们为了自己去实现一个NPU所以在本文中去实现了一个可以在FPGA上运行的YOLOv5。

YOLOv5的开源代码链接为

https://github.com/ultralytics/yolov5


为了在FPGA中实现YOLOv5,我们首先在VOC数据集上面进行算法的训练,得到训练后的文件,并对训练后的文件进行8bit量化操作

得到三个权重文件。

之后为了将这个权重文件发送到FPGA上,所以我们再次使用python去解析这个权重文件,然后按照我们的FPGA加速器的架构对权重进行重组

解析的Python文件示意如下

得到的权重数据示意如下:

之后呢再来看一下yolov5的网络结构

放大一个局部来看一下,可以看到就是一些卷积,cat等操作

所以我们在FPGA实现的时候也是去实现这些基本的算子

FPGA上实现的结构图如下所示

在每个算子里面都是分为in_buf,out_buf,和控制模块计算模块组成

然后每个模块会有一堆的控制信号来控制整个NPU的运行

总的控制由AXI Lite逻辑组成的寄存器模块来进行控制

最后实现的效果如下

相关推荐
知识充实人生3 小时前
静态时序分析详解之时序路径类型
fpga开发·时序路径·关键路径
JoinApper16 小时前
目标检测系列-Yolov5下载及运行
人工智能·yolo·目标检测
9527华安1 天前
Xilinx系列FPGA实现DP1.4视频收发,支持4K60帧分辨率,提供2套工程源码和技术支持
fpga开发·音视频·dp1.4·4k60帧
cycf1 天前
高速接口基础
fpga开发
forgeda1 天前
从Vivado集成Lint功能,看FPGA设计的日益ASIC化趋势
fpga开发·vivado·lint·eco·静态检查功能
XiaoMu_0012 天前
基于Django+Vue3+YOLO的智能气象检测系统
python·yolo·django
hexiaoyan8272 天前
国产化FPGA开发板:2050-基于JFMK50T4(XC7A50T)的核心板
fpga开发·工业图像输出·vc709e板卡·zynq 通用计算平台·模拟型号处理
雨洛lhw2 天前
The Xilinx 7 series FPGAs 设计PCB 该选择绑定哪个bank引脚,约束引脚时如何定义引脚电平标准?
fpga开发·bank·电平标准
程序员柳2 天前
基于YOLOv8的车辆轨迹识别与目标检测研究分析软件源代码+详细文档
人工智能·yolo·目标检测
红糖果仁沙琪玛2 天前
FPGA ad9248驱动
fpga开发