周文帥 朱宇 趙祥模 王潤民 徐志剛
(1.長安大學,信息工程學院,西安 710018;2.長安大學,交通運輸部認定自動駕駛封閉場地測試基地,西安 710018)
主題詞:自動駕駛測試 高速公路 車輛切入 測試場景 測試用例 蒙特卡洛方法
自動駕駛汽車為解決“交通事故、交通擁堵、環境污染、能源短缺”等問題提供了新的途徑[1]??茖W完善的測試驗證評價體系對提高自動駕駛汽車的研發效率、健全相關法律法規、推進智能交通發展至關重要[2]。自2009年起,谷歌自動駕駛汽車已經進行了超過560 萬km 公共道路測試和數十億公里虛擬測試[3]。UBER、沃爾沃、特斯拉等企業也進行了大量實際道路自動駕駛測試[4]。然而,以UBER自動駕駛測試車輛事故為代表的多起事故表明,在自動駕駛技術成熟之前,實際道路測試具有較高的安全風險和社會風險。
此外,與傳統汽車的人-車二元獨立測試不同,自動駕駛汽車是人-車-路-環境強耦合系統,傳統的道路場地測試已經無法滿足自動駕駛汽車的測試需求。基于場景的虛擬測試技術試驗場景配置靈活、效率高、重復性強、過程安全、成本低,可實現自動測試和加速測試,同時,虛擬測試系統能夠模擬實際車輛測試中危險或難以實現的極端場景[4-5],大幅降低測試的難度和風險,減少工作量。因此,基于場景的虛擬測試已成為自動駕駛汽車測試評價不可或缺的重要環節。研究人員在測試場景構建方面做出了大量努力[6-7],Xia等利用層次分析法選擇測試場景中的重要因素,通過組合測試法構建虛擬測試場景[8-9],Zofka 等利用多種傳感器采集數據,提出一種在虛擬環境中利用真實交通數據構建高風險測試場景的方法[10]。
現階段的自動駕駛領域,“場景”還沒有明確和統一的定義,同時,現有研究集中于自動駕駛測試場景的分析與構建,缺少對測試用例設計和生成的研究。因此,本文提出一種測試場景的定義,同時提出基于實際交通場景的測試用例設計和描述方法,并通過分析高速公路車輛切入場景進行驗證,運用highD數據集實現測試用例設計,并利用蒙特卡洛方法(Monte Carol Method)生成測試用例。
在現有針對自動駕駛汽車測試場景的研究中存在不同的場景定義。依據場景的分類,Elias Rocklage等提出“場景為一段道路上觀測車輛自身與其他靜態或動態物體的組合”[11]??紤]時間延續性,Gelder 將場景定義為一段時間內觀測車輛自身運動和所在靜態與動態環境的組合,突出場景連續性[12]。Hala Elrofai 等提出“場景是在一個特定時間范圍內,測試車輛周圍動態環境的持續變化,包括測試車輛在該環境中的行為”[13]。
在總結現有場景定義的基礎上,本文提出一種適用于測試場景構建的場景定義。對于自動駕駛汽車測試而言,測試場景是測試對象在交通環境中與其他相關交通參與者交互實現行駛意圖的過程。其中,行駛意圖是指測試對象完成自身運動狀態改變,例如完成一次自由變道或在交通路口轉向。交通環境是測試對象運行的道路、氣象、光照等靜態環境。交通參與者是指場景內對測試對象運動狀態有影響的場景元素,如與測試車輛行駛路線有沖突的車輛、行人等,在場景的觀測與分析中,對測試對象運動沒有影響的元素可以忽略。
在自動駕駛汽車測試中,場景是對真實交通環境中一類運行過程的抽象描述,測試用例是相應測試場景的可執行實例。一個完整的測試用例描述包含測試用例所屬測試場景描述和測試用例要素信息。其中,測試場景描述提供了測試環境和測試過程的抽象描述,測試用例要素信息提供了測試環境中各要素的取值及測試中交通參與者的起始狀態、狀態變化過程和預期運行結果。
本文以高速公路環境下車輛切入為例,描述測試用例。由于高速公路環境交通場景相對單一,以平直道路上相鄰車道車輛切入為測試場景。被測車輛在車道2中循線行駛,目標車輛在被測車輛相鄰車道1中保持平穩直線行駛。在切入開始時刻T0,目標車輛位于被測車輛側前方,開始向車道2 切入。在T1時刻,目標車倆切入車道2并行駛至T2時刻。在切入過程中,兩車存在發生碰撞的風險。車輛切入過程如圖1所示,測試用例要素如表1所示。

