<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 后摩爾時(shí)代的創(chuàng )新:在米爾FPGA上實(shí)現Tiny YOLO V4,助力AIoT應用

后摩爾時(shí)代的創(chuàng )新:在米爾FPGA上實(shí)現Tiny YOLO V4,助力AIoT應用

作者: 時(shí)間:2024-12-05 來(lái)源:EEPW 收藏
編者按:學(xué)習如何在 MYIR 的 ZU3EG FPGA 開(kāi)發(fā)板上部署 Tiny YOLO v4,對比 FPGA、GPU、CPU 的性能,助力 AIoT 邊緣計算應用。(文末有彩蛋)


本文引用地址:http://dyxdggzs.com/article/202412/465217.htm

1733374754108911.jpeg

一、為什么選擇FPGA:應對7nm制程與AI限制

在全球半導體制程限制和高端 GPU 受限的大環(huán)境下,FPGA 成為了中國企業(yè)發(fā)展的重要路徑之一。它可支持靈活的 AIoT 應用,其靈活性與可編程性使其可以在國內成熟的 28nm 工藝甚至更低節點(diǎn)的制程下實(shí)現高效的硬件加速。

的 ZU3EG 開(kāi)發(fā)板憑借其可重構架構為 AI 和計算密集型任務(wù)提供了支持,同時(shí)避免了 7nm 工藝對國產(chǎn)芯片設計的制約。通過(guò)在 ZU3EG 上部署 Tiny YOLO v4,我們可以為智能家居、智慧城市等 AIoT 應用提供高效的解決方案。

1733374781361615.png

1733374799881674.png

CPU GPU FPGA 架構對比

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

YOLO(You Only Look Once)是一種實(shí)時(shí)物體檢測模型,它通過(guò)一次性?huà)呙枵麄€(gè)圖像,實(shí)現高效的對象識別。

而其簡(jiǎn)化版 Tiny YOLO v4 更適合嵌入式設備,具有較少的層數和參數。其輕量化特性更適合在資源受限的設備上運行,尤其在低功耗、實(shí)時(shí)檢測的邊緣計算設備中表現出色。

相比傳統 GPU,FPGA 能在小面積和低功耗下實(shí)現類(lèi)似的推理性能,非常契合 AIoT 應用。像 ZU3EG 這樣的 FPGA 開(kāi)發(fā)板,通過(guò)底板和豐富接口的載板設計,非常適合高效的嵌入式低功耗數據處理。

1733374819205846.png

Yolo V4網(wǎng)絡(luò )結構圖

1733374838802863.png

Tiny Yolo V4網(wǎng)絡(luò )結構圖

(通過(guò)優(yōu)化網(wǎng)絡(luò )結構和參數,保持較高檢測精度的同時(shí),降低模型的計算量和內存占用)

三、獲取數據集和模型

可下載開(kāi)源訓練集或預訓練模型。為了確保兼容性,建議將模型轉換為 ONNX 格式,以便后續能在 FPGA 上完成優(yōu)化。

1. 下載 Tiny YOLO v4模型:從 Darknet 的 GitHub 倉庫 獲取 Tiny YOLO 的預訓練權重,或者在 COCO 等數據集上自行訓練模型。自定義的模型適用于特定應用場(chǎng)景(如車(chē)輛檢測、人臉檢測等)。

2.數據準備:若要自定義模型,可使用 LabelImg 等工具對數據集進(jìn)行標注,將數據轉為 YOLO 格式。之后,可將 YOLO 格式轉換為 ONNX 格式,以便兼容 FPGA 優(yōu)化工具鏈。

1733374856588197.png

Tiny YOLO在Darknet上訓練的截圖

四、通過(guò) Vivado HLS 為 FPGA 準備模型

要將模型部署到 FPGA,需要將神經(jīng)網(wǎng)絡(luò )操作轉換為硬件級描述。使用 Xilinx 的 Vitis HLS(高級綜合)可以將 Tiny YOLO v4 的 C++ 模型代碼的轉化為 Verilog RTL(寄存器傳輸級)代碼,從而將模型從軟件世界帶入硬件實(shí)現。

詳細步驟:

1.模型層映射和優(yōu)化:

●   將YOLO的每一層(如卷積層、池化層)映射為硬件友好的 C/C++ 結構。例如,將卷積映射為乘累加(MAC)數組,通過(guò)流水線(xiàn)實(shí)現并行化。

