隨著人工智能(AI)在嵌入式計算中的到來,導(dǎo)致了潛在解決方案的激增,這些解決方案旨在提供高速流視頻上執(zhí)行神經(jīng)網(wǎng)絡(luò)推理所需的高性能。盡管許多參考需求(如ImageNet)的分辨率都相對較低,從而通過多種嵌入式AI解決方案均可實現(xiàn),但零售、醫(yī)療、安全和工業(yè)控制領(lǐng)域的許多真實應(yīng)用,則需要能夠處理的視頻幀和圖像分辨率會高達(dá)4kp60,甚至更高。
可擴展性是至關(guān)重要的,但對于僅提供主機處理器和神經(jīng)加速器固定組合的片上系統(tǒng)(SoC)平臺來說,這并非總是任意可選。盡管通常在原型建模期間,也提供了一種評估不同形式神經(jīng)網(wǎng)絡(luò)性能的方法,但這種一體化的實現(xiàn)方案缺乏真實系統(tǒng)通常所需的粒度和可擴展性。在這種情況下,工業(yè)級AI應(yīng)用受益于一種更平衡的架構(gòu),其中將多個異構(gòu)處理器(如CPU、GPU)和加速器結(jié)合起來,在一個集成的管道中共同協(xié)作,不僅能對原始視頻幀執(zhí)行推理,而且還能利用預(yù)處理和后處理對整體結(jié)果或處理格式轉(zhuǎn)換進(jìn)行優(yōu)化,從而能夠處理多種類型的攝像頭和傳感器。
經(jīng)典的部署場景在于智能相機和邊緣AI設(shè)備。對于前者,需要將視覺處理和神經(jīng)網(wǎng)絡(luò)推理支持功能集成到主相機電路板中。相機可能還需要執(zhí)行一些其他任務(wù),例如計算房間中的人數(shù),并且能夠避免在被拍攝對象進(jìn)出視野時對其進(jìn)行兩次重復(fù)計數(shù)。智能相機不僅必須能夠識別人,而且還必須能夠根據(jù)相機已經(jīng)處理的數(shù)據(jù)重新識別人,從而不會重復(fù)計數(shù)。這就需要一個靈活的圖像處理和推理管道,其中應(yīng)用程序可以處理基本的對象識別以及復(fù)雜的基于推理的任務(wù),如重新識別。
構(gòu)建智能相機和邊緣AI設(shè)備
通常,在智能相機設(shè)計中,主機處理器將傳感器輸入轉(zhuǎn)換成適合推理的形式,包括:對數(shù)據(jù)幀進(jìn)行調(diào)整、裁剪、以及標(biāo)準(zhǔn)化,使其適合于進(jìn)行高吞吐率推理。一個類似但更高集成度的用例是邊緣AI設(shè)備。該設(shè)備需要處理來自多個聯(lián)網(wǎng)傳感器和相機的輸入,故需要具備同時處理多個壓縮(或編碼)視頻流的能力。在這種多相機場景中,處理能力必須能夠擴展,以處理執(zhí)行推理所需的格式、顏色空間和其他轉(zhuǎn)換,并且能夠處理多個并行推理。

圖1:智能相機應(yīng)用業(yè)務(wù)流示意圖。(本文圖片來源:Kinara)

