閆德立,高 尚,李韶華,霍 萌
(1.石家莊鐵道大學(xué) 交通工程結(jié)構(gòu)力學(xué)行為與系統(tǒng)安全國家重點(diǎn)實驗室,石家莊 050043;2.石家莊鐵道大學(xué) 電氣與電子工程學(xué)院,石家莊 050043;3.河北省疾病預(yù)防控制中心,石家莊 050021)
為實現(xiàn)車輛的智能化與無人駕駛,需要對道路進(jìn)行分割,劃分為可行駛區(qū)域和不可行駛區(qū)域,為車輛行為決策以及路徑規(guī)劃與控制提供基礎(chǔ)道路信息。對道路可安全行駛的區(qū)域分割完成后,可行駛區(qū)域道路中不平度信息的檢測也是保證車輛安全行駛的關(guān)鍵信息,道路不平度分為表面缺陷、接頭、裂縫和變形,這些變形可能是由于道路使用、疲勞、熱變化、水份損壞、施工或公用事業(yè)修復(fù)過程造成的[1]。崎嶇的道路通常與一些典型的交通事故有關(guān),如失控、撞到固定或移動的物體。一些研究表明,事故率隨著路面粗糙度的增加而增加。它們還可能影響滾動阻力、乘坐質(zhì)量、車輛運(yùn)行成本和燃料消耗。因此,對道路凸包、凹陷不平度信息及道路可行駛區(qū)域的研究至關(guān)重要,進(jìn)行精確的道路檢測、定位和分類,以提高車輛的主動安全性,使車輛安全可靠的行駛[2]。
到目前為止,對道路凸包、凹陷不平度信息及可行駛區(qū)域的檢測都是基于人工或圖像對道路進(jìn)行檢查。通過這些方法進(jìn)行大規(guī)模道路環(huán)境檢測時費(fèi)時費(fèi)力,并且采集的信息有時不完整,難以對道路不平度信息進(jìn)行定性評估[3]。另外,傳統(tǒng)的攝像機(jī)對凹凸障礙物及可行駛區(qū)域進(jìn)行分析的方法,在陰雨、霧霾等惡劣條件下相機(jī)無法正確識別目標(biāo)信息。與相機(jī)相比,激光受光線的影響也較小,可實現(xiàn)不同天氣下的高精度檢測。移動路譜儀系統(tǒng)[4]可以快速獲取場景的精準(zhǔn)和大量的點(diǎn)云數(shù)據(jù),為解決道路環(huán)境信息感知問題提供了一套可靠的方案。但是,移動路譜儀價格昂貴、體積大的劣勢使其不能大規(guī)模應(yīng)用于實際工程中。隨著自動駕駛以及機(jī)器人等領(lǐng)域的發(fā)展,低成本、高精度的激光雷達(dá)[5]被廣泛的應(yīng)用與發(fā)展,但目前的研究主要將車載激光雷達(dá)應(yīng)用于無人駕駛車輛對于道路環(huán)境的檢測,如道路路面分割[6-7]、道路標(biāo)線提取[8-9]、道路交通標(biāo)牌識別[10-11]等。在高精地圖構(gòu)建、全場景道路物體語義分割、道路不平度檢測等領(lǐng)域中也有非常重要的地位[12-13]。車載激光雷達(dá)在路面不平度方面研究的不足,應(yīng)用語義分割的方法對道路不平度和可行駛區(qū)域進(jìn)行檢測[14-15]。近期大多采用深度學(xué)習(xí)的方法[16-18]對激光雷達(dá)點(diǎn)云數(shù)據(jù)進(jìn)行處理,但這些方法大多采用幾何方法,無法實現(xiàn)凹坑與凸起等小目標(biāo)的檢測。
本文中為了實現(xiàn)基于激光雷達(dá)點(diǎn)云數(shù)據(jù)對無人駕駛車輛行駛場景中的環(huán)境要素進(jìn)行語義分割,并且加強(qiáng)對道路中凸起、凹陷等小目標(biāo)信息[19]以及道路可行駛區(qū)域的語義分割能力,使車輛提前做出預(yù)判,規(guī)劃路徑,提高車輛的主動安全性為出發(fā)點(diǎn)。采用一種端到端的隨機(jī)降采樣和局部特征聚合的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),使用隨機(jī)采樣和增強(qiáng)策略來處理點(diǎn)云數(shù)據(jù),實現(xiàn)對道路環(huán)境的快速分割,特別是凸起、凹陷與道路可行駛區(qū)域的分割。該網(wǎng)絡(luò)模型的關(guān)鍵是使用隨機(jī)點(diǎn)采樣,但隨機(jī)采樣的方法會丟關(guān)鍵特征,為了克服這一難點(diǎn)加入局部特征聚合模塊來增加每個3維點(diǎn)的接受場,從而有效地保留幾何細(xì)節(jié)。
隨機(jī)降采樣和局部特征聚合的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。采用廣泛使用的編碼-解碼架構(gòu)與跳躍連接的網(wǎng)絡(luò)。首先點(diǎn)云輸入到共享的多層感知器,以提取每點(diǎn)的特征;然后使用4個編碼和解碼層來學(xué)習(xí)每個點(diǎn)的特征;最后使用3個全連接層和一個退出層來預(yù)測每個點(diǎn)的語義標(biāo)簽。其中,(N,d)表示點(diǎn)數(shù)和特征維數(shù),F(xiàn)C(full connection)表示全連接層,LFA(local feature aggregation)表示局部特征聚合模塊,RS(random sampling)表示隨機(jī)采樣,MLP(multiple layers perceptron)表示共享多層感知器,US(up sampling)表示上采樣,DP(drop)表示退出。
Fig.1 Random sampling and local feature aggregation net
網(wǎng)絡(luò)輸入:輸入是一個大規(guī)模的點(diǎn)云,大小為N×din,其中N是點(diǎn)數(shù),din是每個輸入點(diǎn)的特征維數(shù)。
編碼層:點(diǎn)云數(shù)據(jù)量龐大,采用編碼層對數(shù)據(jù)進(jìn)行壓縮處理,網(wǎng)絡(luò)中使用了4個編碼層來逐步減少點(diǎn)云,并增加每個點(diǎn)的特征維度。每個編碼層由一個局部特征聚合模塊和一個隨機(jī)采樣操作組成。點(diǎn)云下采樣率為4倍,在每一層之后僅保留25%的特征點(diǎn),即:(N→N/4→N/16→N/64→N/256)。同時,每點(diǎn)特征維度逐漸增大,以保存更多信息,即:(8→32→128→256→512)。
解碼層:在上述編碼層之后使用4個解碼層。對于解碼器中的每一層,使用k最近鄰域算法為每個查詢點(diǎn)找到一個最近鄰點(diǎn),之后通過最近鄰點(diǎn)對特征點(diǎn)集進(jìn)行上采樣。通過跳躍連接將上采樣的特征映射與編碼層生成的中間特征映射連接起來,之后對連接的特征映射應(yīng)用共享多層感知器[20]。
最終語義預(yù)測:通過3個共享的全連通層(N,64)→(N,32)→(N,nc)和一個退出層,獲得每個點(diǎn)的最終語義信息,大小為N×nc,其中nc是類數(shù)。
本網(wǎng)絡(luò)的關(guān)鍵是采用了隨機(jī)采樣的方法。隨機(jī)采樣均勻地從輸入的點(diǎn)中選擇K個點(diǎn)來確保每個點(diǎn)都有被選中的可能。因為隨機(jī)采樣計算的復(fù)雜程度與計算量和輸入點(diǎn)云數(shù)量無關(guān),并且只與降采樣后的點(diǎn)數(shù)K有關(guān),使得隨機(jī)采樣的方法具有高效的計算效率良好的擴(kuò)展性。隨機(jī)采樣與其它采樣方法相比(例如最遠(yuǎn)點(diǎn)采樣和重要性采樣),只需4ms便可完成與最遠(yuǎn)點(diǎn)采樣方法完成相同的降采樣任務(wù)。采用隨機(jī)采樣的方法雖然可以提高計算速度和內(nèi)存的效率,但會丟失關(guān)鍵特征[20]。
為解決上述采用隨機(jī)采樣方法導(dǎo)致關(guān)鍵特征丟失的問題,引入局部特征聚合來增加每個3-D點(diǎn)的接受場來保留幾何細(xì)節(jié)。
局部特征聚合模塊主要包括3個子模塊:(1)局部空間編碼; (2)注意力池;(3)擴(kuò)張殘差塊。
1.2.1 局部空間編碼 給定一個點(diǎn)云p和每個點(diǎn)的特征,這個局部空間編碼單元(local spatial encoding,LocSE)將明確嵌入所有相鄰點(diǎn)的3維空間坐標(biāo),這樣相應(yīng)點(diǎn)的特征總是知道自身的相對空間置。采用局部空間編碼單元來觀察局部幾何結(jié)構(gòu),有利于整個網(wǎng)絡(luò)有效地學(xué)習(xí)復(fù)雜的局部結(jié)構(gòu)。
本單元具體步驟如下:尋找相鄰的點(diǎn),對于第i個點(diǎn),為提高效率它的相鄰點(diǎn)通過k最近鄰域算法進(jìn)行收集, 采用的k最近鄰域算法是基于逐點(diǎn)歐氏距離算法。
對于中心點(diǎn)pi的每一個最近的K點(diǎn){pi1,pik,piK},明確編碼相對點(diǎn)位置,方法如下:
rik=M(pi⊕pik⊕(pi-pik)⊕‖pi-pik‖)
(1)
式中,pi和pik是點(diǎn)在3維空間坐標(biāo)系x-y-z中的位置,M代表共享多層感知器函數(shù),⊕是連接操作,‖·‖是計算相鄰點(diǎn)和中心點(diǎn)之間的歐幾里得距離,rik是冗余點(diǎn)位置的編碼。
對于每個相鄰點(diǎn)pik,編碼的相對點(diǎn)位置rik與其相應(yīng)的特征點(diǎn)fik連接,獲得增強(qiáng)的特征向量fik。最終,局部空間編碼單元輸出的是一組新的相鄰特征Fi={f1i,fik,fiK},明確地編碼了中心點(diǎn)Pi的局部幾何結(jié)構(gòu)。
1.2.2 注意力池 神經(jīng)網(wǎng)絡(luò)用于聚合相鄰特征點(diǎn)Fi的集合,通常使用最大/平均池集成鄰近的特性,會導(dǎo)致大部分信息丟失。相比之下,轉(zhuǎn)向強(qiáng)大的注意機(jī)制來自動學(xué)習(xí)重要的局部特征會減少信息丟失。注意力池包括以下步驟:計算注意力分?jǐn)?shù),給定一組局部特征Fi={fi1,fik,fiK},通過共享函數(shù)g(·)來學(xué)習(xí)每個特征的唯一注意力分?jǐn)?shù),g(·)由一個共享的多層感知器和柔性最大值傳輸函數(shù)組成。 表達(dá)式如下:
sik=g(fik,w)
(2)
式中,w是共享的多層感知器的可學(xué)習(xí)權(quán)值。
加權(quán)求和,學(xué)習(xí)到的注意力分?jǐn)?shù)可以看作是一個自動選擇重要特征的軟掩模。特征加權(quán)求和見下式:
(3)
總之,給定輸入點(diǎn)云p,對于第i個點(diǎn)pi,局部空間編碼單元和注意力池單元學(xué)習(xí)聚合k最近點(diǎn)的幾何模式和特征,生成一個信息特征向量fi。
1.2.3 擴(kuò)張殘差塊 由于大場景的點(diǎn)云將被大幅度地降采樣,因此需要顯著地增加每個點(diǎn)的接受域,這樣即使一些點(diǎn)被刪除,輸入點(diǎn)云的幾何細(xì)節(jié)也更有可能被保留。本文中通過堆疊多個局部空間編碼單元和注意池單元,并使用一個跳躍連接作為擴(kuò)展的殘留塊,如圖2所示。
Fig.2 Dilated residual block
總的來說,本文中的局部特征聚合模塊通過明確考慮相鄰幾何結(jié)構(gòu)和顯著增加接受域來有效地保留復(fù)雜的局部結(jié)構(gòu)。此外,該模塊僅由前饋共享多層感知器組成,具有較高的計算效率。
本文中采用的禾賽40線激光雷達(dá)激光束分布如表1所示。其中線束6~線束30,相鄰線束間的垂直角分辨率為0.33°;線束30~線束38,相鄰兩線束的垂直角分辨率為1°。對激光雷達(dá)垂直角度計算分析,采用傳統(tǒng)方法水平安裝在車輛的頂部位置,激光雷達(dá)在對路面掃描時,有將近一半的激光束無法打到地面,極大地?fù)p失了激光雷達(dá)的檢測能力,因此,本文中為了提高激光雷達(dá)的利用率,并提高對地面不平度的檢測效率,通過實際工程實驗確定了安裝角度,且可高效對路面不平度信息進(jìn)行檢測。
Table 1 Laser beam distribution of lidar
當(dāng)向下安裝的傾斜角度大于激光雷達(dá)斜向上發(fā)射的最大光束時,激光雷達(dá)發(fā)射的激光束將全部用于道路檢測,如圖3所示。如何在充分利用激光雷達(dá)的檢測能力的條件下保證其檢測范圍,需要對激光雷達(dá)水平向下的傾斜角度進(jìn)行計算確定,計算式如下:
(4)
式中,d,h,α和β分別代表檢測距離、高度、向下傾斜角度和激光束垂直角度。
Fig.3 Schematic diagram of LiDAR installation
通過實車實驗,對比不同角度下激光雷達(dá)對路面凹凸信息的檢測情況,如圖4所示。水平安裝在車輛頂部時無法準(zhǔn)確識別凹凸信息,傾斜角度過大無法保證檢測距離,最終激光雷達(dá)的安裝在高度約為1.8m的車輛頂部位置,安裝角度為30°時能夠覆蓋車輛前方1.26m~6.76m,可準(zhǔn)確檢測出道路路面上的凸包和凹坑。
Fig.4 Scanning effect at different anglesa—traditional scanning lines b—incline horizontally down 30° c—incline horizontally down 45°
硬件配置為英特爾E5-26650@2.40GHz和英偉達(dá)GeForce GTX1080Ti、8GB GPU。在Ubuntu18.04和Python3.6.7的條件下搭建CUDA 11.0、CUDNN 7.6.5、TensorFlow 1.15.0深度學(xué)習(xí)環(huán)境。隨機(jī)降采樣和局部特征聚合的網(wǎng)絡(luò)結(jié)構(gòu)的訓(xùn)練共用13h。網(wǎng)絡(luò)訓(xùn)練時參數(shù)設(shè)置:預(yù)處理參數(shù)為0.06,初始學(xué)習(xí)率為0.01,初始衰減率為0.95,初始噪聲為3.5,一次訓(xùn)練所抓取的數(shù)據(jù)樣本數(shù)量為6,最大模型訓(xùn)練次數(shù)max_epoch為100。
作者通過安裝在智能車上的禾賽激光雷達(dá)對校園道路環(huán)境信息進(jìn)行數(shù)據(jù)采集,通過標(biāo)注軟件CloudCompare打標(biāo)簽制作完成的數(shù)據(jù)集。該數(shù)據(jù)集是用于對室外場景點(diǎn)云進(jìn)行分割,數(shù)據(jù)集中道路包括道路不平度、可行駛區(qū)域、建筑物和雜草樹木等信息的800個數(shù)據(jù),其中訓(xùn)練集700個,驗證集50個,測試集50個。本文中道路不平度指路面中直徑大于40cm,高度或深度大于5cm的凹坑與凸起;道路可行駛區(qū)域為路沿內(nèi)的安全行駛區(qū)域,實驗中為寬3m的水泥路面;其它信息為道路兩旁的樹木與建筑物信息。各數(shù)據(jù)集中各類別點(diǎn)云個數(shù)如表2所示,測試數(shù)據(jù)集中復(fù)雜程度小目標(biāo)。
Table 2 Number of different point clouds
本文中的實驗場景、原始點(diǎn)云以及訓(xùn)練后模型的測試樣本如圖5所示。其中圖5a為實測校園道路圖像信息,圖5b為激光雷達(dá)采集的校園道路環(huán)境的原始點(diǎn)云信息,圖5c是經(jīng)過點(diǎn)云語義分割之后的道路信息。可以看出,本文中訓(xùn)練的模型對道路建筑物、路面凸包、凹坑以及雜草數(shù)木可以達(dá)到很好的分割效果,其中紅色代表建筑和路沿石、綠色代表道路區(qū)域、黃色代表雜草樹木,并且凸包、凹坑用藍(lán)色和深綠色表示。語義分割說到底是一個分類任務(wù),預(yù)測的結(jié)果往往有4種情況:真正樣本數(shù)量、假負(fù)樣本數(shù)量、真正樣本數(shù)量、假負(fù)樣本數(shù)量。語義分割的評價由均交并比 (meanintersection over union,MIoU)表示,一般都是基于類進(jìn)行計算的,將每一類的交并比(intersection over union,IoU)計算之后累加,再進(jìn)行平均,得到的就是基于全局的評價。
Fig.5 Experimental scene effecta—experimental scenario b—original point cloud c—post-segmentation point cloud
訓(xùn)練后模型的總體精度達(dá)到了88.52%。訓(xùn)練過程中模型的均交并比和各類別的值如圖6所示。由圖6可以看出,隨著模型訓(xùn)練次數(shù)的增加,各類別的值趨于穩(wěn)定,均交并比的值基本穩(wěn)定在88.52%,凸包、凹坑、道路可行駛區(qū)域、雜草樹木以及建筑物的值分別維持在71.87%, 82.71%, 93.01%, 94.97% 和94.32%上下,相比于傳統(tǒng)點(diǎn)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)等算法中的小目標(biāo)檢測而言,本文中的對小目標(biāo)坑和凸起的精度較高。如圖7所示,評價精度經(jīng)過1個模型訓(xùn)練之后基本穩(wěn)定在96%左右。
Fig.6 Changes of MIoU during training
Fig.7 Eval accuracy curve
針對3-D室外場景道路中道路凸包、凹坑不平度信息對車輛安全行駛的影響,確定激光雷達(dá)的安裝方式,并通過實驗發(fā)現(xiàn)將激光雷達(dá)水平向下傾斜30°安裝,可以很好地對道路中凸包、凹坑進(jìn)行采集。對采集的數(shù)據(jù)通過標(biāo)注軟件CloudCompare打標(biāo)簽制作完成的數(shù)據(jù)集,用隨機(jī)降采樣和局部特征聚合的網(wǎng)絡(luò)結(jié)構(gòu)實現(xiàn)室外3-D點(diǎn)云的語義分割,主要目的是對非結(jié)構(gòu)化道路中的凸包、凹坑以及道路可行駛區(qū)域進(jìn)行分割。與其它模型相比,在室外大規(guī)模點(diǎn)云下,隨機(jī)降采樣和局部特征聚合的網(wǎng)絡(luò)結(jié)構(gòu)總體準(zhǔn)確度比較高,進(jìn)一步提高了模型的分割精度,尤其對于道路凸包、凹坑來說,本文中的精確度為71.87%和82.71%。該研究對于道路凸包、凹坑及可行駛區(qū)域的檢測,以及之后無人車智能懸架調(diào)節(jié)和車輛的主動安全方面提供了依據(jù)。