郭云鵬,鄒 凱,陳升東,袁 峰
(廣州中國科學院軟件應用技術研究所,廣州 511458)
智能交通系統(Intelligent Transport System,ITS)通過人工智能與信息通訊技術可以有效提升道路交通的安全和效率[1,2],目前已經得到廣泛的認可,它包含“聰明的車”和“智慧的路”兩部分.車路協同是ITS 發展的高級階段,用來實現車與車以及車與路側系統之間的通信,使車輛能夠更好地感知周圍環境,接受輔助駕駛的相關信息,讓道路監管部門能夠更有效地處理交通事故[3,4].
其中,路側感知是車路協同應用開發的重要組成部分,通過在路側部署傳感器,將采集到的路面信息經V2X 通信給到車輛,使車輛擁有超視距的感知能力.在實際應用中,為達到最優的路側感知效果,不同的場景往往需要不同的RSU 配置,RSU的選型及安裝是一個耗時耗力的過程,另外,交通參與者的識別是路側感知的核心,基于機器學習的識別算法需要大量的標簽數據,而人工打標簽被驗證是一個效率極其低下的方式.而隨著近些年計算機硬件性能的不斷提升,將仿真技術應用于智能交通領域成為了各類研發機構加速開發進程的必要手段[5,6].
當前智能交通領域的模擬仿真主要圍繞自動駕駛算法驗證,車路協同V2X 通訊,車載傳感器數據采集等幾個方面展開.Gelbal 等基于dSPACE Scalexio 系統和Carsim 仿真軟件構建了一套用于自動駕駛算法開發的硬件在環模擬仿真系統[7],Amini 等提出了一種基于虛擬圖像合成和變換,以數據為驅動的仿真工具,用于端到端的自動駕駛控制策略研究[8],Szendrei 等基于SUMO 設計了一套用于車路協同應用快速建模和測試的硬件在環V2X模擬仿真架構[9],Choudhury 等搭建了集成VISSIM、Matlab和NS3,用于V2X 協議和應用的模擬仿真測試環境[10],Su 等提出了一種采用GPU計算虛擬環境中三維物體點云的車載激光雷達仿真方法[11],百度采用真實點云背景結合虛擬交通體的方式來模擬車載激光雷達感知虛擬環境的方式[12],Dworak 等則利用CARLA 仿真軟件模擬激光雷達采集純虛擬的點云數據,通過與公開測試集中的數據對比,發現仿真環境中的模擬點云可以作為真實數據的補充[13].
從分析來看,針對路側感知的模擬仿真目前還很少人涉及,但作為車路協同的應用開發卻同樣是不可或缺的,本文將從路側感知的模擬仿真入手,介紹相關的系統搭建工作以及在此基礎上的兩個應用案例.
經典的自動駕駛仿真平臺包括虛擬場景、動態案例仿真、傳感器仿真、車輛動力學仿真等獨立模塊[14],如圖1所示.針對路側感知的模擬仿真側重于路側傳感器與車輛以及環境之間的交互,因此,跟自動駕駛仿真平臺的最大區別在于傳感器類型為路側傳感器而非車載傳感器,但為了最大限度還原真實世界的相關特性,仍然需要包括圖形引擎、物理引擎以及與外界通訊的中間件系統作為基礎支撐,如圖2所示.

圖1 自動駕駛仿真系統典型架構

圖2 路側感知仿真系統架構
文獻[15] 從V2X、交通流、非自動駕駛車輛、傳感器、圖形渲染、自動駕駛車輛動態模型等幾方面總結了當前用于智能交通領域的主流模擬仿真軟件情況,如表1所示.其中,TF 代表交通流,DM 代表非自動駕駛車輛的駕駛模型,SE 代表傳感器,VI 代表渲染畫質,VD 代表自動駕駛車輛動態模型.另外,表格內,i 表示需要二次開發,o 表示沒有相關功能,--表示非常差,-表示較差,+表示較好,++表示非常好.

