地平線HorizonSuperDrive最強解析:優雅從容——下一代城區領航新範式

車車東西 2024-05-14 04:45:49

導讀:4月27日,地平線聯合智猩猩策劃推出的地平線「你好,開發者」北京車展特別活動成功舉行。此次活動,地平線自動駕駛系統架構師劉景初就《優雅從容——下一代城區領航新範式》這一主題進行了深入講解和答疑互動。 本文是此次活動主講環節的實錄整理。如果對活動的全程回放,以及Q&A有需求,可以點擊閱讀原文前去觀看。

劉景初:各位朋友下午好,我是地平線 SuperDrive 産品的架構師劉景初,今天借北京車展這個機會,分享一下我們地平線在高階自動駕駛一年以來新的思考和實踐。

今天的主題,在産品構型之初,其實也是想了很久我們應該做一個怎樣的系統?最後,我們選的詞“優雅從容”——一般不常用來形容一個machine。但是,待會等我講到相關內容時,大家可能就會理解,爲什麽我們需要這樣一個性格的系統,才能真的做出一個足夠好用、大家愛用的城區領航智駕産品。

01、高階智駕市場現狀與趨勢

NOA這個名詞大家都已經很熟了,滲透率也在逐年升高。

基本上,在價格稍高的車型上,NOA搭載率很高了,已經成了標配。如果在價錢稍高的車型上不帶,大家可能就會覺得這個車型和別的車型相比,智駕功能方面有點落後,從而NOA配置慢慢變成了一種必需品。

但城區NOA比賽可以說才剛剛開始。從23年第一批車企在車上量産城市NOA産品以來,已經有很多用戶在路上試乘過,有很多功能在各個城市都已經開通。

但大家普遍試下來會發現一些很典型的待改進的地方:

一是系統不成熟需要人高頻接管。目前系統還是處于蹒跚學步的狀態,消費者是抱著嘗鮮、支持新品的態度看著它 show off一下,實在不行會給它兜個底。

二是用戶付費意願低。除非是標配,但凡要爲它付錢,消費者會想現在的階段值不值得。

三是功能有待優化。還有很多功能連貫性不夠強,沒法做到從a點到b點可以一直使用。

如果把整個現狀套用到一個新技術在整個産品化過程中的生命周期模型裏面,其實剛剛處于最起點。在一個新技術擴散的過程中,最起點的時候會有一些先鋒用戶會爲它買單,但還不夠。

如果讓它成爲最終所有人都能用到的産品,中間還有幾步要走:

第一步是先要達到一定的滲透率,比如6%的滲透率,讓更多的人去願意用它,之後再逐漸達到更高的滲透率。尤其要跨越一個鴻溝,讓更多人覺得這個系統對我來說是有用的,而不是一個玩具,在某些時候真能幫到我。甚至要讓一些用戶覺得這個系統是真的好用,比自己開的強,真的願意把方向盤交給它控制。只有跨過了這道坎,我們的系統才能往後走。有很多技術沒有跨過這道坎就挂了,其實也是一件很可惜的事情。

爲了能讓這項技術繼續往後走,我們的觀察,如果要刻畫一下是如下圖:

指標上面,左邊是現狀,右邊是下一步需要達到的狀況。城區道路的MPI接管要翻幾倍;城區快速路的MPI接管基本上也翻了4-5倍;高速路的MPI接管也翻了幾倍,因爲場景更簡單,甚至是提升了一個數量級。

第二步是城市NOA大規模量産。智駕系統需要提升性能,達到用戶感知性能的狀態是接管率足夠低,只有用戶覺得大部分時候它是安全的,才願意把方向盤交給它。另外,作爲一個産品來說,用戶意識到它有用、好用,並願意爲它付錢,才是可持續的。其實達到這樣的狀態時,競賽才剛剛開始。因爲所有的系統都是才踏進這個門,並且發現這是一件很難的事情。

第三步是進入主流市場。最終我們通過不斷地優化,把成本降到足夠低,使其變成一個主流産品。

抽象化這個過程,我們認爲有三個階段:

第一階段要達到“可用”。大家覺得物理上它是安全的,雖然磕磕絆絆,但它不會撞車。

