孫 揚,唐大山
(1.河北工程大學(xué)機械與裝備工程學(xué)院,河北 邯鄲 056038;2.邯鄲市智能車輛重點實驗室,河北 邯鄲 056000)
感知三維環(huán)境對無人駕駛車輛的行駛至關(guān)重要。利用激光雷達傳感器獲取空間點云在無人駕駛中廣泛應(yīng)用[1]。因而有效的獲取點云表達的信息,精準的檢測目標是無人駕駛的關(guān)鍵。
卷積神經(jīng)網(wǎng)絡(luò)作為深度學(xué)習(xí)的標配,廣泛的應(yīng)用于無人駕駛的環(huán)境感知中。卷積運算可以有效的提取圖像中目標的特征信息,從而檢測出目標。當(dāng)前研究背景下,大量基于單目視覺的檢測算法層出不窮,F(xiàn)aster RCNN[2]、SSD[3]以及YOLO[4]等經(jīng)典檢測器在檢測應(yīng)用中大放異彩。實際生活中,我們在機器人大部分的領(lǐng)域的應(yīng)用中,所檢測的目標均為三維物體,尤其是無人駕駛的領(lǐng)域中,環(huán)境感知的任務(wù)不僅要用精準的識別出行駛環(huán)境中的目標物,還要獲取目標物詳細的位姿信息(距離、方向、速度等),這是車輛行駛規(guī)劃的基礎(chǔ),也是安全行駛的保證。實際上從二維圖像上獲取目標精確的位姿信息是困難的,特別是隨著檢測距離增長,這種缺點被放大的越來越明顯。雖然隨著RGB-D的傳感器以及融合距離信息的檢測算法的出現(xiàn),大大的改善了相機視覺檢測的不足,但是如激光雷達這樣的高精度三維傳感器仍是更為廣泛使用的。
目前針對激光雷達點云處理的方式主要有兩種:點云特征提取和二維平面映射。PointNet[5]作為早期的點云特征提取網(wǎng)絡(luò),將點云直接輸入到神經(jīng)網(wǎng)絡(luò)中,獲取點云的整體特征,忽略了點云的局部信息,雖然在隨后提出PointNet++[6]網(wǎng)絡(luò)增加了局部信息的提取,改善了網(wǎng)絡(luò)結(jié)構(gòu),但是直接應(yīng)用點云的輸入尤其是在無人駕駛場景內(nèi)的點云輸入,計算成本是非常昂貴的。二維平面映射處理可以有降低計算成本,同時目前針對二維平面映射常用的處理方式有:全景(以車輛為中心,360°映射)和鳥瞰(自上而下)。
在實際的交通環(huán)境中,車輛始終是在路面上行駛的,使用鳥瞰圖處理可以更好的表達行駛車輛的位姿信息和輪廓信息。將激光雷達采集的點云轉(zhuǎn)化為鳥瞰視圖,不僅降低點云維度而且保留了點云的高度信息。雖然目前大部分算法檢測速度較快,同時具有較好的泛化能力,但是其精度相對較低,在檢測一些小目標和距離較遠的目標時,檢測結(jié)果難以讓人滿意。
綜上所述,為滿足車輛檢測算法在實時性和準確性上的較高要求,基于RetinaNet[7]網(wǎng)絡(luò)結(jié)構(gòu),并對網(wǎng)絡(luò)層的參數(shù)進行調(diào)優(yōu)。然后采用KITTI[8]車輛數(shù)據(jù)集,對改進后的網(wǎng)絡(luò)模型進行訓(xùn)練,結(jié)果表明:在能夠保證實時性的前提下,這里改進后的神經(jīng)網(wǎng)絡(luò),在檢測遠處車輛以及小尺度目標時能夠得到較高的檢測精度。
這里提出了一個有效的目標檢測器,它能夠根據(jù)激光雷達給定的點云信息,精準的獲取目標的位姿信息。采用鳥瞰圖的方式表示的激光雷達的點云信息,更易于點云的實時檢測,更貼合無人駕駛的應(yīng)用環(huán)境。
首先,利用直通濾波算法對原始點云進行濾波處理,精確檢測范圍,降低點云數(shù)量;然后,對點云進行二維映射處理轉(zhuǎn)化為鳥瞰視角,并使數(shù)據(jù)張量化;其次,利用ResNet[9]、FPN[10]以及Det-Net[11]構(gòu)建一個多尺度特征金字塔網(wǎng)絡(luò)結(jié)構(gòu);最后,通過對比實驗對這里的算法進行分析?;诩す饫走_的車輛檢測算法結(jié)構(gòu),如圖1所示。
圖1 車輛檢測算法結(jié)構(gòu)Fig.1 Vehicle Detection Algorithm Structure
2.1.1 基于直通濾波算法的點云預(yù)處理
設(shè)點云樣本為:
式中:pi—樣本中點的三維坐標值,即pi(xi,yi,zi);
n—樣本中點的總個數(shù)。
設(shè)置三個軸向的濾波范圍分別為:
保留點云中三個坐標值均在濾波范圍內(nèi)的點。未處理點云視圖,點云數(shù)量龐大,大部分為無效檢測范圍,增加了計算成本,如圖2(a)所示;直通濾波處理后的點云視圖,點云數(shù)量大幅度降低,檢測范圍更加精確,可以為后續(xù)的神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練提供良好的數(shù)據(jù)支撐,如圖2(b)所示。
圖2 點云濾波前后對比Fig.2 Comparison of Point Cloud Before and After Filter
2.1.2 二維映射處理及數(shù)據(jù)張量化
經(jīng)過點云預(yù)處理,獲得空間尺度為L×W×H的場景點云,對其進行二維映射處理轉(zhuǎn)換成鳥瞰視角圖。首先,對這個點云空間做離散化處理得到單位空間dl×dw×dh,如果單位空間有點云占用則編碼為1,否則為0。以同樣的方式對激光雷達獲取的反射率進行歸一化處理為[0,1]范圍的值。最終形成的輸入張量的尺寸為:
式中:L—點云空間的長度;W—點云空間的寬度;H—點云空間的高度;dl—點云空間的單位長度;dw—點云空間的單位寬度;dh—點云空間的單位高度。
2.2.1 卷積神經(jīng)網(wǎng)絡(luò)
網(wǎng)絡(luò)結(jié)構(gòu)為全卷積神經(jīng)網(wǎng)絡(luò),卷積運算是卷積神經(jīng)網(wǎng)絡(luò)的核心內(nèi)容。卷積運算公式為:
式中:*—卷積運算符號;x—輸入值;w—卷積核函數(shù);t—卷積的變量;s(t)—輸出值。
x和w兩個參數(shù)定義在t上,在卷積核感受野范圍內(nèi)相乘求和最終輸出,通常計算機在處理數(shù)據(jù)時變量t會被離散化,這樣一來t只能取整數(shù),那么離散形式的卷積就定義為:
在實際的卷積神經(jīng)網(wǎng)絡(luò)中,卷積的輸入形式為矩陣形式核函數(shù)一般是通過反向傳播更新權(quán)值,二維圖像的實質(zhì)就是一個矩陣的表示,將圖像I作為輸入,以及一個二維的卷積核K,二維卷積運算可以定義為:
通過將激光雷達收集的三維點云進行二維映射處理,所得鳥瞰視角圖形,能夠滿足二維卷積的應(yīng)用。
2.2.2 總結(jié)網(wǎng)絡(luò)總體結(jié)構(gòu)
檢測網(wǎng)絡(luò)總體結(jié)構(gòu),如圖3 所示。利用ResNet、FPN 以及DetNet構(gòu)建一個多尺度特征金字塔。將高分辨率特征圖與低分辨率特征圖相結(jié)合,輸入到子網(wǎng)絡(luò)中完成最后的分類任務(wù)和回歸任務(wù)。網(wǎng)絡(luò)中前4個Stage由殘差模塊組成,且每個Stage中殘差瓶頸模塊個數(shù)分別為(3,6,7,3),形成51 層的殘差網(wǎng)絡(luò),并且Stage中第一殘差瓶頸模塊進行一次下采樣,共進行4次下采樣,將圖片尺寸壓縮為原尺寸的;Stage5和Stage6為空洞卷積構(gòu)成特征提取網(wǎng)絡(luò),每個Stage都由3個空洞殘差瓶頸模塊組成,且不進行下采樣操作,如圖4所示;最后添加一條自上而下的融合網(wǎng)絡(luò),通過融合每個階段提取的特征,完成車輛檢測。
圖3 網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 Network Structure
圖4 Stage5網(wǎng)絡(luò)結(jié)構(gòu)Fig.4 Stage5 Network Structure
2.2.3 空洞瓶頸模塊
研究表明對于類似特征金字塔結(jié)構(gòu)的網(wǎng)絡(luò)模型:較大的目標應(yīng)該在深度較大的特征圖上進行檢測,同時又因為在網(wǎng)絡(luò)較深時下采樣率較大,檢測目標的邊緣信息難以精確預(yù)測,使得邊界回歸的難度加大;較小的目標又因為較大的下采樣率使得其在更深的網(wǎng)絡(luò)特征圖中變得幾乎不可見,雖然在組成特征金字塔網(wǎng)絡(luò)時,較小的檢測目標可以使用淺層網(wǎng)絡(luò)檢測,但是淺層網(wǎng)絡(luò)的語義信息較弱,增加了目標物檢測的難度。通過引入空洞卷積使得模型具有較大的感受視野,同時在組成特征金字塔結(jié)構(gòu)時,由于特征圖尺寸相同,因此不需要經(jīng)過上采樣操作,可以直接傳遞相加,減少計算量的同時增強最終的檢測效果,如圖4所示。
2.2.4 多尺寸特征融合網(wǎng)絡(luò)
傳統(tǒng)的物體檢測模型通常只在深度卷積網(wǎng)絡(luò)的最后一個特征圖上進行后續(xù)操作,然而卷積網(wǎng)絡(luò)又因多次下采樣操作使得最后一層網(wǎng)絡(luò)對應(yīng)的下采樣率較大,造成物體在特征圖上的有效信息不夠全面,增加了網(wǎng)絡(luò)在車輛檢測中分類和回歸任務(wù)的難度。使用多尺度特征融合網(wǎng)絡(luò)可以有效的避免傳統(tǒng)檢測方法中的局限性。添加一條自上而下路徑,如圖3所示。將每個模塊提取的特征作為輸入,通過反卷積處理將特征圖放大至同一特征圖大小。將上采樣所得特征圖自上而下與相應(yīng)分辨率特征圖逐元素求和,得出最終的特征映射。
2.2.5 非極大值抑制
為了保證物體檢測的召回率,在檢測網(wǎng)絡(luò)計算輸出中通常不止有一個候選框?qū)?yīng)同一個真實的目標,也正是如此需要在網(wǎng)絡(luò)最后增加一個非極大值抑制操作,將冗余的預(yù)測去掉,保留最終的精確預(yù)測。其計算流程,如圖5所示。
圖5 非極大值抑制流程圖Fig.5 Flow Chart of Non-Maximum Suppression
2.2.6 評價標準
網(wǎng)絡(luò)模型在KITTI測試數(shù)據(jù)集進行測試,并以交并比(Intersection over Union,IoU)及計算車輛檢測平均準確率(Average Precision,AP)為評價指標。其中Precision、Recalled、AP 具體計算公式為:
式中:TP—網(wǎng)絡(luò)模型將車輛正確地預(yù)測車輛;FP—網(wǎng)絡(luò)模型將非車輛錯誤地預(yù)測為車輛;FN—網(wǎng)絡(luò)模型將車輛錯誤地預(yù)測非車輛;TN—模型將非車輛正確地預(yù)測為非車輛。
實驗配置環(huán)境為:英特爾Core i9-9900K 處理器;Nvidia Quadro RTX 6000 24GB顯卡;32GB內(nèi)存;在Ubuntu18.04操作系統(tǒng)下,使用pytorch1.4.0深度學(xué)習(xí)框架,實現(xiàn)網(wǎng)絡(luò)模型訓(xùn)練,并使用CUDA訓(xùn)練的加速處理。利用KITTI數(shù)據(jù)集進行實驗,共選取了7480個velodyne 64線激光雷達點云文件,按照1:1的比例分為訓(xùn)練集和測試集。訓(xùn)練集用于訓(xùn)練這里的網(wǎng)絡(luò)模型、測試集用于估計學(xué)習(xí)過程完成之后的學(xué)習(xí)器的泛化誤差。
設(shè)置實際檢測點云的范圍為(80×70)m 并以0.1m 為離散分辨率進行鳥瞰投影。以激光雷達為原點設(shè)置檢測高度為[-2.5,1]m,并0.1m為單位將空間分割為35個切片。最后與反射率結(jié)合形成尺寸為(800×700×36)的張量。
將預(yù)處理后的點云數(shù)據(jù)輸入到神經(jīng)網(wǎng)絡(luò)中進行迭代訓(xùn)練,并保存訓(xùn)練日志。通過TensorBoard查看網(wǎng)絡(luò)訓(xùn)練損失和驗證損失的折線圖,如圖6所示。當(dāng)神經(jīng)網(wǎng)絡(luò)訓(xùn)練周期達到20批次時,神經(jīng)網(wǎng)絡(luò)的訓(xùn)練損失值維持在0.1左右,并趨于平緩;對于驗證集數(shù)據(jù),當(dāng)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練周期達到30批次時,神經(jīng)網(wǎng)絡(luò)測試的損失值維持在0.2左右,并趨于平緩,未出現(xiàn)過擬合現(xiàn)象。
圖6 訓(xùn)練和驗證誤差Fig.6 Loss Values of Training and Validation
在KITTI數(shù)據(jù)集下,對比多種網(wǎng)絡(luò)的檢測速度和檢測精度。對比結(jié)果,如表1所示。設(shè)交并比(Intersection over Union,IoU)的值為0.7,并在同一實驗環(huán)境下,將經(jīng)過同一處理方法處理所得的點云數(shù)據(jù)輸入到不同的網(wǎng)絡(luò)之中進行訓(xùn)練,與這里設(shè)計的深度神經(jīng)網(wǎng)絡(luò)框架對比,結(jié)果得出:
表1 車輛鳥瞰視圖檢測精度對比Tab.1 Average Precision Comparison of Aerial View Detection
(1)使用本網(wǎng)絡(luò)的平均準確率高于MV3D、MV3D+im的平均準確率分別提升1.58個百分點和2.69個百分點。
(2)在處理速度上本網(wǎng)絡(luò)大幅度提升,處理時間降至101ms,滿足無人駕駛車輛實時檢測的需求。使用這里方法得到的車輛檢測的結(jié)果,并采用鳥瞰圖的形式展現(xiàn),如圖7所示。
基于三維激光雷達采集的點云數(shù)據(jù),采用直通濾波對原始數(shù)據(jù)進行預(yù)處理,確定有效的檢測范圍,然后通過二維點云映射轉(zhuǎn)換成鳥瞰視角圖像。應(yīng)用空洞卷積擴大網(wǎng)絡(luò)的感受視野,增強對大目標回歸邊界的精度及小目標的檢測精度;應(yīng)用非極大值抑制去除冗余的候選框,保證結(jié)果的最佳輸出。實驗結(jié)果表明,在數(shù)據(jù)集上車輛檢測的速度及精度有明顯的提升,為無人駕駛技術(shù)提供一種有效的目標檢測算法。通過分析算法以及實驗結(jié)果發(fā)現(xiàn),使用單一傳感器用于無人駕駛的環(huán)境感知任務(wù)是有限的,在未來工作中將進一步融合其他傳感器信息,優(yōu)化算法模型,提高算法檢測精度。