學習如何在 MYIR 的 ZU3EG FPGA 開發板上部署 Tiny YOLO v4,對比 FPGA、GPU、CPU 的性能,助力 AIoT 邊緣計算應用。
一、 為什么選擇 FPGA:應對 7nm 制程與 AI 限制 在全球半導體制程限制和高端 GPU 受限的大環境下,FPGA 成為了中國企業發展的重要路徑之一。它可支持靈活的 AIoT 應用,其靈活性與可編程性使其可以在國內成熟的 28nm 工藝甚至更低節點的制程下實現高效的硬件加速。 米爾的 ZU3EG 開發板憑借其可重構架構為 AI 和計算密集型任務提供了支持,同時避免了 7nm 工藝對國產芯片設計的制約。通過在 ZU3EG 上部署 Tiny YOLO V4,我們可以為智能家居、智慧城市等 AIoT 應用提供高效的解決方案。 ![]()
![]()
CPU GPU FPGA 架構對比 二、 了解 Tiny YOLO 模型及其適用性 YOLO(You Only Look Once)是一種實時物體檢測模型,它通過一次性掃描整個圖像,實現高效的對象識別。 而其簡化版 Tiny YOLO V4 更適合嵌入式設備,具有較少的層數和參數。其輕量化特性更適合在資源受限的設備上運行,尤其在低功耗、實時檢測的邊緣計算設備中表現出色。 相比傳統 GPU,FPGA 能在小面積和低功耗下實現類似的推理性能,非常契合 AIoT 應用。像米爾 ZU3EG 這樣的 FPGA 開發板,通過底板和豐富接口的載板設計,非常適合高效的嵌入式低功耗數據處理。
![]()
Yolo V4 網絡結構圖
![]()
Tiny Yolo V4 網絡結構圖 (通過優化網絡結構和參數,保持較高檢測精度的同時,降低模型的計算量和內存占用) 三、 獲取數據集和模型 可下載開源訓練集或預訓練模型。為了確保兼容性,建議將模型轉換為 ONNX 格式,以便后續能在 FPGA 上完成優化。 1.下載 Tiny YOLO V4 模型:從Darknet 的 GitHub 倉庫 獲取 Tiny YOLO 的預訓練權重,或者在 COCO 等數據集上自行訓練模型。自定義的模型適用于特定應用場景(如車輛檢測、人臉檢測等)。 2.數據準備:若要自定義模型,可使用 LabelImg 等工具對數據集進行標注,將數據轉為 YOLO 格式。之后,可將 YOLO 格式轉換為 ONNX 格式,以便兼容 FPGA 優化工具鏈。 ![]()
Tiny YOLO 在 Darknet 上訓練的截圖
四、 通過 Vivado HLS 為 FPGA 準備模型 要將模型部署到 FPGA,需要將神經網絡操作轉換為硬件級描述。使用 Xilinx 的 Vitis HLS(高級綜合)可以將 Tiny YOLO v4 的 C++ 模型代碼的轉化為 Verilog RTL(寄存器傳輸級)代碼,從而將模型從軟件世界帶入硬件實現。 詳細步驟: 1.模型層映射和優化:
![]()
Tiny YOLO 模型在 Vivado HLS 中的層層轉化流程圖 五、 使用 Vivado 綜合與部署 Verilog 到 米爾的ZU3EG FPGA開發板 當 HLS 生成的 RTL 代碼準備就緒后,可以使用 Vivado 將模型部署到 FPGA。 1.Vivado 中的設置:
2.I/O 約束與時序:
3.生成比特流并下載到 ZU3EG:
![]()
將 Tiny YOLO 處理模塊連接到 米爾ZU3EG開發板 的外設和接口 六、 在 FPGA 上測試并運行推理 現在 Tiny YOLO 已部署,可以驗證其實時對象檢測性能。 1.數據采集:
![]() Tiny YOLO 模型在 ZU3EG 上顯示檢測結果的實時輸出,視頻幀中標注了檢測到的對象 七、 性能優化與調試技巧 為提高性能,可以進行以下調整:
![]()
不同優化配置對資源使用的影響
![]()
米爾MYC-CZU3EG/4EV/5EV-V2核心板及開發板
在MYIR 的 ZU3EG 開發平臺上提供了一種高效的解決方案。利用 FPGA 獨特的靈活性和低功耗優勢,助力未來 AIoT 設備的普及和智能升級。 |