所謂「電腦視覺」(computer vision),是指機器能從二維圖像或未經壓縮的串流影片圖像中推斷出(infer)或擷取(extract)有用訊息的能力,而這樣的能力能改變我們的生活。它能讓車子自動駕駛、讓機器人或無人機將包裹遞送到你家門口,以及能讓你的臉部成為通行或付款的方式(圖1)。為了實現這些先進的功能,嵌入式視覺處理器正迅速發展中,以便將最新的學術研究成果整合到符合經濟效益的高效能人工智慧(AI)產品裡。

20191227NT41P1 圖一:結合人工智慧,新的電腦視覺技術可為門禁、支付和其他應用提供臉部辨識。

在2012年開始採用新的深度學習技術之後,電腦視覺技術經歷了一場大躍進,當時早期的卷積神經網路(CNN) AlexNet贏得了「ImageNet大規模視覺識別挑戰賽」(ImageNet Large Scale Vision Recognition Challenge;ILSVRC)(圖2)。ILSVRC競賽優先考慮準確性,而隨後的幾年,新的優勝者不斷刷新第一名及前五名的分類結果(圖像的準確性在於盡可能猜對影像中的內容),直到在識別/分類1,000個項目的特定任務中超越人類表現。ImageNet獲勝者藉由提高問題的計算複雜性,以及利用在GPU上執行的32位元浮點計算來實現這些成果;而效能的提升有助於提高偵測的精準度。

20191227NT41P2 圖二:ImageNet大規模視覺識別挑戰賽的結果顯示,深度學習的準確性已超越了人類。

卷積神經網路(CNN)已成為現代電腦視覺偵測物件的標準。為求簡化,CNN演算法經訓練後能把一個物件,例如行人,分解為曲線、角和其他構成要素等模式(pattern),並將數據儲存在權重或係數中,然後透過搜索圖像中的這些模式,以驚人的準確度辨識出目標物件。

當工程師希望將ImageNet CNN圖形(VGG16、GoogleNet、ResNet等)應用在實際的嵌入式視覺應用時,會發現ImageNet的參賽作品顯然不受嵌入式AI SoC限制條件的約束,像是有限的功率預算、記憶體頻寬限制、最低延遲和較小的矽晶面積目標等。此外,ImageNet並未將滿足目標幀率(frame rate)等即時需求作為評量獲勝者的依據。要將電腦視覺從紙上談兵轉變為實際應用,得先解決這些問題。嵌入式工程師需要找到方法來實現電腦視覺對高效能和準確性的要求,同時還要能處理嵌入式的限制。嵌入式視覺處理器旨在以最小的晶片面積和功耗損失,提供最佳的電腦視覺效能。

電腦視覺效能的第一階測量是以每秒兆次運作(tera-operations per second;TOPS)來計算。Tera是兆級單位(1012),是為了因應所需處理的像素數量以及CNN等深度學習運算的複雜性。每秒運算次數所測量的是單一處理器時脈週期(clock cycle)可以完成的工作量。以一個視覺處理器的TOPS來說,簡單計算方法是將乘積累加器(multiply-accumulators;MACs)乘以處理器頻率(MHz)所得到的數字再乘以二。而之所以乘以二是因為MAC被視作一個週期內的兩次運算—乘積與累加。

嵌入式視覺的效能要求隨應用而異

不同的電腦視覺應用程式仰賴不同等級的運算效能,不過整體而言,效能需求是有增無減的。中階智慧手機的臉部辨識所需的效能可能不到1 TOPS,而擴增實境、監控系統和汽車後置攝影機等中階應用所需的運算效能通常為1到10 TOPS。另外像是用於安全攸關應用的汽車前置攝影機、微型伺服器和資料中心,則可能需要10~100 TOPS。嵌入式視覺處理器不斷增加其MAC數量,以提高TOPS的效能,進而為所有視覺應用提供可擴展的解決方案。

新思科技在2015年推出DesignWare ARC EV5x視覺處理器IP,在800MHz時脈頻率下提供每週期64個 MAC,約莫0.1 TOPS的運作效能。一年後所推出的EV6x則包含880個MAC加速器,能在800MHz頻率下提供約1.3 TOPS的運算效能。 2017年,經改良的EV6x能在1.2GHz頻率下提供3,520 個MAC,約8.5 TOPS的神經網路效能。

