01、引言
隨著自動駕駛技術(shù)的飛速發(fā)展,仿真測試已成為替代成本高昂且充滿風(fēng)險的道路測試的關(guān)鍵環(huán)節(jié)。它能夠在虛擬環(huán)境中模擬各種復(fù)雜的交通場景和極端天氣,極大地加速了自動駕駛系統(tǒng)的開發(fā)與驗證進程。然而,一個常被忽視的問題正悄然侵蝕著仿真測試的可信度——非確定性,即仿真測試過程中因核心引擎或其他因素導(dǎo)致的隨機性。
目前,許多市面上的仿真軟件,尤其是基于游戲引擎開發(fā)的平臺,其核心設(shè)計目標之一是高效地為玩家提供充滿驚喜和變化的娛樂體驗。這種內(nèi)在的隨機性,在游戲世界里是優(yōu)點,但在嚴謹?shù)钠嚋y試領(lǐng)域,卻是一個致命的缺陷。
想象一下在仿真測試過程中,工程師精心設(shè)置了所有參數(shù)——車輛速度、行人軌跡、天氣狀況、傳感器配置——期望能穩(wěn)定復(fù)現(xiàn)一個特定的危險場景。然而,每次點擊“開始”,結(jié)果卻不盡相同:第一次,車輛完美避讓;第二次,發(fā)生了輕微碰撞;第三次,又安然無恙。這或許并非是算法時好時壞,而是仿真環(huán)境本身在“搖擺不定”。
02、隨機性的前因與后果
Greg等人研究指出,基于游戲引擎的仿真環(huán)境,其隨機性并非偶然,而是源于其底層架構(gòu)的諸多方面:
(1)資源負載與調(diào)度:系統(tǒng)CPU/GPU的負載波動,會直接影響物理引擎的計算時機和順序,導(dǎo)致即使輸入完全相同,輸出的軌跡也會產(chǎn)生高達數(shù)十厘米的偏差。
(2)物理引擎的“模糊”處理:為了實時渲染流暢的畫面,游戲引擎在處理物體碰撞等復(fù)雜物理交互時,往往采用近似計算。這種不精確性在一次碰撞后會被急劇放大,甚至影響到場景中其他未參與碰撞的物體,造成全局性的結(jié)果污染。
(3)多線程與并行計算:為了效率,引擎會將任務(wù)分配給多個線程并行處理,但線程完成的順序并非每次都固定,這種執(zhí)行順序的微小變化,會像蝴蝶效應(yīng)一樣,最終導(dǎo)致仿真結(jié)果的巨大差異。
這種隨機性帶來的問題是災(zāi)難性的:
(1)問題無法追溯:當(dāng)測試中出現(xiàn)問題,工程師無法穩(wěn)定復(fù)現(xiàn)它,也就無從定位和修復(fù)缺陷,極大地增加了調(diào)試成本和時間。
(2)結(jié)果失去可信度:如果仿真結(jié)果不穩(wěn)定,如何相信它所提供的安全驗證報告?這會給自動駕駛系統(tǒng)的安全性帶來“偽證”,造成虛假的安全感。
(3)測試覆蓋率失效:隨機性使得精確控制測試用例、確保覆蓋所有關(guān)鍵場景變得不可能。
歸根結(jié)底,對于自動駕駛這種安全至上的系統(tǒng),測試必須是科學(xué)、嚴謹且可重復(fù)的。因此,一個具備高度確定性、一致性的仿真平臺,是所有有效測試的絕對前提。
03、確定性的驗證——以aiSim為例
為了驗證一個仿真平臺的確定性,最直接的方式便是確保各項參數(shù)不變的情況下進行重復(fù)仿真,對輸出的仿真數(shù)據(jù)進行最直接的比較,判斷是否存在差異。
例如,世界上首個獲得ISO 26262 ASIL-D認證的AD/ADAS仿真測試軟件aiSim,它構(gòu)建了獨特的仿真內(nèi)核,摒棄了游戲引擎中那些為“體驗”而犧牲“精確”的設(shè)計。為了驗證aiSim的確定性,我們進行了一系列重復(fù)性實驗。
1、傳感器選型與配置
通過在GUI中拖放仿真?zhèn)鞲衅?/strong>,我們在仿真車輛中添加了1個帶有目標檢測功能的1920×1080的前置針孔Camera、1個帶有目標檢測功能的前置Radar、1個帶有目標檢測功能的128線頂置LiDAR、1個內(nèi)置IMU、1個內(nèi)置GPS以及1個可以反饋自車狀態(tài)的Vehicle sensor。
2、場景與方法
aiSim本身包含了數(shù)十種城市、郊區(qū)的室內(nèi)、室外場景。本文以真實世界常見的“行泊一體”為例,在一個包含14輛他車的室外停車場環(huán)境(Parking_US-CA_SanJoseAlamitos)中,對主車執(zhí)行了“跟車 -> 切入變道 -> 尋找車位 -> 泊車”的全套連貫動作。
我們在完全固定的軟硬件環(huán)境下,針對三種典型天氣進行了5輪完全獨立的重復(fù)測試,每一輪測試都記錄了長達1000幀的數(shù)據(jù),以確保完整與統(tǒng)一。我們將每一輪測試的數(shù)據(jù)與首次測試的基準數(shù)據(jù)進行精確比對:
晴天 (Sunny):在Sunny.json配置下,模擬了日光充足的理想泊車環(huán)境。
雨天 (Rainy):切換至Rainy.json配置,引入了雨水對傳感器性能的干擾。
復(fù)雜雪天 (Snowy & Broken Road):在Snowy.json的預(yù)設(shè)配置基礎(chǔ)之上,加入了道路老化、標線磨損、路面破損、坑洼等極端退化元素,將測試環(huán)境推向了極限。
測試過程中,我們記錄了全部傳感器和車輛狀態(tài)數(shù)據(jù),包括:
視覺數(shù)據(jù) (Camera):RGBA原始圖像、語義分割圖、目標檢測圖及JSON格式的2D/3D標注框。
雷達數(shù)據(jù) (Radar & LiDAR):毫米波雷達和激光雷達的點云(LAS v1.4)、目標列表及3D標注框。
車輛自身狀態(tài) (GPS, IMU, Vehicle):高精度的定位、姿態(tài)、加速度及車輛動力學(xué)信息。
我們采用均方根誤差(RMSE)來量化圖像、點云等原始數(shù)據(jù)的細微差異,并對JSON格式的結(jié)構(gòu)化數(shù)據(jù)采用根據(jù)樣本數(shù)值差異個數(shù)進行判定的統(tǒng)計確定性檢驗。
3、驗證結(jié)果
Camera Sensor的RGBA原始圖像、分割圖像、目標檢測圖像均以tga格式輸出,2D Bounding Box、3D Bounding Box均已json格式輸出。通過比較同一環(huán)境、場景下相同幀之間的誤差或差異項,驗證Camera的確定性。
對于tga格式文件,計算所有1000幀圖像所有通道的像素均方根誤差(MSE,Mean Squared Error)。在3類天氣5次測試過程中,RGBA原始圖像、分割圖像、目標檢測圖像的所有通道的像素均方根誤差均為0;
對于json格式文件,比較2D與3D Bounding Box的所有Group的key與value,記錄差異項個數(shù)(Number of Differences)。在3類天氣5次測試過程中,Bounding Box信息(包括位置、姿態(tài)、個數(shù)、類型、id、相對速度、持續(xù)時間、像素遮擋率等)不存在差異項。
Radar Sensor輸出json格式的檢測目標相關(guān)信息,包括距離、旋轉(zhuǎn)、相對速度、id、類型等,因此與相機的Bounding Box一樣,記錄差異項個數(shù)(Number of Differences),結(jié)果也是一樣,不存在差異項。
LiDAR Sensor生成的輸出包括兩種格式的數(shù)據(jù):LAS格式的3D激光點云和JSON格式的目標檢測數(shù)據(jù)。激光點云數(shù)據(jù)包含每個點的坐標、強度、返回次數(shù)、唯一標識符(ID)等,我們比較內(nèi)部的所有屬性,記錄差異項個數(shù)(Number of Differences);
對于以JSON格式輸出的目標檢測數(shù)據(jù),與Camera類似,我們將比較所有Group的鍵(key)與值(value),并記錄差異項個數(shù)(Number of Differences)。最終結(jié)果與前面相同,在3類天氣5次測試之間均不存在差異項。
需要指出的是,由于las文件和檢測到的目標內(nèi)部包含的GPS時間屬性在aiSim中取自系統(tǒng)時間(UTC時間),該項不納入差異比較范圍。
GPS Sensor、IMU Sensor以及用于觀測仿真自車狀態(tài)的Vehicle Sensor輸出的均為JSON格式的信息,同樣比較所有Group的鍵(key)與值(value),并記錄差異項個數(shù)(Number of Differences)。對于3類天氣5次測試的GPS、IMU、Vehicle數(shù)據(jù)信息,3類天氣5次測試之間均不存在差異項。
04、總結(jié)
在本文設(shè)計的傳感器配置與場景中,aiSim的各項傳感器數(shù)據(jù)在固定的參數(shù)配置下,仿真過程與仿真結(jié)果不存在任何差異(除UTC時間)。除了本文提到的傳感器與場景,在其他不同環(huán)境、傳感器配置下的驗證中,aiSim也均表現(xiàn)出了卓越的確定性。
在aiSim的仿真世界里,沒有偶然和隨機,只有精確和必然。每一次的測試結(jié)果都真實反映了被測算法的真實能力,每一次的問題暴露都能被穩(wěn)定復(fù)現(xiàn)和修正。
參考文獻
1.?On Determinism of Game Engines Used for?Simulation-Based Autonomous Vehicle Verification