第二階段是“好用”,在某些場景下真的能幫到我。最重要的一點是要有心理安全感,而不止是物理安全感。我心裏雖然知道它不會把我帶到溝裏面,但是不代表開車的過程中不會某些時候手突然一攥,感覺到有些操作稍微有點危險。它需要一種擬人化的操縱方法,在開車的過程中,我們能夠對它的行爲有一定預期,沒有太多行爲上的意外。就像我們自己開車一樣,可以把所有情況都處理了,讓我們覺得好用。

第三階段是真正“愛用”。這個階段意味著它會有更多定制性,更貼近每個人、每個場景的需求,在使用的過程中可以逐漸跟人融合,就像一個人的拓展狀態,可以讓消費者放心地使用、自如地使用,並且愛上智駕功能。這時的智駕系統會隱于幕後,就像是手機裏面的通話功能,陪伴用戶每刻每程。不僅如此,這個階段的智駕系統還要affordable,成爲每個人都配得起的智駕應用。

Highway(高速)上的Pilot産品應該很多人都體驗過,已經過了可用的門檻了,可能部分已經接近好用了。當你上班的路上開個會,再聽個小曲,還是比較享受的,上班路上還能放松一下。

但是,城區智能駕駛系統顯然還沒有達到用戶眼中的“可用”狀態。我們把它簡單總結成四個表現:

1.慫,擁堵更添堵,導致體驗接管。

有時候很慫,尤其是在路口的時候,恨不得給它一腳油,過路口的時候基本不想用。而直道上,有無NOA又沒什麽區別,畢竟都是順著道開。

2.莽,搶行太沖動,導致安全接管。

有的時候又很莽,當真的博弈時,有時候系統會突然搶行,出乎意料。

3.急,爲了快速開城,系統可用性下降。

很多友商也很急。開城這個詞大家都見過,但開城卻並不能保證系統性能在所有城市都維持同樣的水准。這會導致早開的地方大家用的比較爽,有一定的口碑。但是越開越有更多的Corner Case,大家可能會對整個系統的感知有斷崖式下降。

4.貴,不利于功能普惠與大規模市場落地。

用不起的東西哪怕做出來了,也是鏡花水月。要做到足夠的便宜,讓每個人都能用得起的科技産品,才是好産品。

現在的系統基本上是Passive和Aggressive的狀態。Passive狀態,就是但凡有個人,系統就卡住不動了。而Aggressive狀態,就是有的時候我們作爲駕駛員時明明知道旁邊有危險應該等,但它突然“自信地”來了一腳油門,沖動搶行。

02、下一代高階智駕系統的挑戰

作爲一家科技公司,我們肯定要去想什麽是一個可達成的路徑。我想從技術視角和用戶視角兩個角度分析一下這個問題的解決維度。

從技術角度來說,是兩個詞:Scale Up、Scale Out。

Scale Up指的是通過無限堆料的方式,能夠讓一個系統在一個特定、受控小的ODD範圍內性能更優。典型就是Robotaxi,在一個封閉的地方,例如園區、港口,通過極致堆料和極致調優,智駕功能加TeleOps(遠程操控)就能夠實現無人駕駛。

另外一個維度是Scale Out,就是大家期望中的開城,是在ODD無限擴展的情況下,把車隨便扔到一個地方,功能都能用。而現在,能做這件事的主要還是高速單車道這樣的簡單場景。

而我們要做一個好的城區NOA産品,顯然要同時做到這兩點。因爲在城市裏,不可能限制只在某條路上開,肯定要讓大家也能在野生環境裏去用這個系統。首先它隱含的就是Scale Out,再加上開城,因爲所有城市都要開;Scale Up也是,因爲城區是所有智駕場景的母場景,是場景濃度最豐富的區域。如果沒有足夠的性能上限,那它在城市裏就是一個不好用的産品。

從用戶的語言來說,用戶可感知到的一個是MPI,就是Scale Up。另外一個就是ODD,用戶能在越來越多的地方使用智駕系統。ODD的擴展,意味著想去哪個地方,隨便按下激活鍵就能進功能,而且性能是特別擬人的,和老司機開車的狀態一樣,這才是我們最終想做的系統。

