陳佳琪, 蘇治寶, 趙熙俊, 索旭東
(1.中國北方車輛研究所,北京100072;2.智能移動(dòng)機(jī)器人(中山)研究院,中山528436)
無人駕駛關(guān)鍵技術(shù)主要分為環(huán)境感知、導(dǎo)航定位、路徑規(guī)劃、決策控制4個(gè)方面.道路檢測是環(huán)境感知中的重要研究方向之一,是實(shí)現(xiàn)自主行駛的關(guān)鍵組成部分[1].道路檢測是指利用車輛本身搭載的傳感器對(duì)于前方環(huán)境進(jìn)行感知,劃分出可通行的道路區(qū)域,為后續(xù)的局部路徑規(guī)劃提供依據(jù).傳統(tǒng)的道路檢測算法依靠視覺傳感器采集的圖像信息進(jìn)行可通行區(qū)域檢測,主要分為基于圖像紋理特征的檢測算法[2-4]、基于圖像顏色特征的檢測算法[5-6]和基于分類器的檢測算法[7-8]3類.然而,由于圖像數(shù)據(jù)對(duì)于環(huán)境光十分敏感,同時(shí)光強(qiáng)度的快速變化也會(huì)導(dǎo)致采集圖像的嚴(yán)重失真,因此基于視覺傳感器的道路檢測算法的魯棒性較差.基于機(jī)器學(xué)習(xí)的視覺道路識(shí)別算法盡管在一定程度上能夠降低環(huán)境光對(duì)于檢測結(jié)果的影響,但仍然難以應(yīng)用于例如晨昏、夜間等實(shí)際的駕駛環(huán)境.
激光雷達(dá)(LiDAR)是以激光為信號(hào)源,通過接收反射光得到周圍環(huán)境的3D點(diǎn)云數(shù)據(jù).每個(gè)點(diǎn)云數(shù)據(jù)包含空間位置(x,y,z)和反射強(qiáng)度(intensity)信息.相比于視覺傳感器,利用激光雷達(dá)進(jìn)行道路檢測的優(yōu)勢(shì)一方面在于不依賴于外部信號(hào),具有受環(huán)境和光線影響小的特點(diǎn),另一方面能夠獲取豐富的三維空間信息,為利用結(jié)構(gòu)關(guān)系進(jìn)行檢測提供了可能.
全卷積神經(jīng)網(wǎng)絡(luò)(Fully Convolutional Networks, FCN)是圖像領(lǐng)域的一種成熟的端到端(end-to-end)分割網(wǎng)絡(luò),能夠有效實(shí)現(xiàn)像素級(jí)的語義分割任務(wù).本研究將在全卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上,設(shè)計(jì)針對(duì)于點(diǎn)云的道路檢測網(wǎng)絡(luò)算法,并借助KITTI公開數(shù)據(jù)集進(jìn)行訓(xùn)練和測試.
盡管激光雷達(dá)點(diǎn)云能夠有效表示環(huán)境的三維結(jié)構(gòu),但由于點(diǎn)云的無序性,F(xiàn)CN網(wǎng)絡(luò)無法直接對(duì)其進(jìn)行學(xué)習(xí).3D正態(tài)分布變換(3D-NDT)算法[9]是基于統(tǒng)計(jì)學(xué)特征的點(diǎn)云配準(zhǔn)方法.該算法提出利用三維柵格化方法解決點(diǎn)云無序性的問題.考慮到FCN網(wǎng)絡(luò)在處理二維圖像數(shù)據(jù)上的優(yōu)勢(shì),我們將點(diǎn)云進(jìn)行二維壓縮后再進(jìn)行柵格化處理.如圖1所示,首先建立一個(gè)平行于LiDAR的x-y平面的二維網(wǎng)格,將每個(gè)激光點(diǎn)進(jìn)行投影,然后提取每個(gè)網(wǎng)格單元中的統(tǒng)計(jì)學(xué)信息.
圖1 點(diǎn)云數(shù)據(jù)處理流程
基于全卷積神經(jīng)網(wǎng)絡(luò)的道路檢測網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示.
圖2 基于全卷積神經(jīng)網(wǎng)絡(luò)的道路檢測網(wǎng)絡(luò)結(jié)構(gòu)
該網(wǎng)絡(luò)可以分為輸入層、編碼層、全卷積層、解碼層、輸出層5部分.
1)輸入層.針對(duì)道路檢測任務(wù),在每個(gè)柵格中提取點(diǎn)云數(shù)量、平均反射率、平均點(diǎn)云高度、點(diǎn)云高度標(biāo)準(zhǔn)差、最大點(diǎn)云高度和最小點(diǎn)云高度6個(gè)特征.
2)編碼層.利用了降采樣(Subsampling)網(wǎng)絡(luò)對(duì)于原特征圖進(jìn)行編碼,降低FCN網(wǎng)絡(luò)的內(nèi)存需求.卷積(Convolution)部分的卷積核為3×3,步長為1,填充策略為零填充,激活函數(shù)為ELU;降采樣部分采用了窗口為2×2、步長為2的最大池化層.
3)全卷積層.通過使用擴(kuò)展卷積(Dilated Convolutions)[10]實(shí)現(xiàn)網(wǎng)絡(luò)在不明顯提高卷積層數(shù)的基礎(chǔ)上擴(kuò)大網(wǎng)絡(luò)的感知域,提高網(wǎng)絡(luò)對(duì)于稀疏點(diǎn)云投影圖的學(xué)習(xí)能力.擴(kuò)展卷積部分的卷積核為3×3,步長為1,填充策略為零填充,激活函數(shù)為ELU;卷積部分的卷積核為1×1.
4)解碼層.利用最大反池化層進(jìn)行上采樣(Upsampling),得到與輸入層大小相同的輸出圖.卷積部分的卷積核為3×3,步長為1,填充策略為零填充,激活函數(shù)為ELU;利用Softmax回歸輸出道路檢測結(jié)果的概率圖.
5)輸出層.返回語義分割結(jié)果圖,即圖像中的每個(gè)值代表其對(duì)應(yīng)網(wǎng)格單元是否為可通行道路區(qū)域.
采用Adam優(yōu)化算法[11]對(duì)FCN網(wǎng)絡(luò)進(jìn)行訓(xùn)練,初始學(xué)習(xí)率為0.01,學(xué)習(xí)衰減率為2.如式(1)所示,以二值交叉熵為損失函數(shù):
(1)
式中:W和H為輸出層的寬度和高度;N為批量尺寸,設(shè)置為25;y為FCN網(wǎng)絡(luò)預(yù)測的道路區(qū)域的概率.
為了提高模型泛化能力,防止出現(xiàn)過擬合,在每個(gè)擴(kuò)展網(wǎng)絡(luò)層之間添加空間丟棄層(Spatial Dropout 2D)[12],丟棄比例為0.25.FCN網(wǎng)絡(luò)使用以Tensorflow為后端的Keras框架實(shí)現(xiàn),并在內(nèi)存為16GB的Nvidia Tesla T4上進(jìn)行訓(xùn)練.
KITTI Road and Lane Estimation Benchmark數(shù)據(jù)集[13]中含有289個(gè)訓(xùn)練集和290個(gè)測試集數(shù)據(jù),包含城市無標(biāo)記道路(uu)、城市有標(biāo)記道路(um)、城市有標(biāo)記多車道道路(umm)3類典型駕駛場景.每個(gè)場景包含彩色圖像、灰度圖像、訓(xùn)練標(biāo)簽、激光雷達(dá)點(diǎn)云、相機(jī)雷達(dá)校準(zhǔn)參數(shù)等多種信息.
在本研究中,如表1所示,對(duì)于3類訓(xùn)練集數(shù)據(jù)分別進(jìn)行隨機(jī)采樣,各選取10份數(shù)據(jù)作為驗(yàn)證集.訓(xùn)練集用于訓(xùn)練FCN網(wǎng)絡(luò)權(quán)值,驗(yàn)證集用于評(píng)估每次訓(xùn)練的效果,測試集用于對(duì)于模型泛化誤差的評(píng)估.
表1 KITTI數(shù)據(jù)集信息與劃分
如圖3所示,KITTI數(shù)據(jù)集提供的訓(xùn)練標(biāo)簽是在透視圖的基礎(chǔ)上手工標(biāo)注的.因此,需要將激光雷達(dá)點(diǎn)云(圖3(a))與標(biāo)簽數(shù)據(jù)(圖3(c))進(jìn)行融合,以確定每個(gè)激光點(diǎn)是否屬于道路區(qū)域,進(jìn)而得到特征圖的標(biāo)簽.
圖3 KITTI數(shù)據(jù)集信息
針對(duì)上述問題,一種常用的方法是對(duì)于圖片進(jìn)行逆透視變換(Inverse Perspective Mapping, IPM),即將由于透視效應(yīng)存在使得原本平行的事物在圖像中呈現(xiàn)相交的直線重新變?yōu)槠叫械牟僮?然而,IPM算法的前提假設(shè)是平坦無障礙的平面.在本研究的問題中,如圖4所示,激光雷達(dá)和視覺傳感器會(huì)采集車輛前方超過30 m的環(huán)境數(shù)據(jù),顯然會(huì)有大量情況不滿足上述假設(shè),從而導(dǎo)致獲取的標(biāo)簽信息錯(cuò)誤.另一種方法是依靠激光雷達(dá)和視覺傳感器之間的位置關(guān)系,將點(diǎn)云數(shù)據(jù)投影至透視圖中,以確定激光點(diǎn)的標(biāo)簽類型.
圖4 IPM投影誤差
在獲取標(biāo)簽數(shù)據(jù)后,需要對(duì)于點(diǎn)云進(jìn)行壓縮和柵格化處理.本研究將網(wǎng)格覆蓋區(qū)域限定為以車輛前方6 m為中心的寬20 m、長40 m的矩形區(qū)域,每個(gè)網(wǎng)格大小設(shè)置為0.1 m×0.1 m.本研究采用多數(shù)票規(guī)則獲得每個(gè)柵格的標(biāo)簽,即柵格中大多數(shù)點(diǎn)云的標(biāo)簽決定該柵格的標(biāo)簽.考慮到FCN網(wǎng)絡(luò)的訓(xùn)練,網(wǎng)格區(qū)域的標(biāo)簽采用one-hot編碼規(guī)則[14].
在道路檢測任務(wù)中,一般將道路區(qū)域記為正類(Positive),其他區(qū)域記為負(fù)類(Negative).根據(jù)樣本的實(shí)際類別與分類器預(yù)測結(jié)果的組合,數(shù)據(jù)可以分為4類:判斷為正類的正類數(shù)據(jù)(True Positive)、判斷為負(fù)類的負(fù)類數(shù)據(jù)(True Negative)、判斷為正類的負(fù)類數(shù)據(jù)(False Positive)和判斷為負(fù)類的正類數(shù)據(jù)(False Negative).在此基礎(chǔ)上,道路檢測問題的混淆矩陣(Confusion Matrix)如表2所示.
表2 混淆矩陣
利用混淆矩陣的4個(gè)指標(biāo),可以得到評(píng)價(jià)道路檢測算法的常用指標(biāo):精確率、召回率、假陽性率和F值.精確率(Precision)指的是正類集合中被預(yù)測為正類的實(shí)例數(shù)量在所有預(yù)測為正類的實(shí)例數(shù)量中所占比例.召回率(Recall)指的是正類集合中預(yù)測為正類的實(shí)例數(shù)量在總體集合中正類實(shí)例總數(shù)中所占比例.假陽性率(FPR)指的是負(fù)類集合中預(yù)測為正類的實(shí)例數(shù)量在總體集合中負(fù)類實(shí)例總數(shù)中所占比例.綜合考慮精確率和召回率兩個(gè)指標(biāo),可以得到F值(F1-measure)指標(biāo).
,
(2)
,
(3)
,
(4)
.
(5)
本研究算法在KITTI數(shù)據(jù)集下測試,并采用將帶標(biāo)簽激光雷達(dá)點(diǎn)云數(shù)據(jù)投影至相機(jī)圖像的方法進(jìn)行結(jié)果展示.圖5、圖6、圖7分別展示了模型在3類不同場景下的檢測情況.
圖5 城市無標(biāo)記道路檢測結(jié)果
圖6 城市有標(biāo)記道路檢測結(jié)果
圖7 城市有標(biāo)記多車道道路
從總體上看,模型對(duì)于各類道路場景具有較強(qiáng)的魯棒性,在有標(biāo)記道路和有標(biāo)記多車道道路上檢測效果較好,在無標(biāo)記道路上檢測結(jié)果較差,噪點(diǎn)較為明顯.對(duì)于場景中出現(xiàn)的障礙物,盡管有部分車身和障礙物表明包含有道路點(diǎn),但這并不會(huì)顯著影響對(duì)于道路的檢測.從點(diǎn)云俯視圖上來看,此類點(diǎn)由于具有相同的x和y的值,因而不會(huì)擴(kuò)大道路范圍.
表3為采用基于全卷積神經(jīng)網(wǎng)絡(luò)的道路檢測模型在KITTI數(shù)據(jù)集上的測試結(jié)果.在各類場景下,道路檢測的平均精確率為80.65%,平均召回率為77.01%,平均假陽性率為0.58%,平均F值為78.40%.
表3 KITTI數(shù)據(jù)集測試結(jié)果
盡管采用3類數(shù)據(jù)同時(shí)進(jìn)行訓(xùn)練,但模型對(duì)于三類道路的檢測能力有所不同.從精準(zhǔn)度和假陽性率來看,模型對(duì)有標(biāo)記多車道道路的檢測更好,即檢測為車道的部分可通行的概率更高;而從召回率來看,模型對(duì)有標(biāo)記道路的檢查更好,即檢測為車道的部分與真實(shí)車道的重合率更高.綜合考慮以上指標(biāo),模型對(duì)于有標(biāo)記道路的檢測能力最高.
分析原因,車道線相比普通路面的反射率更高,提高了模型對(duì)于道路的檢測效果.為了進(jìn)一步提高模型對(duì)于道路檢測的準(zhǔn)確度,可以考慮對(duì)于無標(biāo)記道路進(jìn)行單獨(dú)訓(xùn)練,通過激光雷達(dá)或相機(jī)檢測當(dāng)前環(huán)境是否存在車道線而決定使用何種模型進(jìn)行道路檢測.
從耗時(shí)來看,各類場景下的平均檢測耗時(shí)為93.6 ms.盡管耗時(shí)接近百毫秒,但考慮到檢測范圍為車輛前方6 m至46 m,所以認(rèn)為該模型能夠滿足實(shí)時(shí)檢測的要求.為了進(jìn)一步提高算法效率,可以考慮使用性能更高的GPU進(jìn)行模型的預(yù)測.
激光雷達(dá)采集到的點(diǎn)云信息是不均勻的,密度隨著距離增加而減小.因此,不同的感知范圍將影響感知結(jié)果.表4為不同感知范圍對(duì)于模型評(píng)價(jià)指標(biāo)的影響.
表4 不同距離模型檢測效果
由表4可知,該模型在23 m以內(nèi)表現(xiàn)最好,之后隨著距離的增加檢測能力有一定下降.但在38 m的范圍內(nèi)F1-measure的值都超過了82%,具有較強(qiáng)的檢測能力.為了處理更遠(yuǎn)距離的道路檢測問題,可以考慮采用累計(jì)的點(diǎn)云進(jìn)行訓(xùn)練和預(yù)測.
針對(duì)無人駕駛中的道路檢測問題,本研究提出了一種基于全卷積神經(jīng)網(wǎng)絡(luò)和點(diǎn)云的道路檢測算法.算法通過點(diǎn)云構(gòu)建、標(biāo)簽獲取、網(wǎng)絡(luò)訓(xùn)練、模型預(yù)測等步驟對(duì)于車輛前方道路進(jìn)行檢測,并在KITTI數(shù)據(jù)集上進(jìn)行了效果測試.結(jié)果表明,道路檢測算法的平均精確率為80.65%,平均召回率為77.01%,平均假陽性率為0.58%,平均F值為78.40%,平均檢測耗時(shí)為93.6 ms,前方38 m范圍內(nèi)均有較強(qiáng)的檢測能力,對(duì)于各類場景具有較強(qiáng)的魯棒性.算法在識(shí)別精度、計(jì)算耗時(shí)、感知范圍和穩(wěn)定性上能夠滿足對(duì)于車輛前方道路的檢測要求.