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