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逻辑组成的寄存器模块来进行控制
在这里插入图片描述
最后实现的效果如下

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值