表1 各類仿真軟件對比
由圖2可知,本文設計的路側感知仿真系統需要突出包括傳感器仿真,環境和交通渲染,車輛動力學模擬等,通過表1的數據分析可以得到滿足這些要求的有Carla、LGSVL、Righthook、SCANeR、VTD 以及CarMaker,其中Carla和LGSVL為開源軟件.
LGSVL是基于游戲引擎Unity 開發的一款主要用于自動駕駛開發和測試的模擬仿真軟件,它支持包括仿真環境、傳感器以及通訊內容的自定義,圖3為LGSVL的工作流程[16],本文將基于LGSVL 開發適用于路側感知的仿真系統.其中,利用自定義場景功能開發適用于路側感知的模擬環境,利用自定義車輛及傳感器模型功能創建路側感知單元,利用自定義通訊內容實現路側感知數據的采集與傳輸.

圖3 LGSVL 工作流程
確定模擬場景是仿真測試的前提,本文模擬的場景為所在團隊進行無人駕駛的車輛測試場,圖4為其平面示意圖,其中由正門通往東門的L 型主干道及其周邊為本次重點模擬區域.路側感知仿真系統的模擬場景構建內容包括靜態環境、動態交通、路側單元等,模擬場景的構建手段通常包括基于建模軟件構建場景,基于已經完成的游戲搭建場景,基于增強現實方法構建場景,基于高精地圖生成場景等方式,本文采用基于建模軟件構建虛擬場景,建模軟件為開源3D 建模軟件blender[17].

圖4 模擬場景整體平面示意圖
靜態環境主要包括用于車輛行駛的車道,場景內的建筑,區域內的綠植、路燈等,這些構成了模擬場景的客觀環境,并且不隨仿真測試過程中其它條件的變化而改變,通過blender 建模后經Unity 高清渲染后得到本次模擬仿真系統的靜態環境如圖5所示.

圖5 仿真系統靜態環境
動態交通是仿真測試場景的關鍵組成,主要指仿真中具備動態特性的管控、車流、人流等部分,包括紅綠燈仿真,機動車仿真,行人仿真等.動態交通仿真場景構建方法主要有基于真實交通案例數據的構建,基于真實案例數據的泛化構建,以及基于微觀交通仿真系統的構建.LGSVL 通過微觀仿真方法構建動態交通,內置地圖標注工具用來完成三維環境中高清地圖的創建,基于高清地圖實現車輛按照車道行駛,遵循交通信號燈,限速,交叉口決策等功能.圖6為在行駛車道上進行地圖標注.

圖6 高清地圖標注
LGSVL 內置豐富的車輛模型,包括兩廂車,三廂車,SUV,吉普車,卡車,校車等,通過組合不同的顏色外觀,可以產生數十種車輛模型,基本涵蓋了路面上常見的車輛種類.同時,LGSVL 支持更多類型車輛的自定義與創建.圖7為在靜態環境中添加車輛模型后的效果.

圖7 添加動態交通后的仿真環境
路側單元是車路協同的核心部件,負責車路信息的采集、處理與傳輸,也是本文提出的面向車路協同的路側感知仿真系統的重點研究對象.LGSVL 作為一款主要面向自動駕駛的仿真軟件,本身并不具備路側單元這一組成類型,但是LGSVL 支持車輛及傳感器模型的高度自定義,本文即利用LGSVL的該功能進行面向車路協同的路側感知單元的新建.
常見路側單元包括攝像頭、激光雷達、毫米波雷達、工控機等,本文根據園區內實際情況,將路側單元與太陽能路燈結合,在blender 中構建路側單元三維模型如圖8(a)所示,在LGSVL 中,通過與新建車輛模型相同的方法得到路側單元對應的可加載資源,最終在LGSVL 中加載路側單元并配置相應的傳感器參數后如圖8(b)所示.

