編者按:利用自然駕駛數(shù)據(jù)搭建高級駕駛輔助系統(tǒng)仿真測試環(huán)境一直是研究重點(diǎn),然而自然駕駛數(shù)據(jù)中包含許多類似的場景,本文使用自動(dòng)編碼器從自然駕駛數(shù)據(jù)中提取出獨(dú)特性高的場景(novel scenarios),從實(shí)驗(yàn)結(jié)果可知,該方法能夠大幅減少測試集的冗余,從而節(jié)省大量仿真時(shí)間,對高級駕駛輔助系統(tǒng)測試的相關(guān)研究具有參考價(jià)值。
本文譯自《2018 IEEE Intelligent Vehicles Symposium》,作者為Jacob Langner, Johannes Bach, Lennart Ries, Stefan Otten, Marc Holzäpfel, Eric Sax。
摘要:高級駕駛輔助系統(tǒng)(ADAS)利用傳感器和高精度地圖等信息源提供的多種輸入信號,來完成軌跡規(guī)劃和車輛動(dòng)力學(xué)控制等任務(wù)。為了對待測系統(tǒng)進(jìn)行充分驗(yàn)證,所有在現(xiàn)實(shí)中可能出現(xiàn)的場景都應(yīng)該被測試。用于仿真的測試場景可以從自然駕駛數(shù)據(jù)中提取出來,然而自然駕駛數(shù)據(jù)中包含許多類似的場景,這些場景并未包含新的測試內(nèi)容,卻大大增加了測試工作量。本文中提出了一種測試場景自動(dòng)選擇算法,首先隨機(jī)選擇初始測試集,之后利用自動(dòng)編碼器來識別數(shù)據(jù)池內(nèi)的獨(dú)特性高的場景,之后這些場景被迭代地添加到初始測試集中, 最終得到規(guī)模小的關(guān)鍵測試集。最后在數(shù)千公里的駕駛數(shù)據(jù)集上對該方法進(jìn)行了驗(yàn)證,結(jié)果證明該方法能夠節(jié)省大量仿真時(shí)間。
1、引言
通過融合攝像頭、雷達(dá)、高精度地圖和V2X通信等多種渠道提供的信息,自動(dòng)駕駛車輛能夠?qū)崿F(xiàn)對周圍環(huán)境更深層次的理解,從而更好地與環(huán)境進(jìn)行交互,但這同時(shí)也需要更復(fù)雜的功能和算法。對于越復(fù)雜的系統(tǒng),其驗(yàn)證和確認(rèn)(Verification and Validation, V&V)工作也越困難,需要耗費(fèi)大量的資源和時(shí)間。為了減少這些成本,現(xiàn)有研究和應(yīng)用中通常對系統(tǒng)進(jìn)行解構(gòu),從不同的層級分別進(jìn)行測試驗(yàn)證。其中,單元級和組件級的測試復(fù)雜性是可控的,但系統(tǒng)級別的V&V仍然是一個(gè)挑戰(zhàn)。
系統(tǒng)級V&V常用的方法是在現(xiàn)實(shí)世界中進(jìn)行測試,這種方法具有很高的真實(shí)性和有效性。然而在現(xiàn)實(shí)世界中進(jìn)行測試十分昂貴,需要耗費(fèi)大量資源,且測試環(huán)境和測試條件并不完全可控,測試可重復(fù)性低。為了克服以上局限,通常采用與基于仿真的測試相結(jié)合的方法。仿真測試成本更低,且實(shí)時(shí)性要求較低,測試條件更加可控。但是仿真測試必須在仿真環(huán)境中建立詳細(xì)的模型,包括環(huán)境模型、車輛模型,駕駛員模型等,模型的精度和準(zhǔn)確性將直接影響測試結(jié)果。
此外,為了使測試覆蓋率滿足要求,需要在大量不同的場景中進(jìn)行測試。在仿真環(huán)境中手動(dòng)搭建大量測試場景通常是不可行的,必須考慮派生測試場景。其中一種方法是借助統(tǒng)計(jì)模型生成測試場景,利用基于頻率分布的知識生成真實(shí)的測試集;另一種方法是基于真實(shí)世界采集的駕駛數(shù)據(jù),通過場景復(fù)現(xiàn)進(jìn)行仿真測試。以上兩種方法都存在測試數(shù)據(jù)冗余的問題,即存在相同或相似的場景,這大大增加了仿真時(shí)間。然而,識別整體數(shù)據(jù)池中的冗余測試數(shù)據(jù)非常困難,需要明確測試數(shù)據(jù)與待測系統(tǒng)的相關(guān)性,并且分析能提供新的測試內(nèi)容的數(shù)據(jù)。基于以上問題,本文提出了一種利用自動(dòng)編碼器從自然駕駛數(shù)據(jù)池中自動(dòng)篩選得到新的場景的方法,以最大限度地減少測試集中的冗余數(shù)據(jù)。
本文第2部分介紹了該方法的基本概念,第3部分為該方法的具體應(yīng)用過程,第4部分對該方法進(jìn)行了評估,第5部分為結(jié)論和展望。
2、基本概念
自動(dòng)編碼器是一種盡可能復(fù)現(xiàn)輸入信號的神經(jīng)網(wǎng)絡(luò)算法,其隱含層可以視為是一個(gè)編碼器和解碼器,輸入信號經(jīng)過隱含層的編碼和解碼,使得輸出層的輸出結(jié)果與輸入信號近似一致。在此過程中要求限制自動(dòng)編碼器隱含層中每層神經(jīng)元的數(shù)量,使得自動(dòng)編碼器能夠提取出輸入信號的主要特征。自動(dòng)編碼器通常用于信息壓縮,減少數(shù)據(jù)維度以及異常檢測。
基于自然駕駛數(shù)據(jù)的仿真環(huán)境測試中,開發(fā)軟件的每次迭代都在自然駕駛數(shù)據(jù)的幫助下進(jìn)行測試和調(diào)試。完整的駕駛數(shù)據(jù)池提供了各種不同的駕駛場景,在本文中,場景用被測車輛與車輛所處環(huán)境的交互數(shù)據(jù)表示,并將其作為自動(dòng)編碼器的輸入。仿真過程中,使用所有可用的自然駕駛數(shù)據(jù)可獲得最佳的測試覆蓋率,但為了縮短迭代時(shí)間,必須減小駕駛數(shù)據(jù)池,以獲得一個(gè)規(guī)模較小的關(guān)鍵測試集,以提供最大可能的測試覆蓋率,同時(shí)盡可能減少測試工作量。
一次性將一段完整的駕駛數(shù)據(jù)記錄輸入到自動(dòng)編碼器,要求有大量的輸入神經(jīng)元或非常少的采樣點(diǎn),因此需要將完整的駕駛數(shù)據(jù)記錄分割成為若干段序列。每段序列的長度不會(huì)影響自動(dòng)編碼器復(fù)現(xiàn)給定輸入信號的能力,所以序列長度是一個(gè)可設(shè)計(jì)的參數(shù),但采樣點(diǎn)數(shù)量和序列長度必須能表示相關(guān)的道路特征,如道路曲率和坡度等。每個(gè)選定輸入信號的序列包含相同數(shù)量的采樣點(diǎn),將采樣點(diǎn)存入向量中,并輸入自動(dòng)編碼器,之后自動(dòng)編碼器對輸入向量進(jìn)行壓縮和復(fù)現(xiàn),最后通過對比輸出向量與輸入向量,得到復(fù)現(xiàn)誤差。本文使用均方根誤差(RMSE)來計(jì)算復(fù)現(xiàn)誤差 ,RMSE越高,自動(dòng)編碼器對該輸入向量的復(fù)現(xiàn)效果越差,該序列越獨(dú)特。計(jì)算該段駕駛數(shù)據(jù)記錄中所有序列的均方根誤差的均值(平均復(fù)現(xiàn)誤差),即為該駕駛數(shù)據(jù)記錄的獨(dú)特性得分。
圖1描述了利用自動(dòng)編碼器選擇測試集的步驟。第一步,使用訓(xùn)練數(shù)據(jù)A(初始測試集)訓(xùn)練自動(dòng)編碼器,當(dāng)自動(dòng)編碼器能夠足夠好地復(fù)現(xiàn)訓(xùn)練數(shù)據(jù)時(shí),訓(xùn)練結(jié)束。第二步,將訓(xùn)練好的自動(dòng)編碼器應(yīng)用于駕駛數(shù)據(jù)池B中剩余的駕駛數(shù)據(jù)記錄。對于B中每段駕駛數(shù)據(jù)記錄,平均復(fù)現(xiàn)誤差越大表明復(fù)現(xiàn)效果越差——也即該段駕駛數(shù)據(jù)記錄獨(dú)特性更高。第三步,將復(fù)現(xiàn)誤差最大的駕駛數(shù)據(jù)記錄添加到初始測試集中,之后使用新的測試集重新訓(xùn)練自動(dòng)編碼器。如此迭代,直到測試集大小或數(shù)據(jù)池中剩余駕駛數(shù)據(jù)記錄的復(fù)現(xiàn)質(zhì)量達(dá)到要求。
圖1 利用自動(dòng)編碼器選擇測試集
由于獨(dú)特性評估很大程度上取決于初始測試集,因此將整個(gè)過程循環(huán)執(zhí)行多次,每次隨機(jī)選擇不同的初始測試集。計(jì)算每次將駕駛數(shù)據(jù)記錄添加到測試集時(shí)的獨(dú)特性得分,在處理完所有循環(huán)后,計(jì)算每段駕駛數(shù)據(jù)記錄的平均分?jǐn)?shù)。分?jǐn)?shù)越高,表明駕駛數(shù)據(jù)記錄越獨(dú)特。
由于駕駛數(shù)據(jù)記錄具有不同的長度,而每段駕駛數(shù)據(jù)記錄的獨(dú)特性是根據(jù)該駕駛數(shù)據(jù)記錄中所有序列的復(fù)現(xiàn)誤差取平均值獲得的,因此一個(gè)記錄中少數(shù)獨(dú)特性高的序列會(huì)被許多獨(dú)特性低的序列模糊化、平均化,導(dǎo)致該駕駛數(shù)據(jù)記錄整體獨(dú)特性分?jǐn)?shù)偏低。
對此首先用最大復(fù)現(xiàn)誤差代替平均復(fù)現(xiàn)誤差,即以所有序列復(fù)現(xiàn)誤差的最大值作為該駕駛數(shù)據(jù)記錄的獨(dú)特性分?jǐn)?shù);為了進(jìn)一步優(yōu)化,放棄完整駕駛數(shù)據(jù)記錄的概念,將針對駕駛數(shù)據(jù)記錄的獨(dú)特性評價(jià)調(diào)整為對序列的獨(dú)特性評價(jià)。此外引入軌跡的概念,一條軌跡由至少一段連續(xù)序列組成,每段序列是駕駛數(shù)據(jù)記錄中300米行駛距離的一段數(shù)據(jù),且與前后序列相互獨(dú)立,最后將獨(dú)特性高的單個(gè)序列進(jìn)行組合,生成更長的測試軌跡。這樣獨(dú)特性得分與駕駛數(shù)據(jù)記錄的長度無關(guān),并且正如以下的評價(jià)步驟所示,測試集中的冗余進(jìn)一步減少。
3、具體應(yīng)用過程
該方法被應(yīng)用于預(yù)測巡航控制系統(tǒng)(Predictive Cruise Control,PCC)。該系統(tǒng)的功能是預(yù)測最佳行駛軌跡并控制當(dāng)前場景下的車速。與該系統(tǒng)相關(guān)的信號包括前方車輛和道路拓?fù)浣Y(jié)構(gòu)(如道路曲率以及道路限速)。對于前方車輛相關(guān)數(shù)據(jù),可將其簡化為一個(gè)二維信號,表征前方是否存在車輛;對于道路特征相關(guān)數(shù)據(jù),則選擇道路曲率、道路坡度、車速限制以及道路類型等信號來表征。由于必須使用與被測系統(tǒng)相關(guān)的信號創(chuàng)建測試集,因此需要將這些信號相關(guān)數(shù)據(jù)作為自動(dòng)編碼器的輸入。
第一步,將整個(gè)數(shù)據(jù)池中選定信號的相關(guān)數(shù)據(jù)訓(xùn)練自動(dòng)編碼器,用以確定該方法的有效性并優(yōu)化參數(shù)設(shè)置。參數(shù)包括神經(jīng)網(wǎng)絡(luò)參數(shù)(激活函數(shù)類型、隱藏層數(shù)量、內(nèi)部神經(jīng)元數(shù)量、學(xué)習(xí)速率等)和數(shù)據(jù)參數(shù)(采樣點(diǎn)數(shù)量、采樣點(diǎn)距離等)。最終選擇的神經(jīng)網(wǎng)絡(luò)參數(shù)為:Sigmoid激活函數(shù)、三層隱藏層、內(nèi)部75個(gè)神經(jīng)元的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),學(xué)習(xí)速率設(shè)置為η=0.001。對于數(shù)據(jù)參數(shù),需要特別注意的是序列的長度。序列長度太短,則無法反映道路特征;序列過長,則樣本中的特征區(qū)域可能會(huì)被相關(guān)區(qū)域前面和后面的正常區(qū)域模糊。分割序列時(shí)還必須考慮采樣點(diǎn)的數(shù)量,因?yàn)榇嬖趯Φ缆诽卣髑凡蓸拥娘L(fēng)險(xiǎn),如急轉(zhuǎn)彎等。序列長度300米,每隔2米采樣一次被證明能較好地反映相關(guān)道路特征。
第二步,將完整數(shù)據(jù)池的一小部分用于訓(xùn)練階段,當(dāng)訓(xùn)練數(shù)據(jù)的復(fù)現(xiàn)誤差足夠小即停止訓(xùn)練。之后將訓(xùn)練好的自動(dòng)編碼器應(yīng)用于其余駕駛數(shù)據(jù)記錄,并計(jì)算每段駕駛數(shù)據(jù)記錄的平均復(fù)現(xiàn)誤差和最大復(fù)現(xiàn)誤差,由于最大復(fù)現(xiàn)誤差對于駕駛數(shù)據(jù)記錄的獨(dú)特性更有意義,并且也與駕駛數(shù)據(jù)記錄的長度無關(guān),因此將具有最大復(fù)現(xiàn)誤差的固定數(shù)量的駕駛數(shù)據(jù)記錄移動(dòng)到訓(xùn)練集中。在這之后重新訓(xùn)練網(wǎng)絡(luò),并開始下一次迭代,直到滿足退出條件,則算法停止并返回最終的測試集。
4、結(jié)果和評估
圖2展示了基于完整駕駛數(shù)據(jù)記錄的方法,使用最大復(fù)現(xiàn)誤差選擇出的獨(dú)特性最高的四個(gè)駕駛數(shù)據(jù)記錄,其中黃色和紅色表示具有高獨(dú)特性的序列,每個(gè)駕駛數(shù)據(jù)記錄至少有一個(gè)紅色的高獨(dú)特性序列。對于某些序列,可以通過查看地圖來理解序列具有高獨(dú)特性的原因(例如在急轉(zhuǎn)彎或特殊曲線處)。然而,某些序列是直道,查看其他輸入信號有助于說明它們有高獨(dú)特性的原因,例如圖2(b)中的Duhamel道路已不在城內(nèi),但仍限速50km/h,自動(dòng)編碼器很難復(fù)現(xiàn)這種不常見的參數(shù)組合。
圖2 獨(dú)特性分?jǐn)?shù)最高的四個(gè)駕駛數(shù)據(jù)記錄
如上所述,在評估駕駛數(shù)據(jù)記錄的獨(dú)特性方面,最大復(fù)現(xiàn)誤差比平均復(fù)現(xiàn)誤差更合適。當(dāng)使用平均復(fù)現(xiàn)誤差時(shí),較長駕駛數(shù)據(jù)記錄中的獨(dú)特序列的特性會(huì)變得模糊。然而,最大復(fù)現(xiàn)誤差僅能表示駕駛數(shù)據(jù)記錄中至少包含一段獨(dú)特序列,并不能反映每段駕駛數(shù)據(jù)記錄中有多少獨(dú)特序列。本文分析了具有較大的最大復(fù)現(xiàn)誤差的駕駛數(shù)據(jù)記錄,在每個(gè)駕駛數(shù)據(jù)記錄中都能找到高獨(dú)特性的序列。但是,使用該方法在最后得到的測試集中,每個(gè)駕駛數(shù)據(jù)記錄仍有很多相似的序列。因此,后續(xù)步驟是是將整個(gè)數(shù)據(jù)池切割成等長的測試序列并獨(dú)立地評估它們的獨(dú)特性。
首先,將數(shù)據(jù)中的每段駕駛數(shù)據(jù)記錄分割成若干個(gè)序列,然后隨機(jī)選擇這些序列進(jìn)行初始訓(xùn)練,然后使用獨(dú)立序列而非完整的駕駛數(shù)據(jù)記錄來訓(xùn)練自動(dòng)編碼器。
圖3顯示了某段駕駛數(shù)據(jù)記錄中的每個(gè)序列的最終獨(dú)特性得分。駕駛數(shù)據(jù)記錄中最長的部分是冗余的,這些數(shù)據(jù)在歷次迭代過程中都未被選中,因此獨(dú)特性得分為零,但是也有一些獨(dú)特性較高的序列。與基于完整駕駛數(shù)據(jù)記錄的方法不同,使用基于序列的方法只選擇這幾段獨(dú)特性高的序列,所有冗余數(shù)據(jù)都不會(huì)添加到測試集中。最后將連續(xù)選擇的序列自動(dòng)組合為軌跡。特殊曲線得到高獨(dú)特性得分似乎是合理的。
這里存在機(jī)器學(xué)習(xí)方面的問題,即作者無法證明計(jì)算出的獨(dú)特性分?jǐn)?shù)是合理的,也無法證明測試數(shù)據(jù)中其他類似的序列以及每個(gè)獨(dú)特性高的序列都被自動(dòng)編碼器檢測到。然而作者分析了所有示例序列的獨(dú)特性分?jǐn)?shù),結(jié)果表明無論該分?jǐn)?shù)是合理的。因此,這種全自動(dòng)方法可能不會(huì)生成完美的測試集,但能極大減少冗余并從測試數(shù)據(jù)中選擇出獨(dú)特性高的序列。
圖3 每段序列的獨(dú)特性得分
結(jié)果表明,基于完整駕駛數(shù)據(jù)記錄以及基于序列的獨(dú)特性評價(jià)方法都可以大大減少測試集中的冗余。選擇完整駕駛數(shù)據(jù)記錄時(shí),最終測試集中要模擬的距離減少到69%。基于序列的方法時(shí),減少到19%。
5、結(jié)論和展望
本文提出了一種利用自動(dòng)編碼器減少測試集冗余的自動(dòng)化方法,從實(shí)驗(yàn)結(jié)果可知,輸出結(jié)果的復(fù)現(xiàn)誤差可以被解釋為序列的獨(dú)特性表征,即表示自動(dòng)編碼器對該序列的了解程度。目前這種方法還不能得到理論性證明,但是本文的示例表明了這種方法的有效性。另外,本文比較了基于完整駕駛數(shù)據(jù)記錄和基于序列兩種評價(jià)方法的應(yīng)用效果。未來工作中,將嘗試對序列的獨(dú)特性分?jǐn)?shù)進(jìn)行解釋,此外也會(huì)將其他信號添加到自動(dòng)編碼器輸入中,以進(jìn)一步提高獨(dú)特性等級。
聯(lián)系人:李老師 郵箱:11666104@#edu.cn