当前位置: 首页 > news >正文

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

在这里插入图片描述

相关文章:

  • STM32 的 GPIO和中断
  • 基于深度学习和单目测距的前车防撞及车道偏离预警系统
  • git 操作
  • STM32 串口通信
  • Git 详细使用说明文档(适合小白)
  • MVCC详解
  • maven工程中引入外部jar
  • 信息系统项目管理工程师备考计算类真题讲解八
  • 拥抱健康生活,解锁养生之道
  • Trae或者VsCode无法识别相对路径(不自动切换工作目录)
  • VSCode如何修改默认扩展路径和用户文件夹目录到其他盘以及微信开发工具如何修改扩展路径到其他盘
  • C# 音频分离(MP3伴奏)
  • WHAT - 区分 Git PR 和 MR
  • 使用setGraphicsEffect重新设置阴影导致程序崩溃的问题
  • IP的基础知识以及相关机制
  • QTcpSocket 和 QUdpSocket 来实现基于 TCP 和 UDP 的网络通信
  • 爬虫学习——使用HTTP服务代理、redis使用、通过Scrapy实现分布式爬取
  • kubernetes》》k8s》》Dashboard
  • 2025新版懒人精灵零基础及各板块核心系统视频教程-全分辨率免ROOT自动化开发
  • idea连接远程服务器kafka
  • 广东东莞调整普通住宅价格标准:一类镇街上浮300余元/平方米
  • 商务部谈中欧汽车谈判进展
  • 国家发改委:更大力度、更实举措促进民营经济高质量发展
  • 我国翻译从业人员达680.8万人,行业总需求仍在上升
  • 被电诈100万元又要被骗71万元,女子经民警近8小时劝阻幡然醒悟
  • 外卖江湖战火重燃,骑手、商家、消费者在“摇摆”什么?