2019年新思科技推出了具備深度神經網路(deep neural network;DNN)加速器的EV7x嵌入式視覺處理器IP(圖3)。DNN加速器具備多達14,080個MAC,可執行所有CNN圖形,包括最新、最複雜的圖形和自訂圖形,而針對基於時間結果的應用程式,還提供批量長短期記憶(long short-term memories;LSTM)的最新支援。除了DNN加速器外,EV7x的視覺引擎具備了低功耗高效能的視覺、同步定位和映射(simultaneous localization and mapping;SLAM)以及DSP演算。EV7x結合了EV7x DNN和EV7x視覺引擎的效能,其運算可擴展至35 TOPS。與EV5x相比,其效能在四年內提高了近350倍。

20191227NT41P3 圖三:DesignWare ARC EV7x嵌入式視覺處理器IP包含了具有多達四個向量處理單元(vector processing unit;VPU)的視覺引擎、高效能的DNN加速器與完整的軟體工具集。

你需要的不僅是MAC:還有內部記憶體與頻寬的考量

將MAC加入AI加速器可提高神經網路引擎的效能,以滿足各種實際電腦視覺應用的需求。但這只是剛開始而已。事實上,要擴展神經網路圖形的效能,把MAC加入加速器是最輕鬆的部分。更大的挑戰是:如何確保MAC保持運作?理想的系統既不受運算限制(缺乏效能),也不受I/O限制(缺乏必要的記憶體頻寬)。當MAC提升至四倍,則必須考慮增加內部記憶體和額外的I/O頻寬(圖4),然而這麼做會影響到視覺處理器的功耗或晶片面積。將頻寬降至最小的最佳方法是同時運用軟硬體技術來限制需要透過外部記憶體存取的數據資料。

20191227NT41P4 圖四:要充分利用神經網路加速器的MAC,就需要增加內部記憶體以及處理I/O的頻寬。

有很多技術可用來提升效能和限制頻寬。「量化」是將32位元浮點係數和數據轉換為較小的整數格式(當前普遍的格式為8位元),此舉可將頻寬減少四分之一。特徵圖(feature map)的無損壓縮(來自每個CNN圖形圖層的中間輸出)被寫入外部記憶體,並在讀回時進行解壓縮,因此能減少高達40%的頻寬。稀疏性(sparsity,即找出和避免數據中的零值) 和係數裁減 (coefficient pruning,即找出哪些趨近零的係數可設為零) 是另外兩種降低頻寬的技術。

除了這些硬體技術之外,還開發出新的CNN圖形,可大幅減少運算而達到ResNet或GoogleNet等早期圖形的準確性。MobileNet (v1和v2)和DenseNet是兩個比較近期的CNN分類圖形的例子。然而,儘管兩者都具有更高的運算效率,MobileNet是比較適合AI SoC中的嵌入式視覺設計。DenseNet的拓樸運算架構(topology)需要大量重複使用特徵圖,而這會大大增加頻寬和記憶體的需求。另一方面,MobileNet卻能以相對小很多的係數和相對低很多的頻寬,達成幾乎相同的精準度。

管理頻寬的新技術

研究神經網路的腳步進展得很快,因此新的技術也不斷出現。新思科技的新EV7x嵌入式視覺處理器IP推出了兩種降低頻寬的先進技術。首先,直接記憶體存取(direct memory access;DMA)的多路傳送(broadcasting)會在CNN圖形內圖層運算過程中,將係數或數據分配給各MAC群組。如果每組MAC能處理同一組係數,則這些係數就可一次被讀取並透過DMA分配給每組MAC,從而將頻寬降到最低。

第二種技術—多層次圖層融合,則擴展了圖層合併(layer merger)的概念。圖層合併是將卷積計算與非線性激勵函數(activation function)和CNN的池化(pooling),或降取樣(down-sampling)結合在一起。多層次圖層融合將合併的圖層結合在一起,讓需要寫入外部記憶體的特徵圖數量降到最少。DMA多路傳送和多層次圖層融合都結合了先進硬體功能和軟體支援。若以3,520個MAC架構上運行的標準CNN圖形為基礎,應用於EV7x新型DNN加速器的DMA多路傳送和多層次融合,能較先前架構提升效能達67%並減少47%的頻寬。

