0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

后摩尔时代的创新:在米尔FPGA上实现Tiny YOLO V4,助力AIoT应用

米尔电子 2024-11-22 01:00 次阅读

学习如何在 MYIR 的 ZU3EG FPGA 开发板上部署 Tiny YOLO v4,对比 FPGA、GPUCPU 的性能,助力 AIoT 边缘计算应用。

一、为什么选择 FPGA:应对 7nm 制程与 AI 限制

在全球半导体制程限制和高端 GPU 受限的大环境下,FPGA 成为了中国企业发展的重要路径之一。它可支持灵活的 AIoT 应用,其灵活性与可编程性使其可以在国内成熟的 28nm 工艺甚至更低节点的制程下实现高效的硬件加速。

米尔的 ZU3EG 开发板凭借其可重构架构为 AI 和计算密集型任务提供了支持,同时避免了 7nm 工艺对国产芯片设计的制约。通过在 ZU3EG 上部署 Tiny YOLO V4,我们可以为智能家居、智慧城市等 AIoT 应用提供高效的解决方案。

1fd53440-a82a-11ef-8084-92fbcf53809c.png1ff59190-a82a-11ef-8084-92fbcf53809c.png

CPU GPU FPGA 架构对比

二、了解 Tiny YOLO 模型及其适用性

YOLO(You Only Look Once)是一种实时物体检测模型,它通过一次性扫描整个图像,实现高效的对象识别。

而其简化版 Tiny YOLO V4 更适合嵌入式设备,具有较少的层数和参数。其轻量化特性更适合在资源受限的设备上运行,尤其在低功耗、实时检测的边缘计算设备中表现出色。

相比传统 GPU,FPGA 能在小面积和低功耗下实现类似的推理性能,非常契合 AIoT 应用。像米尔 ZU3EG 这样的 FPGA 开发板,通过底板和丰富接口的载板设计,非常适合高效的嵌入式低功耗数据处理。

20207e64-a82a-11ef-8084-92fbcf53809c.png

Yolo V4 网络结构图

204930fc-a82a-11ef-8084-92fbcf53809c.png

Tiny Yolo V4 网络结构图

(通过优化网络结构和参数,保持较高检测精度的同时,降低模型的计算量和内存占用)

三、获取数据集和模型

下载开源训练集或预训练模型。为了确保兼容性,建议将模型转换为 ONNX 格式,以便后续能在 FPGA 上完成优化。

1.下载 Tiny YOLO V4 模型:从Darknet 的 GitHub 仓库获取 Tiny YOLO 的预训练权重,或者在 COCO 等数据集上自行训练模型。自定义的模型适用于特定应用场景(如车辆检测、人脸检测等)。

2.数据准备:若要自定义模型,可使用 LabelImg 等工具对数据集进行标注,将数据转为 YOLO 格式。之后,可将 YOLO 格式转换为 ONNX 格式,以便兼容 FPGA 优化工具链。

206cb2fc-a82a-11ef-8084-92fbcf53809c.png

Tiny YOLO 在 Darknet 上训练的截图

四、通过 Vivado HLS 为 FPGA 准备模型

要将模型部署到 FPGA,需要将神经网络操作转换为硬件级描述。使用 Xilinx 的 Vitis HLS(高级综合)可以将 Tiny YOLO v4 的 C++ 模型代码的转化为 Verilog RTL(寄存器传输级)代码,从而将模型从软件世界带入硬件实现。

详细步骤

1.模型层映射和优化

  • 将 YOLO 的每一层(如卷积层、池化层)映射为硬件友好的 C/C++ 结构。例如,将卷积映射为乘累加(MAC)数组,通过流水线实现并行化。

2.算子加速与指令优化

  • 流水线(Pipelining):利用流水线来处理多项操作并行,减少延迟。

  • 循环展开(Loop Unrolling):展开循环,以每周期处理更多数据,尤其在卷积操作中有效。

  • 设置 DATAFLOW指令,使层间独立处理。

3.量化与位宽调整

  • 将激活值和权重量化为定点精度(例如 INT8),而非浮点数。这在维持准确度的同时显著降低计算量,尤其适合 FPGA 的固定点运算支持。
209fc19c-a82a-11ef-8084-92fbcf53809c.png

