在越來(lái)越多的嵌入式視覺(jué)應用中,如機器視覺(jué)、安保、零售和機器人,人工智能 (AI) 在基于邊緣的智能攝像頭上的應用已迅速獲得認可。雖然可獲得機器學(xué)習 (ML) 算法的迅速出現幫助迎來(lái)了人們對 AI 的這種興趣,但開(kāi)發(fā)人員仍難以在滿(mǎn)足緊迫的項目時(shí)間表的同時(shí),在保持低功耗的情況下為基于邊緣的應用提供高性能。 更為復雜的是,由于應用需求的快速變化和演化算法的持續改進(jìn),即使是新部署的解決方案也會(huì )迅速成為次優(yōu)方案。 本文將介紹 Xilinx 提供的靈活系統級模塊 (SOM) 解決方案,開(kāi)發(fā)人員能用它來(lái)快速實(shí)現邊緣部署的智能攝像頭解決方案。文中展示了他們如何能夠更容易地調整這些解決方案,以應對不斷變化的需求,而不影響對延時(shí)和功耗的關(guān)鍵要求。 加快視覺(jué)應用的執行 Xilinx 的 Kria K26 SOM 基于定制的 Zynq UltraScale+ 多處理器片上系統 (MPSoC),提供了強大的嵌入式處理系統,其中包括一個(gè) 64 位四核 Arm Cortex-A53 應用處理單元 (APU)、一個(gè) 32 位雙核 Arm® Cortex®-R5F 實(shí)時(shí)處理單元 (RPU) 和一個(gè) Arm Mali-400MP2 3D 圖形處理單元 (GPU)。SOM 將 MPSoC 與四千兆字節的 64 位寬雙倍數據速率 4 (DDR4) 存儲器和相關(guān)的存儲控制器以及多個(gè)非易失性存儲器 (NVM) 器件結合起來(lái),包括 512 兆位 (Mb) 的四路串行外設接口 (QSPI) 存儲器、16 千兆字節 (GB) 的嵌入式多媒體卡 (eMMC) 存儲器和 64 千位 (Kb) 的電可擦除可編程只讀存儲器 (EEPROM)(圖 1)。 ![]() 圖 1:Xilinx 的 Kria K26 SOM 將定制的 Zynq UltraScale+ MPSoC 的廣泛處理能力與可信平臺模塊 2.0 (TPM2) 以及動(dòng)態(tài)和非易失性存儲器相結合。(圖片來(lái)源:Xilinx) Xilinx 通過(guò)廣泛的可編程邏輯系統補充其處理和存儲器資產(chǎn),該系統包括 256K 系統邏輯單元、234K 可配置邏輯塊 (CLB) 觸發(fā)器、117K CLB 查找表 (LUT),以及分布式隨機存取存儲器 (RAM)、塊 RAM 和 ultraRAM 塊等各種配置共計 26.6 兆位 (Mb) 的存儲器。此外,可編程邏輯系統包括 1,248 個(gè)數字信號處理 (DSP) 片、四個(gè)收發(fā)器以及一個(gè) H.264 和 H.265 的視頻編解碼器,能夠支持多達 32 個(gè)流的同時(shí)編/解碼,在 60 幀/秒 (fps) 的情況下總像素達 3840 x 2160。SOM 的兩個(gè) 240 針連接器通過(guò)用戶(hù)可配置的輸入/輸出 (I/O) 提供對功能塊和外設的隨時(shí)訪(fǎng)問(wèn)。 這種處理器內核、存儲器和可編程邏輯的組合提供了獨特的靈活性和性能水平,克服了高速執行 ML 算法所用 GPU 的主要缺點(diǎn)。不同于 GPU 的固定數據流,開(kāi)發(fā)人員可以重新配置 K26 SOM 數據路徑,以?xún)?yōu)化吞吐量并減少延時(shí)。此外,K26 SOM 的架構特別適合于處于不斷增加的 ML 應用核心的稀疏網(wǎng)絡(luò )。 K26 SOM 的可編程性還解決了存儲器瓶頸問(wèn)題,這些瓶頸既增加功耗,又限制存儲器密集型應用的性能,如使用 GPU、多核處理器甚至高級 SoC 的傳統架構構建的 ML。在使用這些傳統器件設計的任何應用中,外部存儲器通常占系統功耗的 40% 左右,而處理器內核和內部存儲器通常各占 30% 左右。相比之下,開(kāi)發(fā)人員可以利用 K26 SOM 的內部存儲器塊和可重構性來(lái)實(shí)現幾乎不需要外部存儲器訪(fǎng)問(wèn)的設計。因此,與傳統器件相比,性能提高,功耗降低(圖 2)。 ![]() 圖 2:雖然基于嵌入式 CPU 和典型 SoC 的系統需要多次以高功耗訪(fǎng)問(wèn)存儲器來(lái)運行其應用,但基于 Xilinx Kria 的系統則采用高效視覺(jué)管道,其可設計為避免任何 DDR 訪(fǎng)問(wèn)。(圖片來(lái)源:Xilinx) 除了高性能、低功耗和廣泛的可重構性外,K26 SOM 有助于確保敏感應用的智能攝像頭設計的安全性。除了 SOM 內置 TPM 安全器件外,MPSoC 還集成了一個(gè)專(zhuān)用配置安全單元 (CSU),支持安全啟動(dòng)、篡改監控、安全密鑰存儲和加密硬件加速。CSU、內部片上存儲器 (OCM) 和安全密鑰存儲共同提供了安全基礎,以確保實(shí)現安全啟動(dòng)的硬件信任根和用于應用執行的可信平臺。 K26 SOM 的廣泛功能為實(shí)施基于邊緣的苛刻應用提供了強大的基礎。然而,每個(gè)應用都有自己的要求,即與一組特定應用的外設和其他元器件相關(guān)的特性和功能。為了簡(jiǎn)化特定應用解決方案的實(shí)施,K26 SOM 可專(zhuān)門(mén)插入一個(gè)能承載其他外設的載卡中。Xilinx 通過(guò)其基于 Kria K26 的 KV260 視覺(jué) AI 入門(mén)套件展示了這種方法。 入門(mén)套件簡(jiǎn)化了視覺(jué)應用的開(kāi)發(fā) Xilinx 的 KV260 視覺(jué) AI 入門(mén)套件包括一個(gè)插入到以視覺(jué)為中心的載板的 K26 SOM,該套件提供了一個(gè)開(kāi)箱即用的平臺,專(zhuān)門(mén)用于即時(shí)評估和快速開(kāi)發(fā)智能視覺(jué)應用。盡管 K26 SOM 提供了所需的處理能力,但入門(mén)套件的載板提供了電源管理,包括上電和復位定序,以及用于攝像頭、顯示器和 microSD 卡的接口選項和連接器(圖 3)。 ![]() 圖 3:Xilinx 的 KV260 視覺(jué) AI 入門(mén)套件使用插入到以視覺(jué)為中心的載板的 K26 SOM,提供了一個(gè)完整的智能視覺(jué)解決方案。(圖片來(lái)源:Xilinx) 除了多個(gè)接口外,載板還通過(guò)其 Raspberry Pi 連接器和一對圖像訪(fǎng)問(wèn)系統 (IAS) 連接器提供多攝像頭支持。其中一個(gè)連接器鏈接到一個(gè)專(zhuān)用 onsemi 1300 萬(wàn)像素 AP1302 圖像傳感器處理器 (ISP),其能應對所有圖像處理功能。 為了進(jìn)一步加快實(shí)現基于視覺(jué)的應用,Xilinx 通過(guò)各種預置加速視覺(jué)應用以及一套全面的軟件工具和庫(以便進(jìn)行定制開(kāi)發(fā)),來(lái)支持這種預定義的視覺(jué)硬件平臺。 加速應用提供即時(shí)解決方案 為了即時(shí)評估和快速開(kāi)發(fā)加速視覺(jué)應用,Xilinx 提供了幾個(gè)預置應用,其中演示了幾個(gè)流行用例的執行,包括使用其可編程邏輯的智能攝像頭人臉檢測、行人識別和跟蹤、缺陷檢測以及使用 MPSoC 處理系統的成對關(guān)鍵字識別。在 Xilinx Kria 應用商店中,每個(gè)應用都為其特定用例提供了完整的解決方案,并配有相應的工具和資源。例如,智能攝像頭人臉檢測應用使用 KV260 載卡的內置 AR1335 圖像傳感器和 AP1302 ISP 來(lái)采集圖像,并由載卡的 HDMI 或 DisplayPort (DP) 輸出來(lái)渲染結果。對于人臉檢測處理,應用配置了 K26 SOM,以提供視覺(jué)管道加速器和預置的機器學(xué)習推理引擎,用于人臉檢測、人員計數和其他智能攝像頭應用(圖 4)。 ![]() 圖 4:預置的加速應用可從 Xilinx Kria 應用商店下載,可在 KV260 入門(mén)套件上立即運行,為人臉檢測等視覺(jué)使用模型提供完整的解決方案。(圖片來(lái)源:Xilinx) 來(lái)自 Xilinx 應用商店的預置加速應用提供完整的實(shí)施和支持,讓開(kāi)發(fā)人員能夠在一小時(shí)內完成設計并運行,即使缺乏 FPGA 經(jīng)驗也沒(méi)問(wèn)題。評估應用時(shí),他們可以使用所提供的軟件堆棧來(lái)修改功能,以探索替代解決方案。對于更廣泛的定制開(kāi)發(fā),Xilinx 提供了一套全面的開(kāi)發(fā)工具和庫。 AI 開(kāi)發(fā)環(huán)境和工具加速定制開(kāi)發(fā) 對于基于 AI 應用的定制開(kāi)發(fā),Xilinx 的 Vitis AI 開(kāi)發(fā)環(huán)境提供了優(yōu)化的工具、庫和預先訓練的模型,可用作更專(zhuān)業(yè)的定制模型的基礎。對于運行時(shí)操作環(huán)境,Xilinx 基于 Yocto 的 PetaLinux 嵌入式 Linux 軟件開(kāi)發(fā)套件 (SDK) 提供了構建、開(kāi)發(fā)、測試和部署嵌入式 Linux 系統所需的全套功能。 Vitis AI 環(huán)境針對沒(méi)有 FPGA 經(jīng)驗的專(zhuān)家和開(kāi)發(fā)人員而設計,將底層硅硬件的細節抽象化,讓開(kāi)發(fā)人員能夠專(zhuān)注于建立更有效的 ML 模型。事實(shí)上,Vitis AI 環(huán)境與開(kāi)源 Apache Tensor 虛擬機 (TVM) 深度學(xué)習編譯器堆棧集成,讓開(kāi)發(fā)人員能夠將他們的模型從不同的框架編譯到處理器、GPU 或加速器。開(kāi)發(fā)人員使用帶有 TVM 的 Vitis AI,可以用加速視覺(jué)功能增強其現有設計,將深度學(xué)習模型等計算密集型視覺(jué)工作負載卸載到 Kria SOM。為了幫助開(kāi)發(fā)人員進(jìn)一步優(yōu)化其深度學(xué)習模型,Xilinx 的 AI 優(yōu)化工具可以對神經(jīng)網(wǎng)絡(luò )進(jìn)行修剪,以降低每秒十億次運算 (Gops) 數的復雜性,提高每秒幀數 (fps),并減少過(guò)度參數化的模型,其中將模型壓縮高達 50 倍,而對平均精度 (mAP) 所代表的準確性幾乎沒(méi)有影響(圖 5)。 ![]() 圖 5:Xilinx Research 的一項案例研究表明,使用 Xilinx AI 優(yōu)化工具進(jìn)行幾次迭代修剪,就可以迅速降低神經(jīng)網(wǎng)絡(luò )在 Gops 數上的復雜性,同時(shí)提高每秒幀數,而這一切對準確性幾乎沒(méi)有影響。(圖片來(lái)源:Xilinx) 對于定制視覺(jué)應用的實(shí)現,Xilinx 的開(kāi)源 Vitis Vision 庫在 Xilinx 平臺上進(jìn)行了高性能和低資源利用的優(yōu)化,提供了一個(gè)基于 OpenCV 的熟悉界面。在分析方面,Xilinx 的視頻分析 SDK 應用框架幫助開(kāi)發(fā)人員建立更有效的視覺(jué)和視頻分析管道,而不需要深厚的 FPGA 知識。視頻分析 SDK 基于廣泛采用的開(kāi)源 GStreamer 框架,開(kāi)發(fā)人員可以用它快速創(chuàng )建自定義加速內核,作為 GStreamer 插件集成到 SDK 框架。 典型的嵌入式開(kāi)發(fā)人員使用這些工具,無(wú)論是否有自定義加速內核,都可以很容易地組裝自定義加速管道。 總結 計算密集型 ML 算法使智能視覺(jué)技術(shù)能夠在邊緣運行的多種應用中使用,但要滿(mǎn)足基于邊緣的視覺(jué)系統的高性能、低功耗和適應性的要求,開(kāi)發(fā)人員面臨著(zhù)多種挑戰。Xilinx 的 Kria K26 SOM 解決方案為加速高級算法提供了硬件基礎,同時(shí)又不超出嚴格的功耗預算。開(kāi)發(fā)人員使用基于 Kria K26 的入門(mén)套件和預置應用,可以立即開(kāi)始評估智能視覺(jué)應用,并使用全面的開(kāi)發(fā)環(huán)境來(lái)創(chuàng )建自定義邊緣設備解決方案。 來(lái)源:Digi-Key 作者: |