圖8 路測單元仿真
數據采集是路側傳感器的本質用途,根據傳感器類型不同,數據采集的內容及處理方式也不一樣,如攝像頭采集的是圖像信息,而激光雷達采集的則是三維點云數據.由于激光雷達的成本較高,且三維數據的后期處理較為復雜,運用仿真手段實現激光雷達的物理特性模擬以及對應數據收集和處理已然成為了真實路測的重要補充.本文以路側激光雷達為例介紹其仿真數據的生成及處理和輸出過程.
激光雷達仿真的思路是參照真實激光雷達的掃描方式,模擬每一條真實雷達射線的發射,通過與場景中所有物體求交,若在激光雷達的最大探測距離內存在交點,則返回相應的點云坐標.假設模擬激光雷達為L線,水平分辨率為R,水平掃描范圍為360°,得到每一幀發射射線的數量N為:

若探測距離為D,場景內模擬點云數據生成的偽代碼如圖9所示.

圖9 模擬點云數據生成
由式(1)和圖9可知,當激光雷達頻率較高,場景內環境較為復雜且模型足夠精細時,通過模擬射線求交的計算量極大,以激光雷達為64 線,水平分辨率0.4°,頻率10 Hz為例,單純每秒發射的激光雷達射線就高達576 000 條,在此基礎上還需要對每一條射線遍歷場景內除激光雷達外的所有物體模型.為了達到實時仿真的效果,可以運用CPU 并行或GPU 計算的方式來提高計算效率,LGSVL 采用GPU 計算點云數據.
真實點云數據除了位置坐標外,還有一個關鍵信息是反射強度,反射強度主要反映的是不同物理材質對激光雷達所使用的近紅外光線的反射率.因此,模擬點云數據同樣需要考慮強度值,LGSVL 中通過獲取模型材質中的金屬度及顏色值并進行歸一化處理得到取值范圍在0~255 間的強度值.
有了模擬點云數據后,一般還需要配合真值數據,用作模型識別訓練的數據集.真值數據對應真實數據中的人工標簽數據,數據內容包括可識別物體的位置、朝向、包圍盒大小、速度、類型等,不同于人工打標簽的過程,真值數據相對于仿真系統而言是已知的,只需要將真值數據與點云數據進行配合同步輸出即可,因此可以大大提高輸出標簽的效率.在LGSVL 中新建真值數據傳感器,數據類型為Detected3DObject,如圖9所示,其中,Id為同一幀數據內識別物體的序列,Label為物體標簽,Position為物體位置,Rotation為物體朝向,Scale為物體包圍盒尺寸,LinearVelocity和AngularVelocity 分別為物體線速度和角速度.為實現真值數據與點云數據匹配,需要將真值數據傳感器與激光雷達傳感器的配置參數保持一致,如位置姿態、有效范圍、頻率等.
Unity 中,姿態角采用四元素表示,如圖10中的Rotation 值,同時坐標系的表示為左手系,而一般用于模型訓練的標簽數據采用右手坐標系下的歐拉角表示.歐拉角有12 種表示,分別代表著12 種旋轉次序[18],本文采用ZYX的旋轉次序.假設Unity 中四元素姿態角表示為quaternion=(x,y,z,w),對應ZYX 歐拉角為euler=(roll,pitch,yaw),則兩者之間存在關系:

LGSVL 支持包括ROS,ROS2,CyberRT 等多種通信方式,本文采用基于Rosbridge的通訊實現模擬點云數據與真值數據的輸出.Rosbridge為非ROS 程序提供了一個使用ROS 功能的JSON API,用于向ROS 發送基于JSON的命令的規范[19].Rosbridge 包含一個Web Socket 服務器,用于與Web 瀏覽器進行交互,仿真系統與ROS 之間的通信如圖11所示.

圖10 真值數據類型結構

圖11 Rosbridge 通訊框圖
由于模擬點云數據與真值數據分別通過不同的傳感器采集,為了實現每一幀文件的相互匹配,本文采用獲取當前ROS 時間作為每一幀點云數據和真值數據的命名,如當前ROS 時間為n.ms,對應時刻采集的點云數據文件保存為nm.pcd,真值數據文件為nm.txt.將同一幀的模擬點云數據與真值數據導入Rviz 中顯示如圖12所示.

