劉義偉,孟令鐲,劉松濤,張高飛
(1.北京信息科技大學(xué) 儀器科學(xué)與光電工程學(xué)院,北京 100192;2.清華大學(xué) 精密儀器系,北京 100084)
激光雷達(light detection and ranging,LiDAR)作為無人駕駛系統(tǒng)中用于環(huán)境感知、實現(xiàn)安全駕駛的核心器件[1],其性能指標(biāo)測試是確保車輛在實際交通環(huán)境下安全行駛的關(guān)鍵所在[2],需要一套標(biāo)準(zhǔn)嚴(yán)格且便捷的測試方法及系統(tǒng)。而能夠保證汽車探測采集最大范圍道路信息,為汽車自動駕駛提供數(shù)據(jù)支撐的激光雷達視場范圍測試尤為重要。
目前,針對激光雷達性能測試方法及測試系統(tǒng)的相關(guān)研究較少。對于激光雷達的測試研究主要是在仿真建模[3]、室內(nèi)模擬[4]以及實際測試等條件下開展[5]。如大疆LIVOX激光雷達視場范圍測量方法主要是通過重復(fù)掃描然后測量掃描圖案,從而得到激光雷達水平和垂直視場范圍。對于微機電系統(tǒng)(micro-electro-mechanical system,MEMS)掃描成像激光雷達視場范圍的研究,文獻[6]通過內(nèi)置激光雷達微鏡角度傳感器,將采集到的微鏡自身角度值與實際角度測量值標(biāo)定為一次函數(shù)關(guān)系,從而根據(jù)角度傳感器的輸出值換算得到不同掃描模式下的掃描范圍;而文獻[7]直接對激光雷達掃描圖案的幾何尺寸進行人工測量,通過幾何位置轉(zhuǎn)換關(guān)系得到其掃描范圍。對于目標(biāo)物尺寸測量的方法目前有很多,現(xiàn)今使用圖像處理技術(shù)可以對目標(biāo)尺寸進行較高精度測量,如利用激光器和相機掃描目標(biāo)物,得到目標(biāo)的三維信息[8]。
本文提出了一種基于數(shù)字圖像處理的激光雷達掃描圖案尺寸測量算法,通過架設(shè)工業(yè)相機直接對激光雷達掃描圖案進行采集,后續(xù)使用數(shù)字圖像處理技術(shù)將圖像像素作為測量刻度,電腦上位機作為計算平臺,實現(xiàn)激光雷達視場范圍高精度無接觸測量。此測量方法與文獻[6-7]相比,測試流程更加便捷,測試結(jié)果更加精確,能夠針對任意形狀的激光雷達掃描圖案測量任意方向視場,同時可以采用工業(yè)流水線模式對多臺激光雷達設(shè)備進行測試,在提高測試效率的基礎(chǔ)上進一步節(jié)省了人力。
使用相機對掃描圖案進行測量,可以在相機自身視場中測量出目標(biāo)的角度,但是目標(biāo)物的實際尺寸并不能直接得到。相機測量原理如圖1所示。
目標(biāo)物的真實尺寸L為[9]
(1)
式中:D為目標(biāo)像平面尺寸;f為相機焦距;H為拍攝距離。其中D=目標(biāo)所占像素數(shù)×單位像素對應(yīng)的實際尺寸。
通過在目標(biāo)靶面粘貼標(biāo)志點,在相機視場成像內(nèi)通過標(biāo)志點的像素距離就可以計算得到單位像素對應(yīng)的實際尺寸。視場范圍測量原理如圖2所示,其中l(wèi)line為拍攝圖像中目標(biāo)所占像素距離長度,d為拍攝距離,S為兩標(biāo)志點實際距離。
圖2 視場范圍測量原理Fig.2 Principle of field of view measurement
使用相機拍攝激光雷達掃描圖及兩標(biāo)志點圖像,通過圖像處理算法計算出兩標(biāo)志點在拍攝圖像中的像素距離n,則單位像素對應(yīng)的實際距離dp為
dp=S/n
(2)
則激光雷達掃描范圍θ為
(3)
由測量原理可知,要實現(xiàn)激光雷達視場范圍的高精度測量,主要取決于掃描圖案幾何尺寸的測量精度。基于此測量方法,本文設(shè)計了高精度掃描圖案測量算法,通過式(3)即可計算得到高精度視場范圍結(jié)果。
本測量系統(tǒng)中使用的激光雷達為實驗室自研MEMS掃描成像激光雷達,其掃描圖案近似于平行四邊形,如圖3所示。
圖3 測試用激光雷達掃描圖案Fig.3 LiDAR scanning pattern for testing
測量參數(shù)為該掃描圖案輪廓的幾何尺寸。圖4為激光雷達水平垂直視場和頂點視場測量參數(shù)。如圖4(a)所示,定義A′C和D′B的像素距離長度為激光雷達水平和垂直視場投射線長度,本文測量方法所設(shè)計的圖像處理算法就是精確計算A′C和D′B這兩條線的實際長度,然后通過式(3)得到激光雷達的視場范圍。從圖4(b)可知,同理可計算激光雷達頂點方向視場(AC和BD),實現(xiàn)任意多邊形任意方向視場計算。下文以計算水平和垂直視場為例進行闡述。
圖4 掃描圖案幾何參數(shù)定義Fig.4 Definition of geometrical parameters of the scanning pattern
本文所設(shè)計的數(shù)字圖像處理算法流程如圖5所示。首先對采集到的圖像進行預(yù)處理,通常使用高斯濾波來減輕其他無效微小光斑對測量結(jié)果的影響。然后進行圖像分割,圖像分割的目的主要是提取出標(biāo)志點和目標(biāo)圖案。在圖像分割完成后,由于掃描圖案輪廓并非筆直線段,因此需要進行輪廓直線擬合,然后對擬合完的圖像進行頂點識別,識別頂點后利用標(biāo)志點進行單位像素距離標(biāo)定,最后得到目標(biāo)尺寸lline。
圖5 算法流程Fig.5 Algorithm flow
圖像預(yù)處理通常使用圖像濾波去噪和圖像開運算。首先將圖像灰度化后進行高斯濾波預(yù)處理,圖像預(yù)處理之后再進行圖像分割[10]。為保證測量算法的精度,實驗過程都是在光線較暗的室內(nèi)環(huán)境下進行,因此光屏上的激光雷達掃描圖案與背景存在較為明顯的差異,針對這種情況使用基于閾值分割的方法具有很好的處理效果。
采用固定閾值分割方法可以通過不斷嘗試設(shè)置不同的閾值后觀察閾值效果,但是對于不同環(huán)境下采集到的圖像可能需要不同的閾值設(shè)置,增加了測量復(fù)雜度。因此本文使用最大類間方差閾值分割算法,又稱大津法 (OTSU),這是一種自適應(yīng)閾值確定方法,按照不同閾值將圖像分為前景和背景兩部分,若當(dāng)前閾值下前景和背景的類間方差最大,則該閾值為最佳分割閾值[11]。
假設(shè)圖像的分割閾值為T,圖像平均灰度等級為μ,圖像大小為M×N,則有:
w0=N0/M×N
(4)
w1=N1/M×N
(5)
N0+N1=M×N
(6)
w0+w1=1
(7)
μ=w0μ0+w1μ1
(8)
g=w0(μ0-μ)2+w1(μ1-μ)2
(9)
將式(8)代入式(9)中可得最大類間方差gmax,從而得到最佳閾值T[12]:
gmax=w0w1(μ0-μ1)2
(10)
式中:w0為前景中像素點占整個圖像像素的比例;μ0為其平均灰度等級;w1為背景中像素點占整個圖像像素的比例;μ1為其平均灰度等級;g為類間方差;N0為灰度值小于分割閾值T的像素點;N1為灰度值大于分割閾值T的像素點。
對預(yù)處理后的激光雷達掃描圖案使用OTSU閾值分割效果如圖6所示,分割后的圖像能較明顯看到掃描圖案幾何形狀,但是在圖像右上角還存在干擾區(qū)域(圈起來的地方)。為準(zhǔn)確提取到掃描圖案的幾何形狀,需要進一步處理。
圖6 OTSU閾值分割Fig.6 OTSU threshold segmentation
從圖6中分割的結(jié)果來看,噪聲區(qū)域的面積都小于掃描圖案面積,并且整幅圖像中除了背景以外,只有掃描圖案的面積是最大的,因此可以選擇使用最大連通域面積[13]的方式,去除噪聲并提取出掃描圖案輪廓。
在圖6基礎(chǔ)上使用圖像輪廓提取后的效果如圖7所示,從圖中可以觀察到右上角存在噪聲區(qū)域輪廓,符合OTSU閾值分割后的特征。
圖7 邊緣輪廓提取Fig.7 Edge contour extraction
在圖7的基礎(chǔ)上,以所有檢測到的輪廓面積為參考,面積最大的輪廓即為掃描圖案幾何形狀,將此輪廓提取出來并在原圖上進行標(biāo)記,如圖8所示。圖8(a)是將最大輪廓提取出來的效果圖,圖8(b)是提取后的輪廓用綠色直線標(biāo)記出來效果圖。
圖8 邊緣輪廓檢測提取Fig.8 Edge contour detection extraction
從圖8可知,提取的掃描圖案輪廓邊緣為高低起伏的不規(guī)則曲線。如果直接以組成輪廓曲線點坐標(biāo)在X、Y方向上的分布特性來確定掃描圖案的四個頂點坐標(biāo)的方法不具有普適性。針對頂點像素坐標(biāo)分布特性不明顯的掃描圖案,該方法存在誤判情況,會對測量結(jié)果造成一定的影響。
因此為了精確地測量出掃描圖案幾何尺寸,需要對圖8中的輪廓邊緣進行直線擬合。輪廓直線擬合分兩步進行:第一,對組成輪廓的所有像素點使用凸包算法[14]進行處理,目的是找到最外圍的輪廓點,過濾輪廓包圍的內(nèi)部點或重復(fù)點,方便進行下一步處理;第二,使用多邊形逼近算法進行直線擬合。
本文使用經(jīng)典Graham掃描法來求解組成輪廓像素點的凸包頂點[15]。
多邊形逼近最常用的是Douglas-Peucker算法,如圖9所示,其算法步驟如下[16]:
1)在組成曲線的點集中找到首尾端點E、F,并將其連接成線段EF,該直線為曲線的弦;
2)在曲線點集中找到距離EF最遠的點T,并計算其與EF的距離dmax,如圖9(a)所示;
3)設(shè)置閾值距離εd,比較dmax與閾值距離εd,若dmax>εd,則保留點T,曲線EF被劃分為ET、TF兩部分,如圖9(b)所示。若dmax<εd,則忽略EF段所有中間點,即曲線逼近為線段EF。重復(fù)對每一段曲線進行上述操作,直至曲線組成的線段全部滿足設(shè)置好的閾值距離條件(dmax<εd),如圖9(c)和9(d)所示。
上述算法是針對非閉合曲線點集進行的擬合。本文處理后的掃描圖案邊緣像素點集是閉合曲線,因此在取初始點位E、F時可以將距離最遠的兩點作為初始線段。設(shè)置的距離閾值εd越小,其直線擬合效果越貼近于原曲線。在像素尺度下進行距離閾值選取,標(biāo)定完單位像素距離后,測量精度可以達到微米尺度。圖10是掃描圖案經(jīng)過輪廓提取和直線擬合后的效果,此時輪廓已經(jīng)是由筆直的4段直線組成。
圖10 直線擬合效果圖Fig.10 Straight line fitting effect picture
頂點識別算法主要思想是:求解輪廓點集中每3個相鄰點形成的夾角大小,在多邊形邊長上的點組成的夾角趨于180°,而位于多邊形頂點的輪廓組成的夾角小于180°,使用數(shù)組記錄每3個相鄰點形成的夾角及其點序列號,其中夾角最小的角點即為多邊形的頂點。
在圖10 的基礎(chǔ)上進行頂點識別,結(jié)果如圖11所示??芍喞?個頂點在像素坐標(biāo)系中分別為A(704,731)、B(1 176,667)、C(1 338,1 113)、D(864,1 161)。結(jié)合4個頂點坐標(biāo),可以根據(jù)式(11)和式(12)計算得到該輪廓在水平和垂直方向的最大像素距離。
圖11 頂點識別結(jié)果Fig.11 Vertex recognition result
Xmax=|Ax-Cx|
(11)
Ymax=|By-Dy|
(12)
得到掃描圖像輪廓在水平和垂直方向上的最大像素距離后,要將像素轉(zhuǎn)換成實際距離還需要進行單位像素距離標(biāo)定。單位像素距離的標(biāo)定流程如下。
1)讓相機和激光雷達處于同一側(cè)并固定,然后在光屏上粘貼兩個預(yù)先設(shè)置好距離的標(biāo)志點,使用相機拍攝光屏上的標(biāo)志點。為減少相機視野內(nèi)環(huán)境因素的影響,測量全程將相機曝光時間設(shè)置為80 000 μs,標(biāo)志點圓心距為S=144 mm。
2)使用圖像處理算法對采集到的標(biāo)定圖像進行處理,得到標(biāo)志點的圓形輪廓。
3)使用質(zhì)心定位算法確定標(biāo)志點輪廓圓心,計算兩圓心的像素距離n。
4)根據(jù)式(2)得到單位像素對應(yīng)的實際距離。
為保證單位像素距離標(biāo)定的精確度,需要在不改變圓形輪廓的情況下定位到圓心,并且經(jīng)由上文的圖像處理算法已經(jīng)得到標(biāo)志點的輪廓,因此采用最小二乘圓擬合法將輪廓擬合為圓之后再定位圓心。
最小二乘法圓擬合曲線為
R2=(x-xct)2+(y-yct)2
(13)
展開后為
R2=x2-2xctx+xct2+y2-2ycty+yct2
(14)
令a=-2xct,b=-2yct,c=xct2+yct2-R2,則式(14)可表示為
-ax-by-c=x2+y2
(15)
矩陣形式表示為
(16)
得到R·A=Y的矩陣形式后,可通過
A=(RT·R)-1·RT·Y
(17)
得到a,b,c的值,從而得到圓心坐標(biāo)。如圖12所示為標(biāo)志點采集照片及圓心距離測算效果圖,計算兩圓心像素距離n= 309,由式(2)得單位像素距離為dp=0.466 mm。
圖12 標(biāo)志點圖像和圓心距
Fig.12 Flag point image and circle distance
實驗所使用的激光雷達為實驗室自研MEMS激光雷達原型機,距離測量使用徠卡S910手持式激光測距儀,測得激光雷達距離光屏距離為1.135 m。圖像采集使用大恒MER水星工業(yè)相機及其配套鏡頭。采集到的圖像分辨率為2 048×1 536像素。激光雷達安裝在固定平臺,相機架設(shè)在可垂直調(diào)節(jié)高度和水平旋轉(zhuǎn)角度的支撐桿上,兩者安裝相對位置如圖13所示。單位像素距離標(biāo)志點如上文所述。
圖13 安裝相對位置Fig.13 Mounting relative positions
激光雷達在不同工作頻率下的掃描圖案會有較大不同,因此本文選取三種不同的激光雷達掃描圖案進行處理,處理結(jié)果如圖14所示。
圖14 處理結(jié)果Fig.14 Processing results
根據(jù)上述算法處理后得到三種不同掃描圖案輪廓尺寸以及根據(jù)式(3)計算激光雷達的水平和垂直視場結(jié)果如表1所示。
表1 三種不同圖案輪廓尺寸測量結(jié)果Table 1 Measurement results of three patterns with different contour dimensions
掃描圖案輪廓的實際尺寸由游標(biāo)卡尺測得。由表1可以發(fā)現(xiàn),通過本文中的圖像處理算法測得的輪廓尺寸與實際尺寸的最大誤差為0.43 mm,而標(biāo)定好的單位像素距離為0.46 mm,可知本文設(shè)計的圖像處理算法誤差最大在一個像素左右,其真實角度值θσ按式(18)計算:
(18)
式中:σ為像素個數(shù)誤差。
在激光雷達與光屏間距為1.135 m情況下,結(jié)合式(18),最后測得的角度誤差為±0.02°。如果提高相機分辨率,可進一步提高測量精度。
本文針對激光雷達掃描圖案,使用基于數(shù)字圖像處理算法進行掃描圖案幾何尺寸測量,并通過相機測量原理計算得到激光雷達實時掃描范圍。使用OTSU閾值分割方法分割提取掃描圖案輪廓,簡化后續(xù)運算流程;利用最大連通域面積判定方法去除無效噪聲輪廓;結(jié)合凸包算法和多邊形逼近算法實現(xiàn)目標(biāo)邊緣直線擬合,提高測量精度;通過頂點識別算法和相機視場范圍測量原理,得到激光雷達高精度視場范圍。經(jīng)過實驗驗證,本文所設(shè)計的測量方法操作便捷,極大提高了激光雷達視場范圍性能實時測試效率,視場范圍的最大測量誤差為±0.02°,且能針對任意掃描多邊形進行多方向視場測量。目前測試系統(tǒng)各個設(shè)備還處于獨立運行狀態(tài),后續(xù)的工作方向是將測量系統(tǒng)整合于一體,圖像處理算法移植到如單片機等便攜式運算平臺上,進一步精簡測量系統(tǒng)和測量流程。