在無人駕駛汽車上,激光雷達(dá)和攝像頭相對(duì)于是汽車的“眼睛”,他們倆各有不同的優(yōu)缺點(diǎn)。那么無人駕駛汽車到底用激光雷達(dá)還是用攝像頭?或者還有其它的解決方案呢?
激光雷達(dá)與攝像頭性能對(duì)比
在無人駕駛環(huán)境感知設(shè)備中,激光雷達(dá)和攝像頭分別有各自的優(yōu)缺點(diǎn)。
攝像頭的優(yōu)點(diǎn)是成本低廉,用攝像頭做算法開發(fā)的人員也比較多,技術(shù)相對(duì)比較成熟。攝像頭的劣勢(shì),第一,獲取準(zhǔn)確三維信息非常難(單目攝像頭幾乎不可能,也有人提出雙目或三目攝像頭去做);另一個(gè)缺點(diǎn)是受環(huán)境光限制比較大。
激光雷達(dá)的優(yōu)點(diǎn)在于,其探測(cè)距離較遠(yuǎn),而且能夠準(zhǔn)確獲取物體的三維信息;另外它的穩(wěn)定性相當(dāng)高,魯棒性好。但目前激光雷達(dá)成本較高,而且產(chǎn)品的最終形態(tài)也還未確定。
就兩種傳感器應(yīng)用特點(diǎn)來講,攝像頭和激光雷達(dá)攝像頭都可用于進(jìn)行車道線檢測(cè)。除此之外,激光雷達(dá)還可用于路牙檢測(cè)。對(duì)于車牌識(shí)別以及道路兩邊,比如限速牌和紅綠燈的識(shí)別,主要還是用攝像頭來完成。如果對(duì)障礙物的識(shí)別,攝像頭可以很容易通過深度學(xué)習(xí)把障礙物進(jìn)行細(xì)致分類。但對(duì)激光雷達(dá)而言,它對(duì)障礙物只能分一些大類,但對(duì)物體運(yùn)動(dòng)狀態(tài)的判斷主要靠激光雷達(dá)完成。
多線激光雷達(dá)----多少線合適?
目前,國外和國內(nèi)做激光雷達(dá)的廠商并不多。比如 Velodyne 推出 16 線、32 線和 64 線激光雷達(dá)產(chǎn)品。Quanergy 早期推出的 8 線激光雷達(dá)產(chǎn)品 M-8(固態(tài)激光雷達(dá)在研)。Ibeo 主要推出的是 4 線激光雷達(dá)產(chǎn)品,主要用于輔助駕駛。速騰聚創(chuàng)(RoboSense)推出的是 16 線激光雷達(dá)產(chǎn)品。
到底多少線的激光雷達(dá)產(chǎn)品才能符合無人駕駛廠商,包括傳統(tǒng)汽車廠商、互聯(lián)網(wǎng)造車公司的需求?
多線激光雷達(dá),顧名思義,就是通過多個(gè)激光發(fā)射器在垂直方向上的分布,通過電機(jī)的旋轉(zhuǎn)形成多條線束的掃描。多少線的激光雷達(dá)合適,主要是說多少線的激光雷達(dá)掃出來的物體能夠適合算法的需求。理論上講,當(dāng)然是線束越多、越密,對(duì)環(huán)境描述就更加充分,這樣還可以降低算法的要求。
業(yè)界普遍認(rèn)為,像谷歌或百度使用的 64 線激光雷達(dá)產(chǎn)品,并不是激光雷達(dá)最終的產(chǎn)品形態(tài)。激光雷達(dá)的產(chǎn)品的方向肯定是小型化,而且還要不斷減少兩個(gè)相鄰間發(fā)射器的垂直分辨率以達(dá)到更高線束。
激光雷達(dá)產(chǎn)品參數(shù)包括四方面:測(cè)量距離、測(cè)量精度、角度分辨率以及激光單點(diǎn)發(fā)射的速度。我主要講分辨率的問題:一個(gè)是垂直分辨率,另一個(gè)是水平分辨率。
現(xiàn)在多線激光雷達(dá)水平可視角度是 360 度可視,垂直可視角度就是垂直方向上可視范圍。分辨率與攝像頭的像素是非常相似的,激光雷達(dá)最終形成的三維激光點(diǎn)云,類似于一幅圖像有許多像素點(diǎn)。激光點(diǎn)云越密,感知的信息越全面。
水平方向上做到高分辨率其實(shí)不難,因?yàn)樗椒较蛏鲜怯呻姍C(jī)帶動(dòng)的,所以水平分辨率可以做得很高。目前國內(nèi)外激光雷達(dá)廠商的產(chǎn)品,水平分辨率為 0.1 度。
垂直分辨率是與發(fā)射器幾何大小相關(guān),也與其排布有關(guān)系,就是相鄰兩個(gè)發(fā)射器間隔做得越小,垂直分辨率也就會(huì)越小??梢钥闯鰜恚€束的增加主要還是為了對(duì)同一物體描述得更加充分。如果是不通過減少垂直分辨率的方式來增加線束,其實(shí)意義不大。
如何去提高垂直分辨率?目前業(yè)界就是通過改變激光發(fā)射器和接收器的排布方式來實(shí)現(xiàn):排得越密,垂直分辨率就可以做得很小。另一方面就是通過多個(gè) 16 線激光雷達(dá)耦合的方式,在不增加單個(gè)激光雷達(dá)垂直分辨率的情況下同樣達(dá)到整體減小垂直分辨率的效果。
但是,這兩種方法都有一定的缺陷。
第一種方法,如果在不增加垂直可視范圍情況下增加線束,是有一定天花板的。因?yàn)榧す獍l(fā)射器的幾何大小很難進(jìn)一步再縮小,比如說做到垂直 1 度的分辨率,如果想做到 0.1 度,幾乎不可能。
第二種方法,多傳感器耦合,即多個(gè)激光雷達(dá)耦合,因?yàn)樗皇菃我划a(chǎn)品,那么對(duì)往后的校準(zhǔn)將會(huì)有很高的要求。
激光雷達(dá)和攝像頭分別完成什么工作?
無人駕駛過程中,環(huán)境感知信息主要有這幾部分:一是行駛路徑上的感知,對(duì)于結(jié)構(gòu)化道路可能要感知的是行車線,就是我們所說的車道線以及道路的邊緣、道路隔離物以及惡劣路況的識(shí)別;對(duì)非結(jié)構(gòu)道路而言,其實(shí)會(huì)更加復(fù)雜。
周邊物體感知,就是可能影響車輛通行性、安全性的靜態(tài)物體和動(dòng)態(tài)物體的識(shí)別,包括車輛,行人以及交通標(biāo)志的識(shí)別,包括紅綠燈識(shí)別和限速牌識(shí)別。
對(duì)于環(huán)境感知所需要的傳感器,我們把它分成三類:
感知周圍物體的傳感器,包括激光雷達(dá)、攝像頭和毫米波雷達(dá)這三類;
實(shí)現(xiàn)無人駕駛汽車定位的傳感器,就是 GPS 、IMU 和 Encoder;
其他傳感器,指的是感知天氣情況及溫、濕度的傳感器。
今天主要講的是感知周圍物體的傳感器,即:激光雷達(dá)、毫米波雷達(dá)和攝像頭。其實(shí)他們都有各自的優(yōu)缺點(diǎn)。
在無人駕駛環(huán)境感知中,攝像頭完成的工作包括:
車道線檢測(cè);
障礙物檢測(cè),相當(dāng)于把障礙物識(shí)別以及對(duì)障礙物進(jìn)行分類;
交通標(biāo)志的識(shí)別,比如識(shí)別紅綠燈和限速牌。
對(duì)車道線的檢測(cè)主要分成三個(gè)步驟:
第一步,對(duì)獲取到的圖片預(yù)處理,拿到原始圖像后,先通過處理變成一張灰度圖,然后做圖像增強(qiáng);
第二步,對(duì)車道線進(jìn)行特征提取,首先把經(jīng)過圖像增強(qiáng)后的圖片進(jìn)行二值化( 將圖像上的像素點(diǎn)的灰度值設(shè)置為 0 或 255,也就是將整個(gè)圖像呈現(xiàn)出明顯的黑白效果),然后做邊緣提取;
第三步,直線擬合。
車道線檢測(cè)難點(diǎn)在于,對(duì)于某些車道線模糊或車道線被泥土覆蓋的情況、對(duì)于黑暗環(huán)境或雨雪天氣或者在光線不是特別好的情況下,它對(duì)攝像頭識(shí)別和提取都會(huì)造成一定的難度。
另一個(gè)是障礙物檢測(cè)。上圖是我們?cè)谑致房谧龅膶?shí)驗(yàn),獲取到原始圖像后,通過深度學(xué)習(xí)框架對(duì)物體進(jìn)行識(shí)別。在這當(dāng)中,做訓(xùn)練集其實(shí)是主要的難點(diǎn)。
還有一個(gè)是道路標(biāo)識(shí)的識(shí)別,這一部分的研究比較多,這里不再贅述。
激光雷達(dá)能夠完成什么工作?
第一是路沿檢測(cè),也包括車道線檢測(cè);第二是障礙物識(shí)別,對(duì)靜態(tài)物體和動(dòng)態(tài)物體的識(shí)別;第三是定位以及地圖的創(chuàng)建。
對(duì)于路沿檢測(cè),分為三個(gè)步驟:拿到原始點(diǎn)云,地面點(diǎn)檢測(cè)、提取路沿點(diǎn),通過路沿點(diǎn)的直線擬合,可以把路沿檢測(cè)出來。
接下來是障礙物識(shí)別,識(shí)別諸如行人、卡車和私家車等以及將路障信息識(shí)別出來。
障礙物的識(shí)別有這樣幾步,當(dāng)激光雷達(dá)獲取三維點(diǎn)云數(shù)據(jù)后,我們對(duì)障礙物進(jìn)行一個(gè)聚類,如上圖紫色包圍框,就是識(shí)別在道路上的障礙物,它可能是動(dòng)態(tài)也可能是靜態(tài)的。
最難的部分就是把道路上面的障礙物聚類后,提取三維物體信息。獲取到新物體之后,會(huì)把這個(gè)物體放到訓(xùn)練集里,然后用 SVM 分類器把物體識(shí)別出來。
如上圖,左上角、左下角是車還是人?對(duì)于機(jī)器而言,它是不清楚的。右上角和右下角(上圖)是我們做的訓(xùn)練集。做訓(xùn)練集是最難的,相當(dāng)于要提前把不同物體做人工標(biāo)識(shí),而且這些標(biāo)識(shí)的物體是在不同距離、不同方向上獲取到的。
我們對(duì)每個(gè)物體,可能會(huì)把它的反射強(qiáng)度、橫向和縱向的寬度以及位置姿態(tài)作為它的特征,進(jìn)行提取,進(jìn)而做出數(shù)據(jù)集,用于訓(xùn)練。最終的車輛、行人、自行車等物體的識(shí)別是由SVM分類器來完成。我們用這種方法做出來的檢測(cè)精確度還是不錯(cuò)的。
利用激光雷達(dá)進(jìn)行輔助定位。定位理論有兩種:基于已知地圖的定位方法以及基于未知地圖的定位方法。
基于已知地圖定位方法,顧名思義,就是事先獲取無人駕駛車的工作環(huán)境地圖(高精度地圖),然后根據(jù)高精度地圖結(jié)合激光雷達(dá)及其它傳感器通過無人駕駛定位算法獲得準(zhǔn)確的位置估計(jì)?,F(xiàn)在大家普遍采用的是基于已知地圖的定位方法。
制作高精度地圖也是一件非常困難的事情。舉個(gè)例子,探月車在月球上,原來不知道月球的地圖,只能靠機(jī)器人在月球上邊走邊定位,然后感知環(huán)境,相當(dāng)于在過程中既完成了定位又完成了制圖,也就是我們?cè)跇I(yè)界所說的 SLAM 技術(shù)。
激光雷達(dá)是獲取高精度地圖非常重要的傳感器。通過 GPS、IMU 和 Encoder 對(duì)汽車做一個(gè)初步位置的估計(jì),然后再結(jié)合激光雷達(dá)和高精度地圖,通過無人駕駛定位算法最終得到汽車的位置信息。
高精地圖可分為基礎(chǔ)層、道路信息層、周圍環(huán)境信息層和其他信息層。
比如基礎(chǔ)層,有車道的寬度、坡度、傾斜角、航向、高程、車道線信息、人行道和隔離帶等等。之后還有信息層,相當(dāng)于告訴每一個(gè)道路上限速的標(biāo)記、紅綠燈標(biāo)記,還有一個(gè)就是環(huán)境信息層,相當(dāng)于周圍建筑物的三維模型。其他信息層,比如說天氣信息、施工信息等等,天氣信息非常重要,它提供一個(gè)場(chǎng)景信息,比如說天氣非常惡劣的時(shí)候,比如下雨天,如果高精度地圖能提供天氣信息,或者無人駕駛汽車車身所攜帶的傳感器,能夠感知到下雨信息,這時(shí)非常有利于指導(dǎo)無人駕駛汽車做一些決策。
現(xiàn)在對(duì)高精度地圖的定義,不同地圖廠家有不同定義的方式。做高精度地圖是為了輔助無人駕駛,所謂高精度地圖就是相比之前的導(dǎo)航地圖,前者精確度更高,可以達(dá)到厘米級(jí);另一個(gè)就是高精度地圖包含更多的信息量,比如說車道的寬度、傾斜度等信息。
激光雷達(dá)與攝像頭的融合
激光雷達(dá)與攝像頭融合,其實(shí)相當(dāng)于是激光雷達(dá)發(fā)揮激光雷達(dá)的優(yōu)勢(shì),攝像頭發(fā)揮攝像頭的優(yōu)勢(shì),他們?cè)谀承┑胤绞亲龅貌粔蚝?,需要兩個(gè)傳感器甚至多個(gè)傳感器信息進(jìn)行底層的融合。
在融合的時(shí)候,首先第一步,標(biāo)定。比如說左上角(上圖),我看到凳子,左下角激光雷達(dá)也看到的是凳子,那么我通過標(biāo)定的方式告訴它,其實(shí)兩個(gè)是同一個(gè)物體。
其實(shí)攝像頭發(fā)現(xiàn)同一個(gè)物體是非常容易的,比如做人的跟蹤或車的跟蹤。對(duì)于激光雷達(dá)而言, 要去識(shí)別前后幀是否同一輛車和同一個(gè)行人是非常困難的。
激光雷達(dá)有一個(gè)好處:如果可以通過攝像頭告訴它前后兩幀是同一個(gè)物體,那么通過激光雷達(dá)就可以知道物體在這前后兩幀間隔內(nèi):運(yùn)動(dòng)速度和運(yùn)動(dòng)位移是多少。這是非常關(guān)鍵的,因?yàn)橹挥凶鲞\(yùn)動(dòng)物體的跟蹤才能做一些預(yù)測(cè)。
人在駕駛的過程中,他得時(shí)刻知道周圍物體的運(yùn)動(dòng)狀態(tài)。對(duì)于無人駕駛,除了對(duì)車輛進(jìn)行位置的估計(jì)以及導(dǎo)航之外,其實(shí)還需要對(duì)周邊物體、運(yùn)動(dòng)物體的跟蹤和預(yù)測(cè),這是非常有意義的。
精彩問答:
問:高精度地圖的制作,是不是應(yīng)該與 SLAM 的建圖結(jié)合滿足在無 GPS 下的定位?
邱純鑫:這是對(duì)的,我們也用 SLAM 的方式去局部做地圖構(gòu)建,剛開始如果做高精度地圖,還是得用 SLAM 方法去做。
有些道路,特別是城市道路或巷道,GPS 非常不可信。所以說大家還是得充分考慮在有 GPS 如何去制作高精度以及在沒 GPS 情況下如何去做高精度地圖。
問:考慮到對(duì)遠(yuǎn)距離小物體的檢測(cè),需要激光雷達(dá)有更高的水平角分辨率,那么目前 0.1 度的角分辨率能不能再提升,限制在哪里?
邱純鑫:水平分辨率 0.1 度可以做得更小,這個(gè)沒有限制,激光雷達(dá)單點(diǎn)出點(diǎn)數(shù)做得更高沒問題。垂直分辨率確實(shí)是有限制,除非用固態(tài)激光雷達(dá),要不然現(xiàn)在通過多個(gè)激光發(fā)射器和接收器堆疊的方式來實(shí)現(xiàn) 0.1 度的角度分辨率幾乎是很難再提升了。
假如說激光雷達(dá)角度分辨率還有出點(diǎn)數(shù)已經(jīng)滿足要求。那么,剩下一個(gè)問題就是過車規(guī),畢竟激光雷達(dá)是安裝在車上的。所以車的溫度,濕度,抗震性都要充分考慮。
目前激光雷達(dá)本身有兩個(gè)主要的問題:一方面是雷達(dá)本身的參數(shù)是否可以提高;另一方面是如何過車規(guī)。
問:你認(rèn)為目前激光雷達(dá)用于自主車駕駛和 SLAM 研究中還有哪些亟待解決的科研和技術(shù)問題?另外,激光雷達(dá)和相機(jī)的融合,您覺得用于車載 SLAM 的話最好是和幾個(gè)(單目、雙目、三目、全景)相機(jī)的融合?在相機(jī)和激光雷達(dá)融合中,您覺得還有哪些亟待解決的科研和技術(shù)問題?
邱純鑫:SLAM 不僅僅是無人駕駛汽車的問題。對(duì) SLAM 而言,一個(gè)是定位,一個(gè)是制圖。
目前看,在拼接尤其是前后兩幀拼接的時(shí)候,如何才能拼接得更加準(zhǔn)確;另一個(gè)是多次拼接的時(shí)候,如何能夠覆蓋累計(jì)的誤差。比如,做一個(gè)大閉環(huán),第一次掃描到的環(huán)境就很難跟第 1000 個(gè)拼接起來,能否做到全局的校準(zhǔn)?所以我覺得 SLAM 的問題不僅僅是無人駕駛的問題,可能室內(nèi)存在 SLAM 的問題。
激光雷達(dá)和相機(jī)的融合,到底用單目,雙目,三目還是全景去做。其實(shí)我們現(xiàn)在用的是單目,利用單目相機(jī)對(duì)物體速度的識(shí)別主要還是通過標(biāo)定的方式,然后看物體在圖片中所占據(jù)的大小,從而來做大致的距離估算。
目前大家用雙目的想法,其實(shí)還主要是解決單目對(duì)距離無法判斷的問題。雙目、三目和全景我們還沒有去嘗試,所以不太好判斷。
問:激光雷達(dá)的設(shè)備體積,理論上最小能達(dá)到多少?成本如果大批量生產(chǎn)的話可以縮減到多少?有可能進(jìn)入 3D 成像領(lǐng)域么?
邱純鑫:目前我們也想把它體積做到更小,并在更小的情況下能夠做到線數(shù)越多。目前還沒有一個(gè)理論說最小能做到多小,但體積做太大已經(jīng)沒有意義。
如果未來推出固態(tài)激光雷達(dá)產(chǎn)品,比如體積只有一個(gè)指甲蓋的大小,那么它的應(yīng)用領(lǐng)域,肯定不僅僅是在無人駕駛上,還可以應(yīng)用到其他領(lǐng)域。
問:對(duì)應(yīng)圖像數(shù)據(jù)使用 OpenCV;那么,點(diǎn)云數(shù)據(jù)的處理,目前都有哪些主流開源庫可供使用?
邱純鑫:目前還沒有很好的一個(gè)開源庫。之前有一個(gè)叫 PCL(Point Cloud Library),我覺得這個(gè)庫做得并不好,所以我們也沒怎么去用,還是自己在做。
問:相機(jī)和激光雷達(dá)融合中還有哪些要去解決的技術(shù)問題?
邱純鑫:首先是標(biāo)定,如何標(biāo)定才更好?再有一個(gè)就是時(shí)間戳的問題。相機(jī)在這一時(shí)刻獲取到的圖片跟激光雷達(dá)獲取到的三維信息如何很好匹配下來。算法融合,運(yùn)動(dòng)物體跟蹤,通過攝像獲取同一個(gè)物體,通過激光雷達(dá)去識(shí)別同一個(gè)物體的距離信息。