無(wú)人駕駛?cè)绾胃兄?無(wú)人駕駛?cè)绾味ㄎ?
無(wú)人駕駛汽車(chē)是未來(lái)的趨勢(shì)之一,通過(guò)無(wú)人駕駛汽車(chē),我們無(wú)需自己動(dòng)手操控,一切都可智能運(yùn)行。上篇文章,小編對(duì)無(wú)人駕駛汽車(chē)的構(gòu)造有所闡述。為繼續(xù)增進(jìn)大家對(duì)無(wú)人駕駛的了解,本文將對(duì)無(wú)人駕駛汽車(chē)的感知層和定位層予以介紹。如果你對(duì)無(wú)人駕駛具有興趣,不妨繼續(xù)往下閱讀哦。
一、感知
為了確保無(wú)人車(chē)對(duì)環(huán)境的理解和把握,無(wú)人駕駛系統(tǒng)的環(huán)境感知部分通常需要獲取周?chē)h(huán)境的大量信息,具體來(lái)說(shuō)包括:障礙物的位置,速度以及可能的行為,可行駛的區(qū)域,交通規(guī)則等等。無(wú)人車(chē)通常是通過(guò)融合激光雷達(dá)(Lidar),相機(jī)(Camera),毫米波雷達(dá)(Millimeter Wave Radar)等多種傳感器的數(shù)據(jù)來(lái)獲取這些信息,本節(jié)我們簡(jiǎn)要地了解一下激光雷達(dá)和相機(jī)在無(wú)人車(chē)感知中的應(yīng)用。
激光雷達(dá)是一類(lèi)使用激光進(jìn)行探測(cè)和測(cè)距的設(shè)備,它能夠每秒鐘向環(huán)境發(fā)送數(shù)百萬(wàn)光脈沖,它的內(nèi)部是一種旋轉(zhuǎn)的結(jié)構(gòu),這使得激光雷達(dá)能夠?qū)崟r(shí)的建立起周?chē)h(huán)境的3維地圖。
通常來(lái)說(shuō),激光雷達(dá)以10Hz左右的速度對(duì)周?chē)h(huán)境進(jìn)行旋轉(zhuǎn)掃描,其掃描一次的結(jié)果為密集的點(diǎn)構(gòu)成的3維圖,每個(gè)點(diǎn)具備(x,y,z)信息,這個(gè)圖被稱(chēng)為點(diǎn)云圖(Point Cloud Graph),如下圖所示,是使用Velodyne VLP-32c激光雷達(dá)建立的一個(gè)點(diǎn)云地圖:
激光雷達(dá)因其可靠性目前仍是無(wú)人駕駛系統(tǒng)中最重要的傳感器,然而,在現(xiàn)實(shí)使用中,激光雷達(dá)并不是完美的,往往存在點(diǎn)云過(guò)于稀疏,甚至丟失部分點(diǎn)的問(wèn)題,對(duì)于不規(guī)則的物體表面,使用激光雷達(dá)很難辨別其模式,在諸如大雨天氣這類(lèi)情況下,激光雷達(dá)也無(wú)法使用。
為了理解點(diǎn)云信息,通常來(lái)說(shuō),我們對(duì)點(diǎn)云數(shù)據(jù)進(jìn)行兩步操作:分割(SegmentaTIon)和分類(lèi)(Classification)。其中,分割是為了將點(diǎn)云圖中離散的點(diǎn)聚類(lèi)成若干個(gè)整體,而分類(lèi)則是區(qū)分出這些整體屬于哪一個(gè)類(lèi)別(比如說(shuō)行人,車(chē)輛以及障礙物)。分割算法可以被分類(lèi)如下幾類(lèi):
基于邊的方法,例如梯度過(guò)濾等;
基于區(qū)域的方法,這類(lèi)方法使用區(qū)域特征對(duì)鄰近點(diǎn)進(jìn)行聚類(lèi),聚類(lèi)的依據(jù)是使用一些指定的標(biāo)準(zhǔn)(如歐幾里得距離,表面法線等),這類(lèi)方法通常是先在點(diǎn)云中選取若干種子點(diǎn)(seed points),然后使用指定的標(biāo)準(zhǔn)從這些種子點(diǎn)出發(fā)對(duì)鄰近點(diǎn)進(jìn)行聚類(lèi);
參數(shù)方法,這類(lèi)方法使用預(yù)先定義的模型去擬合點(diǎn)云,常見(jiàn)的方法包括隨機(jī)樣本一致性方法(Random Sample Consensus,RANSAC )和霍夫變換(Hough Transform,HT);
基于屬性的方法,首先計(jì)算每個(gè)點(diǎn)的屬性,然后對(duì)屬性相關(guān)聯(lián)的點(diǎn)進(jìn)行聚類(lèi)的方法;
基于圖的方法;
基于機(jī)器學(xué)習(xí)的方法;
在完成了點(diǎn)云的目標(biāo)分割以后,分割出來(lái)的目標(biāo)需要被正確的分類(lèi),在這個(gè)環(huán)節(jié),一般使用機(jī)器學(xué)習(xí)中的分類(lèi)算法,如支持向量機(jī)(Support Vector Machine,SVM)對(duì)聚類(lèi)的特征進(jìn)行分類(lèi),最近幾年由于深度學(xué)習(xí)的發(fā)展,業(yè)界開(kāi)始使用特別設(shè)計(jì)的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)對(duì)三維的點(diǎn)云聚類(lèi)進(jìn)行分類(lèi)。
然而,不論是提取特征-SVM的方法還是原始點(diǎn)云-CNN的方法,由于激光雷達(dá)點(diǎn)云本身解析度低的原因,對(duì)于反射點(diǎn)稀疏的目標(biāo)(比如說(shuō)行人),基于點(diǎn)云的分類(lèi)并不可靠,所以在實(shí)踐中,我們往往融合激光雷達(dá)和相機(jī)傳感器,利用相機(jī)的高分辨率來(lái)對(duì)目標(biāo)進(jìn)行分類(lèi),利用Lidar的可靠性對(duì)障礙物檢測(cè)和測(cè)距,融合兩者的優(yōu)點(diǎn)完成環(huán)境感知。
在無(wú)人駕駛系統(tǒng)中,我們通常使用圖像視覺(jué)來(lái)完成道路的檢測(cè)和道路上目標(biāo)的檢測(cè)。道路的檢測(cè)包含對(duì)道路線的檢測(cè)(Lane Detection),可行駛區(qū)域的檢測(cè)(Drivable Area Detection);道路上路標(biāo)的檢測(cè)包含對(duì)其他車(chē)輛的檢測(cè)(Vehicle Detection),行人檢測(cè)(Pedestrian Detection),交通標(biāo)志和信號(hào)的檢測(cè)(Traffic Sign Detection)等所有交通參與者的檢測(cè)和分類(lèi)。
車(chē)道線的檢測(cè)涉及兩個(gè)方面:第一是識(shí)別出車(chē)道線,對(duì)于彎曲的車(chē)道線,能夠計(jì)算出其曲率,第二是確定車(chē)輛自身相對(duì)于車(chē)道線的偏移(即無(wú)人車(chē)自身在車(chē)道線的哪個(gè)位置)。一種方法是抽取一些車(chē)道的特征,包括邊緣特征(通常是求梯度,如索貝爾算子),車(chē)道線的顏色特征等,使用多項(xiàng)式擬合我們認(rèn)為可能是車(chē)道線的像素,然后基于多項(xiàng)式以及當(dāng)前相機(jī)在車(chē)上掛載的位置確定前方車(chē)道線的曲率和車(chē)輛相對(duì)于車(chē)道的偏離。
可行駛區(qū)域的檢測(cè)目前的一種做法是采用深度神經(jīng)網(wǎng)絡(luò)直接對(duì)場(chǎng)景進(jìn)行分割,即通過(guò)訓(xùn)練一個(gè)逐像素分類(lèi)的深度神經(jīng)網(wǎng)絡(luò),完成對(duì)圖像中可行駛區(qū)域的切割。
交通參與者的檢測(cè)和分類(lèi)目前主要依賴(lài)于深度學(xué)習(xí)模型,常用的模型包括兩類(lèi):
以RCNN為代表的基于Region Proposal的深度學(xué)習(xí)目標(biāo)檢測(cè)算法(RCNN,SPP-NET,F(xiàn)ast-RCNN,F(xiàn)aster-RCNN等);
以YOLO為代表的基于回歸方法的深度學(xué)習(xí)目標(biāo)檢測(cè)算法(YOLO,SSD等)
二、定位
在無(wú)人車(chē)感知層面,定位的重要性不言而喻,無(wú)人車(chē)需要知道自己相對(duì)于環(huán)境的一個(gè)確切位置,這里的定位不能存在超過(guò)10cm的誤差,試想一下,如果我們的無(wú)人車(chē)定位誤差在30厘米,那么這將是一輛非常危險(xiǎn)的無(wú)人車(chē)(無(wú)論是對(duì)行人還是乘客而言),因?yàn)闊o(wú)人駕駛的規(guī)劃和執(zhí)行層并不知道它存在30厘米的誤差,它們?nèi)匀话凑斩ㄎ痪珳?zhǔn)的前提來(lái)做出決策和控制,那么對(duì)某些情況作出的決策就是錯(cuò)的,從而造成事故。由此可見(jiàn),無(wú)人車(chē)需要高精度的定位。
目前使用最廣泛的無(wú)人車(chē)定位方法當(dāng)屬融合全球定位系統(tǒng)(Global Positioning System,GPS)和慣性導(dǎo)航系統(tǒng)(Inertial Navigation System)定位方法,其中,GPS的定位精度在數(shù)十米到厘米級(jí)別之間,高精度的GPS傳感器價(jià)格也就相對(duì)昂貴。融合GPS/IMU的定位方法在GPS信號(hào)缺失,微弱的情況下無(wú)法做到高精度定位,如地下停車(chē)場(chǎng),周?chē)鶠楦邩堑氖袇^(qū)等,因此只能適用于部分場(chǎng)景的無(wú)人駕駛?cè)蝿?wù)。
地圖輔助類(lèi)定位算法是另一類(lèi)廣泛使用的無(wú)人車(chē)定位算法,同步定位與地圖構(gòu)建(Simultaneous Localization And Mapping,SLAM)是這類(lèi)算法的代表,SLAM的目標(biāo)即構(gòu)建地圖的同時(shí)使用該地圖進(jìn)行定位,SLAM通過(guò)利用已經(jīng)觀測(cè)到的環(huán)境特征確定當(dāng)前車(chē)輛的位置以及當(dāng)前觀測(cè)特征的位置。
這是一個(gè)利用以往的先驗(yàn)和當(dāng)前的觀測(cè)來(lái)估計(jì)當(dāng)前位置的過(guò)程,實(shí)踐上我們通常使用貝葉斯濾波器(Bayesian filter)來(lái)完成,具體來(lái)說(shuō)包括卡爾曼濾波(Kalman Filter),擴(kuò)展卡爾曼濾波(Extended Kalman Filter)以及粒子濾波(Particle Filter)。
SLAM雖然是機(jī)器人定位領(lǐng)域的研究熱點(diǎn),但是在實(shí)際無(wú)人車(chē)開(kāi)發(fā)過(guò)程中使用SLAM定位卻存在問(wèn)題,不同于機(jī)器人,無(wú)人車(chē)的運(yùn)動(dòng)是長(zhǎng)距離的,大開(kāi)放環(huán)境的。在長(zhǎng)距離的運(yùn)動(dòng)中,隨著距離的增大,SLAM定位的偏差也會(huì)逐漸增大,從而造成定位失敗。
在實(shí)踐中,一種有效的無(wú)人車(chē)定位方法是改變?cè)瓉?lái)SLAM中的掃描匹配類(lèi)算法,具體來(lái)說(shuō),我們不再在定位的同時(shí)制圖,而是事先使用傳感器如激光雷達(dá)對(duì)區(qū)域構(gòu)建點(diǎn)云地圖,通過(guò)程序和人工的處理將一部分“語(yǔ)義”添加到地圖中(例如車(chē)道線的具體標(biāo)注,路網(wǎng),紅綠燈的位置,當(dāng)前路段的交通規(guī)則等等),這個(gè)包含了語(yǔ)義的地圖就是我們無(wú)人駕駛車(chē)的高精度地圖(HD Map)。
在實(shí)際定位的時(shí)候,使用當(dāng)前激光雷達(dá)的掃描和事先構(gòu)建的高精度地圖進(jìn)行點(diǎn)云匹配,確定我們的無(wú)人車(chē)在地圖中的具體位置,這類(lèi)方法被統(tǒng)稱(chēng)為掃描匹配方法(ScanMatching),掃描匹配方法最常見(jiàn)的是迭代最近點(diǎn)法(Iterative Closest Point ,ICP),該方法基于當(dāng)前掃描和目標(biāo)掃描的距離度量來(lái)完成點(diǎn)云配準(zhǔn)。
除此以外,正態(tài)分布變換(Normal Distributions Transform,NDT)也是進(jìn)行點(diǎn)云配準(zhǔn)的常用方法,它基于點(diǎn)云特征直方圖來(lái)實(shí)現(xiàn)配準(zhǔn)?;邳c(diǎn)云配準(zhǔn)的定位方法也能實(shí)現(xiàn)10厘米以?xún)?nèi)的定位精度。
雖然點(diǎn)云配準(zhǔn)能夠給出無(wú)人車(chē)相對(duì)于地圖的全局定位,但是這類(lèi)方法過(guò)于依賴(lài)事先構(gòu)建的高精度地圖,并且在開(kāi)放的路段下仍然需要配合GPS定位使用,在場(chǎng)景相對(duì)單一的路段(如高速公路),使用GPS加點(diǎn)云匹配的方法相對(duì)來(lái)說(shuō)成本過(guò)高。
以上便是此次小編帶來(lái)的“無(wú)人駕駛”相關(guān)內(nèi)容,通過(guò)本文,希望大家對(duì)無(wú)人駕駛汽車(chē)的感知層和定位層具備一定的了解。如果你喜歡本文,不妨持續(xù)關(guān)注我們網(wǎng)站哦,小編將于后期帶來(lái)更多精彩內(nèi)容。最后,十分感謝大家的閱讀,have a nice day!