陳 建,于殿泓*,惠鑫鑫,辛 慧,馬 歆
(1.西安理工大學機械與精密儀器工程學院,陜西 西安 710048;2.西安三舍電子信息技術有限公司,陜西 西安 710000;3.西安道恒交通設備科技有限公司,陜西 西安 710000)
汽車動態(tài)稱重是治理車輛超載的重要手段,在道路交通運輸中起著至關重要的作用。汽車動態(tài)稱重的原理主要是通過壓電石英稱重傳感器,將傳感器嵌入安裝至公路路面。車輛行駛碾壓經過傳感器,得到車輛各個軸的軸重量,然后求和即得到車輛的總重量。因此,在汽車動態(tài)稱重中,實現(xiàn)車輛的精確分車對動態(tài)稱重數據的截取和分析起著至關重要的作用[1]。車輛檢測和識別技術已經廣泛應用于交通場景中,國內外學者對其展開了相關研究,目前主流的車輛檢測方案為視頻拍攝、環(huán)形線圈和磁傳感器檢測等。20 世紀90 年代,美國明尼蘇達大學聯(lián)合當地交通部,通過實地測試提出了視頻檢測的方式,之后隨著國內外學者的不斷研究,視頻檢測技術得到了不斷的發(fā)展,其檢測方式直觀可靠,安裝簡單,不影響交通,但受限于數據處理量大,處理復雜度高,易受到惡劣天氣影響。環(huán)形線圈檢測技術成熟,精度高,性能穩(wěn)定,但安裝維護繁瑣,且易使路面壽命降低[2-5]。1999 年美國尼韋爾公司的Caruso等人[6-8]提出的磁傳感器檢測,利用傳感器檢測周圍磁場的變化以判斷車輛的經過,可很好地實現(xiàn)車輛檢測、分類。因其體積小、功耗低、環(huán)境適應性好,在無線車輛檢測的應用逐漸增多[9-12]。但無線檢測系統(tǒng)中,檢測器通常以道釘形式安裝在道路中,供電電池需頻繁更換。無線通信在戶外復雜環(huán)境下,信號會大幅度衰減,導致通信距離大大縮減,易出現(xiàn)通信異常[13]。
因此,針對現(xiàn)有的車輛檢測技術存在受環(huán)境干擾因素大、設備難以維護等問題,本文提出了一種采用某工業(yè)級二維激光雷達,來實現(xiàn)多車道車輛檢測與分車的方法。該激光雷達采用TCP/IP 網絡通訊,穩(wěn)定高效,且不易受光照條件干擾,設備易于更換、檢測精度高。通過二維激光雷達發(fā)射激光光束對公路截面旋轉掃描形成的點云數據和算法進行分析,實現(xiàn)對多車道車輛的檢測與分車。
二維激光雷達車輛檢測原理是通過旋轉激光雷達內部的光學部件,使其發(fā)射安全激光光束對公路截面進行掃描形成光幕,通過獲取激光雷達得到的角度與距離值,經過一定的算法處理,實現(xiàn)對多條道路的車輛檢測與分離。由于車輛的車型,車輛的高度和寬度各不相同,因此激光雷達在對多車道進行掃描時,可能存在著大車遮擋小車,為此提出多車道使用多激光雷達的掃描方式。圖1 所示為四車道采用雙激光雷達的示意圖。
圖1 四車道車輛檢測示意圖
激光雷達安裝于相鄰兩車道分界線正上方垂直高度6 m~8 m 處,即點OⅠ為激光雷達Ⅰ的安裝位置。點OⅡ為激光雷達Ⅱ的安裝位置。以車道正中心上方6 m~8 m 處為坐標原點,沿平行于地平面指向道路右側為X軸正方向,垂直于路面向上為Y軸正方向,建立平面直角坐標系。其中x正方向為激光雷達的0 度角,x負方向為激光雷達的180°角,則激光雷達Ⅰ的位置坐標為OⅠ(xⅠ,yⅠ),激光雷達Ⅱ的位置坐標為OⅡ(xⅡ,yⅡ)。
由于二維激光雷達采集到的原始數據為極坐標系下的系列坐標點Li(li,θi),li為測量距離,θi為測量角度。因此需要通過式(1),將極坐標點轉化為空間直角坐標系下點P(x,y)。
式中,li為激光雷達某一角度測量的點距離值,θi為測量點所對應的角度,xk為激光雷達k的橫坐標。
激光雷達在獲取點云數據過程中,往往會摻雜一些噪聲,這些噪聲會對數據處理造成一定程度的影響,因此這里采用中值濾波的方法消除隨機噪聲。
車輛邊緣信息點的提取是實現(xiàn)多車道車輛橫向分車的重要方法,對激光雷達掃描的點云數據以邊緣信息點為界,對點云數據分段進行聚類和曲線擬合分析,得到車輛的左右邊緣,以車輛的左右邊緣來作為車輛之間的分車特征實現(xiàn)多車道車輛的橫向分車。
根據激光雷達對車道掃描原理可知,當無車輛通過時,激光雷達掃描公路截面時,相鄰掃描點之間的高度變化比較平緩,在一定閾值范圍內波動,即形成的點yi滿足:yi≤-(h±Δ),h為激光雷達安裝的高度,Δ為閾值,點均勻分布在公路路面。如圖2所示。
圖2 無車輛通過點分布示意圖
當多車道多車輛同時通過時,由于車輛的高度差異,導致激光雷達掃描時存在左右視線區(qū)域的遮擋,造成激光雷達掃描點云數據的缺失,如圖3 所示的區(qū)域1、區(qū)域3 和區(qū)域5。因此需要借助點的分布特征來提取車輛的邊緣信息點。
車輛邊緣信息點的提取主要包括三個部分,第一部分是公路兩端最外側車道車輛邊緣信息點提取,如圖3 所示的區(qū)域1 和區(qū)域5;第二是公路區(qū)域內部各車道車輛邊緣信息點的提取,如圖3 所示的區(qū)域2 和區(qū)域4;第三部分是相鄰雙激光雷達左右視線重疊的盲區(qū),如圖3 所示的區(qū)域3。
圖3 四車道激光雷達掃描示意圖
通過對圖3 的分析發(fā)現(xiàn),公路兩端最外側車道,其點分布特征主要呈現(xiàn)出兩種情況。首先是公路最右側車道點分布如圖4 所示。情況一,點分布表現(xiàn)為激光雷達無法掃描到最右側車道路面,即從激光雷達0°開始至某一角度范圍內,該區(qū)域掃描點分布于公路邊緣或公路外,如圖4 中圖(a)所示。存在從某一點(xi,yi)起,在一定掃描范圍內,所有點均分布于最右側車道內部、公路路面上方,即滿足式(2):
圖4 道路最右側車道點分布特征
式中,(x,y)為點的坐標,(xk,yk)為激光雷達k的坐標,h為激光雷達距離地面的高度,Δ為閾值,wⅠ為最右側車道寬度。點(xi-1,yi-1)及之前點均分布于公路邊緣或公路外。因此點可作為車輛邊緣的信息點。
情況二,激光雷達能掃描到最右側車道路面。當掃描到車輛邊緣時,由于車輛的高度,導致從某一點(xi,yi)起,其掃描角度領域內的點的高度急劇變化,如圖4 中圖(b)所示,即:
式中,Δy為相鄰點的縱坐標差的絕對值,yi為激光雷達當前掃描點的縱坐標,yi+1為激光雷達當前掃描點的下一個掃描點的縱坐標,yi-n為激光雷達當前掃描點的前一系列掃描點的縱坐標。當Δy大于一定閾值時,可認為該點為車輛的邊緣信息點。
同理,公路最左側車道點分布與公路最右側車道的點分布存在相同的兩種情況,故采用上述方法可實現(xiàn)對公路最左側車道車輛邊緣信息點的提取。
針對公路區(qū)域內部各車道車輛邊緣信息點的提取,激光雷達能掃描到相鄰車輛之間的路面和相鄰車輛的相鄰兩側邊緣。在無車輛通過時,激光雷達掃描點分布于路面,相鄰掃描點之間的縱坐標值變化平緩。當車輛通過掃描到車輛邊緣時,相鄰掃描點的縱坐標的值急劇變化,如圖5 所示。由于激光雷達在掃描時存在一定的干擾,導致點偏離車輛輪廓軌跡或出現(xiàn)缺失等現(xiàn)象,因此,這里利用在相鄰點之間的高度差和連續(xù)點的高度方差值作為檢測車輛邊緣點的有效特征。對于連續(xù)掃描的點pi(xi,yi)與相鄰點pi+1(xi+1,yi+1),其高度差計算公式為:
圖5 車輛邊緣點分布特征
式中,Δy為高度差,yi,yi+1為相鄰點的縱坐標值。
連續(xù)相鄰點集合可表示為S={pi-n,…,pi,…,pi+n},則鄰域集合S的高度均值和點pi方差計算公式為:
式中,yi-n,…,yi,…,yi+n均小于0,My為高度均值,Vy為高度方差。
如果高度差Δy和高度方差Vy大于給定的閾值,則認為點pi為檢測到車輛邊緣信息點。在本實驗中取域集合S內5 個點數作為計算高度方差值。
相鄰雙激光雷達左右視線重疊的盲區(qū)車輛邊緣信息點的提取,由于相鄰車道同時駛入掃描區(qū)域的兩車輛高度的原因,導致激光雷達對公路掃描時存在左右視線盲區(qū)。如圖6 所示,由點的分布示意圖可知,左右視線交叉盲區(qū)中不存在點的分布。因此以連續(xù)角度掃描點的橫坐標的橫向距離來提取相鄰雙激光雷達左右視線重疊的盲區(qū)車輛邊緣信息點。連續(xù)掃描點之間的橫向距離差為:
圖6 相鄰雙激光雷達左右視線重疊盲區(qū)點分布特征
連續(xù)角度掃描點的集合可表示為S={pi-n,…,pi,…,pi+n},則該系列點的橫向距離均值和橫向距離方差計算公式為:
式中,xi-n,…,xi,…,xi+n為各點橫坐標值,Mx為橫向距離均值,Vx為橫向距離方差。
如果相鄰點領域內的橫向距離方差大于給定的閾值,則以相鄰掃描點pi和點pi+1作相鄰雙激光雷達左右視線重疊的盲區(qū)左右車輛邊緣信息點。
聚類是目標識別過程中必不可少的環(huán)節(jié),通過聚類才能很好地分離開各個目標物體。將離散的點云數據通過某種方法聚集到一起,把具有相似程度的對象構成一組,實現(xiàn)過程稱為聚類[14]。以相鄰車輛邊緣信息點為界,對點云數據進行分段截取,對各段點云數據進行聚類分析,提取出車輛的左右邊緣特征信息。本文主要采用凝聚層次聚類算法。凝聚層次聚類算法主要是將一組類似的物體標定或緊密地聚集在一起,然后合并這些簇為越來越大的簇,直到一個目標物中所有的點都在一個簇中,簇間距離度量方法采用最小距離:
式中,|p-p′|是兩個點p和p′之間的距離,cj1,cj2為兩個簇。該算法通過比較相鄰兩點之間的距離,同時比較每個點與后兩個點之間的距離,將一個點作為一簇,如果與下一個點的距離小于閾值,則歸為一簇,反之歸為另一簇,再與后兩個點比較,如果小于閾值則歸為一簇,否則歸為另一簇,這樣可以達到更好的聚類效果,流程圖如圖7 所示。
圖7 凝聚層次聚類算法
聚類完成后,每一幀數據被分割成m段,S={S1,S2,…,Sm},每一段包含了不同目標物體的信息量。
經過聚類分割出各個目標物體后,對于接收到的目標車輛的數據,一般存在兩種情況:類似于“π”型和“L”型的曲線。本文采用最小二乘法對點云數據進行簡單的曲線擬合,大致得到車輛的俯視界面輪廓,利用曲線斜率的判別方式,判定識別出車輛的左右側邊緣。最小二乘法多項式擬合原理為,對于一組實驗數據(xi,yi),i=1,2,…n,設其擬合函數為下式:
由最小二乘法的原則應使得下式最小:
對函數S求偏導數,并令其為零,即?S/?ak=0可得:
式中,k=0,1,…,n,若對于任意函數h(x)、g(x)引入記號:即:
式中,k=0,1,…,n,寫成矩陣形式為:
A稱為正規(guī)方程組。當φ0(x),φ1(x),…,φn(x)線性無關時,方程組有唯一解。取φ0(x)=1,φ1(x)=x,…,φn(x)=xn,相應的方程組為[15]:
從中可以解出a0,a1,…,an。
經過聚類后的數據點簇分為五種情況,如圖8 所示。對于得到的目標數據,將形狀類似于“L”型和“π”型的曲線,通過對擬合后的曲線函數y(x)做斜率分析,從目標曲線最右端點開始,求各點的切線斜率,若斜率逐漸減小且最后斜率近似平行于x軸,且該目標曲線的點坐標分布滿足:yi≤-(h±Δ),則認為該目標曲線為檢測到車輛頂部右側邊緣,如圖8(a)所示。若斜率最初近似于平行于x軸,斜率逐漸增加,且該曲線的點坐標分布滿足:yi≤-(h±Δ),則認為該目標曲線為檢測到車輛頂部左側邊緣,如圖8(b)所示。若斜率逐漸減少至近似平行于x軸后,且該曲線的點坐標存在m個點的縱坐標滿足:yi=-(h±Δ),則認為該目標曲線為檢測到車輛底部左側邊緣,如圖8(c)所示。若斜率先近似平行于x軸后斜率逐漸減少,且該曲線的點坐標存在m個點的縱坐標滿足:yi=-(h±Δ),則認為該目標曲線為檢測到車輛底部右側邊緣,如圖8(d)所示。若斜率先逐漸減少至近似平行于x軸后斜率逐漸增減,且該曲線的點坐標分布滿足:yi≤-(h±Δ),則認為該目標曲線為檢測到車輛頂部左右兩側邊緣,如圖8(e)所示。
圖8 目標特征點曲線擬合
通過提取車輛左右邊緣,以左右邊緣為分車標志特征,即提取到車輛左邊緣和相鄰的右邊緣為檢測到一輛車,從而來實現(xiàn)車輛檢測與分車。
根據激光雷達多車道車輛檢測原理分析,實現(xiàn)對車道前后車輛分車的示意圖如圖9 所示,激光雷達位于路面上方,車輛按圖中箭頭方向行駛,當該車道無車輛駛入時,激光雷達每一幀對該車道掃描的點應分布于公路路面,即該系列點的縱坐標滿足:yi=-(h+Δ),其中h為激光雷達安裝的高度,Δ為誤差系數;當車輛駛入時,激光雷達掃描的每一幀點數據,存在m個點的縱坐標滿足yi<-(h+Δ),i=1,2,…,m,即該系列點分布于公路路面上方。
圖9 前后車輛分車的示意圖
因而,可根據激光雷達對車道車輛掃描有無車輛駛入的特征標志位,實現(xiàn)對車道前后車輛分車。當該車道無車輛駛入檢測區(qū)域時,設定標志位為無車輛通過;當該車道有車輛駛入檢測區(qū)域時,設定標志位為有車輛通過;以標志位的從無車輛通過變化為有車輛通過作為車輛開始駛入檢測區(qū)域;以標志位從有車輛通過到無車輛通過變化作為車輛駛離檢測區(qū)域。因此通過上述算法思想可實現(xiàn)車道前后車輛的分車。此外,由于車輛的速度對車輛前后分車影響較大,因此激光雷達的橫向掃描速度應當滿足車輛以最大速度行駛通過時,激光雷達能準確地掃描到車輛進入與離開時的兩種狀態(tài)。
為了定量分析所提出的二維激光雷達多車道車輛檢測與分車算法的效果,利用某城市快速通道對多車道進行車輛檢測,實驗環(huán)境如圖10 所示。
圖10 實驗環(huán)境圖
在距離公路路面高度為6 m 處安裝二維激光雷達,激光雷達對多車道進行掃描,獲得車輛通過車道時掃描的點分布圖,圖11 所示為激光雷達對兩車道掃描的點分布圖。
圖11 激光雷達對多車道掃描點分布
經過數據的提取,獲取激光雷達對公路路面掃描的點云數據分布,對數據進行中值濾波處理,其處理后的效果圖如圖12 所示。從濾波后的點分布圖可以看出,采用中值濾波使得點的分布更加均勻,能夠去除干擾點對數據分析的影響。
圖12 中值濾波效果圖
數據濾波后,對點云數據進行聚類分析。聚類分析后提取目標特征點的實驗效果圖如圖13 所示,其中矩形框選區(qū)域為通過聚類分析后,提取到的目標特征。然后對提取到的目標特征進行最小二乘法多項式擬合,得到的實現(xiàn)效果圖如圖14 所示。
圖13 聚類分析實驗效果圖
圖14 曲線擬合效果圖
根據實驗結果可以看出,由于某種原因,導致激光雷達對車輛邊緣信息掃描的時候,點云數據不連續(xù),相鄰點云數據之間存在點的空缺。通過分析發(fā)現(xiàn),由于激光雷達的角度分辨率是固定的,因此,出現(xiàn)上述情況的原因應該為車輛左右邊緣與地面的垂直高度差變化較大,從而導致在激光雷達一個掃描角度增量變化時,相鄰掃描點之間從車輛左右邊緣的高度差變化較大,從而出現(xiàn)了點分布的不連續(xù)與空缺。因此,對于上述現(xiàn)象,可通過在提取到邊緣信息點后,取邊緣信息點前后Δθ范圍內的點與聚類分析提取的目標特征點做最小二乘法曲線擬合進行改進。
根據建立的直角坐標系,以各車道分界線,將多車道進行區(qū)域劃分,圖15 所示為四車道區(qū)域劃分示意圖,點P、Q、C、M 構成的矩形區(qū)域為車道Ⅰ的掃描區(qū)域。若設定對多車道進行區(qū)域劃分,掃描區(qū)域Ⅰ的橫坐標范圍為xo±Δ~xⅠ±Δ,掃描區(qū)域Ⅱ的橫坐標范圍為xⅠ±Δ~xⅡ±Δ,掃描區(qū)域Ⅲ的橫坐標范圍為xⅡ±Δ~xⅢ±Δ,掃描區(qū)域Ⅳ的橫坐標范圍為xⅢ±Δ~xⅣ±Δ,其中Δ為誤差系數。
圖15 多車道區(qū)域劃分
以提取的多車道各車輛的邊緣信息為界限,從檢查到車輛右側邊緣到檢測到車輛的左側邊緣信息進行橫向坐標分析,結合對多車道的區(qū)域劃分,判斷該輛車的橫坐標位于多車道區(qū)域的范圍,即從檢測到車輛右側邊緣的起始點橫坐標xi和檢測到車輛左側邊緣點的橫坐標xj,根據該系列點位于掃描區(qū)域的橫坐標范圍區(qū)間,得出車輛位于車道的具體位置,即判斷某車道是否有車輛駛入和車輛是否存在壓線行駛等現(xiàn)象。
為驗證本文二維激光雷達多車道車輛檢測與分車算法的準確性,對于車速在低于120 km/h 范圍內的行駛車輛,在某快速通道進行了實地測試。通過實驗檢測結果和現(xiàn)場實際數據統(tǒng)計比對,其比對結果如表2 所示,在車輛正常行駛情況下,該算法能精確地實現(xiàn)對多車道車輛檢測與分車。
表2 算法正確率
通過上述實驗結果,本文提出的基于二維激光雷達多車道車輛檢測與分車算法,在單依靠激光雷達實現(xiàn)車輛分車的情況下,總體上能滿足汽車動態(tài)稱重車輛分車的要求。但在車輛惡意逃避檢測的方面,該算法還需要不斷的提高。同時對于車輛的惡意逃避檢測,還有必要借助于汽車動態(tài)稱重其他傳感器的共同作用。
本文針對汽車動態(tài)稱重場景下,為實現(xiàn)車輛的檢測與分車,提出了一種基于二維激光雷達多車道車輛檢測與分車的方法,將二維激光雷達安裝至距離公路路面一定高度,發(fā)射激光光束對公路截面進行掃描,以獲取掃描的點云數據,通過對點云數據的提取、預處理、濾波、聚類和曲線擬合,來提取出各車道車輛的位置信息,從而實現(xiàn)車輛的實時檢測與分離。實驗結果表明,該方法能實現(xiàn)多車道多車輛的實時檢測與分離,具有較高的準確性,但由于實驗環(huán)境及其不確定因素的干擾,存在一定的實驗誤差,導致在特殊情況下無法實現(xiàn)車輛的精確分離,因此,后續(xù)將繼續(xù)對特殊情況下多車道車輛檢測與分車的算法進行研究。