如何使用生產就緒的平台,快速打造並部署自適應邊緣視覺應用

作者:Stephen Evanczuk

資料提供者:DigiKey 北美編輯群

越來越多的嵌入式視覺應用 (如機械視覺、保全、零售和機器人等),已迅速在邊緣型智慧相機中採納人工智慧 (AI)。在平易近人的機器學習 (ML) 演算法快速推出下,確實協助激發人們對 AI 的關注,但開發人員仍然難以在滿足緊迫專案交期的同時,以較低的功耗為邊緣型應用提供較高的效能。

由於應用需求快速變化,而持續演變的演算法也不斷改進,即使是新部署的解決方案,很快就無法達到最佳化,進而讓問題更加複雜。

本文將介紹 Xilinx 推出的靈活系統模組 (SOM) 解決方案,能幫助開發人員快速實作適合邊緣部署的智慧相機解決方案。會說明開發人員如何更輕鬆地調整這些解決方案,以應對不斷變化的需求,同時又不影響對延遲和功率的關鍵要求。

加快視覺應用的執行

Xilinx 的 Kria K26 SOM 採用客製化的 Zynq UltraScale+ 多重處理器系統單晶片 (MPSoC),可提供耐用型嵌入式處理系統,其中包括 64 位元的四核心 Arm Cortex-A53 應用處理單元 (APU)、32 位元雙核心 Arm® Cortex®-R5F 即時處理單元 (RPU),以及 Arm-400MP2 3D 圖形處理單元 (GPU)。這款 SOM 整合了 MPSoC、4 GB 64 位元寬的 DDR4 記憶體及相關的記憶體控制器,以及多個非揮發性記憶體 (NVM) 裝置,包括 512 Mbit 的四線序列周邊介面 (QSPI) 記憶體、16 GB eMMC 記憶體,以及 64 Kbit 電子抹除式可編程唯讀記憶體 (EEPROM) (圖 1)。

Xilinx 的 Kria K26 SOM 圖片 (按此放大)圖 1:Xilinx 的 Kria K26 SOM 結合了客製化 Zynq UltraScale+ MPSoC 的強大處理能力、可信賴平台模組 2.0 (TPM2) 以及動態和非揮發性記憶體。(圖片來源:Xilinx)

Xilinx 使用龐大的可編程邏輯系統來增強其處理和記憶體資產,此系統包括 256K 系統邏輯元件、234K 可配置邏輯區塊 (CLB) 正反器、117K CLB 查找表 (LUT),以及以分散式隨機存取記憶體 (RAM)、區塊 RAM 和 ultraRAM 區塊進行各種配置而構成的總計 26.6 Mbit 記憶體。此外,可編程邏輯系統還包括 1,248 個數位訊號處理 (DSP) 片段、4 個收發器和 1 個 H.264 和 H.265 視訊編解碼器,可支援多達 32 個同步編碼/解碼串流,以 60 fps 提供共計 3840 x 2160 像素。這款 SOM 有兩個 240 引腳連接器,可透過使用者可設定的輸入/輸出 (I/O),隨時存取功能區塊和周邊裝置。

因為結合了處理器核心、記憶體和可編程邏輯,可提供獨特的靈活性與效能水準,以克服 GPU 在高速執行 ML 演算法的主要缺點。與 GPU 的固定資料流不同,開發人員可以重新配置 K26 SOM 的資料路徑,將傳輸量和延遲最佳化。此外,K26 SOM 的架構,特別適合日益增多之 ML 應用核心中的稀疏類網路。

K26 SOM 的可編程性還可以解決記憶體瓶頸,這種瓶頸會導致功耗增加,又會限制記憶體密集型應用的效能,例如採用 GPU 與多核心處理器 (甚或進階 SoC) 以傳統架構打造的 ML。用這些傳統元件設計的任何應用中,外部記憶體通常佔系統功耗的 40% 左右,而處理器核心和內建記憶體則通常各佔 30% 左右。相較之下,開發人員可以善用 K26 SOM 的內建記憶體區塊和可重新配置性,來實作僅需少許或完全無需外部記憶體存取的設計。如此一來,與傳統元件相比,可提升效能並降低功耗 (圖 2)。

