看過來,RK3576開發(fā)板NPU方案你用對了嗎?
摘要
本文基于米爾 MYD-LR3576 開發(fā)板,詳細記錄了如何利用 500 萬像素 USB 攝像頭實現(xiàn) 640×640 分辨率的 YOLO5s 目標檢測,并將結果實時輸出至 1080P 屏幕的全流程。通過系統(tǒng)級的軟硬件協(xié)同優(yōu)化,最終將端到端延遲控制在 40ms 以內,實現(xiàn)了 20FPS 的穩(wěn)定實時檢測性能。文章重點剖析了攝像頭特性分析、顯示通路選擇、RGA 硬件加速、RKNN NPU 集成等關鍵技術環(huán)節(jié),為嵌入式 AI 視覺系統(tǒng)的開發(fā)與調優(yōu)提供了一套完整的思路與實踐方案。
圖:米爾基于RK3576核心板開發(fā)板
一、 系統(tǒng)架構與性能目標
1.1 硬件平臺
? 主控芯片:Rockchip RK3576(四核A72+四核A53,6TOPS NPU,RGA,GPU,VPU)
? 攝像頭:500萬像素USB攝像頭(支持MJPEG/YUYV格式)
? 顯示器:4K HDMI顯示屏(通過Weston桌面環(huán)境顯示)
? 開發(fā)板:米爾MYD-LR3576
1.2 軟件平臺
使用米爾官方 V2.0.0 SDK 提供的 buildroot 鏡像,內核版本為 6.1.118。
系統(tǒng)信息如下:
1.3 性能目標
· 實時性:完成從攝像頭采集 → NPU推理 → 屏幕顯示的完整流程,耗時不超過攝像頭一幀的時間。
· 輸入/輸出:盡可能提高攝像頭采集幀率,并在顯示端支持更高的輸出分辨率。
· 功能:實現(xiàn) YOLO5s 目標檢測,并在視頻畫面中實時繪制檢測框。
二、數(shù)據(jù)處理流程與優(yōu)化實踐
攝像頭數(shù)據(jù)需要經歷哪些過程才能到顯示端輸出,參考下圖
2.1 CPU 處理方案及其瓶頸
如果把攝像頭數(shù)據(jù)直接顯示到屏幕上,先了解清楚它們輸入輸出關系。
攝像頭輸出可以用v4l2-ctl -D -d /dev/videoxx --list-formats-ext
Display輸出可用用cat /sys/kernel/debug/dri/0/state查看
根據(jù)實時性來說,需要選擇最高fps分辨率對應輸出,這里選擇640x480 20fps,那么它需要把YUYV格式替換成RGBA8888才能顯示。
顯示大小不超過屏幕最大分辨率3840x2160即可。
CPU處理是如下過程
若要將攝像頭采集的 YUYV 格式數(shù)據(jù)直接顯示到屏幕,需先轉換為 RGBA8888 格式。在 CPU 上進行格式轉換與縮放的性能如下(輸入為 640×480 YUYV):
可見,CPU 在處理 1080P 分辨率時已接近能力上限,更高分辨率則無法滿足實時性要求。
2.2 引入 RGA 進行硬件加速
RGA作為RK3576 2D處理芯片模塊,它的作用是對圖片做旋轉,縮放,旋轉,鏡像以及格式轉換。
根據(jù)手冊信息,它能處理數(shù)據(jù)的性能是 物理地址 > dma > 虛擬地址。那么用RGA來替換CPU的格式轉換和縮放。
RGA是一次進行轉換和縮放,下面是對比CPU運算的對比圖
使用 RGA 替代 CPU 進行格式轉換與縮放后,性能對比如下:
RGA 的引入帶來了數(shù)量級的性能提升,尤其是 DMA 模式,大幅降低了處理延遲。
2.3 GPU 直接顯示方案
調試階段常使用 OpenCV 的 imshow 顯示圖像,但其依賴 CPU 參與,無法滿足實時性要求。系統(tǒng)實際采用 DRM 顯示框架與 Weston 桌面環(huán)境,因此我們選用 Wayland-client 方案進行直接顯示,實現(xiàn) GPU 直顯。
不同輸入模式下的顯示耗時對比:
2.4 NPU 推理流程與耗時分析
通用模型,通過rknn-toolkit2轉換成rknn后就可以通過RKNN API來調用和推導。
這里我們直接采用同事提供的rknn模型,yolov5s-640-640.rknn和coco_80_labels_list.txt,以及一些調用參考代碼。
它的輸入必須是640x640RGB格式
rknn推理虛擬地址關鍵步驟如下
實際測試后rknn_run 這個階段大概耗時 26~31ms之間
rknn_outputs_get 獲取數(shù)據(jù)后即可進行內部處理,檢測出目標,坐標,信心指數(shù),根據(jù)實際需求繪制在屏幕上,這一步可以多進程異步處理,不算在串行時間內,筆者測試大概會多花8ms左右。
因此 總計一下攝像頭實時采集NPU推理到顯示整個過程耗時情況
結論:NPU 推理階段(T2)仍是系統(tǒng)的主要耗時環(huán)節(jié)。但通過 DMA + RGA + 直接顯示 的優(yōu)化組合,系統(tǒng)整體延遲大幅降低,且在高分辨率輸出下仍能保持穩(wěn)定的幀率。
2.5 多攝像頭系統(tǒng)資源占用分析
? 虛擬內存方案
1個攝像頭
4個攝像頭
? Dma方案
1路攝像頭輸出
2路攝像頭輸入
三、總結
在嵌入式 AI 視覺系統(tǒng)中,NPU 的算力是決定性能上限的關鍵因素。然而,要達到這一上限,必須構建高效的數(shù)據(jù)流水線。本文實踐表明,通過 RGA 硬件加速、DMA 零拷貝數(shù)據(jù)傳輸以及 GPU 直接顯示 的協(xié)同優(yōu)化,能夠徹底釋放 RK3576 平臺的異構計算潛力,將端到端延遲控制在數(shù)十毫秒內,實現(xiàn)高清、實時的目標檢測應用。這一優(yōu)化思路同樣適用于其他具備類似硬件加速單元的嵌入式 AI 平臺。