Tiny YOLO 模型在 Vivado HLS 中的层层转化流程图

五、使用 Vivado 综合与部署 Verilog 到 米尔的ZU3EG FPGA开发板

当 HLS 生成的 RTL 代码准备就绪后,可以使用 Vivado 将模型部署到 FPGA。

1.Vivado 中的设置

将 HLS 输出的 RTL 文件导入 Vivado。

在 Vivado 中创建模块设计,包括连接AXI 接口与 ZU3EG 的 ARM 核连接。

2.I/O 约束与时序

定义 FPGA 的 I/O 引脚约束,以匹配 ZU3EG 板的特定管脚配置。配置时钟约束以满足合适的数据速率(如视频数据 100-200 MHz)。

进行时序分析,确保延迟和响应速度达到实时要求。

3.生成比特流并下载到 ZU3EG

生成的比特流可以直接通过 JTAG 或以太网接口下载到 ZU3EG。

20e78144-a82a-11ef-8084-92fbcf53809c.png

将 Tiny YOLO 处理模块连接到 米尔ZU3EG开发板 的外设和接口

六、在 FPGA 上测试并运行推理

现在 Tiny YOLO 已部署,可以验证其实时对象检测性能。

1.数据采集

  • 通过连接的相机模块捕捉图像或视频帧,或者使用存储的测试视频。

  • 使用 ZU3EG 的 ARM 核上的 OpenCV 对帧进行预处理,再将它们传入 FPGA 预处理后进行推理。

2.后处理与显示

  • 模型检测对象后,输出边框和类别标签。使用 OpenCV 将边框映射回原始帧,并在每个检测到的对象周围显示类别和置信度。

3.性能测试

  • 测量帧速率(FPS)和检测准确度。微调量化位宽或数据流参数,以优化实时需求。
2109e676-a82a-11ef-8084-92fbcf53809c.png

Tiny YOLO 模型在 ZU3EG 上显示检测结果的实时输出,视频帧中标注了检测到的对象

七、性能优化与调试技巧

为提高性能,可以进行以下调整:

  • 内存访问:设计数据存储方式,最大限度利用缓存并减少数据传输,降低内存瓶颈。

  • 降低延迟:重新评估关键路径延迟。若延迟过高,调整 Vitis HLS 中的流水线深度,并验证层间的数据依赖性。

  • 量化改进:尝试 INT8 量化。Xilinx 的 Vitis AI 可帮助微调量化参数,以平衡准确性与速度。

2148355c-a82a-11ef-8084-92fbcf53809c.png

不同优化配置对资源使用的影响

215bf43e-a82a-11ef-8084-92fbcf53809c.png

米尔MYC-CZU3EG/4EV/5EV-V2核心板及开发板

在MYIR 的 ZU3EG 开发平台上提供了一种高效的解决方案。利用 FPGA 独特的灵活性和低功耗优势,助力未来 AIoT 设备的普及和智能升级。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21729

    浏览量

    603013
  • AIoT
    +关注

    关注

    8

    文章

    1406

    浏览量

    30651
  • 米尔电子
    +关注

    关注

    0

    文章

    109

    浏览量

    450