Xilinx 的 Kria 使用高效視覺管線示意圖 (按此放大)圖 2:雖然以嵌入式 CPU 和典型 SoC 為基礎的系統,需要以高功耗多次存取記憶體來執行其應用程式,但以 Xilinx Kria 為基礎的系統,可使用高效視覺管線,透過設計來避免存取任何 DDR。(圖片來源:Xilinx)

除了高效能、低功耗和廣泛的可重新配置能力外,K26 SOM 還有助於針對敏感性應用的智慧相機設計,確保其安全性。除了 SOM 內建的 TPM 安全元件外,MPSoC 還整合專用型配置安全單元 (CSU),可支援安全啟動、防竄改監測、安全金鑰儲存,以及加密硬體加速。透過 CSU、內部晶片上記憶體 (OCM) 和安全金鑰儲存,共同提供安全基礎,確保硬體信任根能夠執行安全啟動,並確保實作可信賴平台來執行應用程式。

K26 SOM 擁有許多功能,可提供強大的基礎,以實作高要求的邊緣型應用。但是,每一種應用都有自己在特點與功能性上的要求,這是因為應用會有特定的周邊裝置和其他元件。為了簡化應用特有解決方案的實作,K26 SOM 的設計可插入到載卡中,其中裝有附加周邊裝置。Xilinx 利用 Kria K26 為基礎的 KV260 視覺 AI 入門套件來展示此作法。

入門套件可簡化視覺應用的開發

Xilinx 的 KV260 視覺 AI 入門套件包含一個可插入視覺中心式載板的 K26 SOM,能提供一個即用型平台,以供立即評估並快速開發智慧型視覺應用。雖然 K26 SOM 提供需要的處理能力,但入門套件的載板則提供包含開機和重置序列在內的電源管理功能,以及用於相機、顯示器和 microSD 卡的介面選項和連接器 (圖 3)。

Xilinx 的 KV260 視覺 AI 入門套件圖片圖 3:Xilinx 的 KV260 視覺 AI 入門套件使用可插入視覺中心式載板的 K26 SOM,提供完整的智慧型視覺解決方案。(圖片來源:Xilinx)

除了有多個介面,載板還可透過 Raspberry Pi 連接器和一對影像存取系統 (IAS) 連接器提供多重相機支援。其中一個連接器連接到專用的 onsemi 13 MP AP1302 影像感測器處理器 (ISP),可處理所有影像處理功能。

為了進一步加快視覺應用的實作,Xilinx 採用一系列預先建構的加速視覺應用,以及一整套用於客製化開發的軟體工具和程式庫,來支援這個預先定義的視覺硬體平台。

加速應用提供即用型解決方案

為了立即評估並快速開發加速視覺應用,Xilinx 提供幾個預建的應用來展示如何執行幾種常見的使用案例,包括使用可編程邏輯進行智慧相機臉部偵測、行人辨識和追蹤、缺陷偵測,以及使用 MPSoC 處理系統進行配對關鍵字辨識等。每個應用都可在 Xilinx Kria App Store 下載,能針對特定的使用案例提供完整的解決方案,並提供相關工具和資源。例如,智慧臉部偵測應用會使用 KV260 載卡內建的 AR1335 影像感測器和 AP1302 ISP 來擷取影像,並使用載卡的 HDMI 或 DisplayPort (DP) 輸出來渲染結果。在臉部偵測處理方面,此應用會設定 K26 SOM,以提供視覺管線加速器和預建的機器學習推論引擎,以進行臉部偵測、人數計數和其他智慧相機應用 (圖 4)。

Xilinx Kria App Store 上預建的加速應用圖片 (按此放大)圖 4:預建的加速應用可在 Xilinx Kria App Store 下載,並可立即在 KV260 入門套件上執行,為臉部偵測等視覺用途模型提供完整的解決方案。(圖片來源:Xilinx)

