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