譚 珂,馬榮貴,駱 磊
(長安大學 信息工程學院,陜西 西安 710061)
車輛檢測是智能交通系統(tǒng)中一個不可或缺的重要環(huán)節(jié),能夠為道路交通控制、高速公路管理和緊急事件管理等諸多后續(xù)交通環(huán)節(jié)提供強有力的信息支撐[1]。目前車輛輪廓檢測獲取手段主要分為兩類:一種是通過圖片、視頻信息,利用多種神經(jīng)網(wǎng)絡進行訓練,獲取車輛輪廓信息[1-2];另一種是借助激光掃描技術,快速獲取復雜曲面的點云模型[3-6]。 當車輛低速通過龍門架,由安裝在龍門架兩端的測距雷達掃描車輛,獲取三維點云數(shù)據(jù)。由于兩端測距雷達水平方向距離車輛較近,并且高度較高,導致激光對車窗掃描時的入射角過大,又因車窗材質特殊,激光測量點嚴重偏離反射面,在車窗處產(chǎn)生特殊噪聲點。針對這類特殊噪聲點,該文提出一種改進的車窗三維點云數(shù)據(jù)修復算法。
對車窗處的點云數(shù)據(jù)重建有兩方面工作,一是去除特殊噪聲點,二是點云孔洞修復。在去除特殊噪聲點方面,文獻[7]中針對散亂點云特征提取過程中效率低和噪聲敏感性差的問題,采用主成分分析法和局部二次曲面擬合法對點云模型進行微分幾何信息估算,并利用雙閾值檢測方法對散亂點云的特征信息進行提取。文獻[8]采用支持向量機做二維數(shù)據(jù)的回歸分析,獲得殘缺點的坐標參數(shù),從而完成空洞修補,但是此方法會提取除車窗外的其他處特征點。文獻[9]提出了一種改進的八鄰域深度差算法進行邊界提取,但在面對車輛切片柵格數(shù)據(jù)中車窗部位邊界的拐角,即噪聲點和正常數(shù)據(jù)點同時處于一個八鄰域檢測框時,該框的深度值難以合理確定,容易造成噪聲消去不足或者將正常點云誤判為噪聲。
在點云空洞修復方面,文獻[10]提出了一種基于徑向基函數(shù)的復雜曲面的孔洞修補算法,能恢復原有模型的基本幾何特征;文獻[11]提出一種基于經(jīng)緯網(wǎng)格的點云修補算法,利用樣條插值進行孔洞填補,但是對目標物體表面的紋理有一定要求;文獻[12]提出一種基于SFM的三維點云孔洞修補算法,利用光柵投影法中得到的二維相位信息來提取三維點云孔洞區(qū)域的邊界點,從而完成對點云孔洞的填補,但是SFM數(shù)據(jù)集的獲取并非易事。
針對邊緣提取算法對車窗邊界不敏感,容易造成修復后的車輛數(shù)據(jù)和真實數(shù)據(jù)不匹配的問題,該文對其進行了改進,以點云間距與曲率作為雙閾值進行噪聲特征點提取,利用標準差確定閾值,通過閾值確定車窗處噪聲的邊界特征點并完成去噪,再使用徑向基函數(shù)對去噪后的車窗部分的點云數(shù)據(jù)進行修復。
考慮到點云處理時,車窗處的噪聲形狀不定,受車輛駛入角度,座位是否有人等情況影響,對三維車輛點云數(shù)據(jù)噪聲特征提取意義不大,該文對車輛點云數(shù)據(jù)進行切片,對每一個切片進行分析,提取車窗噪聲特征點。
點云間距在車輛點云數(shù)據(jù)中是一個重要的屬性,通常點云間距過大處,可以表示為孔洞或者非連接處,在文中車輛點云數(shù)據(jù)中,點云間距是車窗處噪聲點的一個很明顯的特征。圖1為一輛面包車右車身處的掃描點切面,可以看出矩形框圈出的是原本應該在車窗處的點云,受車窗材質影響,點云數(shù)據(jù)偏移,成為了異常噪聲點,而車窗部分因此缺失點云數(shù)據(jù),產(chǎn)生孔洞。
圖1 小面包車身右側面掃面切面
點間距通常用歐氏距離表示,一個切面上的p,q兩點間的歐氏距離計算方式如式(1)所示:
(1)
因為車窗邊界噪聲點的間距大小不一,單純使用間距表示特征效果較差。通過對間距進行微分,利用間距的變化程度,作為是否出現(xiàn)噪聲點的判斷依據(jù)效果良好。如圖2所示,圖中是車輛車頂輪廓局部的一處點云,單位為mm,橫坐標表示車輛的車身長度,縱坐標表示車輛的車身高度。
圖2 點間距說明示意圖
有p、q、m三個點,它們間距的變化量計算方式如式(2)所示:
(2)
其中,dLq為點q處的間距變化量,Lpq為相鄰兩點p、q的間距,Lqm為相鄰兩點q、m的間距。
點云數(shù)據(jù)中曲率可以客觀地表示出該點處的模型特征情況,局部一點的曲率越小,表明該點處的模型越平緩,局部一點的曲率越大,則表明該點處的模型越尖銳。計算近鄰點所對應的曲率變化,與設定的閾值對比,則可以有效提取出特征點。
離散點的曲率計算公式如式(3)所示:
(3)
其中,K表示曲率,y表示一個切面的數(shù)據(jù)點的縱坐標,則第i點處的y的一階導數(shù)的計算公式為:
(4)
同理,第i點處的y的二階導數(shù)計算公式如式(5)所示:
(5)
在車輛點云數(shù)據(jù)中,無論是曲率還是間距,車窗處的噪聲點都應該相較于正常點來說,遠偏于數(shù)據(jù)集,標準差可以很好地反映數(shù)據(jù)的離散程度。噪聲點的標準差與均值的和必定小于最大值,因此以標準差與均值的和作為閾值,可以提取出遠偏于實際數(shù)據(jù)的那部分。應用標準差與均值的和作為閾值,會將非車窗噪聲特征點進行提取,但因為由雙閾值共同確定噪聲邊界特征點,所以幾乎不會影響提取的準確度。
點間距變化量的標準差的計算方式如式(6)所示:
(6)
其中,N為一個切面內(nèi)的點云數(shù)據(jù)個數(shù)。
曲率的標準差的計算方式如式(7)所示:
(7)
計算當前切面的閾值,與每一個點處的間距變化量和曲率進行比較,當該點同時大于兩個閾值,則可以確定該點為車窗噪聲邊界特征點。
單閾值曲率提取噪聲特征點與雙閾值提取車窗噪聲特征點的對比如圖3所示,取車頭的一處車窗切面為例。橫縱坐標單位都是mm,縱坐標是車頭的高度,橫坐標是車身的側切面即車輛的長度,圖中標灰的點云是算法確定的車窗噪聲邊界特征點。
(a)單一閾值曲率確定噪聲特征點
(b)雙閾值確定噪聲特征點
可以看出,圖3(a)是將曲率作為唯一閾值進行判斷,圖中車身橫向邊緣上的很多灰色點云是被誤判為噪聲點的正常數(shù)據(jù),而圖3(b)是采用曲率和點間距雙閾值進行判斷后的特征點確定結果,由于考慮到點間距變化量閾值的限制,既標定了車窗處的噪聲特征點,又避免了單閾值誤判正常數(shù)據(jù)的情況,因此該文提出的雙閾值算法可以很好地對車窗噪聲邊界特征點進行識別。
在采用雙閾值去噪方法后,可以大致確定車窗噪聲點邊界。如圖4(a)所示,車窗處灰色較淺的點是特征提取算法識別出的車窗噪聲邊界點。
圖4(b)是根據(jù)識別的噪聲特征點,使用了最小二乘法進行了初步線性擬合后的結果,將分離的車窗噪聲特征點初步擬合成了閉合曲線。
(a)車窗邊界特征點確定圖
(b)車窗邊界初步擬合結果圖
對每一個切面使用擬合即可構成車窗,但是這種做法沒有考慮車窗的整體信息,只考慮了一個切面的車窗信息,受車窗邊界點的影響較大,重新構建的車窗曲面會因為各個切面直接彼此分離,呈凹凸不平感。因此需要從車窗整體數(shù)據(jù)考慮,進行車窗重建。
徑向基函數(shù)(radial basis function,RBF)是一種確定性的多維空間插值模型,可以有效逼近任意維度的空間數(shù)據(jù)[12]。RBF插值模型的插值精度受基函數(shù)形態(tài)參數(shù)的影響,如何快速獲取較優(yōu)的形態(tài)參數(shù),研究者們提出了不同的方法[13-17]。
在三維空間R3中,有點云集合P={p1,p2,…,pn},其分別對應約束值為{h1,h2,…,hn}。RBF方法要求擬合的目標曲面必須通過每一個測得的采樣值,故如果能構造函數(shù)f(x),使得每個點均滿足條件F(pi)=hi,那么一個隱式曲面就可以用方程F(qi)=0來表示。該文以確定的噪聲孔洞邊界點及其初步擬合邊界為基礎,建立基于徑向基函數(shù)的隱式曲面。
根據(jù)點云集合和約束條件,構建基于徑向基函數(shù)的隱式曲面,曲面表示如式(8)所示:
(8)
其中,r為構建曲面時通過的任意散亂點云,qj為建立曲面所需的采樣點,ωj為對應每個采樣點qj的權值,φ(r-qj)為徑向基函數(shù)。
P(r)=c0+c1r=p0+p1x+p2y+p3z
(9)
徑向基函數(shù)的插值函數(shù)表達式為:
(10)
在對空間散亂點進行插值時,根據(jù)文中需求,選擇立方體曲面函數(shù)作為基函數(shù),對于三維空間中的任意兩個散亂點,其基函數(shù)表達式如式(11)所示:
φ(qi-qj)=|qi-qj|3=
(11)
根據(jù)約束點和約束條件確定了曲面的隱式方程,如式(12):
(12)
曲面方程確定后,需要對車窗處的去噪后的點云孔洞進行修復。該文選擇梯度下降法計算車窗處需要填充的點云坐標。梯度下降法的計算過程就是沿梯度下降的方向求解極小值,它可以最快地向曲面迭代逼近。當滿足迭代需求或梯度下降變化為0時,迭代停止,即完成對孔洞部分的填充修補。
編程實現(xiàn)提出的雙閾值去噪算法對原始車輛點云數(shù)據(jù)進行去噪,對收集到的車輛數(shù)據(jù)進行實驗驗證。車輛修復重建的效果如圖5所示,圖中黑色部分表示車輛的數(shù)據(jù)點,灰色部分表示重建后車窗的數(shù)據(jù)點,其所在坐標系的單位均為mm。
(a)車輛原始點云
(b)車輛去噪點云
(c)車窗修復后
圖5(a)是激光雷達獲取的車輛的原始三維點維數(shù)據(jù)圖,圖5(b)是對面包車數(shù)據(jù)進行了雙閾值去噪并標記出了車窗部分,等待對車窗部分的修復重建。圖5(c)中,面包車側面的三個車窗部分,已經(jīng)沒有特殊噪聲點,且整體點云沒有孔洞,達到車窗重建的目的。
如圖6所示,圖6(a)是半掛車的原始點云數(shù)據(jù),圖6(b)中文獻[9]的算法將噪聲點識別為車窗邊界,會使得修復的車窗在噪聲點處形成了小孔洞,圖6(c)中文中算法對車窗右上拐角處的噪聲判斷得當,進行了合理去噪,圖6(d)中文中算法在對半掛車車窗進行修復時,不僅整體車窗效果好,在局部邊緣處,較文獻[9]的算法效果更好。
(a)半掛車原始點云
(b)文獻[9]算法去噪
(c)文中算法去噪
(d)文中算法對半掛車的修復
通過上述實驗結果,可以得到結論:以點云間距與曲率作為雙閾值進行噪聲特征點提取,利用標準差確定閾值,通過閾值確定車窗處噪聲的邊界特征點并完成去噪,用最小二乘法對車窗邊界進行初步擬合,使用基于徑向基函數(shù)的方式對車窗邊界進行優(yōu)化,用梯度下降算法對徑向基函數(shù)確定點云孔洞進行填充,實現(xiàn)了對車窗點云數(shù)據(jù)的修復。綜上所述,該算法可以對車輛的車窗進行數(shù)據(jù)修復,且對邊緣敏感,行之有效。