關(guān)于波士頓等移動機(jī)器人的視覺算法分析
(文章來源:機(jī)器人網(wǎng))
如果對移動機(jī)器人視覺算法進(jìn)行拆解,你就會發(fā)現(xiàn)獲取物體深度信息、定位導(dǎo)航以及壁障等都是基于不同的視覺算法,本文就帶大家聊一聊幾種不同但又必不可少的視覺算法組成。
實現(xiàn)定位導(dǎo)航、路徑規(guī)劃以及避障,那么這些過程中需要哪些算法的支持?談起移動機(jī)器人,很多人想到的需求可能是這樣的:“嘿,你能不能去那邊幫我拿一杯熱拿鐵過來?!边@個聽上去對普通人很簡單的任務(wù),在機(jī)器人的世界里,卻充滿了各種挑戰(zhàn)。為了完成這個任務(wù),機(jī)器人首先需要載入周圍環(huán)境的地圖,精確定位自己在地圖中的位置,然后根據(jù)地圖進(jìn)行路徑規(guī)劃控制自己完成移動。
而在移動的過程中,機(jī)器人還需要根據(jù)現(xiàn)場環(huán)境的三維深度信息,實時的躲避障礙物直至到達(dá)最終目標(biāo)點。在這一連串機(jī)器人的思考過程中,可以分解為如下幾部分的視覺算法:1.深度信息提取,2.視覺導(dǎo)航,3.視覺避障。后面我們會詳細(xì)說這些算法,而這些算法的基礎(chǔ),是機(jī)器人腦袋上的視覺傳感器。
智能手機(jī)上的攝像頭可以作為機(jī)器人的眼睛嗎?所有視覺算法的基礎(chǔ)說到底來自于機(jī)器人腦袋上的視覺傳感器,就好比人的眼睛和夜間視力非常好的動物相比,表現(xiàn)出來的感知能力是完全不同的。同樣的,一個眼睛的動物對世界的感知能力也要差于兩個眼睛的動物。每個人手中的智能手機(jī)攝像頭其實就可以作為機(jī)器人的眼睛,當(dāng)下非常流行的Pokeman Go游戲就使用了計算機(jī)視覺技術(shù)來達(dá)成AR的效果。
一個智能手機(jī)中攝像頭模組,其內(nèi)部包含如下幾個重要的組件:鏡頭,IR filter,CMOS sensor。其中鏡頭一般由數(shù)片鏡片組成,經(jīng)過復(fù)雜的光學(xué)設(shè)計,現(xiàn)在可以用廉價的樹脂材料,做出成像質(zhì)量非常好的手機(jī)攝像頭。
CMOS sensor上面會覆蓋著叫做Bayer三色濾光陣列的濾色片。每個不同顏色的濾光片,可以通過特定的光波波長,對應(yīng)CMOS感光器件上就可以在不同位置分別獲得不同顏色的光強了。如果CMOS傳感器的分辨率是4000x3000,為了得到同樣分辨率的RGB彩色圖像,就需要用一種叫做demosaicing的計算攝像算法,從2綠1藍(lán)1紅的2x2網(wǎng)格中解算出2x2的RGB信息。
一般的CMOS感光特性除了選擇紅綠藍(lán)三色之外,對于紅外光是透明的。因此在光路中加上IR濾光片,是為了去除太陽光線中紅外光對CMOS的干擾。加上濾光片后,通常圖像的對比度會得到顯著的提升。
計算機(jī)視覺中還會用到什么傳感器?除了RGB相機(jī),計算機(jī)視覺中常用的還有其他種類的特殊相機(jī)。例如有一種相機(jī)的濾光片是只允許通過紅外光波段的。因為人眼通常是看不見紅外光的,所以可以在相機(jī)附近加上主動紅外光源,用于測距等應(yīng)用。
另外,大部分我們用到的camera都是以rolling shutter的形式實現(xiàn)電子曝光的,為了減少電子器件的成本,曝光通常是一行一行分別進(jìn)行,這樣勢必造成物體快速移動時,相機(jī)采集到的圖像會發(fā)生形變。為了避免這種形變對基于立體幾何進(jìn)行計算的視覺算法的影響(例如VSLAM),選用global shutter的相機(jī)就顯得特別重要了。
深度相機(jī)是另一大類視覺算法中需要的傳感器,可以分成如下幾類:1.TOF傳感器(例如Kinect 2代),類似昆蟲復(fù)眼。成本高,室外可以使用。2.結(jié)構(gòu)光傳感器(例如Kinect 1代),三角定位原理,成本中,室外不能用。3.雙目視覺(例如Intel Realsense R200),主動照明或被動照明,IR或可見光皆可。成本低,室外可以使用。
? ? ?