如何“看”懂你:Intel邊緣設備智能視覺創新

轉自:EET

如果說傳統物聯網更多體現的是線性思維,即物體產生數據,通過互聯網傳到雲端,然後分析產生價值。那麼今天的物聯網則完全是立體三維概念,需要同時解決實時應用、成本、分析預測、精準性、人工智能、信息安全等多重問題。如何讓這些元素之間產生和諧的動力,將計算濃度和計算分佈變成“邊雲協同”的分佈式架構,是當前業界最為關註的話題。

物聯網正從邊緣側趨向負載整合

人工智能的發展離不開數據,因為它需要大量的數據進行訓練。在當前這樣一個萬物智能互聯的時代,數據量的產生速度超出瞭一般人的想象。以智能攝像頭為例,隨著攝像頭的分辨率從1080P轉向4K,其一天所采集到的數據量將達到200GB。面臨同樣問題的還包括智能醫院、自動駕駛和智能工廠,它們一天所產生的數據將分別超過3TB、4TB和1PB。有人做過這樣的預測,到2020年,一個互聯網用戶平均每天將產生的數據量大概是1.5GB。

然而物聯網行業體量巨大,碎片化程度嚴重,將人工智能推向邊緣側其實並不是一件簡單的事情。況且在2012年以前,人工智能在做圖像識別時的準確度是低於人類的。下圖中,虛線代表人類識別水平,實線代表機器識別錯誤率。可以看到,2012年以前機器識別的錯誤率還是高於人類的,但呈逐漸下降趨勢,2012年之後,隨著AlexNet等神經網絡的出現,人工智能水平才出現瞭質的飛躍。

因此,在一個邊緣協同的端到端系統中,由於不同網源的功耗、計算性能和所能承擔的成本各不相同,在選取硬件架構時往往會有特定要求。英特爾副總裁兼物聯網事業部中國區總經理陳偉博士對《電子工程專輯》表示,英特爾的做法是根據用戶需求提供不同架構的解決方案,涵蓋至強處理器、至強融核處理器、Movidius/Nervana神經網絡處理器和FPGA、網絡、存儲技術等硬件平臺,以及多種軟件工具及函數庫,優化開源框架,來讓他們進行自主選擇。

英特爾中國區物聯網事業部首席技術官兼首席工程師張宇博士則強調瞭在邊緣側趨向負載整合是物聯網演進的一個必然趨勢。也就是說,原來在不同設備上分立的負載會越來越多地通過虛擬化等技術,整合到一個單一的高性能的計算平臺上,來實現一個綜合的復雜的功能,各個功能子系統既能分享設備提供的計算、存儲、網絡等資源,還能具有一定的獨立性,避免彼此的相互影響,從而可以簡化系統架構,降低系統總體。

同時,負載整合實際上也為邊緣計算的實現以及為實施人工智能的應用提供瞭條件。整合後的設備既是邊緣數據的匯聚節點,同時也是邊緣控制的中心,這為邊緣智能提供瞭處理所需的數據,同時也提供瞭控制的入口。因此英特爾認為人工智能和負載整合的結合,會在今後的邊緣計算的系統裡發生。

視頻是終極物聯網傳感器

來自《戰略師的物聯網指南》 的數據顯示,到2021年,邊緣到雲行業支出預計將達到110億美元。在這一涵蓋智能制造、智慧城市等領域的巨大物聯網機遇中,智能設備、傳感器和互聯事物捕捉的視頻將會占據60億美元的份額。

為此,英特爾日前面向軟件開發人員以及開發、監控、零售、醫療、辦公自動化、自動駕駛等領域的數據科學傢,最新推出瞭OpenVINO(Open Visual Inference & Neural Network Optimization, 開放視覺推理及神經網絡優化)軟件平臺。這是一個快速開發高性能計算機視覺和深度學習視覺應用的工具包,包括英特爾深度學習部署工具包,具有模型優化器、推理引擎、超過20個預先訓練的模型,以及面向OpenCV和OpenVx的優化計算機視覺庫。OpenVINO工具包可通過CPU、GPU、FPGA、Movidius VPU等硬件進行部署,增強視覺系統功能和性能,輕松實現邊緣到雲的異構執行。

