近年來,基于深度學(xué)習(xí)的視覺感知技術(shù)的發(fā)展極大地促進(jìn)了車聯(lián)網(wǎng)領(lǐng)域中自動駕駛的繁榮,然而自動駕駛系統(tǒng)的安全問題頻出引發(fā)了人們對自動駕駛未來的擔(dān)憂。由于深度學(xué)習(xí)系統(tǒng)的行為缺乏可解釋性,測試基于深度學(xué)習(xí)的自動駕駛系統(tǒng)的安全性極具挑戰(zhàn)性。目前已有針對自動駕駛場景的安全性測試工作被提出,但這些方法在測試場景生成、安全問題檢測和安全問題解釋等方面仍存在不足之處。針對基于視覺感知的自動駕駛系統(tǒng),設(shè)計開發(fā)了一種場景驅(qū)動的、可解釋強的、運行高效的安全性測試系統(tǒng)。提出了一種能夠平衡真實性與豐富度的場景描述方法,并利用實時渲染引擎生成可以用于駕駛系統(tǒng)安全性測試的場景;設(shè)計了一種高效的針對非線性系統(tǒng)的場景搜索算法,其可以針對不同的待測試系統(tǒng)動態(tài)調(diào)整搜索方案;同時,還設(shè)計了一個故障分析器,自動化分析定位待測試系統(tǒng)的安全性缺陷成因。復(fù)現(xiàn)了現(xiàn)有基于實時渲染引擎的動態(tài)自動駕駛測試系統(tǒng),并同時使用本系統(tǒng)和復(fù)現(xiàn)系統(tǒng)對CILRS系統(tǒng)和CIL系統(tǒng)進(jìn)行安全測試,實驗結(jié)果表明相同時間下本工作的安全問題發(fā)現(xiàn)率是復(fù)現(xiàn)的場景驅(qū)動的動態(tài)測試方法的1.4倍。進(jìn)一步的實驗表明,可以分別為具有代表性的深度學(xué)習(xí)自動駕駛系統(tǒng)CIL和CILRS,從曠野、鄉(xiāng)村與城市的3類環(huán)境中動態(tài)生成的共3000個場景中,搜索到1939和1671個造成故障的場景,并且每個故障場景的搜索時間平均為16.86s。分析器從統(tǒng)計的角度判斷出CILRS系統(tǒng)容易造成故障的區(qū)域在道路兩側(cè),雨天和紅色或黃色物體更易造成該自動駕駛系統(tǒng)發(fā)生故障。
車聯(lián)網(wǎng)領(lǐng)域隨著物聯(lián)網(wǎng)與交通運輸領(lǐng)域的深度融合蓬勃發(fā)展。隨著深度學(xué)習(xí)的進(jìn)步,車聯(lián)網(wǎng)領(lǐng)域的自動駕駛技術(shù)得到了突破性的發(fā)展,并有演化成一場新的汽車工業(yè)革命的趨勢。無論是特斯拉、蔚來等新型車企,還是福特、寶馬等傳統(tǒng)車企都陸續(xù)拿到了自動駕駛路測牌照,著眼于研發(fā)深度自動駕駛技術(shù)。迅猛發(fā)展的深度自動駕駛技術(shù)正逐漸成為車聯(lián)網(wǎng)領(lǐng)域的主要支撐技術(shù)之一,正在改變未來的交通和出行方式。
視覺感知模塊是自動駕駛進(jìn)行環(huán)境感知的重要組件,也是車輛進(jìn)行智能決策的重要基礎(chǔ)。自動駕駛領(lǐng)域的重要企業(yè)特斯拉更是將視覺感知模塊作為其駕駛系統(tǒng)的唯一環(huán)境感知模塊。因此,自動駕駛系統(tǒng)視覺感知模塊的安全性是自動駕駛系統(tǒng)正常工作的關(guān)鍵。雖然視覺感知模塊的表現(xiàn)隨著深度視覺技術(shù)的發(fā)展穩(wěn)步提升,但是其從駕駛環(huán)境中感知到的特征語義難被理解、決策過程無法解釋。如何對自動駕駛系統(tǒng)視覺感知模塊的安全性進(jìn)行充分測試,已經(jīng)成為了一個迫在眉睫、亟待解決的問題。
誠然,圍繞深度學(xué)習(xí)可解釋性方面的工作有了一定的突破,但是距離分析清楚自動駕駛視覺感知模塊的錯誤傳導(dǎo)機理還有較遠(yuǎn)的距離。近年來,神經(jīng)網(wǎng)絡(luò)的黑盒攻擊方法的進(jìn)步,啟發(fā)大家提出了一些基于場景搜索的自動駕駛視覺感知模塊安全性測試技術(shù)。這些場景驅(qū)動的測試方法利用黑盒測試的思路,為駕駛系統(tǒng)提供盡可能多的駕駛場景數(shù)據(jù),觀察自動駕駛系統(tǒng)的輸出與測試預(yù)言(TestOracle)之間的差異,進(jìn)而分析自動駕駛系統(tǒng)視覺感知模塊的安全性。
我們認(rèn)為場景驅(qū)動的黑盒安全測試是在弄清深度學(xué)習(xí)可解釋性之前,對于視覺感知模塊安全性最 為重要的測試手段。但目前對于將生成場景應(yīng)用于視覺感知模塊的測試,我們?nèi)悦媾R著3個挑戰(zhàn) :
1) 平衡場景描述的真實性與豐富度。場景生成 規(guī)則是場景驅(qū)動的測試系統(tǒng)的重要基礎(chǔ)。保守的規(guī)則設(shè)計會造成場景覆蓋能力不足; 而過于靈活的規(guī)則設(shè)計又會破壞物體相對關(guān)系,傷害場景真實性。探究一個能同時兼顧場景真實性和豐富度的場景生成規(guī)則極具挑戰(zhàn)性。
2) 保證搜索算法的高效性和穩(wěn)定性。單個物體的屬性(如顏色、形狀)與物體間的相互關(guān)系(如位置、方向)組合十分復(fù)雜。為了能夠高效穩(wěn)定地測試系統(tǒng)安全性缺陷,需要:①動態(tài)地針對不同自動駕駛系統(tǒng)視覺感知模塊產(chǎn)生個性化的場景搜索方案,以保證搜索過程的步驟較少;②同時盡可能縮短單步搜索的時間。
3) 解釋測試結(jié)果的精確性與自動化。以往測試系統(tǒng)需要介入人工分析缺陷原因。若想做到自動化地分析測試結(jié)果,系統(tǒng)需要能夠精細(xì)地操縱場景中每個元素來定位系統(tǒng)安全性缺陷的成因。
圍繞場景驅(qū)動的視覺感知模塊的黑盒安全測試,學(xué)術(shù)界已經(jīng)有了初步探索。在場景測試方法當(dāng)中,基于實時渲染引擎的一系列測試方法由于其場景生成的靈活性受到了廣泛關(guān)注。最初,基于實時渲染引擎的場景驅(qū)動的安全測試采用的是基于預(yù)定場景的測試思路。其中的代表性工作是CARLA0。8。X,該工作使用UnrealEngine創(chuàng)建用以測試系統(tǒng)的固定駕駛線路。接著,Scenic等人提出了一種場景生成的編程接口,以使此類測試程序更加系統(tǒng)化,奠定了靜態(tài)的基于場景測試的基礎(chǔ)。然而,其模擬環(huán)境較為固定,缺乏動態(tài)行為,同時對于非實體對象(如天氣)的描述缺少自由度?;趯崟r渲染引擎的場景驅(qū)動的安全測試的最新工作,Paracosm在Scenic的基礎(chǔ)上,提出了基于隨機搜索的動態(tài)場景生成方法來進(jìn)行視覺感知模塊的安全測試。由于該動態(tài)場景搜索方法相對簡單,對待測試視覺感知模塊的適應(yīng)性不足,因此,安全問題的搜索過程不夠高效。本文在前述工作的基礎(chǔ)上,提出了一種基于結(jié)果反饋的動態(tài)場景搜索算法,從而提高了自動駕駛系統(tǒng)中視覺感知模塊的安全問題測試效率。更多細(xì)節(jié)將在1.5節(jié)進(jìn)行詳細(xì)介紹。
本工作中,類比深度學(xué)習(xí)黑盒攻擊策略,借助實時渲染引擎的開放度,設(shè)計并提出了一套可靠且具有可解釋性的自動駕駛視覺感知模塊安全性測試系統(tǒng)。
主要的貢獻(xiàn)有3方面:
1) 本工作針對車聯(lián)網(wǎng)場景下自動駕駛系統(tǒng)感知模塊的安全問題,提出并設(shè)計了一套場景驅(qū)動的黑盒安全性測試系統(tǒng)。與現(xiàn)有工作相比,該系統(tǒng)引入基于結(jié)果反饋的動態(tài)化測試策略,通過自適應(yīng)機制在循環(huán)中不斷調(diào)整輸入數(shù)據(jù)的生成,實現(xiàn)對感知模塊高效、穩(wěn)定的非入侵式安全測試。
2) 面向自動駕駛視覺感知模塊的動態(tài)測試新需求,本工作設(shè)計了細(xì)粒度場景描述方法、適應(yīng)性動態(tài)搜索算法和自動化系統(tǒng)缺陷分析的動態(tài)測試技術(shù),從測試粒度、反饋自適和可解釋性3個方面對提出的黑盒安全性測試系統(tǒng)進(jìn)行了優(yōu)化。
3) 本工作以2個代表性的開源自動駕駛系統(tǒng)為對象開展了測試系統(tǒng)的驗證,分別動態(tài)生成了3000個場景,并各自找到了1939和1671個故障場景,平均每16.86s可發(fā)現(xiàn)一個故障場景。實驗表明,得益于動態(tài)自適的場景搜索方法,本工作的安全問題發(fā)現(xiàn)率是現(xiàn)有基于實時渲染引擎的場景驅(qū)動的動態(tài)測試方向中最好工作的1.4倍。
相關(guān)工作
基于神經(jīng)元覆蓋的自動駕駛測試
神經(jīng)元覆蓋是類比傳統(tǒng)程序的分支覆蓋而設(shè)計的。此類工作定義當(dāng)測試輸入經(jīng)過神經(jīng)元使神經(jīng)元輸出滿足某種狀態(tài)時,該神經(jīng)元則稱被測試樣例覆蓋(激活)了。此類工作,以最大化神經(jīng)元覆蓋為優(yōu)化目標(biāo),來尋找輸入樣例。自DepXplore引入神經(jīng)元覆蓋的概念并成功應(yīng)用于基于視覺的深度自動駕駛領(lǐng)域后,已有大量關(guān)于神經(jīng)元覆蓋的工作出現(xiàn),提出了各式各樣的覆蓋標(biāo)準(zhǔn),并成功使傳統(tǒng)軟件測試方法如蛻變測試、模糊測試、符號測試等遷移到深度學(xué)習(xí)測試任務(wù)中。然而,這種類比屬于一種機械類比,神經(jīng)元的輸出值的狀態(tài)與傳統(tǒng)軟件測試中的分支是完全不同的概念,因而這種類比方法的有效性始終受到人們質(zhì)疑。并且,基于神經(jīng)元覆蓋的設(shè)計也難以給出基于語義的測試樣例故障原因,不利于自動駕駛系統(tǒng)安全性的進(jìn)一步提升。
基于錯誤注入的自動駕駛測試
AVFI使用軟件故障注入模擬自動駕駛系統(tǒng)的硬件故障,以測試系統(tǒng)的容錯性。隨后DriveFI使用Apollo和DriveAV在CARLA模擬器和DriveSim上進(jìn)行實驗,利用貝葉斯網(wǎng)絡(luò)模擬自動駕駛系統(tǒng)加速錯誤注入后的驗證過程,能最大限度地挖掘出影響自動駕駛系統(tǒng)的故障。Kayote在上述工作的基礎(chǔ)上,添加了描述誤差傳播的能力,并且能直接注入CPU和GPU的位翻轉(zhuǎn)。這些工作是從容錯性的角度考察自動駕駛系統(tǒng)的特性的,而且實際考察的是自動駕駛系統(tǒng)的硬件故障。這類工作與本工作討論的場景和問題是正交的,本工作研究的是自動駕駛系統(tǒng)軟件,特別是其視覺感知模塊的安全性。
基于搜索的自動駕駛測試
基于搜索的自動駕駛安全性測試的核心思路如下:給定待測自動駕駛系統(tǒng)的輸入空間,定義待測系統(tǒng)的特殊輸入狀態(tài),通過在輸入空間搜索,確定哪些輸入會造成系統(tǒng)輸出特殊狀態(tài),從而實現(xiàn)對輸入空間的劃分。Abdessalem利用搜索算法在輸入空間給輸入打上標(biāo)簽,同時利用標(biāo)簽數(shù)據(jù)訓(xùn)練分類器,對輸入空間進(jìn)行了決策邊界的劃分。隨后,他把對少體問題的狀態(tài)空間的搜索過程擴展到多體問題狀態(tài)空間中的搜索,提出了FITEST搜索測試方法。這樣的方法的局限性在于,分類器的引入隱含假定了輸入空間是局部連續(xù)線性的,例如使用決策樹進(jìn)行劃分時,潛在認(rèn)為了2個正例狀態(tài)之間也是正例狀態(tài)。對于AEB系統(tǒng)這樣問題定義在線性域下的系統(tǒng),分類器的設(shè)計是合理的,但是對于具有高度非線性系統(tǒng)的深度學(xué)習(xí)系統(tǒng),這樣的方法顯然是不適用的。除此之外,Wicker利用兩者博弈的想法,通過操縱圖片上的像素點,利用蒙特卡洛樹搜索博弈的漸進(jìn)最優(yōu)策略,來尋找造成模型出錯的反例。這樣的搜索策略的搜索空間是像素級的,搜索結(jié)果不具備在現(xiàn)實中的真實性。
基于真實數(shù)據(jù)的測試方法
基于真實數(shù)據(jù)的測試方法主要分為2種:
1)通過收集大量的用戶駕駛數(shù)據(jù)來改善其自動駕駛系統(tǒng)的質(zhì)量,如Tesla;
2)實景測試,在真實的公路環(huán)境下使用原型車輛進(jìn)行測試,考慮到安全因素,該方法的測試條件比較嚴(yán)格。這些方法除了數(shù)據(jù)收集的成本較高外,收集到的數(shù)據(jù)分布也十分有限,這使得測試系統(tǒng)無法檢測出自動駕駛系統(tǒng)在新環(huán)境中的安全性;同時過度收集的駕駛數(shù)據(jù)也存在侵犯用戶隱私的問題。
基于生成數(shù)據(jù)的測試方法
基于生成數(shù)據(jù)的測試方法主要分為2種:
1)基于生成式對抗網(wǎng)絡(luò)(generativeadversarialnetworks,GAN),在DepRoad中,考慮將正常天氣的道路場景變換到雨雪天氣下,從而測試系統(tǒng)在雨雪天氣下的安全性,但其生成方法的場景豐富度存在不足,也無法實現(xiàn)場景內(nèi)容的靈活控制;
2)基于實時渲染引擎創(chuàng)建測試場景。Richer利用游戲GTAGV來創(chuàng)建自動駕駛數(shù)據(jù)集,Sythia使用Unity引擎合成數(shù)據(jù)集,CARLA0.8.X使用UnrealEngine創(chuàng)建用于測試系統(tǒng)的駕駛線路。這些工作的問題在于,測試的場景是預(yù)先定義好的,不能或只能很有限地對場景進(jìn)行調(diào)整,這樣的工作沒有充分利用實時渲染可以動態(tài)調(diào)整場景的特點。特別是,使用固定的駕駛場景進(jìn)行測試,很難對所有可能的場景進(jìn)行覆蓋。
Scenic設(shè)計了一種場景描述語言,可以根據(jù)預(yù)定義規(guī)則生成一些場景用于自動駕駛視覺感知模塊的安全性測試。這種描述語言盡管有很高的自由度,但對場景中非實體的對象刻畫,如天氣和太陽,比較困難,并且難以應(yīng)用到場景變換的情況。最新的工作是Paracosm提出了一種可編程的自動駕駛測試場景生成方法。該工作通過將場景中的物體和環(huán)境參數(shù)化并提供了一套編程接口用于測試場景生成,該方法基于隨機搜索的方式進(jìn)行場景生成并對自動駕駛中視覺感知模塊進(jìn)行測試。但是考慮到可搜索的參數(shù)空間規(guī)模十分巨大,因此,很難通過隨機搜索高效地找到感知模塊的安全問題。對此我們在4.1節(jié)進(jìn)行了詳細(xì)的比較和評估。
進(jìn)是采用了更加靈活豐富的場景描述方式,相比于Scenic方法,本方法增添了對非實體對象的描述,使得自動駕駛視覺感知模塊在不同天氣下的安全性也得到充分測試。第2個改進(jìn)是提出了一套適應(yīng)性場景搜索算法,相比于Paracosm方法,本文可以實現(xiàn)適應(yīng)性的動態(tài)故障場景搜索,使得自動駕駛視覺感知模塊的安全問題發(fā)現(xiàn)效率有了顯著提升。
系統(tǒng)設(shè)計
本節(jié)將介紹針對自動駕駛視覺感知模塊的安全測試系統(tǒng)的具體設(shè)計,其中包括安全性測試系統(tǒng)的形式化描述、工作流程、場景描述方法、動態(tài)場景生成器以及缺陷分析方法。在此之前,我們在表1中匯總了本文所用的一些關(guān)鍵變量。表1 本文方法用到的變量說明
安全性測試系統(tǒng)的形式化描述
自動駕駛系統(tǒng)本質(zhì)上是一個策略π,在給定環(huán)境信息序列O的情況下映射到控制指令A(yù)上,即π:O→A。其中輸入的環(huán)境信息包含相機圖像I和當(dāng)前車速V;輸出控制指令包含剎車、油門和轉(zhuǎn)向角,其中剎車可以被看成反向油門,這樣輸出的控制指令可表示為(s,t)。
基于場景搜索的測試系統(tǒng)首先會生成一個具體的場景w∈W,該場景所表示的環(huán)境信息為o=?(w)∈O。給定自動駕駛模型m=M可以得到車輛
安全性測試系統(tǒng)的工作流程
測試系統(tǒng)的架構(gòu)設(shè)計如圖1所示。為了能夠精確控制場景生成,本文設(shè)計了一組屬性配置方案,分別用于控制場景中單個對象的屬性和相互關(guān)系(2.3節(jié))。1) 動態(tài)場景生成器(2.4節(jié))首先讀取配置文件,得到場景中對象的分布函數(shù),并隨機采樣出一個初始場景描述。2) 實時渲染引擎(如UnrealEngine)會根據(jù)場景描述渲染出一個可供系統(tǒng)測試的駕駛場景。3) 待測試駕駛模型讀取場景。4) 輸出決策至缺陷分析器進(jìn)行分析。5) 缺陷分析器(2.5節(jié))會根據(jù)模型輸出生成約束,適應(yīng)性地指導(dǎo)動態(tài)場景生成器產(chǎn)生新的場景描述,進(jìn)行下一輪測試。6) 若缺陷分析器發(fā)現(xiàn)待測試系統(tǒng)的安全問題,會自動生成缺陷報告,以供后續(xù)的自動駕駛系統(tǒng)改進(jìn)。下面將對系統(tǒng)中的核心技術(shù)和組件進(jìn)行介紹。
圖1 測試系統(tǒng)的工作流程
豐富且真實的場景描述
為了實現(xiàn)豐富且真實的場景描述,我們設(shè)計了對象屬性描述文件和環(huán)境配置方案,以用于描述實時渲染引擎所需要的資產(chǎn)(asets)屬性、屬性分布和添加新地圖;同時我們對場景中的全部對象進(jìn)行了參數(shù)化描述,以便進(jìn)行缺陷場景的自動化搜索。
對象描述與環(huán)境配置
本系統(tǒng)將場景中出現(xiàn)的對象分為5類:
1) 環(huán)境E是用于場景生成的預(yù)設(shè)的基礎(chǔ)道路環(huán)境。一個道路環(huán)境應(yīng)該至少包含道路與路邊建筑。為了保證所描述場景的真實性如限定對象出現(xiàn)的合理位置,我們對環(huán)境進(jìn)行了區(qū)域劃分。一個典型的環(huán)境包含的區(qū)域有路外非駕駛區(qū)域、行人道、左右車道、十字路口。
2) 天氣W包括太陽高度角、降雨量、霧濃度等,其值是連續(xù)變化的。一個基本天氣表示為在某個范圍上的概率分布密度函數(shù)。天氣之間可能會有相互作用,帶來聯(lián)合概率分布。因此,我們需要為單個場景設(shè)置多個天氣分布,并使用聯(lián)合概率分布函數(shù)進(jìn)行抽樣。天氣分布與環(huán)境配置相關(guān)性很低,若考慮天氣分布與環(huán)境的相關(guān)性,則直接改變天氣分布更合理,例如干旱地區(qū)大雨的概率比潮濕地區(qū)小很多;而車輛、行人和靜態(tài)物體的分布是依賴環(huán)境的。
3) 車輛V是環(huán)境中進(jìn)行碰撞模擬和重力模擬的載具,包括汽車、自行車、摩托車,特別地,從現(xiàn)實角度考慮,自行車、摩托車會額外在載具上加入一個駕駛員。車輛在環(huán)境中不同區(qū)域出現(xiàn)的概率是不同的;我們也為車輛設(shè)置了正常和異常2種狀態(tài),并約束在不同的模式下車輛在各個區(qū)域的概率分布。例如,正常情況下車輛無論如何不會出現(xiàn)在人行道或是逆行車道上。
4) 行人P的描述與車輛相似,設(shè)計上的差異在于:行人之間不存在類別差別,只有衣服、身材、相貌差別。
5) 靜態(tài)物品G是沒有使用碰撞模擬和物理模擬的實體對象。如果不考慮相互作用直接采樣得到初始分布,很有可能產(chǎn)生穿模的問題,因此,我們使用了基于幾何體計算的定向包圍盒(oriented bounding box,OBB)碰撞檢測算法,其思路是將空間中的每個實體對象用OBB包圍起來,通過計算不同實體對象之間的OBB是否重疊來判斷是否發(fā)生了碰撞。
具體來說,先將物品投影到地面上,使用OBB代替三維物體進(jìn)行相交性檢查。同時為了彌補三維物品在垂直地面的維度上的層次丟失,引入圖層的概念(圖2),每個圖層上均存在物體的OBB投影,碰撞檢測時需針對物品的多個圖層同時進(jìn)行。在場景生成時,會隨機選擇靜態(tài)物品,并依次添加到環(huán)境當(dāng)中,若新物體與老物體未發(fā)生碰撞,則物品生成有效。
圖2 多圖層投影 OBB參數(shù)化描述
對于相同的實體對象,由于其在矩陣D所處行不同,故而自然就區(qū)分開了。換言之,多個重復(fù)對象在我們的表示中用多行表示。
動態(tài)場景生成器
為了能夠適應(yīng)性地對測試系統(tǒng)進(jìn)行安全測試,我們設(shè)計了一個動態(tài)場景生成器。
生成器的使用分為2個階段:
1) 場景初始化階段。在每輪測試開始前,動態(tài)場景生成器會根據(jù)環(huán)境配置和對象描述,按照天氣、車輛、行人、靜態(tài)物體的順序進(jìn)行一次抽樣,合成對象的分布函數(shù),生成場景描述。
2) 使用階段。動態(tài)場景生成器可以根據(jù)缺陷分析器的輸出動態(tài)地生成下一個用于測試的場景。動態(tài)場景生成器的核心是一個適應(yīng)性的場景搜索算法,該算法可以針對不同的待測系統(tǒng)生成不同的搜索方法,使得測試系統(tǒng)能夠快速穩(wěn)定地找到待測系統(tǒng)缺陷。
基于蛻變測試的評估方法
測試預(yù)言用于判斷測試中待測系統(tǒng)輸出是否正確。對于自動駕駛系統(tǒng)而言,在某個具體場景下,正確的輸出是難以定義的。這是因為,對于自動駕駛系統(tǒng),在某個范圍內(nèi)的輸出都不會造成駕駛錯誤。另外,由于自動駕駛系統(tǒng)控制的車輛本身是物理連續(xù)的,單次系統(tǒng)錯誤輸出可能不會造成嚴(yán)重的安全后果。因此,采取某個具體值作為測試預(yù)言是不合理的。沿用先前的工作,我們采取蛻變測試并且予以松弛的方式作為測試預(yù)言。由于不同的測試場景需要的測試預(yù)言是不同的,使用我們的測試系統(tǒng)時,可以根據(jù)經(jīng)驗設(shè)計不同的預(yù)言規(guī)則。這里我們給出了2種測試預(yù)言:通常深度自動駕駛測試中關(guān)注的是輸出轉(zhuǎn)向角的正確性,因為轉(zhuǎn)向角往往決定了系統(tǒng)是否會造成危險后果,預(yù)言1使用了這樣的設(shè)計;但當(dāng)測試車輛前有車輛,卻因為變換場景造成沒有剎車,此時也應(yīng)判定自動駕駛系統(tǒng)出了錯,預(yù)言2使用了該設(shè)計。
適應(yīng)性場景搜索算法
本搜索算法有3個設(shè)計需求:
1) 搜索算法應(yīng)該是場景合理的,不能超出環(huán)境配置和對象描述所定義的合理狀態(tài)。
2) 搜索到的相鄰2個場景應(yīng)該是駕駛語義不變的。
3) 搜索算法應(yīng)該是高效的,單次搜索耗時不能太長。
我們通過拒絕采樣的方式保證搜索到的場景的合理性。即,每次變換場景后,都要驗證場景的合理性,如果不符合原本對象屬性文件中定義的分布,則重新變換。駕駛語義不變性是通過控制相機所處車輛前一定距離的對象的位置不變保證的。例如,在自動駕駛車輛前有一輛車將造成車輛的剎車行為,那么在搜索過程中就不應(yīng)變換這輛車的空間位置,僅可改變方向角和車輛顏色。最后,算法的高效性是通過變步長的隨機搜索設(shè)計保證的,在搜索過程中,步長預(yù)算是根據(jù)上次搜索過程是否被接納選擇進(jìn)行調(diào)整的。算法的細(xì)節(jié)描述見算法1。
圖3是測試系統(tǒng)進(jìn)行的一次場景搜索過程示意圖。圖中,紅線框框出的是動態(tài)生成的車輛,藍(lán)線框是動態(tài)生成的行人,綠線框是動態(tài)生成的靜態(tài)網(wǎng)格體對象,天氣影響了全局的渲染效果,如圖3中的建筑物陰影和樹木的陰影、樹葉的擺動角度等。測試系統(tǒng)通過動態(tài)調(diào)整這些物體空間位置及其內(nèi)部屬性,改變渲染畫面,尋找造成故障的場景。
圖3一次場景搜索示意
圖精確且自動的缺陷分析
對于造成示性函數(shù)取值為1的場景,缺陷分析器會分析、解釋哪些物體或?qū)傩砸l(fā)了系統(tǒng)異常。需要說明的是,造成模型輸出異常的緣故是搜索過程的一整條路徑,而非某次具體的迭代過程;對于帶有高度非線性深度學(xué)習(xí)模塊的系統(tǒng)而言,單純分析路徑很難判斷究竟是什么原因造成了系統(tǒng)異常。
我們通過依次將天氣置零和移除場景中的實體對象來尋找造成自動駕駛系統(tǒng)出現(xiàn)問題的緣由。造成自動駕駛出錯的原因可能是相互耦合的,例如,對面行駛來的車輛由于霧天被識別錯誤造成車輛停止。為了找到造成出錯的一組物體,采取迭代貪心搜索的策略,以δ0為停止標(biāo)志進(jìn)行場景搜索。算法細(xì)節(jié)見算法2。
系統(tǒng)實現(xiàn)
待測系統(tǒng)
選取目前最佳的條件自動駕駛系統(tǒng)CILRS作為測試對象,其使用ResNetG34作為圖像特征提取的卷積神經(jīng)網(wǎng)絡(luò),權(quán)重參數(shù)為使用CARLA的NoCrash數(shù)據(jù)集訓(xùn)練得到的預(yù)訓(xùn)練模型。同時,為了顯示出測試系統(tǒng)在不同自動駕駛系統(tǒng)上的能力,還選擇了基礎(chǔ)的條件自動駕駛系統(tǒng)CIL作為對比的基線。最后,對CIL和CILRS分別進(jìn)行了封裝,部署到測試系統(tǒng)中。
測試平臺
從預(yù)制資產(chǎn)豐富程度和API使用的靈活度的角度出發(fā),本文選擇了CARLA0.9.11作為測試系統(tǒng)開發(fā)平臺。出于便捷導(dǎo)入靜態(tài)資產(chǎn)和地圖的目的,我們從源碼編譯Unreal Engine4.24引擎和CARLA0.9.11,部署于Windows平臺。運行時,從UnrealEngine編輯器中啟動CARLA以快速迭代構(gòu)建環(huán)境,驗證場景生成算法的正確性。
場景搭建
受限于深度學(xué)習(xí)模型推導(dǎo)效率,通常部署于深度自動駕駛中的CNN網(wǎng)絡(luò)的輸入圖像分辨率不會特別高,需要對相機捕獲的數(shù)據(jù)進(jìn)行預(yù)處理,裁剪出感興趣區(qū)域(region of interest,ROI)。在這種情況下,場景中相對路面比較遠(yuǎn)的其他部分不會被捕獲到相機畫面中來。但是,比較高或者比較低的道路兩側(cè)的建筑的高度實際會影響到道路的光照效果,一定會對自動駕駛系統(tǒng)的預(yù)測產(chǎn)生影響。為了測試這種影響,我們設(shè)計了3種環(huán)境,分別為曠野、鄉(xiāng)村、城市,具有不同的環(huán)境物體高度,通過UnrealEngine編輯器創(chuàng)建,如圖4所示:
圖4 3種環(huán)境
選取CARLA0.9.11默認(rèn)提供的10種天氣參數(shù)(太陽方位角、太陽高度角、云量、降雨量、積雨量、風(fēng)強度、空氣濕度、霧濃度、霧距、霧密度)作為測試系統(tǒng)可以調(diào)節(jié)的天氣參數(shù)。其中在不同場景中,太陽方位角和太陽高度角是必須存在的天氣參數(shù)。霧濃度、霧距離、霧密度三者之間具有相關(guān)性,必須同時存在。
我們對CARLA提供的89種可有效生成的靜態(tài)物體、28種車輛、26種行人進(jìn)行了對象屬性測算。28種車輛的差異體現(xiàn)在型號帶來的大小、形狀和顏色的差異。26種行人則包含男性、女性2種性別,年齡分成幼年、青年、老年3個年齡段。在89種靜態(tài)物體中,有一些重復(fù)的內(nèi)容,例如盒子包含6種,但有明顯差異的只有2種,而且有一些物體在我們設(shè)計的場景下不應(yīng)作為可以動態(tài)生成在道路和人行道上的內(nèi)容,例如秋千。最終,選擇全部的28種車輛和26種行人以及15種具有代表性的靜態(tài)物體,將測算的數(shù)據(jù)按照格式要求寫在對象屬性文件中。
實時渲染引擎中需要一個用以控制自動駕駛的車輛和一個捕獲當(dāng)前場景圖像的相機傳感器,由于CARLA中車輛的物理模擬使用了相同的藍(lán)圖作為實現(xiàn),所以在該平臺上選擇哪種車輛作為控制車輛是無關(guān)緊要的。選取28種車輛中的Tesla Model3作為控制車輛,傳感器選擇普通RGB單眼傳感器,位于相對車輛中心前方1.6m處,相對地面高1.4m,FOV取為100,畫面分辨率為800x600,幀率為25Hz。相機捕獲的場景畫面如圖5所示:
圖5 鄉(xiāng)村環(huán)境中車載相機捕獲的畫面
實驗評估安全問題檢測能力對比分析
我們對最新的自動駕駛測試系統(tǒng)Paracosm進(jìn)行了復(fù)現(xiàn),并使用復(fù)現(xiàn)的Paracosm與我們的工作同時對自動駕駛系統(tǒng)CILRS和CIL進(jìn)行安全性測試。我們選取了CARLA0.9.11作為Paracosm和本系統(tǒng)的場景生成平臺??紤]到,Paracosm未指定如何設(shè)置具體的安全性問題檢出標(biāo)準(zhǔn),其在未來工作部分討論了與本文類似的測試預(yù)言生成思路,但是并未指定具體的方法和參數(shù)選擇。故在本節(jié)的實驗中,為了實驗的公平性,復(fù)現(xiàn)的Paracosm系統(tǒng)和本文一樣,選取了蛻變測試作為測試預(yù)言機制,將場景變換前自動駕駛系統(tǒng)輸出的結(jié)果視為正確輸出,詳細(xì)的設(shè)計見3.4節(jié)。
對于參數(shù)選擇部分,若搜索場景中僅發(fā)生了天氣變換,系統(tǒng)會選取預(yù)言1作為故障判斷的依據(jù),同時取ε=0.17,即當(dāng)車輛相對原始輸出偏轉(zhuǎn)角超過15°時認(rèn)為出現(xiàn)了故障;對包含實體對象的變換情況,系統(tǒng)選取預(yù)言2作為故障判斷的依據(jù),在有實體對象的情況下,是否妥善剎車應(yīng)是故障判斷的標(biāo)準(zhǔn),同時取ε1=0.17,取ε2=0.2。對于場景存在實體對象的情況,采用正態(tài)分布對實體數(shù)量進(jìn)行抽樣:
我們選取了3種類型的環(huán)境,即曠野、鄉(xiāng)村和城市,對CILRS系統(tǒng)和CIL系統(tǒng)分別進(jìn)行了安全性測試。請注意,3種環(huán)境的主要區(qū)別在于道路兩側(cè)的建筑物高度不同,從而影響自動駕駛車輛上相機中的ROI的光照。將車輛生成于場景中的直道部分,設(shè)定車輛的駕駛分支為沿路行駛開始測試。讓這2個測試系統(tǒng)分別在不同類型的環(huán)境下動態(tài)搜索300個場景。我們在表2中展示了本工作與Paracosm系統(tǒng)的安全問題檢出率,檢出率的計算方法如式(2)所示。
表2 本工作與Paracosm系統(tǒng)的安全問題發(fā)現(xiàn)率
3個代表性環(huán)境的300次場景搜索中,安全問題發(fā)現(xiàn)能力均要優(yōu)于自動駕駛測試系統(tǒng)Paracosm。整體來看,本工作在2個系統(tǒng)上的安全問題檢出率皆是Paracosm的1.4倍。實驗表明,本系統(tǒng)面向測試對象的適應(yīng)性搜索算法設(shè)計相比于非適應(yīng)性算法更加高效。
安全問題檢測能力具體分析
本節(jié)會對本文設(shè)計的系統(tǒng)進(jìn)行詳細(xì)的分析。為排除其他因素造成的影響,選擇設(shè)計的3個環(huán)境中的曠野環(huán)境作為測試環(huán)境。其實驗參數(shù)與4.1節(jié)相同?;谠撛O(shè)定分別對CIL和CILRS進(jìn)行實驗,并針對每個系統(tǒng)進(jìn)行了1000輪場景搜索。使用式(2)計算故障率,并將結(jié)果列于表3中。從表3中可以看出,存在實體對象時,場景變換造成的故障率較只有天氣的情況更高。并且在考慮天氣和所有實體對象情況下,我們對CILRS的故障發(fā)現(xiàn)率達(dá)到了58.4%。
表3 自動駕駛系統(tǒng)的故障率
比較CILRS的實驗結(jié)果與CIL的實驗結(jié)果,可以發(fā)現(xiàn)兩者在只包含天氣的情況下表現(xiàn)相近,而在擁有表示場景擁擠程度的實體對象的情況下,CIL故障發(fā)生率高于CILRS。CILRS是在CARLA100數(shù)據(jù)集下訓(xùn)練的,著重解決擁擠場景情況下駕駛系統(tǒng)的正確性預(yù)測問題。實驗結(jié)果印證了CILRS確實緩解了擁擠場景下自動駕駛系統(tǒng)故障率高的問題。換言之,CILRS的安全性優(yōu)于CIL。
蛻變測試的松弛限
在3.4節(jié)的測試預(yù)言定義中,使用松弛的蛻變測試來避免采取固定真值測試時,自動駕駛系統(tǒng)測試可能會出現(xiàn)大量假陽性的問題。在5.2節(jié)中,使用ε=0.17對不包含實體對象的天氣場景進(jìn)行實驗,使用ε1=0.17,ε2=0.2對包含實體對象的場景進(jìn)行實驗。這2個值的選取是經(jīng)驗選取的。本小節(jié)通過調(diào)整ε進(jìn)行實驗,從而分析松弛限的取值對實驗結(jié)果的影響。選取CILRS系統(tǒng)的沿路行駛模式,在直道上進(jìn)行測試,測試系統(tǒng)擁有生成全部實體對象的能力。分別固定ε1=0.17和固定ε2=0.2,每次固定進(jìn)行100次實驗,將故障發(fā)現(xiàn)率繪在圖6中。
圖6 使用蛻變測試故障發(fā)現(xiàn)率與松弛限的關(guān)系
圖6中,折線ε1是固定ε2=0.2時,ε1取值[0,0.5],故障發(fā)現(xiàn)率與松弛限的關(guān)系。折線ε2是固定ε1=0.17時,ε2取值[0,0.5],故障發(fā)現(xiàn)率與松弛限的關(guān)系。注意當(dāng)ε=0時,故障發(fā)現(xiàn)率并不為100%,這是由于ε1與ε2并非同時?。皫淼?。從圖6中,可以觀察到隨著松弛限逐漸變大,故障發(fā)現(xiàn)率不斷下降。如果松弛率比較小,那么系統(tǒng)就會報出大量的假陽性。如果松弛率比較大,那么系統(tǒng)又會忽略可能的危險錯誤。正如前面解釋設(shè)計自動駕駛測試預(yù)言的困難性,如何折中松弛率是一個很復(fù)雜的問題,在DeepTest中使用統(tǒng)計標(biāo)準(zhǔn)差作為松弛限,DeepRoad直接使用經(jīng)驗取值。根據(jù)此圖,ε在0~0.1區(qū)間內(nèi),隨自身增加,故障發(fā)現(xiàn)率下降速度比較快,推測排除了大量的假陽性,而松弛限在0.1~0.22比較平滑,可以看作一個比較合理的取值范圍。另外,對自動駕駛?cè)蝿?wù)而言,略高的假陽性能夠避免故障場景的錯誤排除,對實際任務(wù)并非不可接受。這是自動駕駛?cè)蝿?wù)故障的危害性程度帶來的。
場景覆蓋分析
本節(jié)從不同的環(huán)境、不同的駕駛模式對深度自動駕駛系統(tǒng)進(jìn)行測試,驗證測試系統(tǒng)的覆蓋能力。
環(huán)境測試
我們提供的3種測試場景,曠野、鄉(xiāng)村和城市的主要區(qū)別在于道路兩側(cè)的建筑物高度不同,從而影響自動駕駛車輛上相機中的ROI的光照不同。在地圖中的直道區(qū)域,分別對CIL和CILRS進(jìn)行測試,結(jié)果列于表4中。
表4 自動駕駛系統(tǒng)在不同環(huán)境下的測試結(jié)果
從表4可以得到2個結(jié)論:
1) 在曠野、鄉(xiāng)村、城市3個不同的環(huán)境下進(jìn)行測試,故障發(fā)現(xiàn)率是比較接近的,這在一方面說明了環(huán)境對故障發(fā)現(xiàn)率的影響比較小,另一方面印證了我們設(shè)計不同環(huán)境的依據(jù)—自動駕駛中的ROI設(shè)計使得自動駕駛系統(tǒng)更關(guān)注路面而非道路兩側(cè)的環(huán)境。
2) 有趣的是,在我們的設(shè)想中,低光照環(huán)境下的城市,故障發(fā)現(xiàn)率應(yīng)該高于正常光照或者高光照情況下的曠野和鄉(xiāng)村條件,因為按照直覺,夜間駕駛相對白天駕駛更容易出現(xiàn)問題。然而表4的數(shù)據(jù)與我們預(yù)料的結(jié)果相反,低光照情況下的故障搜索效率反而低了。通過觀察實驗結(jié)果,我們推測在正常光照條件下,自動駕駛車輛的轉(zhuǎn)向角一方面依賴實體對象,另一方面依賴道路中心的雙黃線。一旦雙黃線部分被遮蔽后,就很有可能造成駕駛輸出故障。在低光照情況下,雙黃線始終被遮蔽,這就使得駕駛輸出主要依賴場景中的其他實體對象。由前文可知,我們設(shè)計的駕駛語義保持的方式使得決定駕駛語義變化區(qū)域的實體對象沒有改變,這樣反而使得故障的搜索能力減弱了。
駕駛模式測試
在條件自動駕駛系統(tǒng)中,除車載相機拍到的圖像外,高層的控制指令決定了當(dāng)前駕駛動作應(yīng)采取的分支動作。而自動駕駛系統(tǒng)有4個駕駛模式,即沿路行駛、向左、向右和直行。我們在不同的場景中分別選擇了直路來測試沿路行駛模式,選擇十字路口分別測試向左、向右和直行3種指令。注意,在地圖的不同位置進(jìn)行測試時,場景初始化器需要根據(jù)區(qū)域配置重新合成對象分布進(jìn)行抽樣以適應(yīng)車載相機實際的FOV。測試結(jié)果見表5??梢钥吹?在不同分支的情況下,CILRS的安全性均優(yōu)于CIL。
表5 自動駕駛系統(tǒng)在不同分支下的測試結(jié)果
CILRS駕駛系統(tǒng)脆弱性分析
2.5節(jié)介紹了如何對測試系統(tǒng)發(fā)現(xiàn)的安全性問題進(jìn)行進(jìn)一步解釋。本節(jié)中,將以CILRS系統(tǒng)為例,通過回答如下問題來展示測試系統(tǒng)的自動化測試能力。
問題1.哪些天氣更容易造成CILRS系統(tǒng)出現(xiàn)故障?
使用缺陷分析器將擁有所有對象控制能力的實驗中的天氣逐個置零,確定哪些天氣更容易造成自動駕駛系統(tǒng)發(fā)生故障。
由于不同天氣是通過采樣得到的,采樣得到的數(shù)量不同,故而使用造成故障的天氣相對該天氣出現(xiàn)次數(shù)的比值作為對比值,將結(jié)果顯示在圖7中,注意,天氣可能只是造成故障的原因之一,不一定是決定因素。
圖7 天氣造成 CILRS系統(tǒng)故障的比例
缺陷分析器給出的造成故障的原因可能是多個對象,故而該圖中總和大于100%。從圖7中可以看出,造成路面信息模糊(特別是道路標(biāo)志模糊)的積雨最容易造成自動駕駛系統(tǒng)的不穩(wěn)定。隨之是干擾了相機傳感器畫面的降雨。風(fēng)的強度主要影響到了降雨的雨水飄落的傾斜程度和道路兩側(cè)樹葉的吹動,后者屬于環(huán)境內(nèi)容,根據(jù)在表4給出的結(jié)果,其對自動駕駛系統(tǒng)的影響并不突出。可見CILRS系統(tǒng)在這些天氣條件中,最易受到降雨環(huán)境的干擾。
問題2.哪些區(qū)域是CILRS駕駛系統(tǒng)的關(guān)鍵區(qū)域?
將深度自動駕駛的關(guān)鍵區(qū)域定義為,當(dāng)這個區(qū)域出現(xiàn)實體對象時,自動駕駛的輸出更容易出現(xiàn)不穩(wěn)定性。對先前在直道上進(jìn)行測試,存在實體對象的實驗結(jié)果進(jìn)行分析。首先,搜索到的造成故障的場景和原始場景會一并交給缺陷分析器進(jìn)行處理,分析出造成故障的物體。接著,把故障物體的區(qū)域繪在圖8中,橫坐標(biāo)是在沿道路方向的x軸,縱坐標(biāo)是道路切向方向的y軸。在我們的設(shè)置中,自動駕駛車輛的坐標(biāo)為(0,-2.27。圖8的統(tǒng)計結(jié)果顯示CILRS系統(tǒng)的敏感區(qū)域在道路兩側(cè)的人行道上。
圖8CILRS駕駛系統(tǒng)的關(guān)鍵區(qū)域問題
3。哪些物體更容易造成CILRS系統(tǒng)出現(xiàn)故障?將造成系統(tǒng)故障的物體相對其采樣次數(shù)的比值用作比較物體造成CILRS系統(tǒng)故障的概率的標(biāo)準(zhǔn)。去除重復(fù)物體,取錯誤率最高的5個實體對象,將對象及其故障率列在表6中。表6 實體對象及其故障率
通過圖8和表6,可以發(fā)現(xiàn)2點:
1) 位于道路上的車輛可能不是造成不穩(wěn)定性的主要原因,相反,處于道路兩側(cè)人行道上的物體可能更容易造成自動駕駛系統(tǒng)的不穩(wěn)定。觀察CARLA100數(shù)據(jù)集,我們發(fā)現(xiàn)自動駕駛系統(tǒng)針對復(fù)雜道路條件進(jìn)行了訓(xùn)練,忽略了人行道上物體的復(fù)雜性。
2) 黃色與紅色是CILRS系統(tǒng)的敏感顏色。這是很自然的,因為交通信號燈的顏色恰好是黃色和紅色,當(dāng)人行道上出現(xiàn)黃色或者紅色物體時,CILRS很有可能將其誤判成信號燈。
測試系統(tǒng)發(fā)現(xiàn)的CILRS的脆弱性正是CILRS優(yōu)化的方向,可以使用本文測試系統(tǒng)在網(wǎng)絡(luò)訓(xùn)練后校驗系統(tǒng)的安全性。網(wǎng)絡(luò)優(yōu)化方案可以是數(shù)據(jù)增強、結(jié)構(gòu)優(yōu)化等,優(yōu)化后再次使用測試系統(tǒng)進(jìn)行校驗可以確定深度網(wǎng)絡(luò)是否滿足了安全性需求。例如對CILRS系統(tǒng),建議增加雨天天氣、更豐富的道路兩側(cè)場景的訓(xùn)練數(shù)據(jù)以,提高系統(tǒng)的穩(wěn)定性,設(shè)計雙保險機制緩解對黃色、紅色物體的敏感性。
特征分析與啟發(fā)
為了進(jìn)一步分析造成CILRS系統(tǒng)故障的原因,我們打開了CILRS系統(tǒng),觀察ResNet的特征提取層。我們發(fā)現(xiàn),大多數(shù)情況下搜索到的故障場景和原場景的特征提取結(jié)果雖然有所差異,但差異不是特別明顯,在一系列分析過程中,我們發(fā)現(xiàn)了一個有趣的樣例,即身穿紅色衣服的行人在人行道上行走。
如圖9所示,設(shè)置環(huán)境在曠野上,車輛位于直行道路區(qū)域上,使用沿路行駛模式進(jìn)行測試,此時車速為4(歸一化數(shù)值),一個身穿紅色衣服的行人在右側(cè)人行道的中央位置沿著人行道向前走。自動駕駛車輛停留在初始位置,根據(jù)行人所處的不同位置,可以得到CILRS系統(tǒng)預(yù)測的輸出的變化,將其畫在圖10中。
圖9 故障分析樣例:身穿紅色衣服的行人在道路旁行走
圖10CILRS系統(tǒng)輸出隨行人位置的變化根據(jù)圖10可以看到,行人出現(xiàn)前,CILRS系統(tǒng)輸出比較穩(wěn)定。而在行人開始出現(xiàn)時,CILRS系統(tǒng)受到了影響和波動,然而始終處于故障范圍之外。大約在車輛中心位置前7.5m處,預(yù)測輸出變?yōu)槊筒葎x車(剎車效應(yīng)優(yōu)先于轉(zhuǎn)向效應(yīng))。隨后自動駕駛系統(tǒng)的輸出仍處于波動狀態(tài),直到行人遠(yuǎn)離后車輛輸出才趨向穩(wěn)定(bias<0.1)。這樣的表現(xiàn)顯然是不正常的,當(dāng)行人距離車比較近的時候,如果CILRS判定此時應(yīng)剎車,則應(yīng)立即輸出剎車,不應(yīng)該在行人繼續(xù)向前走之后才輸出剎車。將沒有行人和行人在相對車輛中心位置前面7.5m處時的相機輸入及CILRS卷積層前3層輸出的繪在圖11中。作為對比,將一張長椅放在位于人行道上造成自動駕駛系統(tǒng)輸出變化最大的位置,此時自動駕駛輸出相對不存在任何物體時的偏移ster_bias=0.030<0.17,throtle_bias=0.05<0.2,不會被判定為系統(tǒng)故障。圖11中,有長椅的場景第3層卷積輸出的結(jié)果與不存在任何物體的場景的卷積輸出的結(jié)果比較相似,而行人所出現(xiàn)的場景卷積輸出和不存在任何物體的場景的卷積輸出有明顯差異。
圖11,前2列在原始畫面和特征提取前2層畫面有明顯差異,然而在第3層卻比較相近。第1列和第3列原始畫面和前3層都有很大的差異。這說明盡管畫面中相同位置都出現(xiàn)了物體,但特征提取出來的內(nèi)容是不同的。這啟發(fā)我們或許可以在某一或某些特征層設(shè)置監(jiān)控器,通過監(jiān)控器的變化分析提前預(yù)警系統(tǒng)是否會發(fā)生故障。
圖11 CILRS輸入及卷積層輸出
系統(tǒng)運行效率分析
本小節(jié)對測試系統(tǒng)的運行效率進(jìn)行分析。部署測試系統(tǒng)的硬件平臺為AMDR53600X+RTX3070,使用的軟件平臺為Windows10+Unreal Engine4.24.3+CARLA0.9.11+Pytho3.9.1。 將動態(tài)場景生成器根據(jù)初始場景搜索到一個造成自動駕駛系統(tǒng)出錯的場景或是超出迭代預(yù)算的用時定義為一次測試用時。在考慮所有實體對象,對象數(shù)量根據(jù)正態(tài)分布采樣得到,包含渲染過程的情況下,一次實驗的平均用時為16.86s。排除渲染過程,采用分模塊測試取平均值的方式,對每個模塊及其內(nèi)部細(xì)節(jié)進(jìn)行效率的測試,結(jié)果見表7。
表7 測試系統(tǒng)各模塊平均時間消耗(ms)
與十幾秒的單次實驗耗時相比,各個模塊內(nèi)部耗時是很低的,系統(tǒng)主要的性能瓶頸在渲染效率上。
為了保障車聯(lián)網(wǎng)場景下的自動駕駛系統(tǒng)安全性,本文設(shè)計并實現(xiàn)了一套場景驅(qū)動的針對自動駕駛視覺感知模塊的安全測試系統(tǒng)。該系統(tǒng)構(gòu)建了一套真實且豐富的場景描述方法,極大地拓展了測試系統(tǒng)的數(shù)據(jù)分布;本系統(tǒng)可以動態(tài)地為不同自動駕駛模型產(chǎn)生安全測試方案,可以實現(xiàn)高效、穩(wěn)定地發(fā)現(xiàn)安全缺陷;最后本系統(tǒng)設(shè)計了一套精細(xì)的自動化安全問題分析工具,該工具可以幫助自動駕駛開發(fā)人員快速定位系統(tǒng)的安全性問題。我們相信,本工作將啟發(fā)更多的自動駕駛感知模塊的測試方案,會為車聯(lián)網(wǎng)場景下的自動駕駛領(lǐng)域提供重要的安全基礎(chǔ)。