自動(dòng)駕駛場景中的長尾問題怎么解決?
本文經(jīng)自動(dòng)駕駛之心公眾號授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請聯(lián)系出處。
昨天面試被問到了是否做過長尾相關(guān)的問題,所以就想著簡單總結(jié)一下。
自動(dòng)駕駛長尾問題是指自動(dòng)駕駛汽車中的邊緣情況,即發(fā)生概率較低的可能場景。感知的長尾問題是當(dāng)前限制單車智能自動(dòng)駕駛車輛運(yùn)行設(shè)計(jì)域的主要原因之一。自動(dòng)駕駛的底層架構(gòu)和大部分技術(shù)問題已經(jīng)被解決,剩下的5%的長尾問題,逐漸成了制約自動(dòng)駕駛發(fā)展的關(guān)鍵。這些問題包括各種零碎的場景、極端的情況和無法預(yù)測的人類行為。
自動(dòng)駕駛中的邊緣場景
長尾”是指自動(dòng)駕駛汽車 (AV) 中的邊緣情況,邊緣情況是發(fā)生概率較低的可能場景。這些罕見的事件因?yàn)槌霈F(xiàn)率較低且比較特殊,因此在數(shù)據(jù)集中經(jīng)常被遺漏。雖然人類天生擅長處理邊緣情況,但人工智能卻不是這樣??赡芤疬吘増鼍暗囊蛩赜校簬в型黄鸬目ㄜ嚮蛘弋愋诬囕v、車輛急轉(zhuǎn)彎、在擁擠的人群中行駛、亂穿馬路的行人、極端天氣或極差光照條件、打傘的人,人在車后搬箱子、樹倒在路中央等等。
例子:
- 放透明薄膜在車前,透明物體是否可以被識(shí)別,車輛是否會(huì)減速
- 激光雷達(dá)公司Aeye就做了一次挑戰(zhàn),自動(dòng)駕駛?cè)绾翁幚硪粋€(gè)漂浮在路中央的氣球。L4級無人駕駛汽車往往偏向避免碰撞,在這種情況下,它們會(huì)采取規(guī)避動(dòng)作或者踩剎車,來避免不必要的事故。而氣球是個(gè)軟性的物體,可以直接無障礙的通過。
解決長尾問題的方法
合成數(shù)據(jù)是個(gè)大概念,而感知數(shù)據(jù)(nerf, camera/sensor sim)只是其中一個(gè)比較出圈的分支。在業(yè)界,合成數(shù)據(jù)在longtail behavior sim早已成為標(biāo)準(zhǔn)答案。合成數(shù)據(jù),或者說sparse signal upsampling是解決長尾問題的第一性解法之一。長尾能力是模型泛化能力與數(shù)據(jù)內(nèi)含信息量的乘積。
特斯拉解決方案:
用合成數(shù)據(jù)(synthetic data)生成邊緣場景來擴(kuò)充數(shù)據(jù)集
數(shù)據(jù)引擎的原理:首先,檢測現(xiàn)有模型中的不準(zhǔn)確之處,隨后將此類案例添加到其單元測試中。它還收集更多類似案例的數(shù)據(jù)來重新訓(xùn)練模型。這種迭代方法允許它捕獲盡可能多的邊緣情況。制作邊緣案例的主要挑戰(zhàn)是收集和標(biāo)注邊緣情況的成本比較高,再一個(gè)就是收集行為有可能非常危險(xiǎn)甚至無法實(shí)現(xiàn)。
NVIDIA解決方案:
NVIDIA 最近提出了一種名為“模仿訓(xùn)練”的戰(zhàn)略方法(下圖)。在這種方法中,真實(shí)世界中的系統(tǒng)故障案例在模擬環(huán)境中被重現(xiàn),然后將它們用作自動(dòng)駕駛汽車的訓(xùn)練數(shù)據(jù)。重復(fù)此循環(huán),直到模型的性能收斂。
以下真實(shí)場景中由于卡車高度過高(上)、車輛凸出部分遮擋后車(下)導(dǎo)致模型輸出時(shí)車框丟失,成為邊緣場景,過NVIDIA改進(jìn)后的模型可以在此邊緣情況下生成正確的邊界框:
一些思考:
Q:合成數(shù)據(jù)是否有價(jià)值?
A: 這里的價(jià)值分為兩種 , 第一種是測試有效性, 即在生成的場景中測試 是否能發(fā)現(xiàn)探測算法中的一些不足, 第二種是訓(xùn)練有效性, 即生成的場景用于算法的訓(xùn)練是否也能夠有效提升性能。
Q: 如何使用虛擬數(shù)據(jù)提升性能?虛擬數(shù)據(jù)真的有必要添加到訓(xùn)練集中去嗎?添加進(jìn)去了是否會(huì)產(chǎn)生性能回退?
A: 這些問題都難以回答, 于是產(chǎn)生了很多不一樣的提高訓(xùn)練精度的方案:
- 混合訓(xùn)練:在真實(shí)數(shù)據(jù)中添加不同比例的虛擬數(shù)據(jù), 以求性能提升,
- Transfer Learning:使用真實(shí)數(shù)據(jù)預(yù)訓(xùn)練好的模型,然后Freeze 某些layer, 再添加混合數(shù)據(jù)進(jìn)行訓(xùn)練。
- Imitation Learning:針對性設(shè)計(jì)一些模型失誤的場景, 并由此產(chǎn)生一些數(shù)據(jù),進(jìn)而逐步提升模型的性能, 這一點(diǎn)也是非常自然的。在實(shí)際的數(shù)據(jù)采集和模型訓(xùn)練中, 也是針對性采集一些補(bǔ)充數(shù)據(jù), 進(jìn)而提升性能。
一些擴(kuò)展:
為了徹底評估 AI 系統(tǒng)的穩(wěn)健性,單元測試必須包括一般情況和邊緣情況。然而,某些邊緣案例可能無法從現(xiàn)有的真實(shí)世界數(shù)據(jù)集中獲得。為此,人工智能從業(yè)者可以使用合成數(shù)據(jù)進(jìn)行測試。
一個(gè)例子是ParallelEye-CS,這是一種用于測試自動(dòng)駕駛汽車視覺智能的合成數(shù)據(jù)集。與使用真實(shí)世界數(shù)據(jù)相比,創(chuàng)建合成數(shù)據(jù)的好處是可以對每個(gè)圖像的場景進(jìn)行多維度控制。
合成數(shù)據(jù)將作為生產(chǎn) AV 模型中邊緣情況的可行解決方案。它用邊緣案例補(bǔ)充現(xiàn)實(shí)世界的數(shù)據(jù)集,確保 AV 即使在異常事件下也能保持穩(wěn)健。它也比真實(shí)世界的數(shù)據(jù)更具可擴(kuò)展性,更不容易出錯(cuò),并且更便宜。