測試結果顯示,在英特爾酷睿i7 7800X處理器上運行Google Nex網絡,相應的性價比是目前市場上主流解決方案的兩倍以上;如果選用FPGA,其性能、功耗、成本比值的綜合考量性能大概能達到1.4倍以上;而使用Movidius的話,性能可進一步提升至5倍以上。

作為一傢平臺化的公司,英特爾鎖定高性能計算機視覺和深度學習視覺兩大熱點領域,並提供包括CPU、核顯(Integrated GPU)和深度學習加速器(FPGA、Movidius VPU)在內的完整硬件解決方案都不令人意外。但在陳偉看來,實際應用中,不但指望產生一個一勞永逸方案的想法是不切實際的,即便在如何深度挖掘這些硬件的計算潛力方面,也仍然存在很多壁壘。

計算機視覺和深度學習開發工具OpenVINO

從人工智能的演進過程中可以看到,早期的人工智能計算,無論是訓練還是推理都發生在數據中心,因為隻有數據中心才能夠提供如此驚人的計算力和電力的消耗。然而近年來,隨著網絡壓縮算法的廣泛使用,以及人工智能專用芯片的出現,使得一些深度學習運算可以從雲端推送到邊緣,使得智能攝像機、智能網絡視頻存儲器、NVR等產品逐步面世。

在整個端到端的網絡中,不同的網源所能提供的計算量是不一樣的,能夠支持的操作系統也各不相同,因此有各自適用的芯片架構。比如在攝像機裡,一個攝像機的功耗大概15瓦,從15瓦裡能夠提供給做智能運算的能量有2-3瓦,對於這樣的使用場景,類似於ASIC這樣的架構是最適宜的;然而在數據中心中,通用處理器又是最適宜的,這就給開發者帶來瞭一定的困擾。簡單而言,就是說為某一種芯片所開發的軟件在面對一個新架構時,很可能是不適用的,這樣無形中就增加瞭開發的門檻。

張宇說自己跟很多從事人工智能應用開發的開發者交流過,發現最大的困擾來自以下兩個方面:一是網絡模型已經訓練完畢,但由於推理平臺能力有限,隻能下載網絡模型的一部分而不是全部;另外一個則是將訓練好的模型推送到推理平臺之後,不是性能達不到設計要求,就是模型框架得不到英特爾Movidius或是FPGA架構的支持。

在視覺領域,傳統的計算機視覺和深度學習方法都在被廣泛使用中。深度學習方法在物體檢測、目標識別方面已經開始替代傳統的計算機視覺,但在光流計算或是圖像增強領域,計算機視覺仍然有自己的用武之地。

OpenVINO對這兩類方法都有很好的支持,從而幫助開發者將已經訓練好的網絡模型部署到目標平臺之上進行推理操作。考慮到目前比較流行的深度學習框架包括Caffe、Tensor Flow、MxNet三種,模型優化器和推理引擎可以把開發者基於開放的深度學習框架所開發的網絡模型,針對所選用的目標平臺進行優化,然後將這些優化的結果轉換成包含網絡拓撲結構、模型參數和模型變量的中間表述文件(IR文件)供推理引擎讀取,再利用相應的硬件插件將IR文件下載到目標平臺上進行執行,開發者可以通過測試程序或應用來驗證結果的正確性。

傳統計算機視覺工具庫則是經過預編譯的,支持OpenCV3.3版本。此外,OpenVINO還包含瞭對OpenVX以及OpenVX在神經網絡擴展的支持,同時在媒體、視頻、圖像處理領域還包含瞭已經非常成熟的英特爾媒體軟件開發套件(Media SDK),可以幫助開發者非常方便的利用英特爾CPU裡面集成顯卡的資源來實現多種視頻格式(H.264、H.265)的編碼、解碼以及轉碼的操作。這樣,一個工具庫同時支持多種操作系統,用戶可以非常方便的調用英特爾硬件資源,實現性能的提升,達到事半功倍的效果。

