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