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