構(gòu)建視覺(jué)應(yīng)用時(shí),需要考慮以下性能指標(biāo),并且需要進(jìn)行基準(zhǔn)測(cè)試:
- 端到端延遲:必須最大限度縮短采集圖像與生成析結(jié)果之間的延遲,以便及時(shí)做出決策,采取響應(yīng)措施。
- 視頻吞吐量(每秒幀數(shù)):必須以所需幀率采集與處理圖像,不得出現(xiàn)掉幀現(xiàn)象。
- CPU 負(fù)載:視覺(jué)流水線對(duì)通用 CPU 內(nèi)核(對(duì)于 AM62A 則為 A53)的負(fù)載必須降至最低,因?yàn)樗袌D像處理都是在硬件加速器上完成的。
- DDR 利用率:對(duì)于視覺(jué)流水線的 DDR 讀取與寫(xiě)入操作,必須為其他系統(tǒng)任務(wù)留出充足帶寬。
- 硬件加速器 (HWA) 負(fù)載(ISP、VPU、C7x/MMA):HWA 專用于特定功能,不能用于其他目的。通過(guò)視覺(jué)流水線,HWA 的利用率可高達(dá) 100%,并且留有一定余量。
適用于 AM62A 的 EdgeAI SDK 提供了幾種能夠?qū)υ摰刃阅苤笜?biāo)進(jìn)行基準(zhǔn)測(cè)試的工具:
- Perf_stats 工具 [5]:測(cè)量 CPU 內(nèi)核與 HWA 上的負(fù)載以及 DDR 利用率。
- GStreamer 調(diào)試跟蹤:通過(guò)設(shè)置環(huán)境變量 GST_DEBUG_FILE,可將 GStreamer 調(diào)試信息重定向至一個(gè)文件。EdgeAI SDK 腳本(/opt/edgeai-gst-apps/scripts/gst_tracers/parse_gst_tracers.py)能夠處理該等消息并估算 GStreamer 流水線每個(gè)元素的處理時(shí)間。
- GStreamer 插件 fpsdisplaysink:以幀/秒(fps)為單位,顯示流水線的吞吐量。
- 自定義 GStreamer 插件 tiperfoverlay:在顯示屏顯示(或在終端控制臺(tái)打?。?CPU 負(fù)載、DDR 利用率、HWA 負(fù)載以及 fps。