本文基于米爾MYD-LR3576開發(fā)板,詳細記錄了如何利用500萬像素USB攝像頭實現(xiàn)640×640分辨率的YOLO5s目標檢測,并將結果實時輸出至1080P屏幕的全流程。通過系統(tǒng)級的軟硬件協(xié)同優(yōu)化,最終將端到端延遲控制在40ms以內(nèi),實現(xiàn)了 20FPS的穩(wěn)定實時檢測性能。文章重點剖析了攝像頭特性分析、顯示通路選擇、RGA硬件加速、RKNN NPU集成等關鍵技術環(huán)節(jié),為嵌入式AI視覺系統(tǒng)的開發(fā)與調(diào)優(yōu)提供了一套完整的思路與實踐方案。
PART 01
系統(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
米爾基于RK3576核心板開發(fā)板1.2 軟件平臺使用米爾官方V2.0.0 SDK提供的buildroot鏡像,內(nèi)核版本為6.1.118。系統(tǒng)信息如下:
root@myd-lr3576-buildroot:/# uname -aLinuxmyd-lr3576-buildroot6.1.118#1SMP Fri Sep2602:34:15UTC2025aarch64 GNU/Linux
1.3 性能目標
- 實時性:完成從攝像頭采集→NPU推理→屏幕顯示的完整流程,耗時不超過攝像頭一幀的時間。
- 輸入/輸出:盡可能提高攝像頭采集幀率,并在顯示端支持更高的輸出分辨率。
- 功能:實現(xiàn)YOLO5s目標檢測,并在視頻畫面中實時繪制檢測框。
PART 02
數(shù)據(jù)處理流程與優(yōu)化實踐
攝像頭數(shù)據(jù)需要經(jīng)歷哪些過程才能到顯示端輸出,參考下圖

2.1 CPU處理方案及其瓶頸

如果把攝像頭數(shù)據(jù)直接顯示到屏幕上,先了解清楚它們輸入輸出關系。攝像頭輸出可以用v4l2-ctl -D -d /dev/videoxx --list-formats-extDisplay輸出可用用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直接顯示方案調(diào)試階段常使用OpenCV的imshow顯示圖像,但其依賴CPU參與,無法滿足實時性要求。系統(tǒng)實際采用DRM顯示框架與Weston桌面環(huán)境,因此我們選用Wayland-client方案進行直接顯示,實現(xiàn)GPU直顯。

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

2.4 NPU推理流程與耗時分析

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

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

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

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



4個攝像頭


- Dma方案
1路攝像頭輸出

2路攝像頭輸入

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