03、優雅從容的智駕系統Horizon SuperDrive

我剛才不斷地在重複擬人化,爲什麽一直在強調這一點呢?

一方面是好用的智駕系統一定是有擬人的駕駛體驗,這也是我們在城區智駕實踐過程中總結出來的。

道路不是我們一個人用的,而是一個公共場所。雖然我們自己是做智駕系統,但路上大部分車都是人開的,人有自己的預期、習慣,而且交通基礎設施都是爲人設計的。雖然我們做的是單車系統,但駕駛本身是群體行爲,不是單車行爲,那就意味著如果真的想做到安全、高效,就一定要像路上其他老司機一樣開車。哪怕我們做得很好,但如果是一個很機械的、很不像人的體驗,在路上也會讓別人産生非預期行爲,因爲別人不知道你要幹什麽。

另外一方面就是系統行爲需要符合用戶的心理預期,且滿足社會慣例。

因爲我們是在方向盤後面在supervise這個車的人,我們當然希望盡量少去介入,盡量少有意外,但這個事情的基礎是我可以預期它的行爲,沒有太多預期之外的行爲。它能像人一樣思考,人怎麽動作它也怎麽動作,這才是一種更好地人機交互行爲。

所以,在擬人這件事情上,是至關重要的。

但擬人這個詞還是比較空泛。我們會提取什麽樣的人是我們想學習的人,因爲人也是各種各樣的,司機也有各種各樣的司機。有賽車手型的、有謹小慎微型的新手司機,也有不光嘴裏能聊、駕駛風格也激進的出租車司機,還有領導們坐在車後面會覺得很舒服的國賓司機。

我們想做的系統其實是一個“優雅不慫,從容笃定”的系統。

“優雅”意味著它會更平順地處理很多場景,“不慫”是不會爲了安全而不去做一些人會做的博弈行爲,我們也會通過和其他交通參與方協作博弈,達到高效絲滑的駕駛狀態。

“從容笃定”更多的是人能感知到的車的狀態,它不會很猶豫、糾結,不會出現方向盤狂擺,自車搖搖晃晃,不知道自己在幹什麽的情況。它會像人一樣,在一個相對長的時間周期裏通過思考,明白應該怎樣去行動,在一個更緊的閉環裏通過很平順的方式把這件事完成了。你能看到的是謀定而後動的狀態,而不是一個在路上沒有事先的想法、隨機應變的reactive系統。

我們希望通過優雅從容的行爲,使其能夠有更精細的道路表現,比如繞障、轉彎、讓行、走位。當車在變道插空的時候,不管是有路權還是弱路權都有更好的通過性。我們希望通過這種方式打造一個能力更全面的“六邊形戰士”,這就是我們最主要的proposal。

如果能做到優雅不慫,從容笃定,那麽這套系統一定會更好用。

接下來我們講一些典型的場景。

首先是路口轉彎遇到側後方VRU(Vulnerable Road User)的城區行駛高頻場景。地平線SuperDrive系統不會在路口始終死等VRU通過,當遇到了VRU在避讓,等待車輛先行通過,那我們會很果決地過去。而大家都見過其他的系統很慢,會一直等,哪怕行人已經有很強的意圖,讓車趕緊走,它也不走。

還有一個高頻場景,大家會非常有共鳴的是起步。在直行的時候遇到要左轉的車輛,我們是有路權的。但是從上一代系統來看,比較難判斷這個時候應該怎樣,經常在路上會刹一腳,因爲很難去精細地判斷它的行爲,但地平線SuperDrive直接就過去了。一些其他的車輛可能會點刹,甚至本來准備過去,半路發現情況有些變化,拿不准了來一腳重刹。

還有典型的繞行場景,社會車輛占道是城區行駛的高頻場景,優雅從容的繞行才能保證通行舒適且高效。地平線SuperDrive能及時檢測到前方占道車輛,減速繞行,行駛路徑優雅擬人,體感舒適,會讓你感覺和正常的駕駛行爲沒有很大區別,是一個連貫的行爲,之後瞬間就恢複狀態。而大家可能有嘗試過其他系統,當識別到前方占道車輛,會減速刹停,無法繞行,妨礙它車通行,最終導致接管。