讓我們一起看看集成瞭高級軟硬件的英特爾視覺解決方案是如何在邊緣節點(包括攝像頭和本地服務器)處促進強大的深度學習推理功能在各行各業中的應用:

 交通監控。采用英特爾FPGA和Movidius™ VPU的攝像頭可捕捉數據,並自動將其發送至下遊十字路口系統,幫助交通部門優化交通和做好規劃。這些信息可通過車載系統或應用直接傳達給司機,幫助他們規劃路線。

 公共安全。借助使用OpenVINO™工具包開發的Myriad VPU和算法,經過訓練的深度神經網絡現在可利用推理功能通用面部識別分析並識別失蹤兒童。采用瞭這一技術的城市執法機構可在經過訓練的數據集匹配到人群中已報告失蹤兒童的臉部時,即時收到相關通知。

 工業自動化。英特爾視覺解決方案可幫助智能工廠融合OT和IT,重塑工業業務模式和增長戰略。生產控制將可自動、流暢運轉,縮短上市時間。

 機器視覺。借助人工智能增強工業機器視覺,支持更精準的工廠自動化應用。解決方案組合攝像頭、電腦和算法,以分析圖像和視頻,在邊緣提供可以用於指導行動的重要信息。

 響應式零售。在邊緣使用英特爾計算機視覺解決方案的零售商,可以快速識別特定客戶或客戶行為模式,從而提供個性化的精準營銷服務。

 運營管理。通過使用基於英特爾架構的計算機視覺解決方案,零售商可簡化運營、管理庫存、優化供應鏈和增強推銷能力,並幫助他們發掘數據的更高價值。

OpenVINO中的關鍵先生

既能夠實現Caffe、Tensor Flow、MxNet框架之上所開發的模型導入,還能夠進行模型優化,采用Python語言進行編寫的模型優化器居功至偉。一個簡單的使用場景就是在通用處理器上所產生的訓練結果,由於受到數據精度、內存、操作系統等多方面的限制,在部署到前端的嵌入式推理平臺上時會受到各種限制,而在模型優化器的幫助下,就可以自動實現。

張宇列舉瞭兩個優化的案例。第一,在做訓練的時候,有可能會存在一個Dropout層,它的主要作用是在訓練過程中讓一定比例的神經元失效,從而避免在訓練過程中讓模型參數陷入局部極小值,導致失去最優效果。但Dropout層在做推理的時候是沒有必要的,因此OpenVINO中的模型優化器可以自動檢測當前的網絡模型,如果發現有Dropout層存在,就會自動將其剔除掉。第二,將神經網絡模型裡包含的卷積層、全鄰接層、激活函數層的網絡優化工作交給模型優化器進項實現,目前英特爾已經驗證超過瞭150個在Caffe、MxNet和Tensor Flow上所設計的模型。

推理引擎也是深度學習部署套件的一個重要組成部分,由一套C++函數庫組成。它可經過簡單、統一的API接口來支持英特爾的所有架構,實現深度學習推理所需要的操作,例如對數據的讀取,對輸入輸出數據格式的定義、以及調用相應的硬件插件等。

目前,用戶可以把中間文件下載到英特爾Arria10 FPGA板卡之上,調用DLA庫,實現在FPGA上的網絡推理操作;或者通過MKLDN插件,把中間文件下載到英特爾凌動、酷睿和至強處理器上,在這些通用CPU之上實現深度學習的運行;再或者,通過CLDNN和OpenCL的接口將神經網絡運行在英特爾的集成顯卡之上,以及利用Movidius插件把神經網絡運行在基於Myriad2/Myriad X深度學習計算棒上。今後,如果有一個新的硬件架構需要支持,就可以設計一個相應的插件來實現功能的擴展,而不需要改變插件之上的軟件,從而能夠保護開發者的開發成本。

OpenVINO工具套件的另一個優勢在於它的訪問實際上是分層的,不同的開發者可以根據自己的使用要求和開發能力去選擇不同的API接口進行調用。對於新手來說,OpenVINO裡包含瞭很多應用的示例,比如物體檢測、人臉識別等;對於能力更強的用戶,OpenVINO可提供網絡的實現,也被稱作Model Zoo,他們可以在此基礎之上實現相應的應用開發。如果要設計一些新的網絡模型,或是直接調用硬件底層接口實現對硬件的直接訪問,則可以利用模型優化器和推理引擎將網絡模型轉換成硬件可識別的語言後,再下載到硬件平臺上進行執行。

赞(0)