從 Xilinx App Store 下載的預建加速應用提供完整的實作和支援,即便在開發人員缺乏 FPGA 經驗的情況下,也能在一小時內快速啟動並運行設計。在評估應用時,開發人員可以使用提供的軟體堆疊來修改功能,藉此探索替代的解決方案。如要進行更多客製化開發,Xilinx 也提供一套完整的開發工具和程式庫。

AI 開發環境和工具可加速客製化開發

如要客製化開發 AI 應用,Xilinx 的 Vitis AI 開發環境提供最佳化的工具、程式庫和預先訓練好的模型,可以此為基礎打造更專業的客製化模型。針對執行階段操作環境,Xilinx 擁有以 Yocto 為基礎的 PetaLinux 嵌入式 Linux 軟體開發套件 (SDK),可提供構建、開發、測試和部署嵌入式 Linux 系統所需的全套功能。

Vitis AI 環境專為沒有 FPGA 經驗的專家與開發人員設計,可將底層矽硬體的細節進行抽象化處理,能讓開發人員專注在建構更有效的 ML 模型。事實上,Vitis AI 環境整合了開放原始碼 Apache Tensor Virtual Machine (TVM) 深度學習編譯器堆疊,能讓開發人員從不同的架構,將模型編譯到處理器、GPU 或加速器。開發人員可搭配使用 Vitis AI 和 TVM,利用加速的視覺功能來強化現有設計,將運算密集的視覺工作負載 (如深度學習模型) 移轉到 Kria SOM。為了幫助開發人員進一步將深度學習模型最佳化,Xilinx 的 AI 最佳化工具可以修剪神經網路,降低以每秒千兆運算數 (Gops) 計的複雜性、增加每秒幀數 (fps),並減少過度參數化的模型,將模型壓縮達 50 倍,卻幾乎不影響平均精度均值 (mAP) 所代表的準確度 (圖 5)。

Xilinx Research 個案研究圖表 (按此放大)圖 5:Xilinx Research 個案研究指出,使用 Xilinx AI 最佳化工具進行多次疊代修剪,可以快速降低神經網路以 Gops 數計的複雜性,並且增加每秒幀數,同時對準確度幾乎沒有任何影響。(圖片來源:Xilinx)

在實作客製化視覺應用方面,Xilinx 的開放原始碼 Vitis Vision Libraries 視覺程式庫已經過最佳化,可打造出高效能和低資源利用率的 Xilinx 平台,同時提供一個以 OpenCV 為基礎的熟悉介面。在分析方面,Xilinx 的 Video Analytics SDK 應用架構,可幫助開發人員建立更有效的視覺和影像分析管線,而不需要具備深入的 FPGA 知識。Video Analytics SDK 以廣泛採用的開放原始碼 GStreamer 架構為基礎,可讓開發人員快速建立客製化加速核心,作為 GStreamer 外掛程式整合至 SDK 架構。

典型的嵌入式開發人員可以使用這些工具輕鬆地組合客製化加速管線,並可自行選擇是否使用客製化加速核心。

結論

智慧型視覺技術已透過運算密集的 ML 演算法,用於多種在邊緣執行的應用。但是,開發人員也面臨諸多挑戰,要滿足邊緣型視覺系統對高效能、低功率和適應性的要求。Xilinx 的 Kria K26 SOM 解決方案可提供硬體基礎,藉此加速進階演算法,且不會超出嚴格的功率預算。透過 Kria K26 為基礎的入門套件搭配預建的應用,開發人員就可立即開始評估智慧型視覺應用,並使用全面的開發環境來建立客製化邊緣設備解決方案。

DigiKey logo

聲明:各作者及/或論壇參與者於本網站所發表之意見、理念和觀點,概不反映 DigiKey 的意見、理念和觀點,亦非 DigiKey 的正式原則。

關於作者

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk 撰寫電子產業的相關資訊已有超過二十年的經驗,涉及的主題多元,涵蓋硬體、軟體、系統以及包含 IoT 在內的應用。他以神經元網路為研究主題,取得神經科學博士學位,並且在航太產業,針對廣泛運用的安全系統和演算法加速方法進行研究。目前,在撰寫科技和工程文章之餘,他投入辨識和推薦系統的深度學習應用。

關於出版者

DigiKey 北美編輯群