分析完用戶體驗的差別,從技術上說,通過哪些核心點,能夠去達到一個“好用”的智駕系統呢?

第一點是更強的端到端系統。在這個系統中讓信息流有更多的path是通過純神經網絡傳遞的,沒有在中間添加過多導致信息損失的人工環節,這就是快思考,因爲它相當于通過很高效的方式,把一些應該做的事情固化在了系統中。

第二點是交互博弈,也即現在很多系統不太經常提到的慢思考。有時候人也要慢,因爲有些場景很難通過反饋的方式去處理,你更需要想一想下一步行爲的前因後果是什麽,就像下棋一樣做幾步推演。通過慢思考,能夠更好地舉一反三,而不是只有見過才能學到,有更好的泛化能力。在交互博弈的過程中,很難通過有限的數據點,把所有交互行爲都學得很好,要有一定的Planning行爲才可以。

最後一點,是地平線主打的BPU。我們是自研的神經網絡加速器,這裏面不用說端到端了,交互博弈也有很多更細的軟硬結合的設計,能夠讓一些搜索式的行爲、前推式的行爲在硬件級別就有加速。

04、感知和規控關鍵技術解析

在這些技術底座的支撐下,地平線在感知和規控方面都分別做了什麽技術創新呢?

首先是感知。我之前有針對地平線BEV在智猩猩做過一次講解,我們的BEV技術相當于只是一個building block,是中間的一個環節。但現在我們會從一個更廣的維度去看它,會從整個場景來考量,但有一些挑戰:

1.人車混行,強博弈。這種情況下對多種類型的動態物體都要有很精准的類別及行爲的感知。

2.道路環境複雜。意味著所有靜態元素、異形障礙物的處理,都要有很精准的召回與反饋。

3.場景多變。有些場景很窄的,有些場景又需要有很遠的感知距離。你的系統怎樣在一個多變的環境,動態地調整對于精度和距離的折中。

我們的感知團隊主要做了幾點創新:

1.基于Transformer的端到端感知。這件事情不是新聞,但真的在一個嵌入式系統裏做到,還是要花一些effort。

2.動態/靜態/OCC三網合一。不是三張網、三個鏈路,而是高度耦合的一張網、一個鏈路,互相之間會有幫助。

3.虛擬相機&超視距先驗。通過更靈活地利用傳感器和數據的方式,達到視角不斷變化、更強的超視距先驗。

端到端,就是把一些以前有的中間環節串起來,讓tensor在中間flow起來。我們通過這樣的方式達到什麽樣的效果呢?直接用數字說話,回歸誤差、遮擋穩定性等各方面指標都有很強的提升,尤其是像鬼探頭場景,通過這樣的方式使整個物體輸出延遲直接被砍掉了3/4。工程師更喜歡的一點是終于沒有那麽多代碼行數了,我們更多是通過數據的方式叠代整個系統。

接下來看一下視頻。

1.鬼探頭

6641e344bc204_6641e344bc1da_基于Transformer的端到端感知架構-鬼探頭

出來個人我們也能很快detect。

2.施工區域

6641e373cc3ca_6641e373cc3a0_基于Transformer的端到端感知架構-施工區域

對于施工區域我們會circle back。我們不光能檢測到中間是一個被圍起來的區域,還能知道圍起來的是護欄。

3.複雜路口

6641e3aa857eb_6641e3aa857c2_基于Transformer的端到端感知架構-複雜路口

大家關注兩點:

一點是靜態的環境是很複雜的,我們能有比較精確的幾何和邏輯層的刻畫,以及一定的腦補。

另一點是大家可以關注下剛才走過去的那些行人,很多以前的系統識別這些行人會有閃動,有很多tracking上的問題,跟著跟著就跟丟了。但我們基本上可以把每個人跟下來,這是一個能做到很好交互的前提。

4.小區擡杠

6641e3e84b93e_6641e3e84b90c_基于Transformer的端到端感知架構-小區擡杠