圖12 數據輸出結果顯示
在現實中,由于激光雷達成本較高,在路側布局中需要優化激光雷達的布局使得單個激光雷達的有效覆蓋區域盡可能多地被利用.對于只有單側布置RSU的路面,因為各類車輛的形體差異較大,有可能存在小車被大車遮擋的情況,從而對車路協同提供的超視距功能構成挑戰,為了減少這種因大車遮蔽造成激光雷達盲區的情況,最簡單有效的方法是增加激光雷達的安裝高度.獲取激光雷達的最低安裝高度需要綜合包括激光雷達參數,道路環境參數,車輛參數等多種條件進行測試,通過真實路測是不大現實的,而借助本文提出的路側感知仿真系統可以簡單直觀地完成.實驗中,選取線數為16 線,垂直角度為30°,有效距離為120 m的激光雷達,大車的長度為10.5 m,高度4.4 m,小車長度4.6 m,高度1.4 m,通過改變激光雷達高度和傾角值,獲得6 組激光雷達在仿真環境中的點云覆蓋情況如圖13所示,從圖中可知,隨著激光雷達高度增高,小車被點云覆蓋的可能性越大,同時為了使得點云覆蓋車道的大部分,傾斜角度也需要增大,當激光雷達高度為10 米,傾斜角度為55°時,小車可以有較好的點云覆蓋.

圖13 不同高度和角度下激光雷達點云覆蓋
相對于基于攝像頭采集的二維圖像識別物體,基于激光雷達的點云數據的物體識別因為不受環境光的影響,具有更高的魯棒性,因此在車路協同中具有重要的地位.相應地,由于單幀的點云數據量巨大,同樣采用深度學習的方法,基于點云的識別難度較于圖像識別有過之而無不及,尤其制作標簽數據的過程,采用人工的方式是極其困難的.通過仿真系統可以快速準確地生成大量標簽數據,但模擬數據是否可以替代真實數據仍需要通過實驗進行驗證.
本文設計了4 組實驗進行驗證,第1 組采用真實數據訓練真實數據測試,第2 組采用模擬數據訓練模擬數據測試,第3 組采用真實數據訓練模擬數據測試,第4 組采用模擬數據訓練真實數據測試,4 組實驗采用相同的訓練網絡,訓練集與測試集的數據量均按4:1 得到,最后結果如表2所示.

表2 模擬數據與真實數據的測試對比
其中,Precision為識別的精確率,相對于測試集中檢測出來的樣本而言,Recall為召回率,相對于整個測試集而言,F1 score為精確率和召回率的調和平均數.從表2中可以看出,不管是用真實數據測試模擬數據,還是模擬數據測試真實數據,最后的結果都顯示各類評價指標可以比較接近純真實數據的情況,由此可知,通過仿真系統輸出的模擬點云數據可以較好地還原真實數據的特征.
隨著智能交通領域的快速發展,模擬仿真技術在其中扮演著越來越重要的角色,尤其是針對自動駕駛和車路協同已經有很多的仿真應用和研究,然而面向路側感知的仿真仍然鮮有人涉足.本文提出了一種面向車路協同的路側感知仿真系統,系統基于自動駕駛仿真軟件LGSVL 進行二次開發構建,開發內容包括模擬仿真環境,路側單元及數據采集與通訊,最后通過兩個實驗對仿真系統的應用進行說明.實驗一借助仿真環境分析了激光雷達的高度與路面點云覆蓋之間的關系,可以為激光雷達的實際安裝位置提供參考,實驗二通過對比由仿真環境中輸出的點云數據得到的車輛識別模型與由真實數據得到的模型之間的相互驗證結果,得出本文設計的仿真系統的對激光雷達和環境的模擬可以較高程度地還原真實情況.
另外,在本次的研究中,由于將激光雷達傳感器與真值數據傳感器作為單獨的個體進行考慮,存在無法在時間上做到完全同步的問題,會導致真值數據和點云數據在空間上存在細微的差距,其次,本文實驗中仿真環境和真實環境仍存在一定的差異,如綠植、車棚等,導致實驗二中交叉驗證出現各項指標略低于自身驗證的情況,這些將在后續的研究中進行重點考慮.同時,探索路側感知仿真系統在車路協同中更多的應用場景也是未來研究的方向.