自動駕駛系統(tǒng)架構(gòu)轉(zhuǎn)變思考
從事輔助駕駛系統(tǒng)架構(gòu)一段時間后,感覺到了疲憊和無力感,更加深刻的理解到道德經(jīng),道生于有,有生于無,有無相生,難易相承,.....是以圣人處無為之事,行不言之教,萬物作焉而不辭,生而 不有,為而不恃,功成而弗居。系統(tǒng)可大可小,猶如上善若水,利萬物不爭,才能成其大。
推動算法系統(tǒng)體系的進行正向開發(fā),最大的挑戰(zhàn)在于,1. 自己的專業(yè)廣度和深度;2. 協(xié)調(diào)推動能力,二者都是很大的挑戰(zhàn),尤其是1 不甚具備同時,去實現(xiàn)2。共性的痛點就是,專業(yè)部門不配合你,專業(yè)部門之間天然的矛盾,業(yè)務(wù)需求和自己能力之間的矛盾。對我來說,所有技術(shù)部門TD,研發(fā)人員都很熟悉,溝通上都沒有太多的障礙,但是系統(tǒng)架構(gòu)的推動,只有自己親自去現(xiàn)場,溝通推動,才能進行,一旦按照體系或者指標要求等,分工各個專業(yè)并行去展開,然后再匯總review,幾乎寸步難行,要么沒有know how,那么感覺你越界了,并不想配合,面聊只是出于禮貌而已。但是這么大的體系,單靠一兩個人肯定是獨立難支。至此,我回想前同事臨走前說的一句話,輔助駕駛算法部是否真的需要系統(tǒng)架構(gòu),或者說需要我認為的所謂的系統(tǒng)架構(gòu)的體系。在這個行業(yè)大家說的更多的是第一性原理,剛好我也看過硅谷鋼鐵俠。
縱觀特斯拉的歷程,抹掉特斯拉這個人物,去看歷程,就是一個毫無體系敏捷開發(fā),走一步是一步,太過技術(shù)化,游走的破產(chǎn)邊緣的很不正規(guī)的公司,只能說成王敗寇,毫無體系可研。教員的實踐論和矛盾論,教導(dǎo)我們,要抓住事物的主要矛盾和矛盾的主要方面,要在實踐中檢驗理論。特斯拉能夠成功的關(guān)鍵在于,特斯拉本人就是公司的體系,冒險,但是決策正確,且果斷堅持。中共的艱辛歷程,其實和特斯拉有異曲同工之處。所以說,一個公司或者部門要么中央集權(quán),要么體系化,換句話說如果公司沒有體系化,猶如外企,鐵打的體系,流水的兵,任何人的變動不影響企業(yè)發(fā)展,要么中央集權(quán),領(lǐng)導(dǎo)或者領(lǐng)導(dǎo)層有運籌帷幄的能力。
很多現(xiàn)在自動駕駛公司,其實都在經(jīng)歷類似特斯拉的過程,在沒有特斯拉能力,也不具備體系建設(shè)條件下,如何做好系統(tǒng)架構(gòu),是令我很頭疼的事情,系統(tǒng)很重要,但是推不動,等到各方面都成熟穩(wěn)定了,然后反向進行體系建設(shè),好像又沒有太大的必要。
在不具備職責的情況下,又不想做親力親為的老黃牛,還想做成這個事情,這是一個社會哲學的問題,生而 不有,為而不恃,功成而弗居,行事上善若水,順勢而為。說人話就是,不要過分追求結(jié)果,追求體系,結(jié)合實際情況,不是自頂而下推動,而是在這個know how下,以點到面的,逐步引導(dǎo)并填滿這個框架。潛移默化量變到質(zhì)變。關(guān)鍵是是否愿意如此做事?
另外一個更重要的事情,就是端到端的沖擊,算法的底層邏輯變了,系統(tǒng)之間的性能拆解也變了,系統(tǒng)如何做好這個轉(zhuǎn)型,也是現(xiàn)在的焦慮點。底層邏輯變了,但是頂層功能邏輯不變,用戶端是無感的,功能產(chǎn)品要求是一樣的,點剎,畫龍等問題點也是不變的,感知,規(guī)控等雖然最后一體化,但是內(nèi)部的影響鏈路是不變的,變的技術(shù)邏輯帶來的優(yōu)缺點變了,比如車道線的跳變對最后軌跡的影響,傳統(tǒng)的方式有濾波,平滑,規(guī)則等后處理的鏈路,模型本質(zhì)上來說也是一個非線性的濾波,不同的是這兩個濾波器處理優(yōu)勢不一樣,對于跳變等濾波器只能在有限邊界處理,且無法泛化,但是模型對這種跳變等有天然的過濾能力,非線性很強,那么對于感知輸出的這類跳變或者對應(yīng)的中間變量,下游模型就可以cover或者過濾掉。所以對于算法架構(gòu),轉(zhuǎn)型只要抓住技術(shù)的本質(zhì),思維體系是相對比較容易轉(zhuǎn)變的。但是對基礎(chǔ)理論的補充,依舊是需要認真學習的。
粗鄙的思考,不成體系,然行業(yè)變革迅猛,如何抓住不變的道,去適應(yīng)快速術(shù)的發(fā)展,其實就是所謂的第一性原理?后續(xù)會持續(xù)更新,進階端到端系統(tǒng)架構(gòu)之路
大事成于細,難事成于易
天行健,君子自強不息
勝人者有力,自勝者強
共勉!
端到端的自動駕駛系統(tǒng)架構(gòu)思考-2
以uniad為例,聊一聊端到端模型下,系統(tǒng)架構(gòu)工程師如何發(fā)揮自己重要角色,一方面uniad開創(chuàng)性的提出了以planning為導(dǎo)性的網(wǎng)絡(luò)模型,這也是模型由開環(huán)到閉環(huán)的重要轉(zhuǎn)變,另一方面,保留了傳統(tǒng)各個技術(shù)模塊顯性輸出,分析框架上,大家也比較熟悉。系統(tǒng)工程師都比較清楚,性能&問題拆分都是從規(guī)控執(zhí)行側(cè)逐步往上拆分,所以uniad可以說是二者的一個混合中間過渡階段,是進行一些思考不錯的參考方案
對uniad不熟悉的同學可以先從這里了解 端到端自動駕駛Uniad詳細講解 - 知乎 (zhihu.com)
首先,我們先從目前系統(tǒng)架構(gòu)的工作職責,審視一下基于網(wǎng)絡(luò)架構(gòu)的變和不變的
不變的是
用戶是無感的:產(chǎn)品體驗是不care 技術(shù)的
功能邏輯是不變的:adas還是adas,NOA 還是NOA,該降級還得降級
法規(guī)行業(yè)標準是不變的:這個不贅述了
安全冗余依舊是要求的
變的是
功能要求不變,但是功能實現(xiàn)邏輯變了
如何滿足功能邏輯,比如激活,退出功能,變道時間,導(dǎo)航信息,人機交互策略等如何重新適配
故障診斷如何實現(xiàn):比如車道線不清楚,如果沒有車道線的輸出如何判斷,或者模型對車道線的容忍度高了,怎么量化和標定
如何確定性能邊界:傳統(tǒng)規(guī)則 60km/150m 彎道即可確定性能邊界ok,基于網(wǎng)絡(luò)的是否可以
安全冗余等要求:planning的冗余邏輯,lidar& rader&視覺的冗余可靠性怎么設(shè)計和驗證,暫時無思路
性能指標變了,但是又沒變
整個網(wǎng)絡(luò),但是依舊有感知,規(guī)控等技術(shù)模塊獨立鏈接,可以分開調(diào)試,這是不變的
變的是拆解到各個網(wǎng)絡(luò),關(guān)注的元素變了,元素的性能要求變了,上下游的影響鏈路變了
變得是如何魯棒性驗證,比如延遲的影響分析,現(xiàn)在一個網(wǎng)絡(luò)直接級聯(lián)過-去........
重點引入感知信息的無損傳遞,然而有無損傳遞,就要求下游有效的過濾和篩選
迭代優(yōu)化&拆解方式變了
如何debug問題:從Control-planning-decision&prediction-perception的鏈路,肯定是變了
如何優(yōu)化問題且保證問題解決有效性:基于規(guī)則的邏輯和性能,是可確定性分析驗證的,且對其他模塊影響也是可分析和可控的,但是基于網(wǎng)絡(luò)的,解釋性差,如何驗證問題優(yōu)化不會對其他模塊帶來負面影響
主要矛盾的轉(zhuǎn)變
不變的就是我們的基礎(chǔ)能力,重點來闡述變在哪里,以及如何變,畢竟唯一不變的東西就是變化,那么好,我們就要抓住主要矛盾和矛盾的主要方面
主要矛盾轉(zhuǎn)變,基于規(guī)則的優(yōu)化算法變?yōu)閿?shù)據(jù)驅(qū)動的網(wǎng)絡(luò)模型,也就是基于數(shù)學方法論論證的設(shè)計方式,轉(zhuǎn)變?yōu)閿?shù)據(jù)驅(qū)動的模型擬合!本質(zhì)上說是可論證方法變?yōu)閷嶒烌炞C的方法
矛盾的主要方面
數(shù)據(jù)代替人的建模能力,依賴數(shù)據(jù)和算力暴力擬合或者學習
信息的無損傳遞,其實就是線性化到非線性的轉(zhuǎn)變,規(guī)則大部分都只適合線性系統(tǒng),EKF、 QP求解等大部分都是非線性系統(tǒng)進行線性化處理,非線性系統(tǒng)的低維線性化必然會帶來損失,而模型本質(zhì)就是高維擬合和分類,天然優(yōu)勢就在非線性系統(tǒng)
閉環(huán)論證變?yōu)榻?jīng)驗開環(huán)擬合(學習)為主,經(jīng)驗開環(huán)底層邏輯為注意力機制
那么好,本質(zhì)上來說,是只要歷遍ODD內(nèi)的所有場景,二者都可以設(shè)計出符合預(yù)期的產(chǎn)品,現(xiàn)實情況是規(guī)則根據(jù)自己的邊界設(shè)計ODD,模型通過數(shù)據(jù)拓展ODD,規(guī)則的ODD是上限, 模型的ODD是數(shù)據(jù)
進入正題,就從矛盾的主要方面對uniad進行系統(tǒng)性分析
無損傳遞&有效濾除:要實現(xiàn)高維信息的無損傳遞到?jīng)Q策,再有效濾除到執(zhí)行端,其實挑戰(zhàn)在決策規(guī)劃,最終的執(zhí)行器是兩維信息,高維無損信息傳遞給決策規(guī)劃,信息是無損了,但是更多的是無效信息,無損隱藏的要求是更多的信息給你,性能應(yīng)該更好,這就對下游帶來更大的挑戰(zhàn)。本質(zhì)上來說模型就是一個類似人的注意力的非線性分類和濾波器,舉個例子說走路上,大部分的環(huán)境你是沒印象的,甚至你會盯著某個短裙長腿妹很長時間,甚至娃名字都想好了,但是不影響你安全通過路口。
無損傳遞并不是降低感知的性能要求,只是對感知的要求有變化,更意味者決策規(guī)劃要進一步挖掘感知和自身的能力,釋放整個系統(tǒng)潛力
既然感知是無損傳遞,決策規(guī)劃是后處理,依然有這個劃分,那么雙方依舊需要一些性能指標的拆分
既然留了傳輸接口和可視化,那么元素和性能現(xiàn)階段我們依舊需要或者可以列出來,逐步迭代
感知無損傳遞
重新定義無損:何為無損,足夠下游做正確的決策需要信息傳達下去即為無損,對下游無用的信息即為噪聲,所以是何為無損,夠不夠損,依舊跟下游模型策略有關(guān)系
元素:屬性是否足夠,比如障礙物六自由度信息,長寬高等,障礙物是否還需要其他信息
范圍:是否整個探測區(qū)域范圍元素要求都需要無損?還是不同場景重點關(guān)注場景不一樣,比如擁堵路鄰鄰車道車根本就不care
性能:所有范圍內(nèi)的障礙物的性能要求都一樣嗎
整體關(guān)聯(lián)性:車輛&車輛、車輛&車道線&路沿、自車&他車相對位置關(guān)系組成的整體觀感,這是無損很重要的一個點,或者說如何學習和理解整個交通流,才是端到端的關(guān)鍵能力
聚焦點
逆向推演,如果有最終的決策執(zhí)行,反向拆分到感知,其實能得到對整個決策有影響的只是感知的部分區(qū)域和信息
感知給出完備的元素,相互關(guān)系,但是不同距離的性能可以降低
規(guī)控需要解決的是各種注意力機制提升非線性擬合能力和判斷能力,彌補感知無法給出視角范圍內(nèi)足夠精準穩(wěn)定的局限性,提升魯棒性
規(guī)控要有基于自身視覺的場景理解能力,能夠在無效噪聲信息中,利用多方信息交叉驗證,提取有效信息,實現(xiàn)更高的性能天花板的同時具備魯棒性,比如在傳統(tǒng)規(guī)則后處理試圖對障礙物通過交通流的物理特性進行校驗和濾波,發(fā)現(xiàn)幾乎不現(xiàn)實,但是如果用模型的話,可以天然融入處理好
決策規(guī)劃的后處理
閉環(huán)穩(wěn)定性:開環(huán)和閉環(huán)穩(wěn)定有本質(zhì)的差別
控制出身的同學都知道,即使很輕微的正反饋的干擾,也會導(dǎo)致系統(tǒng)逐漸發(fā)散,大家都經(jīng)歷過,上車調(diào)試前看規(guī)劃曲線很正常,但是一閉環(huán)就畫龍,開環(huán)的評測和閉環(huán)反饋是有本質(zhì)區(qū)別的,也是端到端必然面臨的挑戰(zhàn)
閉環(huán)鏈路
預(yù)測&決策&規(guī)劃&控制的閉環(huán)影響依舊是存在的,預(yù)測會影響決策,規(guī)劃和控制的穩(wěn)定性也會影響決策,這是基本的穩(wěn)定鏈路環(huán)路,核心點還是決策,既要保證順序傳遞鏈路決策的合理性,即規(guī)劃執(zhí)行合理舒適無風險,又要隨時準備規(guī)劃或者預(yù)測異常時,能夠足夠快進行調(diào)整。這是基本的能力,在這個基礎(chǔ)上,需要考慮博弈和交互等更加復(fù)雜的場景,這些在網(wǎng)絡(luò)設(shè)計中依然是重點要考慮的
閉環(huán)理論分析&數(shù)據(jù)驅(qū)動的融合遷移
如何從現(xiàn)在感知(開環(huán))的訓(xùn)練和評測遷移到感知到規(guī)劃&控制的閉環(huán),也是難點之一,以往的數(shù)據(jù)遮擋、或者異性特征,都可以從測評直接得出,但是感知到規(guī)劃,如何驗證閉環(huán)的穩(wěn)定性,從工具和評測都會有很大差異
控制執(zhí)行連續(xù)穩(wěn)定和安全性
如何訓(xùn)練出適合控制器執(zhí)行的軌跡,也就是整個端到端的輸出,疊加規(guī)則和后處理也好,但是最好在網(wǎng)絡(luò)里面有這個注意力機制起作用,能夠從原理上有約束力,然后依舊需要規(guī)則的安全 校驗
控制端最好也針對軌跡的新特性做一定的調(diào)整,依舊是一個系統(tǒng)工程,沒有理上游底層算法特性變了,輸出軌跡沒有任何改變
核心點,還是軌跡的連續(xù)性和穩(wěn)定性和安全性,需要規(guī)劃和控制系統(tǒng)性優(yōu)化
模型輸出軌跡,是不知道控制需求的,這個需要將控制的需求體現(xiàn)在訓(xùn)練里面
控制關(guān)心的軌跡的長度
控制需要軌跡的連續(xù)性如何體現(xiàn)
控制關(guān)心的軌跡點上各個元素的精度,模型如何體現(xiàn)精度
是否需要增加一個適配層,做一些濾除和調(diào)整,實現(xiàn)更好的閉環(huán)?
控制算法,是否參考模型特性,是否可以更類人
人類駕駛習慣
大概率第一階段還是要延續(xù)現(xiàn)有的方法論
如何設(shè)計合理和驗證的整體閉環(huán)穩(wěn)定性(目前對模型的技術(shù)基礎(chǔ)尚不了解,提出問題待日后完善)
預(yù)測決策規(guī)劃的新特性
需要知道控制跟蹤軌跡是否正常
對uniad 工程量產(chǎn)落地進行系統(tǒng)工程分析
開環(huán)&閉環(huán)問題
uniad 是開環(huán)驗證,如圖,每次軌跡都從車身原點出來,每次更新都重新刷新軌跡,沒有歷史的連續(xù)性,控制無法進行穩(wěn)定閉環(huán)跟蹤??刂剖且粋€物理過程,是時間維度的連貫性,舉個簡單的例子,跟蹤有誤差,控制需要有誤差積累的反饋然后動態(tài)調(diào)整,如圖所示的軌跡,顯然達不到。之所以開環(huán)看起來很穩(wěn)定,每次循環(huán)都刷新軌跡,只能保證單次合理性,能夠看起來合理是因為駕駛員本身做了正確的操作,只是駕駛員操作的單次映射而已。
參考 開環(huán)端到端自動駕駛:從入門到放棄 - 知乎 (zhihu.com):不受到累計誤差的影響。再難的路, 0.5s后 human driver總會給你正確答案
關(guān)于ego status:英偉達最新!CVPR 2024 | 開環(huán)端到端自動駕駛中自車狀態(tài)(Ego Status)是你所需要的一切嗎?- 知乎 (zhihu.com):該文章不敢茍同,沒有了圖像輸入,依舊有軌跡輸出,應(yīng)該反思的不是用不用ego status,而是訓(xùn)練驗證方法論的問題,很明確的一個點,ego status是必須要有的,分歧點或者難點是如何使用他。腿不好不要嫌棄路不平
軌跡問題
控制需要連續(xù)的軌跡去跟蹤,這塊可以參考傳統(tǒng)adas基于車身坐標系下的軌跡的拼接和stich的原理
如圖所以uniad訓(xùn)練出來的軌 跡是不合理的折線
實際訓(xùn)練其實是可以參考自車走過的路徑的,將未來一段時間的自車軌跡標定出來進行訓(xùn)練
上下游拆解
最好是復(fù)用現(xiàn)有的感知的能力,所謂的無損信息傳遞,并非是現(xiàn)有的接口信息不需要,而是遠遠不夠
預(yù)測與感知障礙物輸出合并,進一步節(jié)省資源
去掉或者大幅減少感知后處理,包括障礙物和車道線等,不要阻擋無損傳遞的通路
可以認為模型有自己的整體關(guān)聯(lián)性視感:更多的關(guān)注車道線&障礙物的相對關(guān)系,障礙物等交通流的相對關(guān)系、道路結(jié)構(gòu)拓撲圖的結(jié)構(gòu)關(guān)系
決策規(guī)劃要降維濾除無效信息的能力
無損信息提取,擁有整體視感閱讀能力和聚焦能力,也就是如何發(fā)揮注意力機制,從整體視感上,抓住重點信息
從感知到出規(guī)劃軌跡,是有更明顯的時空關(guān)聯(lián)關(guān)系,最終輸出是低緯度有約束的信息,從控制角度來說是多輸入單輸出系統(tǒng),意味著存在更多冗余信息可以交叉驗證,是挑戰(zhàn)也是挖掘潛力的重要的點。
高維噪聲的評估和過濾能力,比如高頻和偶發(fā)的車道線和障礙物的抖動,現(xiàn)有濾波處理會帶來刻板畫龍或者點剎,模型我相信會有更好處理能力
對輸入指令分類處理能力,如何設(shè)計,人類其實就有很強的分類組合能力
實例化描述
障礙物直接輸出帶3條預(yù)測軌跡,帶概率,將預(yù)測跟感知信息一同處理能夠盡可能的損失預(yù)測的信息
障礙物的性能指標在不同的距離和相對位置關(guān)系的要求可以進一步下降,下游通過綜合無損信息和噪聲信息進行濾除
車道線也可以允許一定的抖動
決策規(guī)劃要求
對上游的高頻噪聲要有足夠的魯棒性
傳統(tǒng)的單點濾波:障礙物前高頻小幅跳動,偶發(fā)一幀跳變,速度,加速度,位置的白噪聲不敏感
不同場景有聚焦區(qū)域:能夠有意訓(xùn)練出真正影響功能的區(qū)域,重點關(guān)注
關(guān)聯(lián)性濾除:無關(guān)緊要的障礙物濾除,比如鄰鄰車有個橫向位置,這種就直接不管;能夠根據(jù)周圍車交通流將不符合物理規(guī)律的異常檢測濾除
關(guān)聯(lián)性優(yōu)化&魯棒&泛化:根據(jù)障礙物&車道線&路沿等,綜合安全和靈活性給出合理的軌跡
輸出要求
障礙物車道線的高頻噪聲&跳動在軌跡層面徹底濾除
符合車輛的物理特性,低頻特性
軌跡是連續(xù)的,跟車身解耦的,且車身畫龍等非預(yù)期時,依舊是一個解耦車身且車輛有能力跟蹤
數(shù)據(jù)&訓(xùn)練:konw how 不夠 hold
魯棒性驗證問題:hold
通過對uniad在沒有網(wǎng)絡(luò)模型的基礎(chǔ)上,從系統(tǒng)工程的角度進行了一些思考,分析出一些認為關(guān)鍵的或者不同的方案迭代要注意的設(shè)計要點,接下來會進一步學習逐漸完善系統(tǒng)工程的分析、閉環(huán)和驗證工作:
transformer、注意力機制等底層的模型網(wǎng)絡(luò)
數(shù)據(jù)標注&訓(xùn)練&評測流程
模型的設(shè)計和調(diào)試機理
決策&規(guī)劃的模型如何設(shè)計
模型閉環(huán)的安全&魯棒性如何驗證和保證
對uniad進行閉環(huán)量化的分析
進一步評估其工程落地能力
心得補充:
人為什么開新車也很熟練:
因為人其實是三重冗余:學習的開環(huán)經(jīng)驗,開環(huán)經(jīng)驗的微調(diào), 緊急異常執(zhí)行
比如開新車過彎道
按照經(jīng)驗打一個角度基本上就能過,這就是習慣,或者程序化的
發(fā)現(xiàn)新車不一樣,需要微調(diào)一下,這就是人的泛化或者魯棒能力,其實是另外一套監(jiān)控體系
再然后發(fā)現(xiàn)這車太不一樣了,要撞馬路牙子了,會條件反射猛打,這屬于安全機制
對應(yīng)到車上就是adas&AES,但是少adas的冗余監(jiān)控,這恰恰是用網(wǎng)絡(luò)模型我們要思考的
這套體系在控制系統(tǒng)叫做復(fù)合控制