收藏 人收藏

    评论

    相关推荐

    助力AIoT应用:米尔FPGA开发板实现Tiny YOLO V4

    学习如何在 MYIR 的 ZU3EG FPGA 开发板上部署 Tiny YOLO v4,对比 FPGA、GPU、CPU 的性能,
    发表于 12-06 17:18

    《DNK210使用指南 -CanMV版 V1.0》第四十一章 YOLO2物体检测实验

    YOLO2网络的物体检测应用在CanMV实现。本章分为如下几个小节:41.1 maix.KPU模块介绍41.2 硬件设计41.3 程序设计41.4 运行验证 41.1 maix.KPU模块介绍
    发表于 11-14 09:22

    《DNK210使用指南 -CanMV版 V1.0》第四十章 YOLO2人手检测实验

    中进行运算,然后再进行YOLO2网络运算,最后便得到网络识别出人手输入图像的一些信息,将这些信息绘制到图像
    发表于 11-14 09:20

    《DNK210使用指南 -CanMV版 V1.0》第三十九章 YOLO2人脸检测实验

    KPU中进行运算,然后再进行YOLO2网络运算,最后便得到网络识别出人脸输入图像的一些信息,将这些信息绘制到图像
    发表于 11-13 09:37

    米尔-Xilinx XC7A100T FPGA开发板试用】+01.开箱(zmj)

    】资料:米尔-Xilinx XC7A100T FPGA开发板 【图】资料:米尔-紫光同创PG2L100H国产FPGA开发板 3.硬件电状
    发表于 11-12 15:45

    摩尔斯微电子荣获2024年WBA行业大奖最佳Wi-Fi创新奖等多项殊荣

    1000倍。颁奖评委们评价道:“摩尔斯微电子稳定、低功耗的物联网连接方面的开创性工作,使其稳居行业领先地位。该公司正在真正推动创新,这将对物联网的未来起到关键作用,并重新定义下一代Wi-Fi。”颠覆性
    发表于 11-01 14:41

    高密度互连,引爆摩尔威廉希尔官方网站 革命

    领域中正成为新的创新焦点,引领着超集成高密度互连威廉希尔官方网站 的飞跃。通过持续的威廉希尔官方网站 创新实现高密度互连,将是推动先进封装威廉希尔官方网站 在后摩尔时代跨越发展的关键所在。
    的头像 发表于 10-18 17:57 259次阅读
    高密度互连,引爆<b class='flag-5'>后</b><b class='flag-5'>摩尔</b>威廉希尔官方网站
革命

    使用OpenVINO C# API部署YOLO-World实现实时开放词汇对象检测

    YOLO-World是一个融合了实时目标检测与增强现实(AR)威廉希尔官方网站 的创新平台,旨在将现实世界与数字世界无缝对接。该平台以YOLO(You Only Look Once)算法为核心,实现
    的头像 发表于 08-30 16:27 628次阅读
    使用OpenVINO C# API部署<b class='flag-5'>YOLO</b>-World<b class='flag-5'>实现</b>实时开放词汇对象检测

    特斯拉正积极测试其V4超级充电桩

    近日,特斯拉快速充电威廉希尔官方网站 领域的最新动态引发了广泛关注。据悉,特斯拉正积极测试其现有的V4超级充电桩(基于V3充电柜构建)的潜力,旨在突破300千瓦的充电功率上限,这一举措标志着特斯拉
    的头像 发表于 08-06 16:52 816次阅读

    FPGA集群实现高级并行编程

    今天我们看的这篇论文介绍了FPGA集群实现高级并行编程的研究,其主要目标是为非FPGA专家提供一个成熟且易于使用的环境,以便在多个并行
    的头像 发表于 07-24 14:54 1242次阅读

    “自我实现的预言”摩尔定律,如何继续引领创新

    未来的自己制定了一个远大但切实可行的目标一样, 摩尔定律是半导体行业的自我实现 。虽然被誉为威廉希尔官方网站 创新的“黄金法则”,但一些事情尚未广为人知……. 1. 戈登·摩尔完善过
    的头像 发表于 07-05 15:02 270次阅读

    X-CUBE-CRYPTOLIB V4库文件无法添加,链接错误的原因?

    看官方介绍,V4版本的静态库是支持多个编译器的,芯片是stm32h743,我用的是arm-none-eabi-gcc,版本是gcc version 13.2.1 20231009 (Arm GNU
    发表于 05-31 07:54

    STM32 x 米尔共同推动工业william hill官网 创新

    STM32 x 米尔共同推动工业william hill官网 创新
    的头像 发表于 05-30 08:01 579次阅读
    STM32 x <b class='flag-5'>米尔</b>共同推动工业william hill官网
<b class='flag-5'>创新</b>

    米尔-芯驰D9360商显板试用评测】使用ffmpeg实现远程视频监控

    ,解压,直接上传给开发板。 2、插上摄像头,查看摄像头的编号: 3、win11安装好esadarwin,并开启服务,配置文件中,我
    发表于 04-11 13:07

    高精度纳米级压电位移平台“PIEZOCONCEPT”!

    高精度纳米级压电位移平台“PIEZOCONCEPT”半导体界摩尔时代的手术刀!第三代半导体是摩尔时代实现芯片性能突破的核心威廉希尔官方网站 之一,优越
    的头像 发表于 01-26 08:16 730次阅读
    高精度纳米级压电位移平台“PIEZOCONCEPT”!