2.算子加速與指令優(yōu)化:

●   流水線(xiàn)(Pipelining):利用流水線(xiàn)來(lái)處理多項操作并行,減少延遲。

●   循環(huán)展開(kāi)(Loop Unrolling):展開(kāi)循環(huán),以每周期處理更多數據,尤其在卷積操作中有效。

●   設置 DATAFLOW 指令,使層間獨立處理。

3.量化與位寬調整:

●   將激活值和權重量化為定點(diǎn)精度(例如 INT8),而非浮點(diǎn)數。這在維持準確度的同時(shí)顯著(zhù)降低計算量,尤其適合 FPGA 的固定點(diǎn)運算支持。

1733374876174544.png

Tiny YOLO模型在Vivado HLS中的層層轉化流程圖

五、使用 Vivado 綜合與部署 Verilog 到 的ZU3EG FPGA開(kāi)發(fā)板

當HLS生成的RTL代碼準備就緒后,可以使用Vivado將模型部署到FPGA。

1.Vivado 中的設置:

●   將 HLS 輸出的 RTL 文件導入 Vivado。

●   在Vivado中創(chuàng )建模塊設計,包括連接AXI 接口與 ZU3EG 的 ARM 核連接。

2.I/O 約束與時(shí)序:

●   定義 FPGA 的 I/O 引腳約束,以匹配 ZU3EG 板的特定管腳配置。配置時(shí)鐘約束以滿(mǎn)足合適的數據速率(如視頻數據 100-200 MHz)。

●   進(jìn)行時(shí)序分析,確保延遲和響應速度達到實(shí)時(shí)要求。

3.生成比特流并下載到 ZU3EG:

●   生成的比特流可以直接通過(guò) JTAG 或以太網(wǎng)接口下載到 ZU3EG。

1733374896195135.png

將Tiny YOLO處理模塊連接到米爾的外設和接口

六、在FPGA上測試并運行推理

現在Tiny YOLO已部署,可以驗證其實(shí)時(shí)對象檢測性能。

1.數據采集:

●   通過(guò)連接的相機模塊捕捉圖像或視頻幀,或者使用存儲的測試視頻。

●   使用 ZU3EG 的 ARM 核上的 OpenCV 對幀進(jìn)行預處理,再將它們傳入 FPGA 預處理后進(jìn)行推理。

2.后處理與顯示:

●   模型檢測對象后,輸出邊框和類(lèi)別標簽。使用 OpenCV 將邊框映射回原始幀,并在每個(gè)檢測到的對象周?chē)@示類(lèi)別和置信度。

3.性能測試:

●   測量幀速率(FPS)和檢測準確度。微調量化位寬或數據流參數,以?xún)?yōu)化實(shí)時(shí)需求。

1733374919986139.png

Tiny YOLO模型在ZU3EG上顯示檢測結果的實(shí)時(shí)輸出,視頻幀中標注了檢測到的對象

七、性能優(yōu)化與調試技巧

為提高性能,可以進(jìn)行以下調整:

●   內存訪(fǎng)問(wèn):設計數據存儲方式,最大限度利用緩存并減少數據傳輸,降低內存瓶頸。

●   降低延遲:重新評估關(guān)鍵路徑延遲。若延遲過(guò)高,調整 Vitis HLS 中的流水線(xiàn)深度,并驗證層間的數據依賴(lài)性。

●   量化改進(jìn):嘗試 INT8 量化。Xilinx 的 Vitis AI 可幫助微調量化參數,以平衡準確性與速度。

1733374939347149.png

不同優(yōu)化配置對資源使用的影響

1733374960638559.png

圖 米爾MYC-CZU3EG/4EV/5EV-V2核心板及開(kāi)發(fā)板

在MYIR 的 ZU3EG 開(kāi)發(fā)平臺上提供了一種高效的解決方案。利用 FPGA 獨特的靈活性和低功耗優(yōu)勢,助力未來(lái) AIoT 設備的普及和智能升級。

關(guān)注米爾電子公眾號,后臺回復FPGA,獲取完整Tiny Yolo V4教程。

1733374978146385.png



關(guān)鍵詞: 米爾 ZU3EG開(kāi)發(fā)板

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>