1326AB-B720E-21 移動(dòng)機(jī)器人需要具備和人的眼睛、大腦、腿類似的功能來(lái)實(shí)現(xiàn)定位、徑規(guī)劃以及避障,這些過(guò)程中需要哪些算法的支持?
首先,我向大家簡(jiǎn)單介紹一下我擔(dān)任架構(gòu)師和算法負(fù)責(zé)人的SegwayRobot(賽格威機(jī)器人)項(xiàng)目,它也是我將這次分享活動(dòng)中使用的一個(gè)案例。
1326AB-B720E-21是一個(gè)輪式的可移動(dòng)機(jī)器人,底盤是一臺(tái)具有400多項(xiàng)專利技術(shù)的平衡車,此外,它擁有InbAtom處理器、RealSense深度攝像頭以及多種傳感器。SegwayRobot可以自主,并通過(guò)SDK和USB2.0擴(kuò)展槽提供軟件、硬件的雙重可擴(kuò)展性。SegwayRobot項(xiàng)目在2016年美國(guó)CES上發(fā)布,被《財(cái)富》等評(píng)為“最佳機(jī)器人”之一。
談起移動(dòng)機(jī)器人,很多人想到的需求可能是這樣的:“嘿,你能不能去那邊幫我拿一杯熱拿鐵過(guò)來(lái)?!边@個(gè)聽(tīng)上去對(duì)普通人很簡(jiǎn)單的任務(wù),在機(jī)器人的世界里,卻充滿了各種挑戰(zhàn)。為了完成這個(gè)任務(wù),機(jī)器人首先需要載入周圍的地圖,精確定位自己在地圖中的,然后根據(jù)地圖進(jìn)規(guī)劃控制自己完成移動(dòng)。而在移動(dòng)的過(guò)程中,機(jī)器人還需要根據(jù)現(xiàn)場(chǎng)的三維深度信息,實(shí)時(shí)的障礙物直至到達(dá)最終目標(biāo)點(diǎn)。
在這一連串機(jī)器人的思考過(guò)程中,可以分解為如下幾部分的視覺(jué)算法:
1.深度信息提取
2.視覺(jué)
3.視覺(jué)避障
后面我們會(huì)詳細(xì)說(shuō)這些算法,而這些算法的基礎(chǔ),是機(jī)器人腦袋上的視覺(jué)傳感器。
智能手機(jī)上的攝像頭可以作為機(jī)器人的眼睛嗎?
所有視覺(jué)算法的基礎(chǔ)說(shuō)到底來(lái)自于機(jī)器人腦袋上的視覺(jué)傳感器。就好比人的眼睛和夜間視力非常好的動(dòng)物相比,表現(xiàn)出來(lái)的能力是完全不同的。同樣的,一個(gè)眼睛的動(dòng)物對(duì)世界的能力也要差于兩個(gè)眼睛的動(dòng)物。每個(gè)人手中的智能手機(jī)攝像頭其實(shí)就可以作為機(jī)器人的眼睛,當(dāng)下非常流行的PokemanGo游戲就使用了計(jì)算機(jī)視覺(jué)技術(shù)來(lái)達(dá)成AR的效果。
(圖表1,viaen.ulightech)
像上圖畫(huà)的那樣,一個(gè)智能手機(jī)中攝像頭模組,其內(nèi)部包含如下幾個(gè)重要的組件:鏡頭,IRfilter,CMOSsensor。其中鏡頭一般由數(shù)片鏡片組成,經(jīng)過(guò)復(fù)雜的光學(xué)設(shè)計(jì),現(xiàn)在可以用廉價(jià)的樹(shù)脂材料,做出成像質(zhì)量非常好的手機(jī)攝像頭。
(圖表2,)
CMOSsensor,會(huì)覆蓋著叫做Bayer三色濾光陣列的濾色片。每個(gè)不同顏色的濾光片,可以通過(guò)特定的光波波長(zhǎng),對(duì)應(yīng)CMOS感光器件上就可以在不同分別獲得不同顏色的光強(qiáng)了。如果CMOS傳感器的分辨率是4000x3000,為了得到同樣分辨率的RGB彩色圖像,就需要用一種叫做demosaicing的計(jì)算攝像算法,從2綠1藍(lán)1紅的2x2網(wǎng)格中解算出2x2的RGB信息。
(圖表4,)
一般的CMOS感光特性除了選擇紅綠藍(lán)三色之外,對(duì)外光是透明的。因此在光中加上IR濾光片,是為了去除太陽(yáng)光線中紅外光對(duì)CMOS的干擾。加上濾光片后,通常圖像的對(duì)比度會(huì)得到顯著的提升。
計(jì)算機(jī)視覺(jué)中常用的視覺(jué)傳感器是什么樣的?
除了RGB相機(jī),計(jì)算機(jī)視覺(jué)中常用的還有其他種類的特殊相機(jī)。例如有一種相機(jī)的濾光片是只允許通過(guò)紅外光波段的。因?yàn)槿搜弁ǔJ强床灰?jiàn)紅外光的,所以可以在相機(jī)附近加上主動(dòng)紅外光源,用于測(cè)距等應(yīng)用。
(圖表5,)
另外,大部分我們用到的camera都是以rollingshutter的形式實(shí)現(xiàn)電子的,像圖中左側(cè)那樣,為了減少電子器件的成本,通常是一行一行分別進(jìn)行,這樣勢(shì)必造成物體快速移動(dòng)時(shí),相機(jī)采集到的圖像會(huì)發(fā)生形變。為了避免這種形變對(duì)基于立體幾何進(jìn)行計(jì)算的視覺(jué)算法的影響(例如VSLAM),選用bshutter的相機(jī)就顯得特別重要了。
(圖表7,)
深度相機(jī)是另一大類視覺(jué)算法中需要的傳感器,可以分成如下幾類:
1.TOF傳感器(例如Kinect2代),類似昆蟲(chóng)復(fù)眼。成本高,室外可以使用。
2.結(jié)構(gòu)光傳感器(例如Kinect1代),三角定位原理,成本中,室外不能用。
3.雙目視覺(jué)(例如InbRealsenseR200),主動(dòng)照明或被動(dòng)照明,IR或可見(jiàn)光皆可。成本低,室外可以使用。
深度相機(jī)如何識(shí)別物體的深度信息?
簡(jiǎn)而言之,其原理就是使用兩個(gè)平行的相機(jī),對(duì)空間中的每個(gè)點(diǎn)三角定位。通過(guò)匹配左右兩個(gè)相機(jī)中成像點(diǎn)的,來(lái)計(jì)算對(duì)應(yīng)三維點(diǎn)在空間中的距離。學(xué)術(shù)界對(duì)雙目匹配恢復(fù)深度圖研究有很長(zhǎng)的歷史,在NASA火星車上就開(kāi)始采用這個(gè)技術(shù)。但是其真正在消費(fèi)電子品市場(chǎng)得到廣泛應(yīng)用還是從微軟的Kinect體感傳感器開(kāi)始。
Kinect傳感器背后使用了以色列Primesense公司授權(quán)的結(jié)構(gòu)光技術(shù)(如今已被Apple收購(gòu))。
其原理是避開(kāi)雙目匹配中復(fù)雜的算法設(shè)計(jì),轉(zhuǎn)而將一個(gè)攝像頭更換成向外主動(dòng)投射復(fù)雜光斑的紅外投影儀,而另一個(gè)平行的相機(jī)也變成了紅外相機(jī),可以清楚的看到投影儀投射的所有光斑。因?yàn)槿搜劭床坏郊t外光斑,而且紋理非常復(fù)雜,這就非常有利于雙目匹配算法,可以用非常簡(jiǎn)潔的算法,識(shí)別出深度信息。
盡管Kinect的內(nèi)在原理并沒(méi)有給出解釋,在近年來(lái)一篇KinectUnleashed的文章中,作者向hack了這個(gè)系統(tǒng)的工作原理:
首先,紅外圖像在基線方向上采樣8倍,這樣可以在做雙目匹配后實(shí)現(xiàn)3bit的亞像素精度。
然后,對(duì)圖像做sobel濾波,使得圖像的匹配精度提高。
而后,圖像與預(yù)存的投影光斑模板圖像進(jìn)行SADblockmatching。該算法的計(jì)算復(fù)雜度小,適合硬化和并行。
最后,經(jīng)過(guò)簡(jiǎn)單的圖像后處理,下采樣到原始分辨率,得到最終的深度圖。
(圖表9,via:Martinez,Manuel,andRainerStiefelhagen.KinectUnleashed:GettingControloverHighResolutionDepthMaps.MVA.2013.)
我們可以看到,隨著2009年Kinect設(shè)備在消費(fèi)機(jī)市場(chǎng)的爆發(fā)(發(fā)售頭10天100萬(wàn)臺(tái)),逐漸開(kāi)始催生了類似技術(shù)變種在移動(dòng)端設(shè)備的研發(fā)熱潮。從2013年至今,隨著計(jì)算能力的提升和算法的進(jìn)步,硬件成本更低的主動(dòng)/被動(dòng)雙目深度相機(jī)開(kāi)始在移動(dòng)手機(jī)上涌現(xiàn)。過(guò)去認(rèn)為很難實(shí)時(shí)運(yùn)行的雙目匹配算法,即使在沒(méi)有主動(dòng)結(jié)構(gòu)光輔助的情況下,也表現(xiàn)出非常優(yōu)異的3D成像質(zhì)量。
Segwayrobot采用了主動(dòng)/被動(dòng)可切換的雙目深度視覺(jué)系統(tǒng)。
如下圖所示,左側(cè)三個(gè)傳感器分別為,左紅外相機(jī),紅外pattern投影,右紅外相機(jī)。在室內(nèi)工作時(shí),因?yàn)榧t外光源不足,紅外投影打開(kāi),輔助雙目匹配算法。在室外工作時(shí),紅外光源充足,紅外投影關(guān)閉,雙目匹配算法可以直接運(yùn)行。綜合看,此系統(tǒng)在室內(nèi)外都表現(xiàn)出優(yōu)異的深度傳感能力。
(圖表11,via:)
機(jī)器人本身是一個(gè)比較復(fù)雜的系統(tǒng)。其中涉及到的技術(shù)會(huì)有如下列表。
視覺(jué)里程計(jì)VO
建圖,利用VO和深度圖
重定位,從已知地圖中識(shí)別當(dāng)前的
閉環(huán)檢測(cè),消除VO的閉環(huán)誤差
全局
視覺(jué)避障
20CE1K9A0ANNENG0
20CE1K9ACANNENB0
20CD2K7N0ANNBNA0
20CF1K5N0ANNBNA0
20CF1K5N0ANNBNB0
20CF1K5N3ANNBNN0
20CC1K7H0ANNENA0
20CD1K7H0ANNENN0
20CK1K9H0ANNCNN0
20DK1K5N0ENNBNANE
20CC2K1N0ANNENG0
20CD2K1N0ANNENG0
20CD2K1N0ANNENN0
20CK1K9A0ANNCNN0
20DF1K1A3ENNBNDNL
20DF1K1A0ENNBNANK
20DF1K1A0ENNBNCNK
20DF1K1ACENNBNAEE
20DF1K1ACENNBNANE
20CK2K2N0ANNNNN0
20DF1K120ENNBNANE
20DF1K1A0ENNBNANE
20DF1K1A3ENNBNANE
20DK1K5N0ENNBNGNE
20CJ2K1H0ANNCNN0
20CC1K7A0ANNENA0
20CC1K7A0ANNENG0
20CD1K7A0ANNENA0
20CD1K7A0ANNENG0
20CD1K7A0ANNENN0
20CD1K7A3ANNENA0
20CD1K7A3ANNENB0
20CD1K7ACANNENA0
20LE800ACENNA1C0LA
20LE800ACENNA3CSKA
20LE800ACENNA6DELA