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