史俊莉
(河南工業(yè)職業(yè)技術(shù)學(xué)院,河南 南陽 473000)
當(dāng)前無人駕駛技術(shù)已成為汽車導(dǎo)航領(lǐng)域的一個重要研究方向,因而車輛行駛過程中的目標(biāo)識別與避障技術(shù)成為了研究熱點[1]。依據(jù)不同的工作原理主要可以分為兩大類,一類是基于圖像識別技術(shù),另一類是基于激光雷達技術(shù)。
對于圖像識別技術(shù)而言,常采用RBG-D圖像識別技術(shù),由此克服二維圖像沒有距離信息的問題[2]。因為路上的車輛、行人等均是一個整體,故其在二維圖像中的幾何范圍是一個動態(tài)變化的區(qū)域,同時該動態(tài)變化區(qū)域的RBG符合一定的變化范圍,基于此結(jié)合其深度信息就能為車輛避障提供有效信息[3]。它的優(yōu)點是數(shù)據(jù)量小實時性好,缺點是對于行人、摩托車等相對小目標(biāo)而言,其距離信息誤差大,故其應(yīng)用于高速公路等場合時十分適用。Engelcke[4]提出了在RGB-D圖像上使用滑動提取的方式獲得目標(biāo)邊界框的算法,實現(xiàn)了利用深度變化值鎖定目標(biāo)的目的。Qi,C.R.[5]將F-PointNets算法應(yīng)用于特征面形識別,從而大幅簡化了圖像之間的中繼過程,提高了識別效率。對于基于激光雷達技術(shù)而言,目標(biāo)大小的影響可以忽略,都可以獲取精確的距離信息,優(yōu)點是精度高穩(wěn)定性好,缺點是從點云數(shù)據(jù)集中提取目標(biāo)時匹配準(zhǔn)確度容易受訓(xùn)練樣本影響,且三維點云數(shù)據(jù)運算量大。Chen,X.[6]在其系列研究中對特征獲取、邊界提取等具有很好目標(biāo)識別結(jié)果,唯一的缺點是運算量很大,實時性降低。González,A[7-8]采用將三維數(shù)據(jù)向二維平面投影的方式,大幅提升了處理速度,但是尺寸較小的行人等目標(biāo)的空間信息丟失嚴重,影響了其適用性。
由此基于體素化的三維目標(biāo)識別方法由于其保留空間特征的同時,大幅降低了數(shù)據(jù)運算量,故得到了廣泛關(guān)注。本文設(shè)計了一種基于極坐標(biāo)系的體素表達方式,并采用改進的區(qū)域推薦網(wǎng)絡(luò)(RPN,Region Proposal Network[9-10])算法抑制了目標(biāo)點云匹配中角度誤差,從而提高了系統(tǒng)目標(biāo)識別精度。
在VoxelNet中,點云數(shù)據(jù)的體素化如果采用不同的坐標(biāo)系,則會有不同個劃分方式,基于傳統(tǒng)的直角坐標(biāo)系的結(jié)果如圖1(a)所示,而基于極坐標(biāo)系的結(jié)果如圖1(b)所示。由于車載激光雷達本身就是以一個激光雷達光源為原點的,故其采用極坐標(biāo)系的體素化方法更有利于數(shù)據(jù)分類與提取。
圖1(a)是采用直角坐標(biāo)系的體素化結(jié)果,一般這種體素化方式適用于具有掃描結(jié)構(gòu)的系統(tǒng)中,可以沿著直角坐標(biāo)系中的一個軸進行數(shù)據(jù)獲取,并且與二維圖像進行映射,從而達到較好的對應(yīng)效果。而對于車載激光雷達而言,由于激光掃描方式是以車輛為圓心的,故其形成一個同心圓效果,所以采用極坐標(biāo)系實現(xiàn)體素化更符合特點,也是抑制目標(biāo)提取時角度誤差的重要依據(jù)。
圖1 體素化在不同坐標(biāo)系下的表達形式
假設(shè)極坐標(biāo)系的三個自變量分別是r,α和z。則將直角坐標(biāo)系中的任意點(x,y,z)變換至極坐標(biāo)系時,有:
(1)
經(jīng)過對原有點云數(shù)據(jù)進行體素化后,需要對點云點進行聚類。由于激光雷達在可探測角度范圍內(nèi)是均勻掃描的,所以基于極坐標(biāo)系的體素分割比直角坐標(biāo)系的更均勻。對獲得的稀疏點云進行數(shù)據(jù)處理,設(shè)每個非空體素中的最大點數(shù)為T,并自動丟棄冗余點;如果點云小于T的,設(shè)置為零。假設(shè)每個體素的最大體素數(shù)為K、最大點數(shù)為T,則體素聚類的矩陣張量為4×K×T。
設(shè)非空體素的表達式為:
V={pi=[ri,αi,zi,qi]T∈R4}
(2)
式中,其中r,α和z為極坐標(biāo)系的三個分量;q表示回波強度;下標(biāo)i表示任意點;i∈[1,t],i∈R+。首先,估計每個體素中所有點的平均值為Vm=(vr,vα,vz),中心值為Vc=(cr,cα,cz)。然后,將平均距離和從每個點到體素中心的距離相加得到其特征。最后,生成形式10×K×T的張量為:
pi=[ri,αi,zi,qi,ri-vr,αi-vα,zi-vz,ri-cr,αi-cα,zi-cz]
(3)
體素特征提取一般通過體素特征編碼(Voxel Feature Encoding,VFE)實現(xiàn),VFE層(如圖2所示)以聚類體素為輸入,并使用全連接層,批處理規(guī)范和ReLU激活函數(shù)提取特征。設(shè)VFE的輸出節(jié)點數(shù)為C=2×n,n∈Z+時,VFE層獲取對應(yīng)于同一體素的10×T個點,并完全連接到C/2的輸出,可獲得尺寸為K×C/2的特征。然后使用最大池化獲得每個體素的局部聚集特征尺寸K×1,最后將其復(fù)制到點對點特征中,獲得最終的體素特征K×C。
圖2 VFE層結(jié)構(gòu)示意圖
采用稀疏卷積提取空間特征,在逐漸增加體素特征參數(shù)的過程中,提高對測試區(qū)域中目標(biāo)形狀的描述??臻g特征提取層可以提取有關(guān)z軸的信息,并將稀疏的3D數(shù)據(jù)轉(zhuǎn)換為密集的2D偽圖像??臻g特征提取層將從體素特征提取層獲得的特征作為輸入,并根據(jù)體素網(wǎng)格中每個體素的坐標(biāo)將非空體素轉(zhuǎn)換為稀疏4D張量,然后提取空間特征。
由于卷積層中的卷積核具有固定的形式,其數(shù)據(jù)限定域仍為正方形,所以經(jīng)過多次卷積后,由極坐標(biāo)形式獲取的激光雷達數(shù)據(jù)的角度誤差會不斷被放大,導(dǎo)致測試精度降低。RPN算法通常用于確定特征圖的局部是否存在要檢測的目標(biāo),故本文對傳統(tǒng)RPN算法進行了改進,通過在體素中引入階躍參數(shù)s與填充參數(shù)f,對體素內(nèi)點云數(shù)量變化與有效點云數(shù)進行評價。改進的RPN算法結(jié)構(gòu)如圖3所示。
在改進的RPN模塊中,將卷積輸出的特征參數(shù)作為輸入對應(yīng)的輸出檢測框,圖中的2D Conv表示帶有非線性激活函數(shù)的2D卷積,然后再將所有不同形式輸出數(shù)據(jù)進行反卷積,最終完成數(shù)據(jù)特征的構(gòu)成,將三種數(shù)據(jù)特征整合后形成特征圖。最終系統(tǒng)采用特征圖完成置信度的計算與回歸圖的生成。
圖3 改進的RPN算法結(jié)構(gòu)圖
為了驗證算法的可行性,激光雷達數(shù)據(jù)選用KITTI的開源數(shù)據(jù)。神經(jīng)網(wǎng)絡(luò)訓(xùn)練是通過映射模型參數(shù)的調(diào)整實現(xiàn)的。在深度學(xué)習(xí)網(wǎng)絡(luò)模型訓(xùn)練過程中,數(shù)據(jù)量對網(wǎng)絡(luò)的收斂速度和泛化性能有很大影響。在訓(xùn)練過程中,從數(shù)據(jù)集中隨機提取n個地面目標(biāo),并將其插入當(dāng)前的訓(xùn)練數(shù)據(jù)中。采用該策略大大增加了每個幀點云中實際目標(biāo)的數(shù)量,降低了隨機干擾??紤]到噪聲對網(wǎng)絡(luò)性能的影響,使用了VoxelNet中的類似方法。對于每一幀都采用點云獨立變換的方式完成,而不是采用相同參數(shù)對所有點云同時變換。使用Adam優(yōu)化器,初始學(xué)習(xí)率設(shè)置為0.0002,并且在訓(xùn)練過程中使用學(xué)習(xí)率衰減策略,共訓(xùn)練100代,用時10 h(硬件采用i5 CPU配合NVIDIA RTX 2080 Ti顯卡)。數(shù)據(jù)分析結(jié)果采用平均精度和平均方向相似度來分析不同算法的測試結(jié)果。
與用于點云數(shù)據(jù)目標(biāo)框圖選擇常用的SECOND算法進行對比分析,對包含汽車、摩托、行人、樹木及建筑物的測試環(huán)境進行分析,測試環(huán)境可見光圖像、經(jīng)本文算法獲取的點云數(shù)據(jù)與目標(biāo)識別框圖如圖4所示。
如圖4(a)和(c)所示,在可見光圖像中車輛目標(biāo)由于樹蔭的遮光效果,使其清晰度很差,但在點云數(shù)據(jù)中具有較清晰的回波點云特征,結(jié)合點云特征通過本算法完成了測試目標(biāo)的框選。如圖4(b)和(d)所示,當(dāng)測試環(huán)境復(fù)雜時,路面上除了汽車還存在摩托車、行人時,根據(jù)不同的目標(biāo)點云特征,可以將不同類型目標(biāo)進行區(qū)分。并且在目標(biāo)點云識別圖像中右側(cè)出現(xiàn)的建筑物表面特征也十分清晰,而左側(cè)的自行車堆呈現(xiàn)為雜散點云集合,類似建筑但彌散性更強。由此可見,采用本算法可以很好地完成對不同目標(biāo)的區(qū)分,并為無人駕駛提供更準(zhǔn)確的安全導(dǎo)航定位信息。
圖4 不同測試環(huán)境下目標(biāo)識別點云結(jié)果
對同一組的點云數(shù)據(jù)進行比較,將本系統(tǒng)識別結(jié)果的平均精度(Mean Average Precision,MAP)與平均方向相似度(Average Orientation Similarity,AOS)與SECOND算法結(jié)果進行比較,兩個參量的計算方程如下:
(4)
通過對測試區(qū)域中所有待測目標(biāo)進行計算,可以得到每種目標(biāo)的MAP和AOS,對相同數(shù)據(jù)而言,兩種不同算法的測試結(jié)果如表1所示。
表1 算法測試結(jié)果對比
由表1的測試結(jié)果對比可知,對于汽車、摩托車及行人目標(biāo)而言,本算法的平均精度與平均方向相似度均優(yōu)于常用的SECOND算法。其中,MAP分別高出3.09 %、3.82 %和3.68 %,AOS分別高出3.13 %、3.19 %和4.18 %。對于樹木的點云區(qū)分中兩種方法檢測精度接近。分析認為,由于汽車、摩托車及行人均是運動目標(biāo),并且在不同測試站位對激光雷達幾何面形是不同的,故SECOND算法中每個站位的幾何映射都需要在直角坐標(biāo)系中首先轉(zhuǎn)化為相對激光雷達坐標(biāo)系的點云,這個過程會造成角度誤差。而采用本算法時,是基于極坐標(biāo)系完成的激光雷達點云體素化的,這樣即使是目標(biāo)移動,測試面也是以激光雷達光源為原點的極坐標(biāo)表達,所以其沒有點云數(shù)據(jù)角度變換的過程,避免了測試過程中的角度誤差。而樹木測試數(shù)據(jù)由于不能運動,故其在不同站位的點云集合具有連貫性,所以其點云數(shù)據(jù)匹配不需要坐標(biāo)變換,僅需要點云數(shù)據(jù)映射即可,故兩種方法檢測的平均精度與平均方向相似度基本不發(fā)生改變。
為了進一步驗證改進算法的時效性,將本算法與SECOND算法同時對等量的點云數(shù)據(jù)進行處理,并且分別記錄算法的收斂時間,測試點云數(shù)據(jù)量從1000個持續(xù)增加至10000個,算法收斂時間如圖5所示。
圖5 兩種算法在不同點云數(shù)據(jù)量下的收斂時間
由圖5可知,點云數(shù)據(jù)在3000個以下時,兩種算法的處理速度基本一致,由于點云數(shù)據(jù)總量較小,所以在目標(biāo)分類過程中是否采用更合理的點云分塊設(shè)計并不能體現(xiàn)更好的優(yōu)越性。但是,當(dāng)點云數(shù)據(jù)超過3000個后,除了目標(biāo)特征信息外的雜散點數(shù)據(jù)也逐漸增多,這時如果沒有采用本文的極坐標(biāo)體素化方式進行預(yù)處理,那么就會使后期目標(biāo)識別過程中需要更多的相關(guān)計算與邊界條件迭代才能達到預(yù)期分類精度。由此可見,本算法的處理速度優(yōu)于SECOND算法,尤其是在點云數(shù)據(jù)量較大的情況下。
本文針對車載激光雷達三維點云數(shù)據(jù)中動態(tài)目標(biāo)的識別問題,提出了一種基于極坐標(biāo)系表達的體素化分析識別算法。在重新構(gòu)建了體素化表征方式的基礎(chǔ)上,通過設(shè)置階躍參數(shù)與填充參數(shù)實現(xiàn)了對RPN算法的改進。實驗對KITTI數(shù)據(jù)庫中包含汽車、摩托車、行人與樹木的點云樣本進行測試,結(jié)果顯示,本算法的平均精度與平均方向相似度均優(yōu)于常用的SECOND算法,在點云目標(biāo)的動態(tài)框選中具有更好的應(yīng)用效果。