圖2:邊緣AI應(yīng)用業(yè)務(wù)流示意圖。
盡管固定的SoC實現(xiàn)方案能夠處理特定用例,但基于可擴展性方面的需求,目光還是轉(zhuǎn)向了具備擴展能力的平臺,由于這些平臺能夠滿足不同需求、并隨著因客戶需求變化所導(dǎo)致的可擴展性和升級提供內(nèi)在支持。因此,重要的是要關(guān)注那些能夠輕松擴展硬件功能的平臺,這樣,當(dāng)利用不同架構(gòu)的特定設(shè)備需求產(chǎn)生變化時,就無需對代碼進(jìn)行太大更改。因為很少有人能負(fù)擔(dān)得起這其中所暗含著的移植開銷。
由于NXP和高通公司等供應(yīng)商在性能、功能和價格方面所提供的眾多選擇,許多開發(fā)人員都采用了他們的嵌入式處理平臺。例如,NXP i.MX應(yīng)用處理器就滿足了廣泛的性能需求。與固定SoC平臺不同,NXP的處理器系列得益于許多嵌入式計算市場所必需的供應(yīng)商長期支持和供貨保證。i.MX 8M等器件為邊緣AI設(shè)備需求提供了良好的基礎(chǔ)。其內(nèi)置的視頻解碼加速功能,使其能夠在一個處理器上支持4個壓縮的1080p視頻流。通過i.MX應(yīng)用處理器與Kinara的Ara-1加速器的配合,可以實現(xiàn)對多個視頻流進(jìn)行推理或具備處理復(fù)雜模型的能力。
運行多個建模需求
主處理器中,每個加速器可以在每個無切換時間和零負(fù)載的幀上運行多個AI模型,從而提供實時執(zhí)行復(fù)雜任務(wù)的能力。與一些為最大吞吐量而依賴于多幀批處理的推理管道不同,Ara-1針對1個批處理以及最大響應(yīng)性,進(jìn)行了專門優(yōu)化。
這意味著,如果加速器正在對另一幀或一幀的一部分執(zhí)行推理,則智能相機設(shè)計不需要依賴主處理器來執(zhí)行重新識別算法。兩者都可以卸載到Ara-1上,以利用其更高的速度。在需要更多性能的地方,例如在邊緣AI設(shè)備中,不同的多種應(yīng)用可能都需要執(zhí)行推理任務(wù),此時可以并行使用多個加速器。
不僅通過支持智能相機或設(shè)備PCB上的芯片向下集成,而且還支持插件升級,從而可以實現(xiàn)更高的可擴展性。對于芯片向下集成,Ara-1支持行業(yè)標(biāo)準(zhǔn)和高帶寬PCIe接口,以便輕松連接到包含PCIe Gen 3接口的主處理器。第二個集成路徑是利用可以直接插入可升級主板的模塊,利用PCIe接口并提供處理多達(dá)16臺相機輸入的能力。對于一些使用現(xiàn)成硬件的系統(tǒng)和原型,還有另外一種選擇,就是內(nèi)在支持USB 3.2。利用簡單的電纜連接,可以在筆記本電腦上測試AI算法,利用硬件評估包啟動生產(chǎn),或?qū)ΜF(xiàn)有系統(tǒng)進(jìn)行簡單升級。
用于無縫過渡的軟件基礎(chǔ)架構(gòu)
開發(fā)人員可以選擇多種方法來簡化加速器與處理器及其相關(guān)軟件堆棧的集成。對于模型的部署和管理,在運行時利用C++或越來越流行的Python應(yīng)用程序編程接口(API),運行環(huán)境為Arm的Linux環(huán)境或x86的Windows環(huán)境。Kinara的運行時API支持多種命令,包括加載和卸載模型、傳遞模型輸入、接收推理數(shù)據(jù)以及推理和硬件設(shè)備的所有控制。

圖3:示例開發(fā)業(yè)務(wù)流。
GStreamer環(huán)境提供了訪問加速器性能的另一種方式。作為一個為構(gòu)建媒體處理組件的計算圖形而設(shè)計的庫,GStreamer可以很容易地實現(xiàn)過濾管線,這些過濾器可以植入能夠?qū)?dǎo)入視頻和傳感器饋送狀態(tài)的變化做出反應(yīng)的一些更復(fù)雜應(yīng)用中。
對于AI推理,Kinara等SDK可以采用多種不同形式的訓(xùn)練模型,包括TensorFlow、PyTorch、ONNX、Caffe2和MXNet,并直接支持YOLO、TFPose、EfficientNet等數(shù)百種模型以及變壓器網(wǎng)絡(luò)。從而提供了一個完整的環(huán)境來優(yōu)化性能,手段包括利用量化、利用自動調(diào)整確保模型精度的保持、并在運行時調(diào)度執(zhí)行。有了這樣的平臺,就有可能深入理解模型的執(zhí)行,以促進(jìn)性能優(yōu)化和參數(shù)調(diào)整。工程師可以利用精確的仿真器,在硅片實施之前對性能進(jìn)行評估。
總之,隨著人工智能成為越來越多的嵌入式系統(tǒng)的組成部分,能夠?qū)⑼评砉δ芗傻綇V泛的平臺中來滿足不斷變化的需求是非常重要的。這意味著能夠部署具有相關(guān)SDK的靈活加速器,從而允許客戶將高級AI加速與已有或新的嵌入式系統(tǒng)結(jié)合起來。
(參考原文:Using edge AI processors to boost embedded AI performance)
本文為《電子工程專輯》2023年3月刊雜志文章,版權(quán)所有,禁止轉(zhuǎn)載。點擊申請免費雜志訂閱