自動(dòng)駕駛車(chē)道線檢測(cè)分類的虛擬-真實(shí)域適應(yīng)方法
arXiv論文“Sim-to-Real Domain Adaptation for Lane Detection and Classification in Autonomous Driving“,2022年5月,加拿大滑鐵盧大學(xué)的工作。
雖然自主駕駛的監(jiān)督檢測(cè)和分類框架需要大型標(biāo)注數(shù)據(jù)集,但光照真實(shí)模擬環(huán)境生成的合成數(shù)據(jù)推動(dòng)的無(wú)監(jiān)督域適應(yīng)(UDA,Unsupervised Domain Adaptation)方法則是低成本、耗時(shí)更少的解決方案。本文提出對(duì)抗性鑒別和生成(adversarial discriminative and generative)方法的UDA方案,用于自動(dòng)駕駛的車(chē)道線檢測(cè)和分類應(yīng)用。
還介紹Simulanes數(shù)據(jù)集生成器,利用CARLA的巨大交通場(chǎng)景和天氣條件,創(chuàng)建一個(gè)自然的合成數(shù)據(jù)集。提出的UDA框架將帶標(biāo)簽的合成數(shù)據(jù)集作為源域,而目標(biāo)域是未標(biāo)記的真實(shí)數(shù)據(jù)。用對(duì)抗生成和特征鑒別器,調(diào)試學(xué)習(xí)模型,預(yù)測(cè)目標(biāo)域的車(chē)道位置和類別。用真實(shí)數(shù)據(jù)集和合成數(shù)據(jù)集進(jìn)行評(píng)估。
開(kāi)源UDA框架在??githubcom??/anita-hu/sim2real-lane-detection,還有數(shù)據(jù)集生成器在github.com/anita-hu/simulanes。
現(xiàn)實(shí)世界中的駕駛具有多樣性,交通條件、天氣和周?chē)h(huán)境也各不相同。因此,模擬場(chǎng)景的多樣性對(duì)模型在現(xiàn)實(shí)世界中的良好適應(yīng)性至關(guān)重要。有許多用于自動(dòng)駕駛的開(kāi)源模擬器,即CARLA和LGSVL。本文選擇CARLA來(lái)生成模擬數(shù)據(jù)集,除靈活的Python API外,CARLA還包含豐富的覆蓋城市、農(nóng)村和公路場(chǎng)景的預(yù)先繪制地圖內(nèi)容。
模擬數(shù)據(jù)生成器Simulanes在城市、農(nóng)村和公路環(huán)境中生成了各種模擬場(chǎng)景,包括15個(gè)車(chē)道類別和動(dòng)態(tài)天氣。如圖顯示來(lái)自合成數(shù)據(jù)集的樣本。行人和車(chē)輛參與者隨機(jī)生成并放置在地圖上,通過(guò)遮擋增加數(shù)據(jù)集的難度。根據(jù)TuSimple和CULane數(shù)據(jù)集,將車(chē)輛附近的最大車(chē)道數(shù)限制為4條,并用行錨點(diǎn)為標(biāo)簽。
由于CARLA模擬器不直接給出車(chē)道位置標(biāo)簽,用CARLA的路點(diǎn)系統(tǒng)(waypoint system)生成標(biāo)簽。CARLA路點(diǎn)是車(chē)輛autopilot要遵循的預(yù)定義位置,位于車(chē)道中心。為了獲得車(chē)道位置標(biāo)簽,將當(dāng)前車(chē)道的路點(diǎn)左右移動(dòng)W/2,其中W是模擬器給定的車(chē)道寬度。然后將這些移動(dòng)的路點(diǎn)投影到攝像頭坐標(biāo)系,并采用樣條曲線擬合,以便沿預(yù)定的行錨點(diǎn)生成標(biāo)簽。類標(biāo)簽由模擬器給出,是15個(gè)類的一個(gè)。
為了生成具有N幀的數(shù)據(jù)集,將N均勻地劃分到所有可用的地圖上。從默認(rèn)的CARLA地圖中,用城鎮(zhèn)1、3、4、5、7和10,而城鎮(zhèn)2和6由于提取的車(chē)道位置標(biāo)簽與圖像的車(chē)道位置之間存在差異而未使用。對(duì)每個(gè)地圖,車(chē)輛參與者在隨機(jī)位置生成,并隨機(jī)移動(dòng)。動(dòng)態(tài)天氣通過(guò)將時(shí)間作為正弦函數(shù)平滑地改變太陽(yáng)的位置并偶爾產(chǎn)生風(fēng)暴來(lái)實(shí)現(xiàn),風(fēng)暴通過(guò)云量、水量和積水等變量影響環(huán)境的外觀。為了避免在同一位置保存多個(gè)幀,檢查車(chē)輛是否已從前一幀位置移動(dòng),如果這個(gè)車(chē)輛停止太長(zhǎng)時(shí)間,則重新生成新的車(chē)輛。
當(dāng)sim-to-real算法應(yīng)用于車(chē)道檢測(cè)時(shí),采用端到端的方法,并使用Ultra- Fast-Lane-Detection(UFLD)模型作為基礎(chǔ)網(wǎng)絡(luò)。之所以選擇UFLD,是因?yàn)槠漭p量級(jí)架構(gòu)可以在相同輸入分辨率下實(shí)現(xiàn)300幀/秒速度,同時(shí)具有與最先進(jìn)方法相當(dāng)?shù)男阅?。UFLD將車(chē)道檢測(cè)任務(wù)表述為基于行的選擇法,其中每個(gè)車(chē)道由預(yù)定義行的一系列水平位置表示,即行錨點(diǎn)。對(duì)于每個(gè)行錨點(diǎn),位置被劃分為w網(wǎng)格單元。對(duì)于第i條車(chē)道和第j行錨點(diǎn),位置預(yù)測(cè)成為一個(gè)分類問(wèn)題,其中模型輸出選擇(w+1)網(wǎng)格單元的概率Pi,j。輸出中的附加維度是無(wú)車(chē)道。
UFLD提出一個(gè)輔助分割分支,在多尺度上聚集特征來(lái)建模局部特征,這個(gè)只在訓(xùn)練期間使用。隨UFLD方法,交叉熵?fù)p失用于分割損失Lseg。對(duì)于車(chē)道分類,添加一個(gè)全連接(FC)層的小分支,接收與車(chē)道位置預(yù)測(cè)的FC層相同的特征。車(chē)道分類損失Lcls也使用交叉熵?fù)p失。
為了緩解UDA設(shè)置的域漂移問(wèn)題,采用了UNIT(“Unsupervised Image-to-Image Translation Networks“,NIPS,2017)& MUNIT(“Multimodal unsupervised image-to-image translation,” ECCV 2018)的對(duì)抗性生成方法,以及使用特征鑒別器的對(duì)抗性判別方法。如圖所示:提出了對(duì)抗性生成方法(A)和對(duì)抗性判別方法(B)。UNIT和MUNIT在(A)中表示,其中顯示用于圖像翻譯(image translation)的生成器輸入。MUNIT的附加風(fēng)格輸入以藍(lán)色虛線顯示。為了簡(jiǎn)單起見(jiàn),省略了MUNIT風(fēng)格的編碼器輸出,因?yàn)樗挥糜趫D像翻譯。
實(shí)驗(yàn)結(jié)果如下:
左:直接遷移法,右:對(duì)抗鑒別(ADA)方法