圖1 車輛切入過程示意

表1 采集要素表
真實交通數據中蘊含多種交通場景?;谡鎸嵔煌▓鼍吧稍搱鼍跋聹y試用例的方法如圖2 所示。真實交通場景可分解為靜態交通環境和交通參與者的運動過程。其中靜態交通環境涵蓋道路狀態、路側設施、氣象及光照條件等影響車輛運行的環境條件,從中可以提取出測試場景中的靜態環境元素。交通參與者的運動過程是被觀察對象在靜態環境中與其他交通參與者交互運動并實現自身運動意圖的過程。交通參與者的運動過程是測試場景的核心,為生成測試用例,需要對運動過程進行建模并分析真實場景的大量實例,估計模型的描述參數分布,從而實現由真實場景向標準測試場景的轉變。在此基礎上,針對不同的測試對象、測試方法和測試內容,靈活賦予描述參數不同的取值,組合不同的靜態元素即可生成相應的測試用例,以適應不同測試需求。

圖2 測試用例構建框架
基元場景提取是從實際交通場景中分離出基元場景并確定其描述向量的過程。通過基元場景提取,實際交通場景被分解為獨立的基元并實現模型化和參數化。
本文采用參數估計法實現場景模型描述變量的分布規律估計。參數估計法利用先驗知識假定數據總體服從某一分布,再利用樣本數據求解分布的未知參數,通過對比不同的估計結果確定數據總體服從的分布。本文中采用高斯混合模型(Gaussian Mixture Model,GMM)對場景模型描述變量的分布進行估計[14]。
假設待估計的隨機變量為X,其高斯混合模型表示為:

式中,N(x|μk,Σk)為高斯混合模型中的第k個分量;x為X的一個樣本;μk為均值向量;Σk為協方差矩陣;αk為混合系數,滿足。
在參數估計時,假設數據總體服從高斯混合分布,概率分布由式(1)中的高斯混合模型表示,模型中包含N組未知參數(μk,Σk,αk)。參數估計就是根據樣本數據確定模型參數取值的過程。對于未知參數,可以通過期望最大(Expectation-Maximization,EM)算法迭代計算,假設樣本為{x1,x2,…,xn},觀察一個樣本點,不能確定此樣本點屬于高斯混合模型中的哪一個分量,因此引入隱含隨機變量Z。
設N維隨機變量Z=(z1,z2,…,zN),zk∈{0,1},zk=1 表示樣本點屬于第k個模型分量,zk=0 表示樣本點不屬于第k個模型分量。對任意樣本點xi,Qi(Z)表示隱含變量Z的分布,滿足。
EM算法是解決隱含變量優化的有效方法。求解未知參數的最優化取值,首先需要確定隱含變量的概率分布。由式(1)得,X總體的概率分布為P(x:μ,Σ,α),其中(μ,Σ,α)是待估計參數[15],μ、Σ、α分別為均值、協方差矩陣和混合系數。
EM算法分為4步執行:
a.對應每一個樣本xi,設置(μ,Σ,α)的初始值。
b.根據當前的(μ,Σ,α)值,對于每個樣本點xi計算后驗概率:

c.根據當前的后驗概率計算新的(μ,Σ,α)參數值。固定后驗概率,求解P(x;μ,Σ,α)的最大似然估計。
P(x;μ,Σ,α)的似然函數為:

將l對μk求導,并令導數為0,得到μk的更新公式:

同理,將l對Σk和αk求導,并令導數為0,得到Σk和αk的更新公式:

d.使用更新后的參數(μ,Σ,α)計算似然函數l,若l收斂于似然估計的最大值,即更新后的似然函數l不變或變化幅度很小,則表明求解出的(μ,Σ,α)參數是最優化參數,若未收斂于最大值,則返回步驟b繼續迭代計算。
根據基元場景描述模型及其描述變量,可以重新生成測試基元場景。通過基元場景的生成,可以獲得遠多于實際采集且符合測試要求的基元場景,滿足自動駕駛測試對復雜交通運動過程的覆蓋性要求。
真實交通運行過程通常具有高維性和復雜性的特點,在測試用例生成過程中,若對其所屬場景數學模型進行簡化假設,可能會導致近似結果與實際存在較大的偏差。蒙特卡洛方法能夠直接模擬實際復雜系統,可以有效解決復雜系統簡化導致的結果失真問題,且誤差與問題維數無關,是解決復雜高維問題的有效方法[16]。本文依據模型描述變量的分布,采用蒙特卡洛方法進行隨機取樣生成基元場景。
因此,假設用隨機變量X表示蒙特卡洛方法生成的場景,x為X的一個場景樣本,服從概率密度函數為f(x)的分布。假設高風險場景集合為W,為了從生成的場景中選擇高風險場景,定義高風險場景指示函數h(x):

如果場景總體C中指示函數h(x)的期望為E,方差為σ2,則E為:

假設場景總體中高風險場景出現的概率為p,則h(x)的期望E=p,方差σ2=p(1-p)。
利用蒙特卡洛方法生成n組場景樣本xi,i=1,…,n,當樣本容量較大時,依據大數定理,h(x)的樣本均值以概率1收斂于期望E,稱為E的蒙特卡洛估計量:


式中,zδ為正態偏差;δ為置信概率。
測試用例的構建是將提取出的基元場景根據測試任務確定場景要素的參數,按照一定規則重新組合的過程。針對不同的測試對象、測試方法和測試內容,可以靈活地控制測試用例的基元數量和場景要素的參數,構建出相應的測試用例,從而適應不同的測試需求。
如圖3所示,首先選取組成測試場景所需的基元場景形成功能測試場景。在此基礎上確定基元場景描述變量及其取值區間,為基元場景選擇確定范圍,形成邏輯測試場景。最后,根據邏輯場景集中選擇基元場景,確定各描述變量的取值,組合生成具體測試用例。為了提高測試效率和降低測試成本,生成測試場景適宜采用強化測試思想,即選擇基元場景組合生成高風險測試場景。

圖3 測試用例組合
在場景建模中,采用highD數據集作為真實交通數據來源。如圖4所示,該數據集的采集區域為近似直線的高速公路路段,長度約420 m,包含5 條主行車道[17]。數據采集時間為45 min,包含非高峰時段和高峰時段。數據集以0.1 s 時間間隔提供采集區域內車輛的位置、行駛車道、速度、加速度等詳細行駛參數及車輛的長度、寬度和車輛類型等參數。

圖4 數據采集區域
在示例中,本文選定的測試場景為高速公路直線行駛條件下的車輛切入避撞場景。同時,為簡化示例的場景構建過程,只考慮路面層中兩車相互運動場景。
如圖5所示,A車為切入車,B車為自動駕駛車。在切入時刻T1前,A、B車分別保持在相鄰的車道1、車道2內行駛。T1時刻,A車越過車道線駛入車道2,此時A、B車速度分別為VA、VB,兩車在前進方向上的距離為L。A車完成切入動作后,保持在車道2內行駛。A車切入過程中,B車需根據A車行駛速度及兩車距離調整自身行駛速度,跟隨A車在車道2內行駛。

