工業(yè)機(jī)器視覺有沒有必要使用邊緣計(jì)算技術(shù)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
為了降低延遲并在必要時(shí)能夠立即采取行動(dòng),很大一部分工業(yè)機(jī)器視覺需要在邊緣網(wǎng)絡(luò)實(shí)現(xiàn)計(jì)算處理。通過這一點(diǎn),將有可能避免代價(jià)高昂的生產(chǎn)線停機(jī)風(fēng)險(xiǎn),并防止員工的生命受到威脅。不過,還有一些重大的影響因素需要考慮,因?yàn)檫@意味著必須在邊緣端擁有巨大的自主權(quán)。
通過機(jī)器學(xué)習(xí)推斷,從捕獲的數(shù)據(jù)中提取特征,以便將來在處理類似場景時(shí)作出更好的決策。然而,必須指出的是,在邊緣端應(yīng)用這種人工智能(AI)具有與之相關(guān)的重大技術(shù)挑戰(zhàn),特別是在資源有限的情況下。
無處不在的機(jī)器視覺系統(tǒng)!
這種機(jī)器視覺系統(tǒng)中使用的算法被廣泛歸類為基于人工智能(AI)的算法,并利用深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)對(duì)要檢查的對(duì)象進(jìn)行數(shù)字化的“檢查”。隨著工業(yè)4.0和工業(yè)物聯(lián)網(wǎng)(IIoT)等舉措不斷改變制造業(yè)廠商,機(jī)器視覺應(yīng)用將在提高運(yùn)營效率方面發(fā)揮越來越大的作用。與早期需要大量計(jì)算資源的人工智能實(shí)現(xiàn)不同,這些計(jì)算資源往往被限制在數(shù)據(jù)中心內(nèi),今天的人工智能機(jī)器視覺應(yīng)用需要更靠近“邊緣”端,以便提供高精度、快速和可操作的圖像檢測。
深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)
傳統(tǒng)的計(jì)算機(jī)程序是為了在給定的輸入條件下輸出一組結(jié)果而編寫的。當(dāng)你知道會(huì)輸入什么并且輸入的數(shù)量有限時(shí),這是有效的一種方法。然而,當(dāng)一個(gè)系統(tǒng)遇到它以前從未遇到過的情況時(shí),將會(huì)發(fā)生什么———你如何使它以適當(dāng)和有用的方式作出反應(yīng)?
卷積神經(jīng)網(wǎng)絡(luò)是對(duì)部分大腦處理視覺信息的數(shù)字解釋。與任何神經(jīng)網(wǎng)絡(luò)(見圖1)一樣,CNN 包含多層節(jié)點(diǎn),但它們的不同之處在于,某些神經(jīng)元只連接起來選擇其他神經(jīng)元,這是因?yàn)镃NN 就像我們的大腦一樣,強(qiáng)調(diào)數(shù)據(jù)的空間結(jié)構(gòu)。例如,當(dāng)看起來像是汽車圖像(例如車輪、擋風(fēng)玻璃和車門后視鏡)時(shí),我們會(huì)在相同區(qū)域內(nèi)尋找其他元素來證實(shí)或反駁這一假設(shè),例如方向盤、車門立柱或燈組。觀察圖像其他區(qū)域的價(jià)值會(huì)降低,因?yàn)樗惶赡茏屛覀儗?duì)圖像是否真的是一輛汽車有一個(gè)明確的答案(增強(qiáng)學(xué)習(xí))。CNN的工作原理與此相同,因此比全連接網(wǎng)絡(luò)的效率更高,特別是在處理大型圖像時(shí)。
圖1 神經(jīng)網(wǎng)絡(luò)基本概念
CNN在機(jī)器視覺中的應(yīng)用
CNN的結(jié)構(gòu)被稱為“網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)”,并且已經(jīng)發(fā)展成為標(biāo)準(zhǔn),其中包括流行的AlexNet和GoogleNet,這些都得到了快速的普及,并且比AlexNet復(fù)雜得多。其他拓?fù)浣Y(jié)構(gòu)包括VGG和ResNet。從開發(fā)的角度來看,有許多開源庫、CNN框架和跨平臺(tái)并行編程語言可用于幫助CNN的編碼和快速部署。Caffe是一個(gè)流行框架的例子,它包含創(chuàng)建、訓(xùn)練、測試和刷新CNN所需的所有網(wǎng)絡(luò)元素。
如何建立CNN 網(wǎng)絡(luò)將取決于目前和將來要實(shí)現(xiàn)的目標(biāo)。你要找的“東西”有多少個(gè)不同的類別———是有限數(shù)量,還是成千上萬? 你將使用哪種圖像分辨率或幀速率? 這些參數(shù)會(huì)增加嗎? 你只需要檢測一個(gè)物體,還是需要對(duì)目標(biāo)進(jìn)行詳細(xì)的細(xì)節(jié)描述并跟蹤它的運(yùn)動(dòng)軌跡?
選擇在哪個(gè)硬件平臺(tái)上運(yùn)行機(jī)器視覺應(yīng)用程序涉及許多因素。盡管現(xiàn)場可編程門陣列(FPGA)一直是熱門的候選,隨著處理器性能的提升,在高性能CPU 或GPU上運(yùn)行現(xiàn)實(shí)更受歡迎。FPGA 使您能夠動(dòng)態(tài)地構(gòu)建一個(gè)專門解決自己問題的計(jì)算體系結(jié)構(gòu),并能夠提供極高的性能。這是由于FPGA 的特性決定的,其包括數(shù)千個(gè)專用的單精度浮點(diǎn)乘法器和累加器塊,以及一個(gè)可以配置成一系列緩沖和緩存結(jié)構(gòu),并且能夠和FPGA 計(jì)算單元緊密耦合的嵌入式高帶寬存儲(chǔ)器。這使得片上系統(tǒng)具有非常低的延遲和片間可編程互連的功能,同時(shí)能夠結(jié)合邏輯,來構(gòu)建所需的拓?fù)浣Y(jié)構(gòu)。最終,硬件的選擇將取決于視覺檢測系統(tǒng)能夠檢測到的速度,如果超出可選界限,則會(huì)提示錯(cuò)誤,以便另一個(gè)進(jìn)程可以干預(yù)。
對(duì)基于人工智能的機(jī)器視覺應(yīng)用的需求日益增長,導(dǎo)致許多制造商打包開發(fā)完整的系統(tǒng)評(píng)估和開發(fā)平臺(tái),以加快系統(tǒng)驗(yàn)證和原型制作。例如,專業(yè)的嵌入式視覺攝像機(jī)制造商Basler [1] 為其Dart系列攝像機(jī) [2] 提供了一個(gè)完整的評(píng)估工具包,其中包括掛架攝像機(jī)軟件套件(見圖2)。 基于Intel Atom 四核處理器,圖3[3] 所示的AAEONUP嵌入式視覺套件還包括一個(gè)Basler攝像頭和配套軟件。
圖2 塔式相機(jī)軟件套件(來源:Basler)
圖3 AAEON UP開發(fā)工具包(來源:AAEON UP)
上述兩個(gè)工具都為簡單的機(jī)器視覺應(yīng)用提供了一個(gè)良好的起點(diǎn),但功能齊全的基于人工智能的方法保證了更多的計(jì)算資源和能力來加速神經(jīng)網(wǎng)絡(luò)處理過程。例如,Intel就提供了許多不同的機(jī)器視覺方法。如前所述,F(xiàn)PGA長期以來一直與機(jī)器視覺聯(lián)系在一起,非常適合運(yùn)行神經(jīng)網(wǎng)絡(luò)。Intel Max 10 FPGA系列 [4] 是一個(gè)很受歡迎的設(shè)備系列,它非常適合許多基于人工智能的視覺應(yīng)用程序,其功能塊如圖4所示。
圖4 Intel Max 10機(jī)器視覺基本功能體系結(jié)構(gòu)(來源:Intel)
最新發(fā)布的OpenVINO(開放式視覺推理與神經(jīng)網(wǎng)絡(luò)優(yōu)化)軟件工具包(見圖5)完全支持Intel的FPGA 和CPU,它有助于加速應(yīng)用程序設(shè)計(jì),并優(yōu)化一系列Intel硬件設(shè)備的工作負(fù)載性能。OpenVINO 支持通過一個(gè)公共API跨CPU、FPGA和GPU 異構(gòu)地執(zhí)行CNN 任務(wù),它使用一個(gè)函數(shù)庫和預(yù)優(yōu)化的內(nèi)核來幫助縮短整個(gè)開發(fā)周期并加快產(chǎn)品上市速度。它還托管OpenCV 計(jì)算機(jī)視覺庫和OpenVX 跨平臺(tái)計(jì)算機(jī)視覺來加速API的優(yōu)化調(diào)用。
該工具包包括三個(gè)部分———深度學(xué)習(xí)、基于CNN 的計(jì)算機(jī)視覺技術(shù)和硬件加速———同時(shí),工具包還包括一些預(yù)先訓(xùn)練的深度學(xué)習(xí)模型。計(jì)算機(jī)視覺方面包括一個(gè)基于Python的優(yōu)化器,可以通過命令行接口從Caffe等框架中導(dǎo)入經(jīng)過訓(xùn)練的模型。
圖5 Intel OpenVINO 框架(來源:Intel)
加速,即添加重要的計(jì)算資源(通常是并行計(jì)算資源)的過程,不僅限于機(jī)器視覺應(yīng)用程序,還可以在越來越多的其他應(yīng)用程序中找到,例如用于加快瀏覽器搜索速度的數(shù)據(jù)中心。然而,許多工業(yè)視覺應(yīng)用更強(qiáng)調(diào)在“邊緣”端進(jìn)行計(jì)算,即系統(tǒng)可以在不依賴云服務(wù)的情況下正常運(yùn)行。
Intel最近宣布了Intel神經(jīng)計(jì)算棒2——一個(gè)基于Intel Movidius Myriad X視覺處理單元(VPU)的USB神經(jīng)網(wǎng)絡(luò)處理平臺(tái)。Movidius VPU 包括16個(gè)128位超長指令字(VLIW)可用C 語言編程的混合架構(gòu)矢量引擎(SHAVE)內(nèi)核,以及一個(gè)專用的神經(jīng)計(jì)算加速器引擎。Movidius Myriad XVPU 能夠?yàn)樯窠?jīng)網(wǎng)絡(luò)處理提供每秒1萬億次運(yùn)算處理(TOPS),如圖6所示。
圖6 Intel神經(jīng)計(jì)算棒2(來源:Intel)
神經(jīng)計(jì)算棒可以使深入學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)在一臺(tái)筆記本電腦中進(jìn)行部署,它提供了Intel OpenVINO發(fā)行版,以進(jìn)一步幫助用戶快速實(shí)現(xiàn)與部署。一旦實(shí)現(xiàn)了工作原型系統(tǒng),它就可以快速部署在基于Movidius的單板模塊上,如基于AAEON UP AI 核的mini PCI Express系統(tǒng) [5] 。
基于人工智能的機(jī)器視覺應(yīng)用如今能夠快速開發(fā)和部署,要?dú)w功于神經(jīng)網(wǎng)絡(luò)軟件和開發(fā)工具包的完備性,比如和Caffe近似的OpenVINO和CNN 框架。緊湊、低功耗硬件原型平臺(tái)的發(fā)展進(jìn)一步加快了邊緣節(jié)點(diǎn)視覺系統(tǒng)的開發(fā)速度。