當嵌入式開發人員在設計能改變人們生活的視覺與AI產品時,透過運用這些技術的最新一代視覺處理器,可以更容易滿足功耗、面積和效能預算。

日常範例:臉部辨識、機器人技術和自動駕駛車

為能從紙上談兵落實到日常生活應用,臉部辨識演算需要在低功耗且隨時啟用(always-on)的硬體上執行;試想一下,利用停車收費器所包含的硬體來進行人臉支付。人臉偵測演算可在超低功耗微控制器(例如ARC EM9D低功耗微控制器IP)中以隨時啟用的模式運作。當偵測到人臉時,具備DNN880的EV71可被喚醒並用來執行快速的人臉偵測,查看該人臉是否可辨識,接著快速關閉以節省電量。為了保護生物特徵資料的機密性以及CNN圖形的運算拓樸和係數,諸如EV7x等嵌入式視覺處理器,皆包含了選配的高速進階加密標準(advanced encryption standard;AES)的加密機制。

為了讓機器人或無人機能夠在擁擠的環境中移動(像是從當地餐廳外送你的午餐,或是從你喜愛的商店遞送包裹),需要應用到多種視覺技術。SLAM是一種源自機器人技術研究的演算,它使用攝影機的輸入資料來映射機器人周圍的環境,以及機器人在該環境中的位置。儘管機器人可以偵測到物件,但卻無法識別該物體,這時CNN便可發揮作用,因為CNN擅長物件識別。將SLAM與CNN結合使用,可以讓機器人對其周遭環境更為敏銳。具有兩個VPU的EV72,加上選配的DNN3520,非常適合機器人技術或擴增實境(augmented reality;AR)應用,這些應用結合了向量處理單元中的SLAM(用以映射物件)與深度神經網路加速器(用以識別被映射的物件)。

自駕車帶給嵌入式開發人員額外的挑戰,不僅汽車的攝影機數量增加,而且每台攝影機的圖像解析度也跟著提高。要讓汽車從人的手上接管駕駛工作,它必須具備最高的可靠性,包括高水準的故障檢測和備援性(redundancy)。嵌入具有多達35種TOPS效能的視覺處理器可讓自駕車更符合現實狀況。具備四個VPU的EV74與大型DNN14K相結合,可提供汽車前置攝影機/行人偵測所需的效能,同時滿足ISO26262功能安全準則(圖5)。為了滿足35 TOPS以上的效能要求(例如具備多個攝影機的車用行人偵測系統),可利用晶片網路(network-on-chip,NoC)連接多個EV74DNN14K執行個體(instance)。與其他解決方案相比,每個EV7x處理器的35 TOPS DNN只需較少的執行個體就能達到100 TOPS。較少的執行個體能減少NoC的流量,從而降低潛在的效能瓶頸。所有這些頻寬限制技術對低階應用一樣可行。儘管臉部偵測可能只需要1 TOPS或更少,但對功耗卻是極度敏感。

20191227NT41P5 圖五:符合ISO 26262要求的高效能神經網路加速器,提供100 TOPS以上的效能,成功實現自駕車。

總結

深度學習技術可以實現令人雀躍且與現實接軌的嶄新電腦視覺應用——只要嵌入式工程師能將這些計算繁重的學術演算轉化成高效能、低功耗和高頻寬效率的視覺處理器。諸如新思科技EV7x等最新的嵌入式視覺處理器,納入更新的頻寬縮減技術,能將運作中的MAC效能達到最大化。這些處理器還針對最新CNN圖形和神經網路框架進行優化。藉由整合EV7x視覺處理器IP,業界領導廠商得以運用高效能的人工智慧SoC,實現臉部辨識、機器人技術、汽車等其他應用。

欲知更多關於具備DNN加速器的ARC EV7x處理器IP的訊息,請參考:https://www.synopsys.com/dw/ipdir.php?ds=ev7x-vision-processors