劉福明
(廣東工貿(mào)職業(yè)技術(shù)學(xué)院 廣東省廣州市 510510)
在自動駕駛、ADAS(Advanced Driving Assistance System)、高精度地圖采集等領(lǐng)域,常使用相機感知道路標識和避障[1][2]。通常對相機圖像上目標檢測、跟蹤以及視覺測距在相機坐標系下,無法直接獲知目標相對車輛的位置關(guān)系,需要將其轉(zhuǎn)換至世界坐標系或車輛坐標系,獲取目標的世界坐標,從而實現(xiàn)避障、地圖道路元素采集和車輛控制等應(yīng)用。在視覺測量中,除了硬件外,相機內(nèi)參與外參(相機安裝參數(shù),表示相機與車輛坐標系間的相對關(guān)系)是顯著影響相機感知環(huán)境精度的關(guān)鍵因素。因此,如何快速有效地對相機的內(nèi)、外參標定是輔助駕駛系統(tǒng)、自動駕駛量產(chǎn)、地圖數(shù)據(jù)眾包采集和維護的重要環(huán)節(jié)。
隨著視覺測量在各領(lǐng)域的廣泛應(yīng)用,業(yè)界對內(nèi)、外參標定都進行了研究。對于內(nèi)參標定,傳統(tǒng)方法利用棋盤格、圓形陣列標定板等標定物對相機內(nèi)參進行標定[3-5],因其具有可操作性和精確而被廣泛使用。傳統(tǒng)標定方法需要特定的標定物,標定效果和效率依賴操作人員執(zhí)行能力和熟練程度,一些新方法[6]選取環(huán)境中顯著的靜態(tài)特征,采集相同場景不同視角的多幀圖像,建立像平面特征點的約束關(guān)系,進而根據(jù)約束關(guān)系實時計算相機內(nèi)參。通常相機不發(fā)生強烈碰撞、拆解等操作,內(nèi)參不會變化,因此傳統(tǒng)標定方法滿足大部分應(yīng)用需求。
為了得到精確的相機外參,一般方法是建立標定場進行輔助標定。zhang 等[5]提出在標定場配備了特定標定物,并利用手眼標定法[7](即九點標定法)根據(jù)標志物與相機之間的空間位姿關(guān)系計算相機外參。石麗梅等提出一種外方位元素標定方法,在標定場景中布設(shè)高精度GPS 已知控制點,通過重投影建立點的相關(guān)性,結(jié)合地理參考絕對定位方程和坐標變換,求得相機相對位姿的平移與旋轉(zhuǎn)參數(shù)。這類方法能產(chǎn)生精度較高的外參,但是依賴標定場所與標定物配置,對ADAS、自動駕駛等產(chǎn)品的推廣與維護有較大限制。Carrera 等[8]、Zhang 和Shen[9]提出在自然環(huán)境下結(jié)合視覺里程計實時進行相機外參標定,這類方法無需專門的標定場所和特定標定物,可在線計算相機外參。但在車載相機相關(guān)應(yīng)用上,由于道路空曠,道路面因光照成像比較平滑,圖像特征點比較少,難以精確建立圖像幀間特征點關(guān)聯(lián)與約束關(guān)系。孫士杰等[10]基于RGB-D 相機獲得地平面的3D 點云,利用MELSAC 方法檢測3D 點云中的平面,根據(jù)地平面與世界坐標系的約束關(guān)系、與相機坐標系的空間關(guān)系,計算相機的外參。RGB-D 相機基于深度傳感器能直接獲得場景的3D點云,然而,在室外開放環(huán)境下光照影響,難以得到魯棒的3D 測量值。陳錦龍等[11]提出采用雙目相機獲取平整地平面的點云,并擬合出參數(shù)化平面,以地平面在世界坐標系和相機坐標系表達,進而求解出世界坐標系和相機坐標系的轉(zhuǎn)換矩陣。該方法用于低速巡檢機器人,且標定要求在平整地平面上直行,因此,該方法難以開放道路對車載相機外參標定。
綜上所述,在特定場景下外參標定已有完整的解決方案,但針對車載相機在開放道路的輔助駕駛、地圖數(shù)據(jù)采集眾包等應(yīng)用領(lǐng)域,已有方法難以直接適用。本文方法采用雙目相機獲得道路面點云,利用道路面點云擬合出參數(shù)化平面,參考道路標線計算車輛行駛方向矢量,結(jié)合參數(shù)化平面與車輛行駛方向矢量建立世界坐標系,并根據(jù)相機剛性運動特性求解世界坐標系與相機坐標系歐式關(guān)系,進而得到相機外參。另外,提出相機外參精度驗證方法,在世界坐標系上選取若干點,基于相機外參重投影到圖像,透視變換獲得俯視圖,通過俯視圖中道路標線的一致性度量驗證相機外參精度。
圖3:ROI 基于寬度的灰度值比較車道線檢測示意圖
圖4:基于寬度的灰度值比較車道線檢測生成的二值圖
圖5:霍夫變換檢測線段效果圖
本文采用深度相機構(gòu)建測量模型,利用zhang 等[5]提出的基于平面靶標的標定方法[]對雙目相機進行標定,對空間中的任意點p,通過雙目測量可計算出該點相對相機的三維坐標。根據(jù)半全局匹配算法[12]可計算雙目相機所成像中所有匹配點的空間視角內(nèi)的三維點云坐標,得到視覺場景的視差圖。然而,相機坐標系與世界坐標系不重合,在機器人避障、ADAS、高精度地圖采集等應(yīng)用中常常需要測量視覺場景中目標相對車身的坐標,因此需要標定深度相機的安裝外參,進而求解世界坐標系與相機坐標系的歐式變換關(guān)系[R|T]。
本文主要對深度相機的外參標定,相機的外參為:
如圖1所示是深度相機外參標定的主要流程?;陔p目相機內(nèi)參與半全局匹配算法獲得場景的視差圖;由視差圖得到道路面的3D 點云,使用RANSAC 獲取最優(yōu)地平面;在直行道路場景提取車道線并計算車輛前向向量;根據(jù)地平面和前向向量構(gòu)建坐標系轉(zhuǎn)換模型,計算轉(zhuǎn)換矩陣和平移矩陣;基于透視變換評估標定外參并輸出標定結(jié)果。
圖1:深度相機外參標定流程
標定車載深度相機外參的任務(wù)為確定相機坐標系與車身坐標系的歐式變化關(guān)系,因此,需先分別建立相機坐標系與車身坐標系。相機坐標系采用左手直角坐標系,以雙目深度相機為原點所建立3維坐標系Oc,Xc軸沿著相機橫向方向,Zc為相機拍攝方向,Yc為垂直相機向上。
通常世界坐標系可以根據(jù)具體需求而建立,為了方便計算相機的安裝外參,以車身為參考建立世界坐標。在建立車身坐標系時應(yīng)遵循以下準則:
(1)車身坐標系的原點為相機坐標系原點垂直地平面的投影點Ow;
(2)車身坐標系的Yw軸為車輛正前方向;
(3)車身坐標系的Xw軸為垂直車身向右。
坐標系的建立如圖2所示,其中,H 為雙目相機相對地平面的安裝高度。以上述方式建立世界坐標系和相機坐標系,可以較為方便地描述兩個坐標系的歐式變換關(guān)系,簡化外參標定計算過程。
圖2:坐標系建立示意圖
由于相機運動時剛體運動,同一個向量在各坐標系下的長度和夾角都不會變化,因此兩坐標系的變換為歐式變換。如式(1)所示,采用齊次坐標表示剛性運動的變換矩陣。對剛性運動的兩個坐標系變換,可以把齊次坐標變換表示為:
為了獲得前向矢量,需要在視覺場景中檢測與車輛前向平行的道路元素。車道線作為開放道路上最常見的元素,而且當車輛在車道直行時,車道線與車輛的前向矢量平行,因此,基于車道線檢測與雙目測量計算車輛前向矢量。
由于車道線在圖像比其它區(qū)域更加顯著,因此,根據(jù)與周邊像素的顯著程度定位圖像中車道線區(qū)域,提出基于寬度的顯著性比較的車道線檢測方法:
圖6:透視變換示意圖
通過上述方法得到相機坐標系到世界坐標系的變換矩陣,即外參,為保障外參可用,需要建立外參的評估模型。由于外參標定場景為開放的道路,因此,在道路面放置標識、標定板等驗證方法不再適用。參考á.Catalá-Prat 等[14],運用外參對原圖作透視變換獲得俯視圖,并根據(jù)俯視圖中車道線寬度一致性、車道線間平行度、車道線是否平行縱向評估外參準確性。
由公式(1)可求解世界坐標系到相機坐標系的轉(zhuǎn)換矩陣:
其中,Dev 表示外參準確性度量值,值越小外參精度越高(要求dev<2.5);Devwidth表示車道線寬度一致性度量值;Devangle表示車道線延伸方向與正前方一致性度量值;Wi測試點車道線寬度;μwidth為車道線測試點的平均寬度;Ai為車道線與橫向夾角;μ=90為正前朝向,即垂直方向角度;n1為車道線寬度檢驗點數(shù)量,一般要求n1≥6;n2為車道線上用于檢驗角度直線的數(shù)量,一般要求n2≥4。
為了驗證本文所提出方法,使用星輿TMC201 雙目攝像頭(如圖7所示)裝車,主要采集廣州生物島道路視頻數(shù)據(jù)進行測試。計算資源采用了Intel i5 7300 CPU,16GB DDR4 RAM,在64 位Windows 10 基于Python 平臺實現(xiàn)算法進行驗證。
圖7:星輿TMC201 高精度地圖采集終端
根據(jù)第2 節(jié)構(gòu)建外參評估模型,設(shè)置地平面上4 個世界坐標點(單位為厘米):(-120,500,0),(120,500,0),(-120,900,0),(120,900,0),分別計算世界坐標點投影在圖像中的像素點:。設(shè)置透視圖的分辨率為1920×1620,在透視圖對應(yīng)的4 個像素點:(810,1540),(1110,1540),(810,1240),(1110,1240)。
選取生物島和周邊采集的若干段視頻進行標定驗證:
如圖8所示,(a)-(c)分別為不同視頻采集點外參標定結(jié)果,Devwidth表示像素值方差,Devangle表示車道線角度方差,Dev 表示透視圖中車道線一致性度量值。(a)根據(jù)標定外參把4 點世界坐標投影到圖像坐標為(481,1002),(1505,1003),(708,774),(1279, 774),通過透視變換得到右圖,對俯視圖計算Dev 為2.064,Devwidth為1.511,Devangle為0.553。(b)為根據(jù)標定外參把4 點世界坐標投影到圖像坐標為(495,1010),(1522,1005),(717,785),(1288,779),透視變換得到(b)右圖,對俯視圖計算Dev 為2.018,Devwidth為1.392,Devangle為0.625。(c)根據(jù)標定外參把4 點世界坐標投影到圖像坐標為:(513,1124),(1533,1129),(737,895),(1306,897),透視變換得到(c)右圖,對俯視圖計算Dev 為10.3,Devwidth為3.659,Devangle為6.640。其中,(a)與(b)外參相近,使用安裝外參將相同世界坐標重投影到圖像像素坐標相近,產(chǎn)生的俯視圖相近,根據(jù)外參準確性度量值Dev 可知(a)和(b)的外參符合外參標定精度要求。(c)由于地面平整,但車輛發(fā)生了明顯起伏,標定外參生成的俯視圖不符合標定精度要求,dev 為10.3,不符合外參標定精度要求。
圖8:標定外參重投影點透視變換效果圖
為了驗證標定外參對具有普適性,使用圖8(a)這組標定外參對本次采集的其它地點的圖像進行透視變換,觀察俯視圖效果,如圖9所示。由前面的實驗中可知,俯視圖中車道線的一致性可用于評估標定參數(shù)的精度,因此,外參標定結(jié)果適用于本次安裝所采集的視頻數(shù)據(jù)。
圖9:相同參數(shù)不同場景透視變換效果圖
本文提出一種用于開放道路的車載雙目相機安裝外參自標定方法。該方法利用選取的車輛行駛的平整、直行道路面擬合參數(shù)化平面,基于相機的剛性運動規(guī)律,結(jié)合道路標識(如車道線)特征,建立世界坐標系,進而計算世界坐標系與相機坐標系的轉(zhuǎn)換關(guān)系。有效解決了傳統(tǒng)方法依賴場景中布置特殊標志信息,需要人工標定操作等復(fù)雜問題,另外,根據(jù)相機外參重投影并透視變換,基于俯視圖中道路標線的一致性度量驗證外參標定精度,有效提高了標定效率,降低標定成本,滿足自動駕駛、高精度地圖采集眾包等應(yīng)用需求。
值得注意的是,本方法需要人工篩選平整、直行道路視頻進行標定,選取標定視頻的質(zhì)量影響標定結(jié)果,如圖8(c)雖然道路平整、且車輛直行,但是車輛發(fā)生明顯起伏導(dǎo)致車輛姿態(tài)與道路面關(guān)系變化,標定結(jié)果不符合要求。另外,標定外參結(jié)果根據(jù)俯視圖、一致性度量計算值進行驗證,該方法為離線標定,標定效率一定程度受操作人員經(jīng)驗等影響。在后續(xù)工作中,可結(jié)合imu 等傳感器篩選標定道路面、或基于多傳感器融合標定,另外,結(jié)合外參標定評估模型實現(xiàn)自動標定。