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