本文基于米爾MYD-LR3576開發板,詳細記錄了如何利用500萬像素USB攝像頭實現640×640分辨率的YOLO5s目標檢測,并將結果實時輸出至1080P屏幕的全流程。通過系統級的軟硬件協同優化,最終將端到端延遲控制在40ms以內,實現了 20FPS的穩定實時檢測性能。文章重點剖析了攝像頭特性分析、顯示通路選擇、RGA硬件加速、RKNN NPU集成等關鍵技術環節,為嵌入式AI視覺系統的開發與調優提供了一套完整的思路與實踐方案。
PART 01
系統架構與性能目標
1.1 硬件平臺
- 主控芯片:Rockchip RK3576(四核A72+四核A53,6TOPS NPU,RGA,GPU,VPU)
- 攝像頭:500萬像素USB攝像頭(支持MJPEG/YUYV格式)
- 顯示器:4K HDMI顯示屏(通過Weston桌面環境顯示)
- 開發板:米爾MYD-LR3576
米爾基于RK3576核心板開發板1.2 軟件平臺使用米爾官方V2.0.0 SDK提供的buildroot鏡像,內核版本為6.1.118。系統信息如下:
root@myd-lr3576-buildroot:/# uname -aLinuxmyd-lr3576-buildroot6.1.118#1SMP Fri Sep2602:34:15UTC2025aarch64 GNU/Linux
1.3 性能目標
- 實時性:完成從攝像頭采集→NPU推理→屏幕顯示的完整流程,耗時不超過攝像頭一幀的時間。
- 輸入/輸出:盡可能提高攝像頭采集幀率,并在顯示端支持更高的輸出分辨率。
- 功能:實現YOLO5s目標檢測,并在視頻畫面中實時繪制檢測框。
PART 02
數據處理流程與優化實踐
攝像頭數據需要經歷哪些過程才能到顯示端輸出,參考下圖

2.1 CPU處理方案及其瓶頸

如果把攝像頭數據直接顯示到屏幕上,先了解清楚它們輸入輸出關系。攝像頭輸出可以用v4l2-ctl -D -d /dev/videoxx --list-formats-extDisplay輸出可用用cat /sys/kernel/debug/dri/0/state查看

根據實時性來說,需要選擇最高fps分辨率對應輸出,這里選擇640x480 20fps,那么它需要把YUYV格式替換成RGBA8888才能顯示。顯示大小不超過屏幕最大分辨率3840x2160即可。CPU處理是如下過程

若要將攝像頭采集的YUYV格式數據直接顯示到屏幕,需先轉換為RGBA8888格式。在CPU上進行格式轉換與縮放的性能如下(輸入為640×480 YUYV):

可見,CPU在處理1080P分辨率時已接近能力上限,更高分辨率則無法滿足實時性要求。2.2 引入RGA進行硬件加速RGA作為RK3576 2D處理芯片模塊,它的作用是對圖片做旋轉,縮放,旋轉,鏡像以及格式轉換。根據手冊信息,它能處理數據的性能是物理地址>DMA>虛擬地址。那么用RGA來替換CPU的格式轉換和縮放。

RGA是一次進行轉換和縮放,下面是對比CPU運算的對比圖使用RGA替代CPU進行格式轉換與縮放后,性能對比如下:

RGA的引入帶來了數量級的性能提升,尤其是DMA模式,大幅降低了處理延遲。2.3 GPU直接顯示方案調試階段常使用OpenCV的imshow顯示圖像,但其依賴CPU參與,無法滿足實時性要求。系統實際采用DRM顯示框架與Weston桌面環境,因此我們選用Wayland-client方案進行直接顯示,實現GPU直顯。

不同輸入模式下的顯示耗時對比:

2.4 NPU推理流程與耗時分析

通用模型,通過rknn-toolkit2轉換成rknn后就可以通過RKNN API來調用和推導。使用rknn_model_zoo yolo5模型進行轉換后生成模型,yolov5s-640-640.rknn和coco80labels_list.txt,以及一些調用參考代碼。它的輸入必須是640x640RGB格式。rknn推理虛擬地址關鍵步驟如下:

實際測試后rknn_run這個階段大概耗時26~31ms之間rknnoutputsget獲取數據后即可進行內部處理,檢測出目標,坐標,信心指數,根據實際需求繪制在屏幕上,這一步可以多進程異步處理,不算在串行時間內,筆者測試大概會多花8ms左右。

因此總計一下攝像頭實時采集NPU推理到顯示整個過程耗時情況

結論:NPU推理階段(T2)仍是系統的主要耗時環節。但通過DMA+RGA+直接顯示的優化組合,系統整體延遲大幅降低,且在高分辨率輸出下仍能保持穩定的幀率。
2.5 多攝像頭系統資源占用分析
- 虛擬內存方案
1個攝像頭



4個攝像頭


- Dma方案
1路攝像頭輸出

2路攝像頭輸入

PART 03
總結
在嵌入式AI視覺系統中,NPU的算力是決定性能上限的關鍵因素。然而,要達到這一上限,必須構建高效的數據流水線。本文實踐表明,通過RGA硬件加速、DMA零拷貝數據傳輸以及GPU直接顯示的協同優化,能夠徹底釋放 RK3576平臺的異構計算潛力,將端到端延遲控制在數十毫秒內,實現高清、實時的目標檢測應用。這一優化思路同樣適用于其他具備類似硬件加速單元的嵌入式AI平臺。
-
開發板
+關注
關注
26文章
6362瀏覽量
119907 -
NPU
+關注
關注
2文章
382瀏覽量
21286 -
米爾電子
+關注
關注
2文章
193瀏覽量
1104 -
rk3576
+關注
關注
1文章
283瀏覽量
1655
發布評論請先 登錄
【米爾RK3576開發板評測】+項目名稱值得購買的米爾RK3576開發板
探索 RK3576 方案:卓越性能與靈活框架,誠邀開發定制合作!
RK3576 vs RK3588:為何越來越多的開發者轉向RK3576?
Mpp支持RK3576么
【作品合集】米爾RK3576開發板測評
基于米爾RK3576的環視實時性方案解析
米爾RK3576+Hailo-8突破6 TOPS極限,讓高幀率攝像頭真正“實時”
【招聘】你復工了嗎?有職位需求的看過來!
RK3576開發板NPU激發無限創新!體驗6TOPS強勁性能的奇妙之旅
RK3576單板發布倒計時:RK3399與RK3576對比
瑞芯微RK3576與RK3576S有什么區別,性能參數配置與型號差異解析
看過來,RK3576 NPU方案你用對了嗎?
評論