劉福明
(廣東工貿(mào)職業(yè)技術(shù)學(xué)院 廣東省廣州市 510510)
在自動(dòng)駕駛、巡檢機(jī)器人、視覺地圖采集等應(yīng)用中常常使用相機(jī)感知場景,達(dá)到學(xué)習(xí)、避障等目的[1][2]?;谀繕?biāo)檢測、跟蹤、視覺測量技術(shù)可獲知場景中目標(biāo)在相機(jī)坐標(biāo)系下的定位,而在實(shí)際應(yīng)用領(lǐng)域中,常常需要對目標(biāo)在世界坐標(biāo)系下定位,實(shí)現(xiàn)避障、地圖元素采集等功能。對既定的相機(jī),相機(jī)內(nèi)外參是影響定位精度的關(guān)鍵因素,其中相機(jī)不發(fā)生強(qiáng)烈碰撞、拆解等操作,內(nèi)參不變,通常傳統(tǒng)內(nèi)參標(biāo)定方法滿足大部分應(yīng)用需求。當(dāng)今ADAS、地圖矢量數(shù)據(jù)眾包方式采集等應(yīng)用與維護(hù)對外參標(biāo)定提出新的要求,既要高精度,也快速有效,甚至要求標(biāo)定自動(dòng)化。
為了標(biāo)定高精度的相機(jī)外參,常規(guī)方法是建設(shè)標(biāo)定場地輔助標(biāo)定。zhang 等[3]提出根據(jù)九點(diǎn)標(biāo)定法[4]約束設(shè)置特定標(biāo)定物,以標(biāo)志物與相機(jī)的空間位姿關(guān)系計(jì)算外參。石麗梅等[5]提出一種外方位元素標(biāo)定方法,布設(shè)高精度GPS控制點(diǎn),通過重投影建立點(diǎn)的相關(guān)性,結(jié)合地理參考絕對定位方程和坐標(biāo)變換,求得外參。上述方法能標(biāo)定精度較高的外參,但是對標(biāo)定場所與標(biāo)定物配置有特殊要求,只能離線標(biāo)定,對產(chǎn)品量產(chǎn)與維護(hù)有較大限制。為解決標(biāo)定場地依賴的局限,一些方法[6][7]提出結(jié)合視覺里程計(jì)在線標(biāo)定外參,不需要專門的標(biāo)定場地和特定的標(biāo)定物。但這類方法運(yùn)用在車載相機(jī)應(yīng)用上時(shí),由于戶外道路空曠、平滑,圖像顯著特征點(diǎn)稀疏,增加圖像幀間特征點(diǎn)關(guān)聯(lián)與約束關(guān)系建立的難度,并增加視覺里程累加誤差,外參標(biāo)定成功率不高。孫士杰等[8]和陳錦龍等[9]分別基于RGB-D 相機(jī)和雙目相機(jī)獲得場景的3D點(diǎn)云,擬合參數(shù)化道路面,根據(jù)地平面與世界坐標(biāo)系的約束關(guān)系、與相機(jī)坐標(biāo)系的空間關(guān)系,計(jì)算相機(jī)的外參。然而,RGB-D 相機(jī)對自然光敏感,在戶外測量誤差較大,且只能應(yīng)用在設(shè)備低速、平整道路面直行標(biāo)定場景,因此,這類方法不適用于開發(fā)道路對車載相機(jī)外參標(biāo)定。廖文龍等[10]提出在開放道路中通過匹配高精度地圖對外參自校正方法,通過深度學(xué)習(xí)檢測并提取車道線,結(jié)合高精度地圖真值重投影關(guān)聯(lián),通過梯度下降迭代逼近校正外參。該方法對相機(jī)外參改變時(shí)能迅速自動(dòng)校正,支持實(shí)時(shí)在線外參優(yōu)化,但是依賴高精度地圖真值,限制了標(biāo)定場地要求。á. Catalá-Prat 等[11]提出對車道線檢測與提取,并初始透視矩陣投影在俯視圖中,使用牛頓法迭代求解相機(jī)的俯仰角、翻滾角、偏航角,同步校正透視矩陣,改變俯視圖中車道線的平行度、寬度評估外參精度。該方法不依賴具體標(biāo)定場地與真值,能快速標(biāo)定外參,且操作簡便,但是采用牛頓法迭代容易陷入局部最優(yōu)值。
綜上所述,現(xiàn)有的相機(jī)外參標(biāo)定方法已有較為成熟的方案,但新的應(yīng)用形態(tài)對外參標(biāo)定提出了新的要求,基于這種情況,本文方法采用雙目相機(jī)對場景視覺測量,使用平整道路面點(diǎn)云擬合參數(shù)化平面,檢測并提取車輛直行狀態(tài)下車道線并以其3D 坐標(biāo)計(jì)算車輛行駛方向矢量,基于左手系以參數(shù)化平面與車輛前向矢量建立世界坐標(biāo)系,并構(gòu)建世界坐標(biāo)系與相機(jī)坐標(biāo)系的歐式變換模型,進(jìn)而得到相機(jī)外參。為了實(shí)現(xiàn)標(biāo)定自動(dòng)化,通過檢測、提取、跟蹤圖像中車道線,識別車輛直行狀態(tài);以網(wǎng)格采樣檢測點(diǎn),統(tǒng)計(jì)相機(jī)坐標(biāo)系下縱向相鄰兩測量點(diǎn)間的距離關(guān)系,進(jìn)而檢測平整道路面;通過世界坐標(biāo)點(diǎn)重投影,以重投影點(diǎn)透視變換產(chǎn)生俯視圖,自動(dòng)對車道線采樣并對其一致性度量驗(yàn)證外參精度。
由于相機(jī)安裝相對世界坐標(biāo)系存在位移、俯仰角、偏航角和翻滾角,導(dǎo)致相機(jī)坐標(biāo)系與世界坐標(biāo)系不重合,因此需要標(biāo)定安裝外參。常用外參標(biāo)定方法是,根據(jù)相機(jī)的剛性運(yùn)動(dòng)特性,構(gòu)建歐式變換關(guān)系[R|T],實(shí)現(xiàn)世界坐標(biāo)系Owxwywzw與相機(jī)坐標(biāo)系Ocxcyczc間的轉(zhuǎn)換。
本文主要對雙目相機(jī)的外參標(biāo)定,相機(jī)外參為:
本文所述車載雙目相機(jī)自標(biāo)定流程如圖1 所示。讀取視頻幀或?qū)崟r(shí)采集圖像作為系統(tǒng)輸入;根據(jù)車道線檢測、提取與跟蹤檢測車輛是否在直行道路行駛,篩選用于標(biāo)定的場景;使用相機(jī)內(nèi)參與半全局匹配算法[12]獲得場景的視差圖,并進(jìn)一步計(jì)算地平面3D 點(diǎn)云;對平整道路擬合參數(shù)化道路面,并結(jié)合車輛前向向量構(gòu)建世界坐標(biāo)系;基于相機(jī)剛性運(yùn)動(dòng)特性,通過相機(jī)與世界坐標(biāo)系的歐式變換關(guān)系計(jì)算相機(jī)外參?;诟┮晥D下道路標(biāo)線的寬度、延伸方向等一致性度量對每次標(biāo)定的相機(jī)外參進(jìn)行精度驗(yàn)證,對符合精度要求的相機(jī)外參持久化存儲。
圖1:車載雙目相機(jī)外參標(biāo)定流程圖
由于相機(jī)標(biāo)定是確定相機(jī)坐標(biāo)系與世界坐標(biāo)系(或車身坐標(biāo)系)的變換關(guān)系,因此,需先建立相機(jī)坐標(biāo)系與世界坐標(biāo)系。其中,相機(jī)坐標(biāo)系基于左手系建立,以雙目相機(jī)鏡頭連線的中心點(diǎn)為坐標(biāo)系原點(diǎn)Oc,Xc軸沿著相機(jī)橫向方向往右,Zc為相機(jī)拍攝方向,Yc為垂直相機(jī)向上。
一般情況世界坐標(biāo)系根據(jù)具體需求建立,為了便于計(jì)算,以車身為參考建立世界坐標(biāo)系。如圖2 所示,以相機(jī)坐標(biāo)系原點(diǎn)垂直地平面投影點(diǎn)為世界坐標(biāo)系原點(diǎn)Ow;車身坐標(biāo)系Yw軸指向車輛正前方向;世界坐標(biāo)系Zw軸垂直地平面向上;世界坐標(biāo)系Xw軸為垂直車身向右。其中,H 為雙目相機(jī)安裝高度。
圖2:坐標(biāo)系建立示意圖
通過上述方式建立坐標(biāo)系,可以清晰地描述兩個(gè)坐標(biāo)系的變換關(guān)系,并簡化外參標(biāo)定計(jì)算過程。
由于相機(jī)運(yùn)動(dòng)屬于剛性運(yùn)動(dòng),一個(gè)向量在兩坐標(biāo)系下的長度和夾角不改變,因此兩坐標(biāo)系的變換為歐式變換。對歐式變換,根據(jù)式(1),可以把齊次坐標(biāo)變換表示為:
因此,雙目相機(jī)的外參標(biāo)定的核心任務(wù)是計(jì)算車輛前行方向矢量和擬合參數(shù)化道路面。
為了獲得魯棒的前向向量,需要在車輛保持直行狀態(tài)下,檢測視覺場景中與車輛前向平行的道路標(biāo)線。車道線作為開放道路上最常見的道路標(biāo)線元素,而且平行于車輛行駛方向,通過對車道線檢測、跟蹤,可判別車輛是否保持直行。當(dāng)車輛保持直行時(shí),基于車道線檢測與雙目測量可獲得較為健壯的車輛前向向量。
通常圖像中車道線區(qū)域比其它區(qū)域更加顯著,因此,根據(jù)與周邊像素的顯著程度檢測圖像中車道線區(qū)域,提出基于寬度的顯著性比較的車道線檢測方法:
其中,I(x,y)表示像素(x,y)的灰度值。δ 為顯著度比較的兩像素坐標(biāo)橫向距離,近似圖像中車道線寬度,由于車道線寬度在圖像中由近至遠(yuǎn),呈由大變小,因此,δ 設(shè)定為根據(jù)像素縱坐標(biāo)自適應(yīng):
其中,max 與min 分別為ROI 內(nèi)車道線寬度最大、最小值;yvp為車道線滅點(diǎn)對應(yīng)的縱坐標(biāo);ε 為補(bǔ)償值(默認(rèn)值為5)。對圖像ROI 區(qū)域所有像素點(diǎn),對滿足d1>0,d2>0,D>θ 的像素點(diǎn)判別為車道線區(qū)域像素點(diǎn),其中,θ為像素顯著性判斷閾值,設(shè)為0.5*I(x,y)用以自適應(yīng)光照變化。
遍歷圖像ROI 中所有像素點(diǎn),生成二值圖,如圖3 所示,其中白色區(qū)域表示車道線,黑色區(qū)域?yàn)榉擒嚨谰€區(qū)域。
圖3:基于寬度的車道線檢測效果圖
由于雙目相機(jī)相對車輛是固定的,通過對同一車道線在圖像中成像區(qū)域跟蹤,可判斷車輛是否保持直行。但車道線在圖像中呈面狀區(qū)域(如圖3 所示),難以用于跟蹤、矢量表示,基于車道線的邊緣具有平整、連續(xù)、沿前方延伸等特性,采用霍夫變換提取圖3 車道線兩側(cè)邊線(如圖4 所示),以車道線邊線進(jìn)行跟蹤與矢量計(jì)算。同一車道線的左右邊線的情況具有相對一致性,因此,選取車道線的內(nèi)邊線表示車道線。
圖4:霍夫變換提取車道線邊線效果
圖5:道路面測量點(diǎn)成像示意圖
跟蹤模型對任意跟蹤的車道線表示為車道線與橫向夾角anglei和線與ROI 底線交點(diǎn)的橫坐標(biāo)xi組合成的二元組(anglei, xi),而跟蹤模型由若干車道線組成,可表示為二元組集M{(anglei, xi)|i=1,…n}。
跟蹤模型包含車道線的預(yù)測與更新兩部分。對圖像序列,以二元組集M 作為車道線的預(yù)測值,根據(jù)新提取的霍夫線與二元組集M 的相似性判斷是否為車道線,并劃分歸屬車道線。第t 幀圖像提取的霍夫線HLt{(anglej, xj)|j=1,…m}符合模型M 要求滿足:
圖6:測量點(diǎn)棋盤采樣示意圖
車身坐標(biāo)系的建立依賴車輛前向矢量和道路面法向量,其中,前向矢量通過3.2 節(jié)方法求解,而法向量通過構(gòu)建精確的參數(shù)化道路面獲得。為了更好檢測參數(shù)化地平面,獲得精確的法向量,須在平整道路面,通過視覺測量獲取地平面的3D 點(diǎn)云,運(yùn)用RANSAC[13]過濾外點(diǎn),采用最小二乘法擬合最優(yōu)地平面,最后通過地平面計(jì)算法向量。
在開放道路上標(biāo)定,常常因?yàn)榈缆访娌黄秸?、傾斜道路面、障礙物,擁堵路況前方車輛影響等因素影響參數(shù)化地平面精度,因此,通過對圖像中道路面自檢,篩選出符合標(biāo)定要求的道路面。
為保障外參的標(biāo)定精度,建立外參驗(yàn)證模型對外參自動(dòng)評估與精度驗(yàn)證。車輛在開放道路標(biāo)定,基于法律法規(guī)、安全等考慮,不能在車輛行駛的道路面放置標(biāo)志物,因此,傳統(tǒng)的檢驗(yàn)方法不再適用。本文參考á. Catalá-Prat 等[11]提出的基于俯視圖中車道線寬度一致性、車道線間平行度、車道線是否平行縱向評估外參準(zhǔn)確性。
由于相機(jī)坐標(biāo)系與車身坐標(biāo)系間的變換為歐式變換,公式(1)可世界坐標(biāo)系到相機(jī)坐標(biāo)系的轉(zhuǎn)換矩陣:
如圖7 所示為根據(jù)圖像進(jìn)行透視變換生成車前區(qū)域道路面的俯視圖,通過若干橫向采樣線,采集與車道線邊界的霍夫線交點(diǎn)作為計(jì)算車道線寬度和平行性質(zhì)的驗(yàn)證點(diǎn),由于寬度、平行性質(zhì)具有共性,因此通過計(jì)算車道線寬度一致性評估外參:
圖7:驗(yàn)證點(diǎn)采樣示意圖
本文采用深度雙目相機(jī)裝車,采集廣州生物島片區(qū)開放道路數(shù)據(jù),并在硬件為Intel i5 7300 CPU,16GB DDR4 RAM,操作系統(tǒng)為64 位Windows 10 的PC 機(jī)上,基于Python 平臺進(jìn)行算法驗(yàn)證。
如圖8 所示,左圖為車輛直行狀態(tài)下連續(xù)3 幀車道線跟蹤效果,把車道線根據(jù)位置投影在黑色背景區(qū)域,各圖像的車道線內(nèi)邊界霍夫線基本重疊,可以判斷車輛為直行狀態(tài)。右圖車輛在當(dāng)前車道行駛時(shí)發(fā)生了輕微的偏航,相機(jī)與車道線的相對位置發(fā)生了改變,因此車道線根據(jù)位置投影在黑色背景區(qū)域時(shí)可以區(qū)分各線段,如此便判斷車輛不是直行狀態(tài)。
圖8:基于車道線跟蹤效果圖
如圖9 所示對道路面平整檢測,使用網(wǎng)格采集測試點(diǎn)并根據(jù)縱向相鄰兩點(diǎn)間距離為判斷依據(jù),其中“大圓點(diǎn)”為無效點(diǎn),該類點(diǎn)一般為障礙物、前方車輛、深度圖的空洞區(qū)域上的點(diǎn),屬于干擾點(diǎn),而“小圓點(diǎn)”為有效點(diǎn)。其中上圖為平整道路面檢測結(jié)果,雖然存在稀疏的“大圓點(diǎn)”,但是絕大部分采集檢測點(diǎn)為可用點(diǎn),符合道路面擬合要求。下圖前方有車輛,且車輛部分與采樣區(qū)域重疊,其中車輛上的采樣點(diǎn)不符合參數(shù)化道路面擬合要求。由此避免障礙物、前方車輛等不屬于道路面的干擾點(diǎn)用于擬合參數(shù)化道路面,影響標(biāo)定效果。
圖9:道路面檢測效果示意圖
如圖10 所示(a)和(b)分別為不同路段采集的視頻進(jìn)行外參標(biāo)定效果圖。(a)和(b)俯視圖中車道線的評估指標(biāo)σw和σa均符合驗(yàn)證模型要求,自動(dòng)判別并持久化。然而,即使均判別為符合標(biāo)定精度要求,但是(b)的標(biāo)定精度優(yōu)于(a)的精度。
圖10:外參標(biāo)定重投影生成俯視圖效果圖
本文提出一種開放道路的車載雙目相機(jī)安裝外參自動(dòng)標(biāo)定方法。該方法通過建立車輛直行狀態(tài)識別模型、并通過檢測點(diǎn)采樣評估道路面平整程度,篩選車輛直行、平整的道路面擬合參數(shù)化平面,基于左手系建立車身坐標(biāo)系,并通過相機(jī)坐標(biāo)系與世界坐標(biāo)系的歐式變換計(jì)算相機(jī)標(biāo)定外參,并設(shè)計(jì)外參驗(yàn)證模型,在線評估外參精度,實(shí)現(xiàn)標(biāo)定自動(dòng)化。解決了傳統(tǒng)外參標(biāo)定方法依賴專門標(biāo)定場地和特定標(biāo)志物,只能離線人工操作并依賴操作人經(jīng)驗(yàn)等問題,為自動(dòng)駕駛、ADAS 等量產(chǎn)與維護(hù)在外參標(biāo)定上面臨的新問題提供了解決方案。
另外,本文通過檢測點(diǎn)采樣、視覺測量、兩點(diǎn)距離統(tǒng)計(jì)等操作檢測平整道路面,效果受視覺測量、視覺場景等因素影響,在過曝、車輛高速行駛時(shí)往往不具備應(yīng)用條件。另外,即使部分參數(shù)通過模型驗(yàn)證,測量效果不一,誤差5-20cm 間。在后續(xù)工作中,可結(jié)合深度學(xué)習(xí)對場景中元素檢測,提高抗干擾能力;融合imu 等傳感器檢測車輛狀態(tài)對測量、參數(shù)補(bǔ)償。