圖5 車輛切入避撞場景
為評價車輛切入場景中不同測試用例的危險性,需要建立測試用例危險性評價指標。為簡化建模過程,參考自動緊急制動(Autonomous Emergency Braking,AEB)算法中對兩車碰撞風險[18]的描述方法,本文以A車切入時刻為關注時刻,以該時刻兩車的碰撞時間(Time to Collision,TTC)作為評價指標。在T1時刻,兩車速度差為Vref=VA-VB,碰撞時間tTTC=-L/Vref。因此,車輛切入避撞場景模型可以由切入時刻的3個變量L、Vref、tTTC描述。
從真實交通數據集中提取的A 車典型切入軌跡如圖6所示,其中,x、y分別為縱向和橫向位移。本文提取A車切入時刻前、后各2 s(50幀)數據,分析車輛切入過程中A車速度變化情況。由于橫向速度很小,只關注道路行駛方向的速度,計算相對速度變化。

圖6 車輛切入過程的軌跡
車輛切入過程的相對速度差為:

式中,Vmax、Vmin、Vmean分別為車輛切入過程的最大速度、最小速度和平均速度。
提取的4 277 個實例的相對速度誤差如圖7 所示,從圖7 中可以看出,90%以上的實例車輛A 的縱向速度VA波動在10%以內,可以認為在切入過程中A車速度保持穩定。因此,測試場景中運動過程可以用兩車在縱向、橫向上的相對位置和相對速度描述。

圖7 切入車輛的速度相對誤差
依據高速公路環境下前車切入場景模型,從數據集中提取相應數據。在T0時刻,A、B兩車間距為D。根據基于TTC 模型的AEB 算法劃分[18],當tTTC<2.9 s 時,系統發出碰撞預警,當tTTC<1.9 s 時,系統采取40%制動,當tTTC<0.9 s 時,系統全力制動,因此設定tTTC∈(0,2.9]s 時為危險場景。根據GB 21670 的規定,車輛制動最大加速度為-6.43 m/s2,假設高速公路上車輛以100 km/h 的速度行駛,考慮比較極端的情況,切入車輛速度很小,那么制動所需時間不大于4 s,考慮系統反應時間,設定邊界條件為6 s,因此設定tTTC∈(2.9,6]s 時為高風險場景。在此車速下,20 s內車輛行駛距離超過了激光雷達等感知系統的感知范圍,故超過20 s不再考慮,設定tTTC∈(6,20]s時為低風險場景。
前車切入場景的基元場景提取結果如圖8所示,圖中每個點對應提取出的1個切入實例。其中,包含危險場景的實例共13個,包含高風險場景的實例共431個,包含低風險場景的實例共2 492個。

圖8 車道變換基元場景提取結果
在基元場景提取基礎上,本文利用蒙特卡洛方法進行基元場景生成。結合場景描述模型,選定參數取值范圍為L∈(0,150]m,Vref∈(-18,0]m/s,生成測試用例中選擇切入點tTTC∈(0,20]s。分別利用蒙特卡洛方法生成4 277個、1萬個、2萬個、3萬個和5萬個基元場景。
為展示基元場景生成情況,將參數Vref和D的取值范圍分別等分為30個區間,則在[Vref,D]取值范圍內共有900 個區間。統計生成基元場景在每一個小區間內的數量如圖9所示,其中白色方格表示沒有生成基元場景落在該區間中,顏色越深表示生成的基元場景落在該區間數量越多,黑色方格表示超過20 個生成的基元場景落在該區間中。

圖9 真實場景實例和生成的基元場景分布
根據區間內包含的基元場景數量對區間進行分類統計,結果如表2所示。

