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逻辑组成的寄存器模块来进行控制

最后实现的效果如下

相关推荐
千寻xun9 小时前
三、实战篇-NVME SSD控制之FPGA实现(一)
fpga开发·nvme ssd·nvme协议
XMAIPC_Robot13 小时前
软硬协同实时控制|RK3588业务调度+FPGA硬件时序,ethercat实现半导体设备微秒级响应(125us)
linux·arm开发·人工智能·fpga开发
upper202013 小时前
从零开始设计riscv cpu记录之七
fpga开发·riscv·riscv设计·btb·分支预测
ARM|X86+FPGA工业主板厂家17 小时前
AI视觉跟随运动控制实战|RK3588 NPU检测+FPGA EtherCAT多轴联动精准跟随方案,适用于半导体视觉对位等
人工智能·fpga开发·硬件工程·ethercat·实时系统
XMAIPC_Robot21 小时前
RK3588+FPGA半导体设备量产踩坑大全|发热、时序漂移、推理抖动、成像干扰、EMC干扰方案
人工智能·嵌入式硬件·fpga开发·arm+fpga
前网易架构师-高司机21 小时前
带标注的成熟棉花识别数据集,识别率83.9%数据集,505张图,支持yolo,coco json,voc xml,文末有模型训练代码
yolo·数据集·成熟·棉花·棉铃·发育·闭合
凡亿卓达方案设计2 天前
FPGA硬件开发怎么选靠谱方案商?
fpga开发
Eloudy2 天前
QSFP28、RoCEv2、RFSoC-4x2 数据传输与器件链路
网络·fpga开发·rocev2
Echo_cy_2 天前
基于ZYNQ-7000的Ethernet驱动配置
linux·驱动开发·嵌入式硬件·fpga开发·ethernet·zynq
殷忆枫2 天前
AI笔记三十七:AI边缘端道桥安全监测系统:YOLOv8n推理与Web监控全解析
笔记·yolo