胡遠(yuǎn)志,劉俊生,肖佐仁,耿莊程
(重慶理工大學(xué) a.汽車噪聲振動和安全技術(shù)國家重點(diǎn)實(shí)驗(yàn)室;b.汽車零部件先進(jìn)制造技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室,重慶 400054)
環(huán)境感知是無人駕駛技術(shù)實(shí)現(xiàn)的前提,也是如今各研究機(jī)構(gòu)、高校、企業(yè)的研究熱門,而目標(biāo)檢測是環(huán)境感知最重要、基本的任務(wù)之一。深度學(xué)習(xí)技術(shù)在目標(biāo)檢測方面取得了卓越成效,使得基于圖像的目標(biāo)識別分類技術(shù)深受青睞[1]。
基于單目視覺的測距研究一直以來都備受關(guān)注。如張亞男等[2-3]提出了基于小孔成像測距方法,即利用標(biāo)定得到相機(jī)焦距及預(yù)先知曉前車寬度,可測出前車距離。顯然,該方法并不適用實(shí)時檢測場景。王士明[4]提出基于靜態(tài)圖像的測距方法,首先建立相機(jī)成像模型,標(biāo)定相機(jī)內(nèi)參得到焦距及光學(xué)中心坐標(biāo),求出前車位置。但其測量精度易受相機(jī)姿態(tài)變化的影響。鑒于此,關(guān)闖等[5-6]提出基于道路消失點(diǎn)實(shí)時估計(jì)相機(jī)姿態(tài)的方法進(jìn)行改善。然而該方法以精確檢測車道線為前提,因此無法適用于復(fù)雜工況。
目標(biāo)檢測包括了目標(biāo)識別分類和目標(biāo)定位,其精確性對于無人車能否安全行駛有著重大的影響。深度學(xué)習(xí)技術(shù)使得基于圖像的目標(biāo)檢測達(dá)到非常高的精度,但其高精度定位只局限于圖像平面,轉(zhuǎn)換為空間位置往往并不準(zhǔn)確。相比相機(jī),激光雷達(dá)有著厘米級別的空間定位精度,因此本文提出一種基于激光雷達(dá)和相機(jī)融合的聯(lián)合測距方案。一方面,利用深度學(xué)習(xí)在識別目標(biāo)上的優(yōu)勢與激光點(diǎn)云測距精度高的優(yōu)勢取得較好的檢測效果;另一方面,所采用的傳感器成本相對較低,利于商業(yè)化應(yīng)用。
為了促進(jìn)無人駕駛感知技術(shù)的發(fā)展,越來越多的數(shù)據(jù)集發(fā)布共享于網(wǎng)上。從早期的KITTI[7]、Cityscapes[8]到百度公司開源的ApolloScape[9]以及最近發(fā)布的規(guī)模最大、最多樣化的開發(fā)駕駛視頻數(shù)據(jù)集——BDD100K[10]。這些優(yōu)質(zhì)的數(shù)據(jù)集極大地方便了相關(guān)人員的研究開發(fā)工作。盡管如此,卻幾乎沒有數(shù)據(jù)集同時包含圖像、點(diǎn)云或毫米波雷達(dá)數(shù)據(jù);KITTI數(shù)據(jù)集包含有64線激光點(diǎn)云數(shù)據(jù),但仍無法滿足本文的需求——4線激光點(diǎn)云與圖像數(shù)據(jù)。因此,為了適應(yīng)本文融合方案的開發(fā),數(shù)據(jù)來源為自主搭載的數(shù)據(jù)采集車,如圖1所示。為了充分驗(yàn)證算法的適用性,進(jìn)行數(shù)據(jù)采集時考慮了不同的道路場景,如高速路、城區(qū)道路、鄉(xiāng)村土路,以及不同的光照條件,如早晨、傍晚、夜間場景等。
圖1 數(shù)據(jù)采集車示意圖
為了更有效地利用2種傳感器的數(shù)據(jù),達(dá)到提高檢測精度的目的,本文提出了一種融合框架,如圖2所示。
檢測流程分為3個部分,分別為數(shù)據(jù)前處理、數(shù)據(jù)融合測距及聯(lián)合測距。在數(shù)據(jù)前處理階段,建立數(shù)據(jù)匹配模型并標(biāo)定出兩傳感器坐標(biāo)的轉(zhuǎn)換矩陣,將三維點(diǎn)云投射到二維平面;而圖像則采用Mask R-CNN網(wǎng)絡(luò)模型進(jìn)行目標(biāo)檢測,并輸出相應(yīng)的檢測框。在數(shù)據(jù)融合階段,使用R-Tree空間索引算法,快速、穩(wěn)定地匹配檢測框與對應(yīng)的點(diǎn)云數(shù)據(jù),進(jìn)而利用點(diǎn)云的深度信息獲知目標(biāo)的真實(shí)位置。對于點(diǎn)云分布存在弊端的目標(biāo),采用聯(lián)合測距方法提高測距精度。
圖1展示了數(shù)據(jù)采集車的攝像頭坐標(biāo)系與激光雷達(dá)坐標(biāo)系。數(shù)據(jù)融合的第一步便是將2種傳感器坐標(biāo)系統(tǒng)一到同一個坐標(biāo)系下。利用Matlab標(biāo)定工具箱可算出相機(jī)內(nèi)外參及相機(jī)姿態(tài),根據(jù)安裝圖紙測算出兩傳感器的相對位置。如此便可算出內(nèi)、外參矩陣,將每幀的點(diǎn)云數(shù)據(jù)映射到對應(yīng)幀的圖像上[11]??臻g變換矩陣公式如下:
其中,fx、fy分別為相機(jī)橫、縱焦距,(u0,v0)為光學(xué)中心,這4個參數(shù)屬于相機(jī)內(nèi)參,構(gòu)成內(nèi)參矩陣;[R|T]為旋轉(zhuǎn)平移矩陣,構(gòu)成外參矩陣。Xw,Yw,Zw表示世界坐標(biāo)系,本文只關(guān)心兩坐標(biāo)系的相對位置關(guān)系,因此將世界坐標(biāo)系定義為雷達(dá)坐標(biāo)系。激光點(diǎn)云數(shù)據(jù)與圖像數(shù)據(jù)的空間匹配已有諸多相關(guān)的論文介紹[12-14]。
圖2 基于數(shù)據(jù)融合的目標(biāo)檢測流程
隨著計(jì)算資源的增加和大數(shù)據(jù)的出現(xiàn),基于深度學(xué)習(xí)的目標(biāo)檢測開始嶄露頭角。該技術(shù)里程碑式的進(jìn)展出現(xiàn)在2012年,Krizhevsky[15]提出了基于卷積神經(jīng)網(wǎng)絡(luò)的圖像分類。此后大量關(guān)于圖像分類、目標(biāo)檢測的網(wǎng)絡(luò)模型都是基于該基礎(chǔ)模型的擴(kuò)充、完善,不斷演化而來的。如雙階段的物體檢測模型R-CNN[16]、Fast R-CNN[17]、Faster RCNN[18]等,以及兼具精度與實(shí)時性的單階段模型SSD[19]、YOLO[20]等。
本文采用的Mask R-CNN模型是基于Faster R-CNN模型,擴(kuò)展了一個與現(xiàn)有目標(biāo)檢測和回歸并行的分支——目標(biāo)掩碼分支[21]。網(wǎng)絡(luò)架構(gòu)可分成用于提取圖像特征的下層卷積網(wǎng)絡(luò)和用于檢測框識別、掩碼預(yù)測的上層網(wǎng)絡(luò)。其中下層網(wǎng)絡(luò)采用101層的殘差網(wǎng)絡(luò)和特征金字塔網(wǎng)絡(luò)FPN[22]作為網(wǎng)絡(luò)骨架進(jìn)行特征提取,表示為ResNet-101-FPN。而上層網(wǎng)絡(luò)則添加了一個全卷積的掩碼預(yù)測分支,作用于下層網(wǎng)絡(luò)提取的候選框,并預(yù)測目標(biāo)的像素級的分割掩碼。
Mask R-CNN模型由Facebook研究團(tuán)隊(duì)開發(fā)并開源共享給全世界的研究人員[23]。本文不具體研究模型的網(wǎng)絡(luò)結(jié)構(gòu),根據(jù)其開源項(xiàng)目的計(jì)算機(jī)環(huán)境配置方式進(jìn)行操作,可方便調(diào)用模型。
經(jīng)過數(shù)據(jù)前處理階段,得到2種數(shù)據(jù)對于同一目標(biāo)的一致性表達(dá)。實(shí)際上,點(diǎn)云盡管帶有三維空間位置信息和二維平面信息,但是缺少獨(dú)立的身份信息。因此,點(diǎn)云在圖像上呈現(xiàn)出無序的特點(diǎn),并不知曉每個點(diǎn)云對應(yīng)哪個目標(biāo)。為了利用點(diǎn)云的深度信息計(jì)算目標(biāo)位置,需要將點(diǎn)云與對應(yīng)目標(biāo)(檢測框)進(jìn)一步匹配。本文采用R-Tree空間索引算法解決這一問題。
4.1.1 算法介紹
R-Tree[24-25]是一種按照對象的空間位置關(guān)系來組織數(shù)據(jù)的動態(tài)平衡樹,具有很強(qiáng)的靈活性和可調(diào)節(jié)性。如圖3(a)所示,從葉子結(jié)點(diǎn)開始,每一個結(jié)點(diǎn)的父親結(jié)點(diǎn)在空間上完全包含其所有的子結(jié)點(diǎn)。逐層上溯,形成一個完整的、描述了不同層次的結(jié)點(diǎn)之間的空間包含關(guān)系的數(shù)據(jù)結(jié)構(gòu)。
圖3 R-Tree結(jié)構(gòu)示意圖
本文應(yīng)用R-Tree算法建立一種數(shù)據(jù)結(jié)構(gòu)來描述物體檢測框與點(diǎn)云間的位置關(guān)系。針對檢測框與數(shù)據(jù)點(diǎn)關(guān)聯(lián)的具體問題,設(shè)計(jì)了2層R-Tree數(shù)據(jù)結(jié)構(gòu),如圖3(b)所示。其中,R-Tree的第一層保存物體檢測框,第二層保存雷達(dá)數(shù)據(jù)點(diǎn)。Python編程語言集成該算法包,其函數(shù)的輸入為數(shù)據(jù)前處理階段得到的目標(biāo)檢測框和轉(zhuǎn)換到二維平面的點(diǎn)云數(shù)據(jù)。
4.1.2 匹配效率測試
為驗(yàn)證R-Tree算法的匹配效率,隨機(jī)挑選70幀圖像與對應(yīng)的點(diǎn)云數(shù)據(jù)進(jìn)行測試。其中圖像中的目標(biāo)(檢測框)數(shù)量不定,點(diǎn)云的數(shù)量也不定,測試結(jié)果如圖4所示。圖4中,圖4(a)為70幀圖像數(shù)據(jù)的檢測框數(shù)量變化與點(diǎn)云數(shù)量變化情況,青色折線表示檢測框,橘色折線表示點(diǎn)云;圖4(b)為算法匹配2種數(shù)據(jù)的時間。藍(lán)色折線、紅色直線為均值;貫穿兩圖的黑色虛線反映了檢測框數(shù)量與點(diǎn)云數(shù)量對于匹配效率的影響。
圖4 匹配效率測試結(jié)果
基于R-Tree的算法平均耗時約為0.5 ms;隨著檢測框和點(diǎn)云數(shù)量的變化,匹配時間波動在1 ms內(nèi),說明了匹配效率較為穩(wěn)定,算法具有較好的魯棒性。
物體檢測框與點(diǎn)云匹配完成后,檢測框便存儲有投射其內(nèi)的點(diǎn)云,再提取框中全部點(diǎn)云的距離信息并求平均值,以得到每個檢測框的距離,即目標(biāo)的空間位置。點(diǎn)云測距熱圖如圖5所示。
圖5 點(diǎn)云測距熱圖
目標(biāo)的空間位置信息用紅色字體標(biāo)注于檢測框的左下角。該距離信息以車載激光雷達(dá)坐標(biāo)系為參考系,即表示目標(biāo)與車載激光雷達(dá)的直線距離,根據(jù)需求可算出目標(biāo)距本車的縱向距離和橫向距離。圖中不包含點(diǎn)云的檢測框設(shè)置為OUT,表示目標(biāo)超出了激光雷達(dá)的探測范圍。
本文發(fā)現(xiàn)并不是所有的點(diǎn)云都能代表目標(biāo)的距離,不加處理地利用框內(nèi)所有點(diǎn)云測距是不合理的。如前方目標(biāo),應(yīng)該關(guān)注分布在車尾的點(diǎn)云,而濾除車側(cè)的點(diǎn)云,這樣得到的距離才能保證無人車行車安全。
僅靠點(diǎn)云數(shù)據(jù)獲取目標(biāo)的空間位置信息,會出現(xiàn)4個弊端:檢測框內(nèi)無點(diǎn)云;檢測框內(nèi)的點(diǎn)云并不都能代表目標(biāo)的空間位置;檢測框內(nèi)夾雜異常點(diǎn)云;點(diǎn)云被重復(fù)框中。
1)無論遠(yuǎn)近的目標(biāo),都存在被卷積模型成功檢測識別后,檢測框內(nèi)無相應(yīng)點(diǎn)云的情況,如圖6(a)所示。
圖6 弊端分析個例
對于遠(yuǎn)距離目標(biāo),受4線激光雷達(dá)的探測距離及安裝姿態(tài)的影響,圖像深處的點(diǎn)云比較稀疏;對于近處目標(biāo),受到其他目標(biāo)或障礙物的遮擋,點(diǎn)云被攔截。這2種情況都可能導(dǎo)致框內(nèi)無點(diǎn)云。
2)無論是靜止或運(yùn)動中的目標(biāo),其姿態(tài)會影響框內(nèi)點(diǎn)云的分布,如圖6(b)案例所示。顯然,并非同一框內(nèi)的所有點(diǎn)云都能表示目標(biāo)的空間位置,出于安全考慮,應(yīng)更關(guān)注那些距離本車更近的點(diǎn)云,車側(cè)的點(diǎn)云應(yīng)濾除。
3)由于點(diǎn)云與圖像匹配精度的影響及卷積神經(jīng)網(wǎng)絡(luò)檢測精度的影響等因素,檢測框內(nèi)難免會存在混入異常點(diǎn)云的情況,如圖6(c)所示。部分點(diǎn)云明顯不屬于所指向的目標(biāo),但受點(diǎn)云與圖像匹配精度的影響,被目標(biāo)框中;此外,匹配合理及檢測精確的情況下,仍會框中異常點(diǎn)云。為了得到更精確的目標(biāo)空間位置信息,應(yīng)濾除檢測框內(nèi)的異常點(diǎn)。
4)由于目標(biāo)重疊,常出現(xiàn)點(diǎn)云被重復(fù)框中的情況。如圖6(d)所示,目標(biāo)重疊使得對應(yīng)的檢測框也重疊,部分點(diǎn)云被2個框同時框中,最終導(dǎo)致目標(biāo)的位置信息失真。
盡管靜態(tài)圖像測距方法的測量精度容易受相機(jī)姿態(tài)變化的影響,且距離越遠(yuǎn)的目標(biāo)其影響越大,但對于近處目標(biāo),該方法的測量誤差在可接受范圍內(nèi),故本文采用該方法。如圖7所示,建立測距模型,其中XOM Y為世界坐標(biāo);u和v分別表示像素坐標(biāo)系中的橫縱坐標(biāo),單位為像素;XO′Y為圖像坐標(biāo)系,原點(diǎn)O′為光軸與成像平面的交點(diǎn),其在像素坐標(biāo)系中的坐標(biāo)為(u0,v0);相機(jī)焦距f的值為O′-O距離。
圖7 靜態(tài)圖像測距模型
圖7中,Y為縱向距離,H為相機(jī)安裝高度,α為光軸與水平面的夾角,即相機(jī)俯仰角,P為目標(biāo)點(diǎn),其與光心的連線與光軸的夾角為γ,與Y軸夾角為β,并投影于成像平面P′。由圖7可得幾何關(guān)系式為
式中:y表示檢測框底邊到光心的距離。為了檢測該方法的適用范圍,本文挑選了一批數(shù)據(jù)集,選取距離在3~60 m范圍內(nèi)的目標(biāo),且這些目標(biāo)上的點(diǎn)云不存在弊端,作為測試集的真值,測試效果如圖8所示。
圖8 基于圖像的前方目標(biāo)測距誤差分析圖
當(dāng)目標(biāo)的距離在5~20 m區(qū)間時,誤差普遍控制在0.5 m以下。同時,鋸齒狀較多說明測量不穩(wěn)定。這是因?yàn)槠囆旭傔^程中,相機(jī)的姿態(tài)時刻在變化著,尤其是俯仰角,無論直道或者彎道,俯仰角都會變化并且對于基于圖像的測距影響很大。對于近距離目標(biāo),相機(jī)姿態(tài)變化所引起的測量誤差較小,但隨著距離變大,誤差也越大。在區(qū)間5~20 m內(nèi)求得平均測距誤差為0.44 m,誤差中位數(shù)為0.38 m;而區(qū)間以外,誤差值超過1 m,已不具有參考性。因此,所提的圖像測距方法適用距離小于20 m的目標(biāo)。
5 3.1 方法介紹
僅依靠點(diǎn)云信息,無法保證測距足夠準(zhǔn)確。本文提出一種基于圖像、點(diǎn)云聯(lián)合測距方法來避免這4個弊端。統(tǒng)計(jì)發(fā)現(xiàn),投射在遠(yuǎn)處目標(biāo)的點(diǎn)云,相較出現(xiàn)上述弊端的概率低。綜合分析可知,對于近處目標(biāo),可采用基于單目視覺的測距方法初步計(jì)算其位置,根據(jù)所得值來篩選檢測框內(nèi)的點(diǎn)云,并算出距離均值作為最終測算結(jié)果。對于沒有點(diǎn)云的近處目標(biāo),則依賴基于圖像測距所算得的值;而遠(yuǎn)處目標(biāo),當(dāng)單目測距方法的誤差太大,不具備參考意義時,則依賴高精度點(diǎn)云。聯(lián)合測距方法如圖9所示。
圖9 聯(lián)合測距流程
當(dāng)被測目標(biāo)的距離小于20 m時,執(zhí)行基于圖像的測距算法,用得到的初步距離值來篩選檢測框中的點(diǎn)云,如此便能在一定程度上避免5.1節(jié)列舉的弊端。由于激光雷達(dá)測距精度高,最終測距結(jié)果由篩選出的合理的點(diǎn)云來計(jì)算;另外,如果不滿足,則進(jìn)一步判斷檢測框內(nèi)是否有點(diǎn)云,如有則直接依據(jù)點(diǎn)云的信息,如無則表示無法測得該目標(biāo)的距離。
5.3.2 測試驗(yàn)證與分析
為了測試驗(yàn)證聯(lián)合測距算法的有效性,從自建數(shù)據(jù)庫隨機(jī)挑選并制作一批新的測試集。該測試集區(qū)別于5.2節(jié)所篩選的測試集。該測試集存在弊端點(diǎn)云,并且重新標(biāo)定距離不合理的目標(biāo)。據(jù)統(tǒng)計(jì),共抽取404個目標(biāo)作為真值,其中距離小于20m的真值為141個。測試結(jié)果如圖10所示。
圖10 聯(lián)合測距方法測試驗(yàn)證結(jié)果
對于距離小于20 m的目標(biāo),本文采用聯(lián)合測距方法,其與僅靠點(diǎn)云的測距方法的對比如圖10中紅色虛線框所在的區(qū)域。顯然,聯(lián)合測距方法優(yōu)化了兩個方面:
1)測距誤差減小。如圖10紅色虛線框的放大圖,其中紅色虛線表示聯(lián)合測距的平均誤差,黑色虛線表示點(diǎn)云測距的平均誤差,平均誤差從原來的2.36 m減小到0.37 m;
2)測量值更穩(wěn)定。黑線呈現(xiàn)出多而尖銳的鋸齒狀,紅線盡管也存在鋸齒狀,但明顯在數(shù)量上更少、程度上更輕,整體趨勢更為平緩。
這兩方面的優(yōu)化說明了本節(jié)提出的聯(lián)合測距算法能有效降低點(diǎn)云出現(xiàn)弊端時產(chǎn)生的測量誤差。并且觀察到圖中黑線,在距離小于20 m的區(qū)間內(nèi),測量值極不穩(wěn)定;而大于20 m的區(qū)間內(nèi),測量值逐漸趨于平緩穩(wěn)定。這說明對于近距離目標(biāo),點(diǎn)云分布更容易出現(xiàn)弊端,其所測的值不可靠;而遠(yuǎn)距離目標(biāo),點(diǎn)云弊端較少出現(xiàn),大概率上可更信任點(diǎn)云的測量值。此外,圖中綠色實(shí)線框區(qū)域表示測量較為精確。20 m內(nèi)的目標(biāo)由聯(lián)合測距算法來測距,而大于20 m的目標(biāo)則選擇信任點(diǎn)云測距,從而使整個測距區(qū)域的測量精確性與穩(wěn)定性都得以改善,進(jìn)一步說明了所提方法的有效性,如圖11列舉了部分實(shí)例。
圖11 聯(lián)合測距方法測試驗(yàn)證實(shí)例
圖11中,目標(biāo)的縱向距離值標(biāo)于檢測框的左下角。其中紅色代表真值,藍(lán)色代表點(diǎn)云測距結(jié)果,綠色代表聯(lián)合測距結(jié)果。
當(dāng)目標(biāo)小于5 m時,聯(lián)合測距并不理想,如圖中奧迪Q5的縱向距離標(biāo)定為2.21m,然而聯(lián)合測距結(jié)果為4.57 m,原因可能是圖像畸變所產(chǎn)生的測距誤差。隨著目標(biāo)距離的增加,聯(lián)合測距的結(jié)果越來越接近真值,如圖中由近及遠(yuǎn)的各目標(biāo)。顯然,實(shí)例所展示的測試結(jié)果的趨勢與圖10的趨勢一致。
該算法依然存在不足,并由線段的走勢來分析,不足主要來自兩個方面。一方面,對范圍5 m內(nèi)的目標(biāo),聯(lián)合測距方法雖能在一定程度上改善測距效果,但考慮到行車安全性,其仍不適用于該區(qū)域;另一方面,對遠(yuǎn)距離目標(biāo),該算法無法解決出現(xiàn)異常點(diǎn)云的情況,即前文所述的弊端3,在目標(biāo)距離為36.8m和46.74m處出現(xiàn)2個較嚴(yán)重的尖點(diǎn)??紤]到遠(yuǎn)距離目標(biāo)對于精度的要求并不那么迫切,因此該算法當(dāng)務(wù)之急是解決車跟前區(qū)域的測量性能。
本文提出一種基于4線激光雷達(dá)及攝像頭融合的目標(biāo)測距方案,既利用了點(diǎn)云高精度特點(diǎn),又利用了深度學(xué)習(xí)在圖像檢測方面的優(yōu)勢,同時兼顧了設(shè)備總成本。測試驗(yàn)證表明,所提方法能有效改善單目視覺測距所造成的不精確、不穩(wěn)定的缺點(diǎn)。
該方法存在的不足在于:首先,對于距離小于5 m的近處目標(biāo),測距效果依然沒有太大改善,原因可能是圖像畸變影響了測距精度;其次,對于沒有點(diǎn)云信息覆蓋的遠(yuǎn)處目標(biāo),無法實(shí)現(xiàn)測距;另外,對于覆蓋有異常點(diǎn)云的遠(yuǎn)處目標(biāo),無法精確測距。所述不足可嘗試從加強(qiáng)圖像測距精度及適用范圍的角度作進(jìn)一步改善,這也是本文下一步繼續(xù)完善融合方案的方向。