這是我最喜歡的一點,停車場的欄杆occupancy也能召回。不用像以前一樣遇見個欄杆,我做一個白名單模型,然後又發現另外一種欄杆,又要做一遍。我們直接通過數據驅動端到端的方式來刻畫物理世界中哪裏是不能走的。

最後,我們會做一個三網合一的感知系統。

還有Multi-Scale多尺度感知。之前爲了在小算力系統裏面去做這件事情,我們在使用傳感器的時候做了很多約束。比如在傳感器裏面做一些recess和crop,把一些固定的區域拿出來做感知。這件事情以前更多的是因爲算力限制。

但現在是在征程6芯片上,硬件上面有了很強的支撐,因爲BPU在硬件的數據通路和計算通用、專用計算單元的數據通路上,有更強的可配置性,所以我們可以通過動態的方式不斷調整系統中的算力分配。我們把很多算力分給超視距感知,賦予它一個更大的神經網絡的感受引。我們也會在一些需要精細感知的地方,把整個系統的算力租賃過去,讓它有很精細的感知,尤其是在泊車場景,比如立體車庫場景。

而做這樣一個感知系統數據,肯定需要下硬功夫,這個大家也都會比較清楚。

講到規控技術,現在的自動駕駛感知技術雖然實現端到端了,但是感知和規控還是兩件事情。感知還是要做端到端,而規控是另外一套不太一樣的思路,哪怕是在神經網絡設計上。

我們沒有直接做一個網絡直接從頭到尾的端到端系統,那樣可能是我們剛才說的系統一,一個直通的通路。我們注意到現在的神經網絡系統更缺乏的是做Planning的能力。什麽叫做Planning呢?就是有能力去問神經網絡what-if,一旦我這樣做了,別人會怎麽樣,別人能怎麽樣,會發生什麽事情?而這個事情一定不是一個單向過程,是一個和整個規控的主鏈路有交互的過程。

我們整個規控系統的輸入是Tensor級別的先驗以及實時的結果。過來之後會有這個環境中相對靜態的推理,以及搜索模塊,還有最終的時空聯合軌迹生成。

所有的這些在處理過程中會有一個交互式預測決策神經網絡的Core。這個Core有點像一個Word model,能夠在你推理的過程中,給它一個Query,你問它What-if,它能告訴你一個答案。而且這個過程不是一次性的,它在每一個Planning Cycle裏面會多次調用,而且是前後依賴的調用。通過這樣的方式可以形成一個完整的、帶有對未來思考的這樣的Planning結果,然後送給相對傳統的運動規劃器做安全兜底,最終會控制。

我們整個規控系統是通過這樣的方式去做控制的,相對于以前串行預測決策的規控,會有很大的區別。

因爲我們能夠像人一樣反複思考一件事情,而不是一種前面預測告訴我一件Unconditionally的事情,但我不知道要有什麽行爲的非交互式的方式。這樣是很難做預測的,因爲我自己也是場景中的一部分,如果不把我的因素考慮進去,那怎麽能做很好的預測呢?

其實預測、決策和Imitation Learning等,在一個大的模型下是一體的。我們希望能夠通過這種架構有更好的他車、自車意圖的推理,並且是能夠叠代的,可以反複去推演。通過這種方式還能讓決策更好地處理交互式行爲,更擬人。

這裏面其實一個産出點是我們的自車行駛的pass級別。

大家可以從視頻中的地圖上看到,它走的路徑不是固定不變。而早期用高精地圖的自動駕駛系統都很有機械感,當過一個路口的時候即使走1000遍都是一條路線,甚至更誇張的是如果用一個車隊經過路口,這10輛車都是一模一樣的,排著隊像火車一樣過去。

但我們的車不會,因爲你在場景中靜態路徑怎麽走和其他車的位置很有關系,比如無保護左轉的時候,如果旁邊沒有車,直接一個內切過去了,如果有車就往前稍微走一點、等一等,我們的車會有這樣的外切行爲。

博弈也是同樣的。

這樣的狀態靠以前的技術是很難做到的,需要不斷地推演我的動作、別人的行爲,甚至還要去試探,嘗試把世界的天平往我這邊推動一點點,才能有更好的結果。這個場景是我們需要在一個擁擠的車流裏面,從最右邊一路變到最左邊。

