特斯拉自動駕駛系統每天能防止40起因司機失誤造成的車禍!
近日,特斯拉自動駕駛軟件總監Ashok Elluswamy在CVPR 2022會議上做了一個演講,介紹了特斯拉自動駕駛團隊在過去一年中取得的多項成果,尤其是名為Occupancy Networks的神經網絡模型(以下簡稱佔據網絡)。
他講到,自動駕駛系統傳統上用到的語義分割、深度信息等做法存在不少問題,比如2D轉3D比較困難,對深度信息的估算不准等。
在使用佔據網絡後,該模型能夠預測車輛周圍物體佔據的空間(包括動態物體下一步的動作產生的空間)。
基於此,車輛在不需要識別具體的障礙物是什麼的情況下,就能做出避讓動作——Ashok Elluswamy在推特上甚至開起了玩笑,說特斯拉的車甚至能躲避UFO!
基於該技術,車輛還能夠看到周圍角落裡是否有障礙物,以此能夠跟人類司機一樣實現無保護轉向!
簡而言之,就是佔據網絡明顯增強了特斯拉的自動駕駛能力(L2)。
此外,Ashok Elluswamy還著重介紹了特斯拉Autopilot系統在防止駕駛員誤操作方面的努力。
通過感知外界環境和駕駛員的操作系統,車輛能夠識別到駕駛員的誤操作,比如在錯誤的時候踩下了加速踏板,車輛會中止加速並且進行自動剎車!
這就是說,此前國內頻繁曝出的一些因為駕駛員誤操作而產生的“剎車失靈”問題將被從技術上進行限制。
不得不說特斯拉在推動技術進步上真的很有一手。以下為Ashok Elluswamy的演講視頻編譯,略有刪改。
純視覺算法強大二維圖像轉三維
演講伊始,Ashok表示,並不是所有人都了解特斯拉自動駕駛系統具體的功能,因此他簡單介紹了一下。
據他介紹,特斯拉自動駕駛系統可以幫助車輛實現車道保持、車輛跟隨、減速過彎等,除了這些,特斯拉自動駕駛系統還配備了標準安全功能,例如緊急制動和避障,可以避免多種碰撞事故。
除此之外,自2019年以來,約有100萬輛特斯拉可以在高速公路上使用更先進的導航,檢查臨側車道信息來執行變道,識別高速路的出入口。
而且特斯拉自動駕駛系統還能在停車場自動泊車、識別交通信號燈和路牌,以及能進行右轉彎,繞開汽車等障礙物。目前,這些功能已經經過了十幾萬名特斯拉車主的驗證。
在演講中,Ashok還拿出了一段用戶錄製的視頻。視頻顯示,用戶在舊金山擁擠的道路上行駛時,車機屏幕顯示了周圍的環境,例如道路邊界、車道線、附近車輛的位置和速度。
而這些一方面需要特斯拉車機和攝像頭等硬件的支持,一方面還需要特斯拉自動駕駛系統內置的算法和神經網絡的支撐。
據Ashok介紹,特斯拉搭載了8個120萬像素的攝像頭,它們可以360度捕捉周圍環境影像,平均每秒可以生成36幀圖像。而後特斯拉的車機將對這些信息進行處理,每秒可進行144萬億次運算(TeraOPs/s)。
而且這些過程都是在基於純視覺算法進行的,並未使用激光雷達和超聲波雷達,也沒有高清地圖。
那特斯拉自動駕駛系統又是如何識別一般障礙物的呢?
Ashok表示,當遇到一般障礙物時,系統會使用空間分割方法。使用空間分割方法時,系統對空間內的每一個像素進行標記,標記為“可行駛的”和“不可行駛的”,然後自動駕駛芯片再來處理這個場景。不過,這個方法也存在一些問題。
首先,系統標記的物體像素處於二維空間,而為了給汽車在三維空間中導航,物體像素需要轉換出三維空間中對應的預測值,這樣特斯拉的系統才能建立互動的物理模型,並順利處理導航任務。
而係統在將物體像素從二維圖像轉換到三維圖像時,需要進行圖像語義分割(指像素級地識別圖像,即標註出圖像中每個像素所屬的對像類別)。
這個過程會產生不必要的圖像或系統中不必要的像素,而圖像的地平面上的幾個像素可以產生巨大的影響,直接決定如何將這個二維圖像轉換成三維圖像。所以,特斯拉不希望在規劃時產生這樣影響較大的像素。
另外,不同障礙物還需要使用不同方法來判斷。
一般來說,比較常用的還是物體的深度值(從觀察者角度看向物體時的距離,這個距離再通過投影變換、標準化設備坐標、縮放平移後,最終得到的值)。
在某些場景中,系統可以先預測障礙物。而在另一個場景下,系統也可以對圖像的像素檢測深度,所以每個像素都會產生一些深度值。
但是,儘管最終生成的深度圖非常漂亮,而當用深度圖進行預測時,只需要三個點。
而且在對這三個點進行可視化的時候,儘管在近處看著還行,但是隨著距離的增加,它們也會發生形變,在下一階段這些圖像也很難繼續使用。
例如,牆壁可能會發生形變而變彎曲。而地平面附近的物體也是由較少的點來確定的,這就使得在規劃時系統無法正確判斷障礙物。
而又因為這些深度圖是在多個攝像頭採集到的平面圖像上轉換而成的,因此最終很難產生一個相同的障礙物,而且系統也很難預測出障礙物的邊界。
因此,特斯拉提出了佔據網絡方案來解決這個問題。
計算空間佔用率給物體編碼
在演講過程中,Ashok還用視頻展示了這個佔據網絡方案。他說,從視頻上可以看出,在這個方案中,系統對8個攝像頭捕捉到的圖像處理,然後計算物體的空間佔用率,最終生成了示意圖。
而且特斯拉汽車在行駛時每挪動一下,系統網絡就會重新計算周圍物體的空間佔用率。另外,系統網絡不僅會計算出一些靜態物體的空間佔用率,例如樹木和牆壁,還會計算包括行駛的汽車在內的動態物體的空間佔用率。
之後,網絡將圖像輸出成三維圖像,而且還可以預測被遮擋的物體,因此即使汽車只上傳了物體的部分輪廓,用戶也可以分辨清楚物體。
此外,儘管系統捕捉到的圖像因為遠近不同,圖像的分辨率不同,但是基於以上方案,最終呈現的模擬三維圖像的分辨率是相同的。
而這就意味著整個方案運行得十分高效,Ashok表示,計算平台運行10毫秒,系統網絡能夠以100赫茲的速率運行,這個運行速率甚至比很多相機記錄圖像的速度還快。
那麼,這個過程是如何完成的呢?這就需要了解一下佔據網絡方案的架構。
在講解佔據網絡方案的架構時,Ashok以特斯拉魚眼攝像頭和左側攝像頭拍到的圖像為例,對兩者圖像校正過程進行了對比。
首先,系統會先對圖像進行拉伸,然後提取圖像特徵,查詢出三維圖像相關的點是否被佔用,然後使用三維位置編碼,然後將其映射到固定的位置,之後這些信息會在之後的計算中被收集。
之後,系統將對圖像空間進行位置嵌入,繼續通過三維查詢處理圖像流,最終生成三維佔用特徵。因為生成的是高維佔用特徵,所以很難在空間的每一個點上執行此操作。因此系統會在較低維度生成這些高維特徵,例如使用典型的上採樣技術,生成高維空間佔用率。
有趣的是,Ashok在演講中透露,當初做這個佔據網絡方案只是用於處理靜態的對象,但是最終發現只處理靜態的樹很難,而且系統在剛開始分辨“真假行人”的時候,也遇到了很多困難。
但是團隊最終發現,無論這些障礙是移動的,還是靜止的,系統最終只需做到能夠躲避掉這些障礙就好了。
因此,佔據網絡方案不再區分動態障礙物和靜態障礙物,而是使用其他的分類對其進行處理,計算物體的瞬時空間佔用率,不過這還不足以能保證特斯拉汽車可以安全行駛。
因為如果只計算瞬時空間佔用率,當特斯拉汽車在高速上行駛時遇到一輛車,然後就開始放慢速度並不是很合理。系統更想知道,在之後不同的時刻這輛車的空間佔用率,以及變化情況。
這樣的話,系統就可以預測出這輛車何時會離開。所以,方案還涉及還預測了佔用流。
佔用流這個數據可以是空間佔用率或時間的一階、高階導數,也可以提供更精確的控制,將它們統一到同一個坐標系中。系統將使用同一種方法來生成空間佔用率和占用流,這還將針對各種障礙物提供強大的保護。
障礙物類型不重要係統可避免撞車
Ashok還表示,常規運動或移動網絡不能判斷物體的類型,例如到底是靜態的物體還是一輛行駛的車輛。
但是從控制層面來說,物體的種類實際上並不重要,佔據網絡方案提供了很好的保護,防止網絡出現分類困境。
因為不管是什麼原因造成的障礙,系統都會認為這部分的空間被佔用了,並且以某一速度移動。一些特殊類型的車輛可能有奇怪的突起,很難用傳統技術建模,系統則會用立方體或其他多邊形來表示移動物體。
這樣一來,物體就可以進行任意的擠壓,用這種佔位的方法,而不需要復雜的網格狀拓撲結構建模。
當車輛在進行無保護或者有保護的轉彎時,可以使用幾何信息來推斷遮擋情況。幾何信息不僅要推測車輛攝像頭所識別到的信息還需要推測未識別到的信息。
例如,當一輛車正在進行無保護轉彎時,前面有一條分岔路,可能有潛在的車輛被樹木和路標遮擋,所以汽車“知道”它不能從這些遮擋物中看到車輛。基於不同的控制策略,汽車可以提出問題並消除這種遮擋。
因此,對於一個靜止的物體,車可以在行駛的途中識別其何時變得可見。由於有完整的三維障礙物,汽車也可以預判到什麼距離會撞到這一物體,然後系統會通過平順的控制來識別並通過這一被遮擋的物體。
所以佔據網絡方案在很多不同的方面都有助於改善控制棧。這一方案是神經輻射場的延伸,神經輻射場(NeRf)在過去幾年裡在很大程度上接管了計算機視覺研究。
NeRf是在單個場景或單個位置的圖像重建場景,從單個位置的一個點進行重建。
Ashok表示,特斯拉的車輛在行駛中,後台處理接收到的圖像較為準確,所以可以(用NeRf)生成跨時間並精確的圖像路線,通過NeRf模型和3D狀態差異化渲染圖像來產生較準確的3D重建。
而現實世界的圖像會存在一個問題——我們在現實世界中會看到大量不真實或有差別的景象。
例如太陽眩光或擋風玻璃上的污垢或灰塵會因為光線的衍射而產生變化,或者雨滴會進一步扭曲光線的傳播,最終產生偽影。
對此提高魯棒性的方法是使用更高層次的描述符,但這些描述符在一定程度上不會改變局部照明偽影(如眩光)。
因為RGB(顏色系統)圖像可能非常嘈雜,但在RGB之上添加描述符可以提供一層語義上的保護,防止RGB值的變化。因此,特斯拉的目標是將這種方式用於佔據網絡方案。
由於佔據網絡方案需要在幾個鏡頭中產生空間佔用率,不能在汽車中運行完整的神經優化,但神經優化可以縮小在後台運行,確保它產生的空間佔用率能夠解釋汽車在運行時收到的所有傳感器的圖像。
此外,也可以在訓練時疊加描述符,為這些網絡產生良好的監督;同時也可以通過差異化渲染不同的傳感器數據來監督所持有的圖像。
目前特斯拉已經有了減少障礙物的網絡,下一步就是避免任何碰撞,Autopilot已經有很多安全功能。
緊接著,Ashok展示了三段Autopilot啟動避免碰撞的視頻。
這裡的碰撞事故指的是由於駕駛員不小心將油門踏板當制動踏板踩下而導致的撞車事故。
Ashok在表示駕駛員不小心將油門當成剎車踩時,汽車會加速並導致碰撞,但車輛會識別並自動中止加速,並自動剎車防止碰撞。
在第一段視頻中,Ashock表示如果Autopilot沒有啟動並阻止汽車加速,視頻中的司機很可能會落入河中。
同樣,第二段視頻顯示,一名特斯拉司機在停車時誤踩油門,但Autopilot迅速啟動並阻止汽車撞上商店和行人。
通過佔用率車輛自動規劃路徑
但讓汽車平穩地制動並剎停可能需要數秒乃至數分鐘的時間,而汽車在行駛的過程中,可能沒有足夠的時間來識別障礙物並進行計算。
所以我們要用神經網絡來達到這一目的;尤其最近還出現了更加複雜的隱性場景。特斯拉自動駕駛團隊所要做的也就是從以前的網絡中獲取空間佔用率。
首先,要把空間佔用率編碼到一個超級壓縮的多層感知器(MLP)中。本質上,這個MLP是對任何特定查詢狀態下是否可以避免碰撞的隱含表示,這個避免碰撞的方法在某一時間範圍內提供了一些保證。例如,可以在2秒或4秒或某個時間範圍內避免碰撞。
Ashok在這裡又舉了一個例子,他給出了一條自上而下的道路,黑色像素是障礙物、灰色像素是路面、白色像素是道路車道線。在這個三維空間的俯視圖中,可以把車放在任何像素的位置,模擬碰撞是否可以避免。
他表示:“如果你把汽車想像成一個單一的點,避免碰撞的周期設置為瞬間,那麼當前時間是否會發生碰撞,僅僅取決於障礙物的位置;但問題是,汽車不是一個點,它有一個類似矩形的形狀,也可以轉向。”
因此,只有當將形狀與障礙物卷積時,才能夠立即知道汽車是否處於碰撞狀態。
隨著汽車的轉向(或因失控旋轉),碰撞場會發生變化。綠色意味著汽車處於一個沒有碰撞的安全位置,紅色意味著碰撞,所以當汽車旋轉時,碰撞位置更多;但當汽車位置被對齊時,綠色的位置擴大,意味著汽車不會發生碰撞。
整體來看,Ashok展示瞭如何利用多幅相機視頻和產品產生密集的空間佔用率和占用流,通過空間佔用率可以通過神經網絡產生一個有效的避碰場,即車輛通過攝像頭“看”,根據經驗判斷,以合適的速度和方向通過障礙物的道路。
Ashok還分享了一個模擬環境下的實驗,駕駛員踩下油門加速並且沒有轉向行為,汽車監測到會發生碰撞並規劃一條路徑以使汽車安全地通過。
Ashok在演講結束時表示,如果他們能夠成功實施以上的所有技術,他們就可以生產出一輛永遠不會撞車的汽車。
顯然,這項工作還沒有完成,在他的最後一張PPT中,Ashok積極向工程師們發出邀請,歡迎他們加入特斯拉,製造一輛永遠不會撞車的汽車!
結語:特斯拉不斷探索自動駕駛
自從特斯拉帶火自動駕駛技術後,自動駕駛的賽道便湧現了一大批的跟隨者。但不得不說,特斯拉始終還是走在行業的前列,不斷探索著自動駕駛的新方法。
本次特斯拉Autopilot項目負責人帶來新的技術解讀,也一定程度上為我們提前展示了特斯拉未來自動駕駛技術的亮點。憑藉特斯拉不斷探索的精神,其自動駕駛也會繼續領跑整個汽車市場。(車東西)