ADAPT:曙光初現(xiàn),全面探索端到端自動(dòng)駕駛的可解釋性!
本文經(jīng)自動(dòng)駕駛之心公眾號(hào)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)聯(lián)系出處。
筆者的個(gè)人思考
端到端是今年非?;鸬囊粋€(gè)方向,今年的CVPR best paper也頒給了UniAD,但端到端同樣也存在很多問(wèn)題,比如可解釋性不高、訓(xùn)練難收斂等等,領(lǐng)域的一些學(xué)者開(kāi)始逐漸把注意力轉(zhuǎn)到端到端的可解釋性上,今天為大家分享端到端可解釋性的最新工作ADAPT,該方法基于Transformer架構(gòu),通過(guò)多任務(wù)聯(lián)合訓(xùn)練的方式端到端地輸出車(chē)輛動(dòng)作描述及每個(gè)決策的推理。筆者對(duì)ADAPT的一些思考如下:
- 這里是用視頻的2D 的feature來(lái)做的預(yù)測(cè), 有可能把2D feature轉(zhuǎn)化為 bev feature之后效果會(huì)更好.
- 與LLM結(jié)合效果可能會(huì)更好, 比如 Text Generation那部分換成LLM.
- 當(dāng)前這個(gè)工作是拿歷史的視頻作為輸入, 預(yù)測(cè)的action及其描述也是歷史的, 如果改成預(yù)測(cè)將來(lái)的action以及action對(duì)應(yīng)的原因的話可能更有意義.
- image token化那塊兒得到的 token 有點(diǎn)兒多,可能有很多沒(méi)有用的信息, 或許可以試試Token-Learner.
出發(fā)點(diǎn)是什么?
端到端自動(dòng)駕駛在交通行業(yè)具有巨大潛力,而且目前對(duì)這方面的研究比較火熱。像CVPR2023的best paper UniAD 做的就是端到端的自動(dòng)駕駛。但是, 自動(dòng)決策過(guò)程缺乏透明度和可解釋性會(huì)阻礙它的發(fā)展, 畢竟實(shí)車(chē)上路,是要安全第一的。早期已經(jīng)有一些嘗試使用 attention map 圖或 cost volume 來(lái)提高模型的可解釋性,但這些方式很難理解。那么這篇工作的出發(fā)點(diǎn),就是尋求一種好理解的方式來(lái)解釋決策。下圖是幾種方式的對(duì)比, 顯然用語(yǔ)言表達(dá)更容易理解。
ADAPT有什么優(yōu)勢(shì)?
- 能夠端到端地輸出車(chē)輛動(dòng)作描述及每個(gè)決策的推理;
- 該方法基于transformer的網(wǎng)絡(luò)結(jié)構(gòu), 通過(guò)multi-task的方式進(jìn)行聯(lián)合訓(xùn)練;
- 在BDD-X(Berkeley DeepDrive eXplanation) 數(shù)據(jù)集上達(dá)到了SOTA的效果;
- 為了驗(yàn)證該系統(tǒng)在真實(shí)場(chǎng)景中的有效性, 建立了一套可部署的系統(tǒng), 這套系統(tǒng)能夠輸入原始的視頻, 實(shí)時(shí)地輸出動(dòng)作的描述及推理;
效果展示
看效果還是非常不錯(cuò)的, 尤其是第三個(gè)黑夜的場(chǎng)景, 紅綠燈都注意到了。
目前領(lǐng)域的進(jìn)展
Video Captioning
視頻描述的主要目標(biāo)是用自然語(yǔ)言描述給定視頻的對(duì)象及其關(guān)系。早期的研究工作通過(guò)在固定模板中填充識(shí)別的元素來(lái)生成具有特定句法結(jié)構(gòu)的句子,這些模板不靈活且缺乏豐富性。
一些方法利用序列學(xué)習(xí)方法來(lái)生成具有靈活句法結(jié)構(gòu)的自然句子。具體來(lái)說(shuō),這些方法采用video encoder 來(lái)提取 feature,并使用語(yǔ)言 decoder 來(lái)學(xué)習(xí)視覺(jué)文本對(duì)齊。為了用細(xì)粒度的對(duì)象和動(dòng)作使描述更加豐富,有些方法利用 object-leverl 的表示來(lái)獲取視頻中詳細(xì)的object-aware 交互特征。
雖然現(xiàn)有的架構(gòu)在一般 video captioning 方向取得了有一定的結(jié)果,但它不能直接應(yīng)用于動(dòng)作表示,因?yàn)楹?jiǎn)單地將視頻描述轉(zhuǎn)移到自動(dòng)駕駛動(dòng)作表示會(huì)丟失掉一些關(guān)鍵信息,比如車(chē)輛速度等,而這些對(duì)于自動(dòng)駕駛?cè)蝿?wù)來(lái)說(shuō)至關(guān)重要。如何有效地利用這些多模態(tài)信息來(lái)生成句子目前仍在探索中。PaLM-E 在多模態(tài)句子這塊兒是個(gè)不錯(cuò)的工作。
端到端自動(dòng)駕駛
Learning-based 的自動(dòng)駕駛是一個(gè)活躍的研究領(lǐng)域。最近CVPR2023 的best-paper UniAD, 包括后面的 FusionAD, 以及Wayve的基于World model的工作 MILE 等都是這個(gè)方向的工作。輸出地形式有出軌跡點(diǎn)的,像UniAD, 也有直接出車(chē)輛的action的, 像MILE。
此外, 一些方法對(duì)車(chē)輛、騎自行車(chē)者或行人等交通參與者的未來(lái)行為進(jìn)行建模,以預(yù)測(cè)車(chē)輛waypoints,而另外一些方法直接根據(jù)傳感器輸入預(yù)測(cè)車(chē)輛控制信號(hào),類(lèi)似于這個(gè)工作的控制信號(hào)預(yù)測(cè)子任務(wù)。
自動(dòng)駕駛的可解釋性
自動(dòng)駕駛領(lǐng)域中, 大多數(shù)可解釋性的方法是基于視覺(jué)的,也有一些是基于LiDAR的工作。一些方法利用attention map 的可視化來(lái)過(guò)濾掉不顯著的圖像區(qū)域,使得自動(dòng)駕駛車(chē)輛看起來(lái)合理并且可解釋。然而,attention map 可能很容易包含一些不太重要的區(qū)域。還有一些方法以激光雷達(dá)和高精地圖作為輸入來(lái)預(yù)測(cè)其他交通參與者的bounding box,并利用cost volume來(lái)解釋決策的推理。此外,也有通過(guò)分割的方法構(gòu)建了在線地圖,用于擺脫高清地圖的嚴(yán)重依賴。盡管基于視覺(jué)或基于激光雷達(dá)的方法提供了不錯(cuò)的結(jié)果,但是缺乏語(yǔ)言解釋使得這個(gè)整個(gè)系統(tǒng)看起來(lái)復(fù)雜且難以理解。[68]首先探索了自動(dòng)駕駛車(chē)輛文本解釋的可能性,離線提取視頻特征后用于預(yù)測(cè)控制信號(hào),然后進(jìn)行視頻描述的任務(wù)。
自動(dòng)駕駛中的Multi-task learning
這個(gè)端到端的框架采用多任務(wù)學(xué)習(xí),用文本生成和預(yù)測(cè)控制信號(hào)這兩個(gè)任務(wù)來(lái)聯(lián)合訓(xùn)練模型。多任務(wù)學(xué)習(xí)在自動(dòng)駕駛中用的非常多。由于更好的數(shù)據(jù)利用和共享特征,不同任務(wù)的聯(lián)合訓(xùn)練提高了各個(gè)任務(wù)的性能,因此這個(gè)工作中, 采用的是控制信號(hào)預(yù)測(cè)和文本生成這兩個(gè)任務(wù)的聯(lián)合訓(xùn)練。
ADAPT方法
網(wǎng)絡(luò)結(jié)構(gòu)圖如下所示:
整個(gè)結(jié)構(gòu)分成了兩個(gè)任務(wù):
- Driving Caption Generation(DCG): 輸入videos, 輸出兩個(gè)句子, 第一句描述自車(chē)的action,第二句描述采取這個(gè)action的推理, 比如 "The car is accelerating, because the traf?c lights turn green."
- Control Signal Prediction(CSP) : 輸入相同的videos, 輸出一串控制信號(hào), 比如速度,方向, 加速度.
其中, DCG和CSP兩個(gè)任務(wù)是共享 Video Encoder, 只是采用不同的prediction heads來(lái)產(chǎn)生不同的最終輸出。
對(duì)于 DCG 任務(wù), 是用 vision-language transformer encoder產(chǎn)生兩個(gè)自然語(yǔ)言的句子。
對(duì)于CSP 任務(wù), 用motion transformer encoder 預(yù)測(cè)控制信號(hào)的序列。
Video Encoder
這里采用的是 Video Swin Transformer 將輸入的video frames 轉(zhuǎn)為 video feature tokens。
輸入 楨 image, shape 為 , 出來(lái)的feature的size 是 , 這里的 是channel的維度.
Prediction Heads
Text Generation Head
上面這個(gè)feature , 經(jīng)過(guò)token化得到 個(gè) 維度為 的video token, 然后經(jīng)過(guò)一個(gè)MLP 調(diào)整維度與 text tokens的embedding對(duì)齊, 之后將 text tokens和 video tokens 一起喂給 vision-language transformer encoder, 產(chǎn)生動(dòng)作描述和推理。
Control Signal Prediction Head
和輸入的 楨video 對(duì)應(yīng)著的 有 控制信號(hào) , CSP head的輸出是 , 這里每一個(gè)控制信號(hào)不一定是一維的, 可以是多維的, 比如同時(shí)包括速度,加速度,方向等。這里的做法是 把video features token化了之后, 經(jīng)過(guò)motion transformer 產(chǎn)生一串輸出信號(hào), loss 函數(shù)是MSE,
不過(guò)需要注意的是, 這里并沒(méi)有把第一楨放進(jìn)去, 因?yàn)榈谝粯E提供的動(dòng)態(tài)信息太少了。
Joint Training
在這個(gè)框架中, 因?yàn)楣蚕淼膙ideo encoder, 因此其實(shí)是假設(shè)CSP和DCG這兩個(gè)任務(wù)在 video representation的層面上是對(duì)齊的。出發(fā)點(diǎn)是動(dòng)作描述和控制信號(hào)都是車(chē)輛細(xì)粒度動(dòng)作的不同表達(dá)形式,動(dòng)作推理解釋主要關(guān)注影響車(chē)輛動(dòng)作的駕駛環(huán)境。
訓(xùn)練時(shí)采用聯(lián)合訓(xùn)練的方式
需要注意的是, 雖然是聯(lián)合訓(xùn)練地,但是推理的時(shí)候,卻可以獨(dú)立執(zhí)行, CSP任務(wù)很好理解, 根據(jù)流程圖直接輸入視頻,輸出控制信號(hào)即可, 對(duì)于DCG任務(wù), 直接輸入視頻, 輸出描述和推理, Text 的產(chǎn)生是基于自回歸的方式一個(gè)單詞一個(gè)單詞的產(chǎn)生, 從[CLS]開(kāi)始, 結(jié)束于 [SEP]或者是達(dá)到了長(zhǎng)度閾值。
實(shí)驗(yàn)設(shè)計(jì)與對(duì)比
數(shù)據(jù)集
使用的數(shù)據(jù)集是 BDD-X, 這個(gè)數(shù)據(jù)集包含了 7000段成對(duì)的視頻和控制信號(hào)。每段視頻大約40s, 圖像的大小是 , 頻率是 FPS, 每個(gè)video都有1到5種車(chē)輛的行為,比如加速,右轉(zhuǎn),并線。所有這些行為都有文本注釋?zhuān)▌?dòng)作敘述(例如,“汽車(chē)停下來(lái)”)和推理(例如,“因?yàn)榻煌羰羌t色的”)??偣泊蠹s有 29000 個(gè)行為注釋對(duì)。
具體實(shí)現(xiàn)細(xì)節(jié)
- video swin transformer 在 Kinetics-600 上面預(yù)訓(xùn)練過(guò)
- vision-language transformer 和 motion transformer是隨機(jī)初始化的
- 沒(méi)有固定 video swin 的參數(shù), 所以整個(gè)是端到端訓(xùn)練的
- 輸入的視頻楨大小經(jīng)過(guò)resize和crop, 最終輸入網(wǎng)絡(luò)的是 224x224
- 對(duì)于描述和推理,用的是WordPiece embeddings [75] 而不是整個(gè)words, (e.g., ”stops” is cut to ”stop” and ”#s”), 每個(gè)句子的最大長(zhǎng)度是15
- 訓(xùn)練的時(shí)候?qū)τ?masked language modeling 會(huì)隨機(jī)mask掉50%的tokens, 每個(gè)mask的token 有80%的概率 會(huì)成為 【MASK】這個(gè)token, 有10%的概率會(huì)隨機(jī)選擇一個(gè)word, 剩下的10%的概率保持不變。
- 用的是AdamW 的優(yōu)化器, 并且在前10%的訓(xùn)練 steps中, 有warm-up的機(jī)制
- 用4個(gè)V100的GPU大約要訓(xùn)練13個(gè)小時(shí)
聯(lián)合訓(xùn)練的影響
這里對(duì)比了三個(gè)實(shí)驗(yàn)說(shuō)明了聯(lián)合訓(xùn)練的有效性.
Single
指的是把CSP任務(wù)移掉,只保留著DCG的任務(wù), 相當(dāng)于只訓(xùn) captioning 模型.
Single+
依然沒(méi)有CSP的任務(wù), 但是輸入DCG模塊的時(shí)候除了video tokens外, 還有control singal tokens的輸入
效果對(duì)比如下
可以看到 相比只有DCG的任務(wù), ADAPT的Reasoning的效果要明顯好很多。有控制信號(hào)輸入時(shí)效果有所提升,但是還是沒(méi)有把CSP任務(wù)加進(jìn)來(lái)的效果好. 相當(dāng)于加了CSP任務(wù)后, 對(duì)video的表示及理解能力更強(qiáng)了。
另外下面這個(gè)表格也說(shuō)明了聯(lián)合訓(xùn)練對(duì)于 CSP的效果也是有提升的.
這里 可以理解為精度, 具體會(huì)把預(yù)測(cè)的控制信號(hào)做一個(gè)截?cái)?,公式如?/p>
不同類(lèi)型控制信號(hào)的影響
實(shí)驗(yàn)中用的基礎(chǔ)信號(hào)是speed和course, 但是實(shí)驗(yàn)發(fā)現(xiàn), 只使用他們中的任何一個(gè)時(shí)效果都沒(méi)有兩個(gè)都用的時(shí)候效果好,如下表所示:
這說(shuō)明speed和course這兩個(gè)信號(hào)能夠使得網(wǎng)絡(luò)學(xué)習(xí)到更好的動(dòng)作描述及推理。
動(dòng)作描述與推理之間的交互
與一般描述任務(wù)相比,駕駛描述任務(wù)生成是兩個(gè)句子,即動(dòng)作描述和推理。通過(guò)下表可以發(fā)現(xiàn):
- 第1,3行說(shuō)明使用cross attention效果要更好一些, 這也好理解, 基于描述來(lái)做推理有利于模型的訓(xùn)練;
- 第2,3行說(shuō)明交換推理和描述的順序也會(huì)掉點(diǎn), 這說(shuō)明了推理是依賴于描述的;
- 后面三行對(duì)比來(lái)看, 只輸出描述和只輸出推理都不如二者都輸出的時(shí)候效果好;
Sampling Rates 的影響
這個(gè)結(jié)果是可以猜到的, 使用的幀越多,結(jié)果越好,但是對(duì)應(yīng)的速度也會(huì)變慢, 如下表所示
原文鏈接:https://mp.weixin.qq.com/s/MSTyr4ksh0TOqTdQ2WnSeQ