從我們的人機交互的HMI界面,可以看到一個和上一代系統的顯示變道車位不太一樣的地方。上一代系統會有一個固定的車位框,垂直于我們的車,因爲它沒有太好的離散決策過程,只知道要變過去,但不知道自己最終要變到哪,所以只能顯示一個垂直的框。但是我們的系統除了有一個框,還會有多個框。這些都是我們認爲未來會有的可能性,我們的系統會在自己的嘗試和推演中去落實這種可能性,最終在現實中落實出來。

還有繞行,大家在城市中體感會更強烈。在一個很複雜的環境裏,旁邊停滿了車,這時候你很難去很守規矩地、很機械地處理這種環境。

在這裏,我們爲了處理大公交車,會短暫地壓實線;在有兒童的時候,如果是上一代系統可能會停在原地等他,但現在我們會更擬人地繞一下,大家都有心力往前趕,我就能夠通過了。其實我們是通過規劃框架爲系統釋放了更多的自由度,但更多的自由度意味著要有更強的能力來handle它,如果hold不住的話系統很容易跑飛了。我們的框架恰恰是能夠hold住這種自由度(新的空間維度)的系統,讓它在這個空間裏有十分驚豔的行爲。

算法方面,很多同行都很厲害,也都做得很好。地平線爲什麽會做這樣一個系統呢?更多的不是我們要去賣一個軟件産品,而是證明在這個時代,征程6系列芯片是一個更合適去承載這樣技術願景的平台,具體怎麽做大家可以百花齊放。

爲什麽地平線的征程6系列可以做到呢?

第一點是Transformer大模型的高效支持。剛才也談到了,我們首先很依賴Transformer,現在的芯片如果跑不起來像Transformer這種相對大的模型,那很多高級特性都上不去。

第二點是交互博弈,低時延的快速求解。交互博弈是一個和以前的串行神經網絡推理很不一樣的Usage pattern,它需要在一個動態的圖裏動態決定下一步的執行網絡及輸入。這個過程需要一個相對通用的計算單元和一個相對快速的專用計算單元,之間不斷地快速Close loop交互。

第三點是先進算法的豐富算子庫支持。從零搭建一個算法是很難,而地平線在這方面也有很強的積累。

大家前兩天有關注我們的發布會,就會關注到我們新一代計算架構BPU Nash。基于BPU Nash,地平線新一代芯片征程6系列相對于上一代有大幅提升,包含強大的並行浮點計算的能力,能夠讓神經網絡更好地處理Transformer相關內容;以及特別優化的超越函數;存儲系統也進行了大大優化,能夠讓大家通過無感的方式更快實現各種推理。

重頭戲來了,怎麽在一個挂了Nash大師名字的系統中更好地做博弈?

一是編程端,通過一個芯片級別的編程是很難編出博弈的,我們需要一個high level的、更軟的操作界面。所以我們的系統在軟件層面(編程的工具層面)會給大家提供一個 Python like的接口,能夠讓大家寫完Python以後通過編譯器自動把它轉成高效的機器語言落到芯片上。

同時,我們的芯片上面爲什麽能做到這一點?是因爲我們在BPU裏面也有自己的通用計算單元。它像一個更通用、叠代更快,但是處理能力沒那麽強的配合者,配合我們的 Tensor和Vector單元去做Heavy lifting。通過這樣的方式可以不斷變化我們動態圖中的執行路徑。這兩者不是一個芯片,而是在一個硬件IP裏。它們在硅片上是緊挨著的,所以能夠很高效地去做動態的神經網絡執行。

6641e97318ad8_6641e97318ab3_5933962cd24638cbda0008a6fc4a769e

通過這樣的方式,我們的征程6系列能夠很好地支持地平線的技術願景,達成一個高性能且靈活開放的系統平台。在這個平台上,相信行業裏面很多厲害的合作夥伴、開發者也能開發出同樣精彩的産品,和我們一起把下一代城區領航系統做出來。

以上就是今天講解的內容,謝謝大家。

0 阅读:0

車車東西

簡介:感謝大家的關注