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