作者:Brian Dipert,嵌入式視覺聯(lián)盟;Yves Legrand,飛思卡爾半導(dǎo)體;Bruce Tannenbaum,MathWorks公司
為了讓機(jī)器人更好地與其周圍的事物進(jìn)行互動,并靈活地移動,機(jī)器人必須能夠看到并辨別其周圍的環(huán)境。經(jīng)濟(jì)高效且功能強(qiáng)大的視覺處理器(通過深度辨別圖像傳感器進(jìn)行數(shù)據(jù)傳輸,并采用極具魯棒性的軟件算法)正在使人們盼望已久的自適應(yīng)機(jī)器人成為現(xiàn)實(shí)。
機(jī)器人,這一長期出現(xiàn)在科幻世界和航運(yùn)產(chǎn)品文檔中的事物,被描述為能夠幫助人類從呆板、單調(diào)和難以忍受的工作中釋放出來,并利用其高速度及高精度的特點(diǎn)提升工作效果。無論是可完成吸塵、地毯清洗,甚至排水溝的清潔工作的第一代自主消費(fèi)機(jī)器人系統(tǒng),或是多種類型的生產(chǎn)環(huán)境下機(jī)器人的使用正不斷增長,都可以說明上述觀點(diǎn)。
然而第一代消費(fèi)類機(jī)器人采用了相對粗糙的方案來定位并感知其周圍環(huán)境。這些基本技術(shù)包括由紅外線發(fā)射器組成的人造壁壘,它可與內(nèi)置在機(jī)器人當(dāng)中的紅外線傳感器進(jìn)行協(xié)作,從而防止機(jī)器人從樓梯上滾下或游蕩到另一個房間。當(dāng)自主機(jī)器人撞到了不可移動的物體時,震動傳感器可通知機(jī)器人,讓機(jī)器人不再繼續(xù)前進(jìn)。而更先進(jìn)的繪圖功能設(shè)計(jì)甚至讓機(jī)器人不必再次回到這個特殊的位置。與人類的工作方式相比,機(jī)器人的工作不必考慮體力因素、更加快捷,并且更加準(zhǔn)確,但機(jī)器人成功的前提是讓來料到達(dá)固定的方向和位置,因此提升了制造流程的復(fù)雜性。來料部件的位置及方向出現(xiàn)任何偏離都將導(dǎo)致裝配的失敗。
人類用眼睛(以及感覺)和大腦對其周圍的世界進(jìn)行辨識和定位。從理論上講,采用攝像頭組件、視覺處理器和各種軟件算法的機(jī)器人系統(tǒng)也應(yīng)該可以做到。但縱觀歷史,這樣的圖像分析技術(shù)通常只有在復(fù)雜并且昂貴的系統(tǒng)中才能找到。但數(shù)字集成電路在成本、性能和功耗方面的進(jìn)步,為視覺功能使用在多樣化和高容量的應(yīng)用上鋪平了道路,其中包括機(jī)器人實(shí)現(xiàn)的功能越來越多。雖然機(jī)器人在功能實(shí)現(xiàn)方面仍然面臨著諸多挑戰(zhàn),但與以往相比,今天已經(jīng)可以更加輕松、快速、經(jīng)濟(jì)高效地解決這些問題。
軟件技術(shù)
開發(fā)出可根據(jù)視覺適應(yīng)其環(huán)境的機(jī)器人系統(tǒng)需要采用電腦視覺算法,該算法可將一個或多個圖像傳感器中的數(shù)據(jù)轉(zhuǎn)換成該環(huán)境的可執(zhí)行信息。機(jī)器人的兩個常見任務(wù)分別是識別外部目標(biāo)和方向,并決定機(jī)器人的位置和方向。許多機(jī)器人可與一個或多個特定目標(biāo)進(jìn)行互動。對于情境自適應(yīng)機(jī)器人而言,必須能夠檢測到那些在未知地點(diǎn)和方向的目標(biāo),并且還要了解到這些目標(biāo)很可能會移動。
攝像頭每秒產(chǎn)生上百萬像素的數(shù)據(jù),從而形成了一個肩負(fù)著沉重處理負(fù)擔(dān)的有效載荷。解決該問題的一種常見方法是檢測這些多像素的特征,如視頻數(shù)據(jù)每一幀的角、點(diǎn)、邊或線(圖2)。
圖2:完整處理二維或三維機(jī)器人視覺傳感器的原始輸出涉及四個主要階段,每個階段都有自己的獨(dú)特性并受其處理要求的制約。
這種像素到特征的轉(zhuǎn)換可使在視覺處理管道的這個特殊階段的數(shù)據(jù)處理需求降低一千倍或更多;上百萬的像素降低成了上百個特征,機(jī)器人就可以高效地對目標(biāo)進(jìn)行識別,并確定其空間特征(圖3)。
圖3:視覺處理器可以集成多種類型的內(nèi)核,以滿足每個處理階段的獨(dú)特需求。
目標(biāo)檢測首先包括采用機(jī)器學(xué)習(xí)或其他算法與多個特征相結(jié)合。然后,通過利用這些特征的數(shù)據(jù)庫(該數(shù)據(jù)庫根據(jù)特定目標(biāo)在不同角度和方向的大量已采集圖像生成),用戶可以采用分類器算法運(yùn)行并訓(xùn)練機(jī)器人正確地識別每個新目標(biāo)。最有名的目標(biāo)檢測算法之一是Viola-Jones framework,它采用類Haar的特征和大量Adaboost分類器。該算法非常擅長于識別臉部,也可經(jīng)過訓(xùn)練來識別其他常見目標(biāo)。而基于機(jī)器學(xué)習(xí)算法的一大缺點(diǎn)是:他們需要大量的訓(xùn)練數(shù)據(jù)集,才能準(zhǔn)確地檢測目標(biāo)。
通過特征來確定目標(biāo)方位需要一種像RANSAC (隨機(jī)抽樣和均測)那樣的基于統(tǒng)計(jì)的算法。該算法采用一組特征來模擬一個潛在的目標(biāo)方向,然后確定多少其他特征適合該模型。具有最大數(shù)量匹配特征的模型對應(yīng)于被正確識別的目標(biāo)方向。為了檢測移動目標(biāo),用戶可以將特征識別與跟蹤算法相結(jié)合。一旦一組特征正確地識別了一個目標(biāo), KLT(Kanade-Lucas-Tomasi)或卡爾曼濾波等算法將在視頻的幀之間跟蹤這些特征的運(yùn)動軌跡。無論方向和阻塞如何改變,這些技術(shù)都是非常可靠的,因?yàn)樗麄儍H需要跟蹤一組最初特征便可成功。
上面所述算法可能對于固定式機(jī)器人來說足夠了。但對于移動機(jī)器人來說,還需要采用其他算法才能使機(jī)器人在其環(huán)境中安全地移動。SLAM(同步定位繪圖)是一種可使機(jī)器人創(chuàng)建環(huán)境地圖并跟蹤其當(dāng)前位置的算法。這種算法需要繪制三維環(huán)境地圖。由于有許多深度感應(yīng)傳感器選件;因此常見的方法是采用一對被配置成“立體”攝像頭的2D攝像頭,其作用類似于人類視覺系統(tǒng)。
立體攝像頭依靠對極幾何,采用一對2D圖像的投射為每個場景內(nèi)的每個點(diǎn)提供3D位置。根據(jù)前面2D觀點(diǎn)所提到的,特征可用于檢測3D場景中的有效位置。例如,與平整的墻面相比,機(jī)器人更容易檢測到桌角的位置。在給定的位置和方向,機(jī)器人可以檢測特征,通過比較其內(nèi)部地圖以確定其位置并改進(jìn)地圖質(zhì)量。考慮到目標(biāo)經(jīng)常會移動,因此靜態(tài)地圖對于試圖適應(yīng)其環(huán)境的機(jī)器人來說,用處不大。
處理器的選擇
為了有效地打造出機(jī)器人視覺,我們將所需的處理步驟分為若干階段。特別是我們前面所討論的算法,其處理步驟可分為4個階段,根據(jù)處理要求,每個階段都具有獨(dú)特的特征與限制(參考1)。市場中充斥著各種類型的視覺處理器,并且不同類型的視覺處理器(根據(jù)其性能、功耗、成本、功能靈活性和其他因素)可能適合不同的算法處理階段。實(shí)際上,視覺處理器芯片可能集成了多個不同類型的處理器內(nèi)核,從而滿足多個處理階段的獨(dú)特需求(圖4)。
a
圖4:視覺處理器芯片可能集成了多個不同類型的處理器內(nèi)核,從而滿足多個處理階段的獨(dú)特需求
第一個處理階段包含多種可處理各種傳感器數(shù)據(jù)處理功能的算法,例如:
●調(diào)整大小
●色彩空間轉(zhuǎn)換
●圖像旋轉(zhuǎn)和翻轉(zhuǎn)
●去隔行
●色彩調(diào)整和色域映射
●伽瑪校正,
●對比度增強(qiáng)
在此階段,每一幀內(nèi)的每個像素都會進(jìn)行處理,因此每秒的工作量都是巨大的。在立體圖像處理時,兩個圖像平面必須同時進(jìn)行處理。面向這些操作的其中一個處理選項(xiàng)為專用硬件時鐘,有時又被稱為IPU(圖像處理單元)。最近推出的視覺處理器(包含IPU)可在穩(wěn)定的幀速率下同時處理兩個圖像,每個圖像的分辨率都高達(dá)2048x1536像素(300多萬像素)。
第二個處理階段將進(jìn)行特征檢測,在這一階段(如前面所討論的),角、邊和其他顯著圖形區(qū)域?qū)惶崛 _@個處理階段仍在每個像素的基礎(chǔ)上進(jìn)行,因此非常適合那些高度并行的架構(gòu),但這一階段可處理更加復(fù)雜的數(shù)學(xué)函數(shù),如一階和二階導(dǎo)數(shù)。DSP、FPGA、GPU、IPU和APU(陣列處理器單元)都是常用處理選項(xiàng)。DSP和FPGA具有高度的靈活性,因此非常適用于那些不成熟和正在發(fā)展的應(yīng)用(和實(shí)施這些應(yīng)用的算法)。與其他方法相比,該靈活性雖然帶來了更高的性能,但也帶來更多的功耗和成本。
在靈活性/專用性比最高的選擇是專用IPU或APU,他們特別適用于視覺處理任務(wù)。它每秒可處理數(shù)十億的操作,但由于經(jīng)過應(yīng)用優(yōu)化,它并不適合更廣泛的功能。靈活性/專用性較為折衷的是GPU,GPU過去常常出現(xiàn)在電腦中,而現(xiàn)在也嵌入到應(yīng)用在智能手機(jī)、平板電腦和其他大批量應(yīng)用的應(yīng)用處理器中。
浮點(diǎn)單元計(jì)算(如光流算法中的最小二乘功能)、SURF(用于快速顯著點(diǎn)檢測的快速魯棒特征算法)中的描述符計(jì)算和點(diǎn)云處理都非常適用于高度并行的GPU架構(gòu)。這種算法可運(yùn)行在SIMD(單指令多數(shù)據(jù))矢量處理引擎(如ARM的NEON或功率架構(gòu)CPU中的AltiVec功能模塊)上。無論如何,包括OpenCL(開放計(jì)算機(jī)語言)和OpenCV(開源代碼計(jì)算機(jī)視覺庫)在內(nèi)的架構(gòu)和庫,都可簡化并加快軟件開發(fā),還可能包括在多個內(nèi)核上對一個任務(wù)的各個部分進(jìn)行分配的能力。
在第三個圖像處理階段,系統(tǒng)將根據(jù)特征圖對目標(biāo)進(jìn)行分類。與之前階段基于像素的處理方法相比,這些目標(biāo)檢測算法以高度非線性的結(jié)構(gòu)和方式進(jìn)行數(shù)據(jù)訪問。然而,仍需采用強(qiáng)大的處理“機(jī)制”通過豐富的分類數(shù)據(jù)庫來評估多種不同的特性。這種需求非常適合單核和多核傳統(tǒng)處理器,如基于ARM和Power架構(gòu)的RISC設(shè)備。這種選擇標(biāo)準(zhǔn)也同樣適用于第四個圖形處理階段,該階段將通過多幀跟蹤檢測目標(biāo)、實(shí)施該環(huán)境的模塊,并根據(jù)各種環(huán)境來評估是否應(yīng)該實(shí)施動作。鑒于視覺處理的數(shù)據(jù)密集型屬性,當(dāng)評估處理器時,用戶不僅應(yīng)評估內(nèi)核數(shù)量和每核速度,還應(yīng)評估每個處理器的數(shù)據(jù)處理能力,如外部存儲器總線帶寬。
行業(yè)聯(lián)盟援助
由于市場上出現(xiàn)了性能日漸強(qiáng)大的處理器、圖像傳感器、存儲器和其他半導(dǎo)體器件,加上極具魯棒性的算法,將計(jì)算機(jī)視覺功能整合到廣泛的嵌入式系統(tǒng)中變得切實(shí)可行。在這里,“嵌入式系統(tǒng)”指的是基于微處理器的所有系統(tǒng),而不是一臺通用計(jì)算機(jī)。因此,嵌入式視覺是指在嵌入式系統(tǒng)、移動設(shè)備、專用電腦和云中加入計(jì)算機(jī)視覺技術(shù)。
嵌入式視覺技術(shù)有潛力支持大量電子產(chǎn)品(如本文討論的機(jī)器人系統(tǒng)),比以前更智能、更靈敏,因而對用戶更有價值。它可以向現(xiàn)有產(chǎn)品添加有用的功能。它可以為硬件、軟件和半導(dǎo)體的制造商們開創(chuàng)有重大意義的新市場。嵌入式視覺聯(lián)盟(Embedded Vision Alliance)是一個由技術(shù)開發(fā)人員和提供商組成的全球性組織,旨在使工程師能夠?qū)⑦@種潛力轉(zhuǎn)化為現(xiàn)實(shí)。
責(zé)任編輯:gt
-
傳感器
+關(guān)注
關(guān)注
2548文章
50672瀏覽量
751986 -
處理器
+關(guān)注
關(guān)注
68文章
19160瀏覽量
229121 -
機(jī)器人
+關(guān)注
關(guān)注
210文章
28201瀏覽量
206517
發(fā)布評論請先 登錄
相關(guān)推薦
評論