表2 按基元場景數量分類的區間統計結果 個
由表2可知,highD數據集所含4 277個真實場景實例覆蓋區間中共有200 個區間含有不少于5 個場景實例,生成的4 277 個基元場景中共有201 個區間含有不少于5 個基元場景。對比真實場景實例與基于蒙特卡洛方法生成相同數量的基元場景表明,在基元場景生成中基于高斯混合模型參數的分布估計結果比較準確。
1萬個、2萬個、3萬個、5萬個生成的基元場景分別比真實場景實例覆蓋區間數量提高50.2%、70.9%、81.3%和90.2%。其中包含不少于5個基元場景的區間分別有306個、367個、407個和454個,比真實場景實例覆蓋區間數量提高53.0%、83.5%、103.5%和127.0%。對比結果表明,生成基元場景越多,基元場景覆蓋范圍越大,且區間內基元場景豐富程度越高,有利于從基元場景集中選擇相應基元場景用于測試。
然而,通過對比可以發現,隨著生成基元場景數量的不斷增加,場景覆蓋范圍的增長速度不斷降低,表明受參數分布限制,依靠增加生成基元場景數量,對基元場景覆蓋度提升效果有限。
此外,表3 給出了原場景實例與生成的1 萬個基元場景中不同類型場景的數量及對應的碰撞時間tTTC取值范圍。通過對比可知,不同tTTC取值對應的基元場景比例幾乎保持不變,這說明在不改變參數分布的條件下,僅通過增加基元場景數量不能提高其中高風險場景的比例。

表3 不同碰撞時間取值對應基元場景數量
利用蒙特卡洛方法生成的基元場景中,危險場景僅占生成基元場景總數的0.99%,高風險基元場景占總數的10.21%。由于真實交通中高風險場景實例發生概率較小,采用蒙特卡洛方法生成的基元場景中對自動駕駛汽車場地測試有重要意義的危險和高風險基元場景所占比例較小。因此,希望滿足場景覆蓋性的同時,生成的基元場景集中包含較多的高風險場景,保證基元場景集對真實交通環境中高風險場景盡可能完整地覆蓋。本文使用基于重要性抽樣的蒙特卡洛方法實現基元場景生成。
重要性抽樣是通過選擇適當的分布g(x)代替原始概率分布f(x),提高低概率事件在抽樣中的比例,增加生成樣本中低概率事件的數量,減小方差,減少所需樣本總數[19]。發生車輛切入時,兩車距離越小,兩車速度差越大,碰撞時間越短,生成高風險用例的可能性越大。為解決蒙特卡洛方法生成的高風險用例數量不足的問題,采用重要性抽樣方法,提高tTTC在D較小,|Vref|較大區域的分布概率,生成tTTC關于D和Vref的修正分布g(D,Vref)。利用分布g(D,Vref),結合蒙特卡洛方法隨機抽取D和Vref值,生成1 萬個基元場景,其結果如圖10 和表4 所示。

圖10 基于重要性抽樣生成的1萬個基元場景分布

表4 重要性抽樣的蒙特卡洛方法生成基元場景結果
表4 中,在其他條件保持不變的情況下,相比蒙特卡洛方法生成的基元場景,結合重要性抽樣的蒙特卡洛方法生成的基元場景中危險場景數量提高了157%,高風險場景數量提高了115%。通過對兩種方法的基元場景生成結果可以看出,在生成同樣數量的基元場景條件下,利用重要性抽樣的方法可以提高基元場景生成的覆蓋性,有助于在測試場地內選取部署高風險場景,執行自動駕駛強化測試。
本文根據測試用例的特點,提出了一種適應于測試場景構建的場景定義,設計了測試用例構建的體系結構,同時提出測試用例的描述方法。在此基礎上,根據數據驅動的車輛軌跡,對測試用例進行了建模,然后通過蒙特卡洛方法和基于重要性抽樣的蒙特卡洛方法生成測試場景,再結合場景元素形成測試用例。驗證結果表明:基于真實交通數據,利用本文提出的方法可以獲得多樣化的測試用例,滿足自動駕駛測試對復雜交通運動過程的覆蓋性和有效性要求。