嵌入式視覺的發(fā)展趨勢及其算法示例
在這篇文章中,前賽靈思機(jī)器視覺市場戰(zhàn)略總監(jiān)Aaron Behman 針對嵌入式視覺方面的問題進(jìn)行了介紹,并解讀了賽靈思 All Programmable Zynq® SoC 的獨(dú)特解決方案。希望能為讀者了解該領(lǐng)域的問題有所幫助。
一、嵌入式視覺四大普遍趨勢
嵌入式視覺可劃分為兩個(gè)高級(jí)類別;感知環(huán)境和采取行動(dòng)。視覺導(dǎo)向的機(jī)器人和無人機(jī)屬于后面的采取行動(dòng)類。
在民用領(lǐng)域,目前無人機(jī)是商業(yè)、醫(yī)療、農(nóng)業(yè)、廣播和執(zhí)法應(yīng)用中最熱門的話題之一。對許多這樣的應(yīng)用,無人機(jī)可提供顯著的優(yōu)勢。在廣播和執(zhí)法領(lǐng)域,無人機(jī)能夠以低得多的成本提供之前需要直升機(jī)才能提供的能力。無人機(jī)還能執(zhí)行預(yù)訂服務(wù),例如即將推出的 Amazon Prime 交貨服務(wù),或者如烏干達(dá)偏遠(yuǎn)地區(qū)的醫(yī)療產(chǎn)品交貨服務(wù)。在農(nóng)業(yè)應(yīng)用中,無人機(jī)能使用高光譜成像來判斷作物的健康狀況。而這些應(yīng)用,只不過是目前已經(jīng)在使用或正在考慮使用無人機(jī)技術(shù)應(yīng)用的冰山一角。
農(nóng)業(yè)無人機(jī)應(yīng)用示例
這些應(yīng)用,綜合起來體現(xiàn)著我們在嵌入式視覺總體環(huán)境中觀察到的嵌入式視覺當(dāng)前四大普遍趨勢中的三大趨勢:
1、邊緣(edge)端通過機(jī)器學(xué)習(xí)獲得的智能化 – 智能化嵌入在無人機(jī)本身內(nèi)部,需要從它的攝像頭提取信息并根據(jù)該信息采取行動(dòng),達(dá)成自己的目標(biāo)。
2、開放式高級(jí)語言和框架 – 在無人機(jī)中實(shí)現(xiàn)智能化需要高級(jí)框架和語言。這些中最常用的是開源多平臺(tái)框架,比如嵌入式環(huán)境里的 OpenCV、OpenVX,以及在機(jī)器學(xué)習(xí)環(huán)境里的 Tensor Flow 和 Caffe。
3、多層次的安全性 – 用于確保無人機(jī)不僅能夠運(yùn)行,且不能影響安全性和信息獲取。這種方法要求在器件、系統(tǒng)和網(wǎng)絡(luò)層面實(shí)現(xiàn)多層次的安全性。
第四個(gè)趨勢是嵌入式視覺的普及化。雖然視覺導(dǎo)向的機(jī)器人和無人機(jī)還不像我們的手機(jī)一樣普及——我們常在旅行中用手機(jī)來翻譯標(biāo)牌等用途,隨著新用例被發(fā)掘出來,使用視覺導(dǎo)向的機(jī)器人和無人機(jī)的應(yīng)用正處于快速發(fā)展中。
在架構(gòu)層面無人機(jī)擁有一些關(guān)鍵的子系統(tǒng),包括實(shí)時(shí)精準(zhǔn)的馬達(dá)控制系統(tǒng)、提供與無人機(jī)雙向通信的軟件無線電和精確的嵌入式視覺系統(tǒng)。視覺導(dǎo)向的機(jī)器人和無人機(jī)主要針對大部分電池供電的應(yīng)用,因此設(shè)計(jì)高能效解決方案的能力極為重要。
高精度嵌入式視覺系統(tǒng)提供高幀率,其處理圖像和根據(jù)圖像采取行動(dòng)的能力要遠(yuǎn)超過人眼。對許多應(yīng)用來說,需要使用多個(gè)攝像頭來形成立體多視覺,以完整掌握無人機(jī)周邊環(huán)境。這也稱為傳感器融合。雖然許多應(yīng)用使用多攝像頭方法來觀察環(huán)境,部分應(yīng)用還會(huì)把設(shè)計(jì)用于觀測電磁場頻譜不同組成部分的攝像頭結(jié)合起來使用,例如在超光譜或紅外應(yīng)用中的情況。在使用多個(gè)相同類型傳感器的時(shí)候這一般稱為同構(gòu),在使用不同傳感器技術(shù)的時(shí)候稱為異構(gòu)。
在算法層面,這種高精度嵌入式視覺系統(tǒng)運(yùn)行的算法有同步定位與地圖構(gòu)建(SLAM)和稠密光流(Dense OpTIcal Flow),以為平臺(tái)提供增強(qiáng)型感知和避障系統(tǒng)。這些算法還與更傳統(tǒng)的模式和對象識(shí)別算法結(jié)合。
稠密光流設(shè)計(jì)
視覺導(dǎo)向的機(jī)器人和無人機(jī)因此不僅需要強(qiáng)大的處理能力,還需要有能力進(jìn)行功耗優(yōu)化,提供面向未來且具有可擴(kuò)展性的解決方案。
All Programmable Zynq® SoC 可針對您面臨的問題提供獨(dú)特的解決方案。Zynq 提供的高性能邏輯,與雙核 ARM® A9 處理器集成可打造出緊密集成的異構(gòu)處理單元。該異構(gòu)處理單元能夠在處理器內(nèi)或可編程邏輯內(nèi)實(shí)現(xiàn)高效率的功能細(xì)分。
使用基于 ARM 的處理系統(tǒng),可以在邊緣開展極為復(fù)雜的實(shí)時(shí)視覺分析。在與可編程邏輯架構(gòu)結(jié)合后,它提供實(shí)時(shí)檢測對象然后使用處理器系統(tǒng)分類對象的能力。分類完成后,視覺導(dǎo)向機(jī)器人系統(tǒng)或無人機(jī)就能針對檢測出的對象類采取適當(dāng)?shù)男袆?dòng)。
為在邊緣實(shí)現(xiàn)實(shí)時(shí)視覺分析,我們運(yùn)用了機(jī)器學(xué)習(xí)提供的智能化技術(shù)。要執(zhí)行這些算法,我們首先需要模型并提供大型培訓(xùn)數(shù)據(jù)集,使模型能夠進(jìn)行分析。在極高性能工作站上進(jìn)行培訓(xùn),得到的分類器被用于實(shí)現(xiàn)方案中。開展這類機(jī)器學(xué)習(xí)有多種不同的方法可供選擇,例如卷積神經(jīng)網(wǎng)絡(luò)、深度神經(jīng)網(wǎng)絡(luò)或遞歸神經(jīng)網(wǎng)絡(luò)。
當(dāng)我們在邊緣實(shí)現(xiàn)這些模型時(shí),我們不需要與培訓(xùn)相同水平的性能。可以使用整數(shù)或浮點(diǎn)數(shù)學(xué),兩者都能方便地實(shí)現(xiàn)在 All Programmable SoC 中。