網頁

2021-12-12

[openpilot] Comma ai CTO Harald Schäfer最新訪談 (Long version) - 為什麼comma ai與其他自動駕駛不同

德裔美國人Harald Schäfer是comma ai的技術長也是comma ai的靈魂人物之一,近日他受邀美國車媒Transport Evolved訪談,他居然穿著短褲短袖還光腳接受訪談,真的是屌爆了。

我們來聽聽看comma ai的CTO的最新內容:Why Comma.ai Is Different To Every Other Autonomous Vehicle Startup Out There。

以下是訪談逐字稿,歡迎閱讀

1:16
主持人:
comma ai的技術與車廠衛星OEM(指車廠1st Tier供應商例如Bosch、Continental、Denso或Mobieye之類場廠商)有何不同?

Harald答:
最主要差距在於comma ai的產品是供應AM市場(After Market),你可以在你的車上透過comma ai的產品控制CAN BUS的ADAS設備,例如油門、剎車或是轉向。

另一方面的不同是我們的自動駕駛技術,我們有更專注於ML(Machine Learning)的途徑,而且我們使用更多E2E ML,這意味著我們使用機器學習來模仿人類駕駛行為,而不是採用更多人工編碼的控制。

2:02
主持人:
所以現在車上已經有ADAS設備例如ACC、LKA等等,Comma如何利用這些系統?

Harald答:
控制油門、剎車與轉向的信號都在CAN BUS上,只要對它們發送訊號,就能驅動油門、剎車與轉向,我們可以先觀察原廠的CAN BUS,然後反向工程這些訊息了解它的意義,我們就可以在我們系統發送一樣的訊號。

2:21
主持人:
很多人關心comma如何產生足夠的力量轉動方向盤以產生確實的轉向,使用者習慣原廠的LKA,只要輕輕碰方向盤就會帶回車道,comma能產生足夠的轉向嗎?你們要如何控制?

Harald答:
這取決與我們使用的車種,現代汽車有很強的轉向輔助,這表示可以擁有全部的方向機轉動,而且現代車款也可以在CAN BUS上發送對方向盤施加扭矩的訊息。所以這是車廠的選擇,它們決定車子可以提供多少的扭矩。有些車扭矩很小,如果openpilot可以使用更多扭矩,就可以有更強的轉彎。

3:16
主持人:
我們知道有些車種分隔了CAN BUS例如KIA的NIRO,很多的觀眾都知道我有一台KIA NIRO,你可以從車艙內的CAN BUS(意指OBD2)去控制特定的東西,但是車上其他CAN BUS一般用戶都不容易接觸。你如何解決這個問題?


Harald答:
所以基本上我們支援在前檔上的鏡頭模組,來對ADAS系統下方向盤控制指令,我們只要連接鏡頭模組,然後再連接到方向盤底下的CAN BUS(OBD2),我們就幾乎能支援所有的車種,在這兩組CAN BUS得到我們需要的一切。

3:54
主持人:
我們的一些觀眾有興趣知道你們還支援特斯拉,像是社群支援的MODEL S或是其他車款?


Harald答:
我不是百分之百確定,那是舊型號的車款,沒有AutoPilot或是舊版的Autopilot。因為那是很大的社群,有些人的確在那些車款上執行Openpilot(這段應為口誤,已修正)





4:17
主持人:
是什麼讓你們使用e2e learning或是為什麼你們選擇走e2e這條路?而不是採用物件辨識(意味Labeling)與人工編碼?

Harald答:
我們已經說過很多次,我們認為在洞察與規劃之間並沒有(或不需要)人類理解層面。我們不認為會有一個完整的洞察系統,可以讓我們制訂駕駛計畫。你可以看到其他車廠做的,他們會去辨識道路上的各種事物,例如行人、機踏車騎士、汽車或者是不是卡車,這會是一個不斷擴增的清單。車廠想要先認識所有的感知物件,才要用一個演算法規畫,但是清單一直成長又成長,而且性能並不會隨著清單的成長與複雜度而增強。

但是e2e ML允許內部性的處理這些事情,你給系統影像,告訴他這時候人類是如何開車,學習它。這時候你獲得一個更簡單的系統,卻可以執行更複雜的工作。最終變成一個更簡單的方法來提供更強的性能。

5:37
主持人:
我們之前在這裡試駕兩輛車。一輛是Blue cruise vehicle,一輛是tesla autopilot 2018 model 3。很有趣的是看這兩台車的運作,Telsa特別提供了周圍環境的辨識。當我們區別車子是一輛皮卡或是大型車,這些訊息是否非必要。你能否指明這些車的不同之處,以及你預期他們有什麼不同的行為?


Harald答:
你可以執行所有種類的測試來弄清楚任何你想要弄清楚的特定事情,你的例子是說一般車與卡車可能不一樣,因為人可能會選擇避開卡車,因為卡車會遮蔽你的視野。你認為這是你需要區別的事情,然後你就必須要讓你的感知系統處理這件事情,他要區別一般車輛與卡車。任何微小的事情,都會讓感知清單一直成長,然後你要分成某些群組物件是要避開,有些群組物件不需要避開。只要我們想要讓model可以解釋世界,我們可以寫一個基本的過濾器來區別不同的類型,不同的行動計畫。

7:09
主持人:
你已經公開你的model看到什麼還有你的model會做什麼,我注意到你的Blog有些照片,說這是被輸入的照片,這些已經被感知重構的東西很有趣,它真的可以辨識一些車、廂型車,而且它少了很多非必要的訊息。如果它運作的時候,可以丟棄很多的資訊,那會減輕處理器的負擔。


Harald答:
是的,這的確讓model可以專注在駕駛這件事情上,這就是我們終極的訓練目標。確定系統像人類一樣駕駛,model可以區別哪些是重要然後如何達成它。


7:57
主持人:
你們最近推出了comma three,我想這是你們第一個專用硬體。

Harald答:
這要取決於你們如何定義專用硬體,我們發表過Panda它是我們設計的汽車控制介面,它是一個不依賴手機或類似東西的完整系統。

8:16
主持人:
從車用設備你們得到哪些益處,例如半圓視角鏡頭(180度),我確定它可以降底閃爍之類,會給你的輔助駕駛系統什麼樣的好處?

Harald答:
我不確定它是否是必須是車用規格,我的意思是跟手機相比,車用鏡頭有更好的動態範圍,我們安裝這種鏡頭會比普通手機鏡頭畫質更好,我們關心低光環境或是眩光,因為系統要在各種情況下運作。一般使用者用手機拍照是適合的,但是在晚上不行。如果你想要在各種光源條件下使用的話。

9:03
主持人:
像我之前提過的,很多車商把CAN BUS分開,很多車廠已經在開發自己的輔助駕駛或是其他的傳項設備,我的問題是車商是否會試圖限制CAN BUS的訪問?

Harald答:
是的,這是一個長期存在的問題。而且好像一切很快就會被結束,因為我們會突然不能使用CAN BUS控制這些車輛;但是到目前為止可以與Openpilot運作的車款一直在增加。所以我們認為這不是我們關切的事情,在它真實發生之前。這樣的推測並不正確。





9:52
主持人:
在過去的幾年你們的e2e model越來越成功,你們正在從橫向控制轉往縱向控制,你可解釋這兩種事情的區別,以及你們的達成途徑?

Harald答:
橫向控制是車輛的轉向,縱向控制是油門與剎車,在過去我們專注在橫向控制,因為在縱向你可以做出一個相對簡單的系統,只要跟隨前車以及在高速公路維持你設定的速度,你就可以得到所有的好處,一般的ADAS通常最有用,但又較為困難的是橫向控制,讓它達到人們可以喜歡的程度,所以我們專注在橫向控制。有很多的技術細節,會導致系統用起來不舒服或是無法使用,像是在道路邊緣的線,或是過彎的時候你不會沿著正中心過彎,e2e可以更像人類平滑的行為。這就是為什麼重點放在橫向上。

現在我們已經通過許多高速公路的項目,現在轉往市區項目,縱向也變得重要。一旦我們讓e2e縱向運作良好,允許完整的駕駛,像是停止線或紅綠燈停止,或是綠燈行駛或是過彎減速或是駛出匝道,或是在慢速車道旁上調整速度而不是直接加速,讓mddel模仿人類行為,你可以得到更多更自然更愉快的駕駛體驗。

我們的意思是,這(comma ai)是你唯一可以體驗e2e的輔助駕駛系統。

11:54
主持人:
你是否知道其他人正在開發e2e的系統?

Harald答:
我的意思是在科學社群,這是一個令人興奮的概念,每個人都想要實現這點。但我似乎沒有看到有人做到這一點並取得重大成功。還有一些公司正在嘗試這樣做。但他們沒有一個是你可以讓你試用看看的。(所以nvidia跟mercedes還一直在DEMO)

12:15
主持人:
回到comma 3,你有一個內部鏡頭,用來監控駕駛,我知道這是輔助駕駛系統越來越關注的焦點,雖然不是剛開始,但是是一個重要的概念。車商已經發現,使用者開始不依照原始設計使用這些系統(例如滑手機跟睡覺)。當你們監控駕駛的時候,有什麼其它的好處?

Harald答:
這是一個很好的提醒,當我在使用openpilot我也不會分心,我也要提醒這些事情,我們多數的使用者喜歡駕駛監控的體驗。在另一方面,這是安全性的安全模型,車子不會突然採取行動,你希望它脫離它就會脫離,我們要確保駕駛專注路況,這是一個Level2的權衡系統。

13:14
主持人:
什麼時候系統會脫離控制車輛?

Harald答:
現在的openpilot我們確保你踩剎車就會脫離,當你踩下油門也會脫離。

13:24
主持人:
人為轉向的時候不會脫離?

Harald答:
不會

13:28
主持人:
這很有趣,因為你選擇了這種模式。在不同的車款中有不同的脫離規則,有些車轉向會脫離,但你們的team有不一樣的選擇。這種體驗到底是好還是壞?這表示你可以輕推方向盤,回饋給它讓他知道你是否喜歡它現在的行為(路徑),然後回饋給你的系統來調整汽車正在做什麼。

Harald答:
我們當然會追蹤,我們稱之為轉向超控的事件。如果你在原本openpilot扭矩上增加更多扭矩或各式各樣的事情,我們的model會預測這一點。我們的model會預測接下來幾秒人類可能會用油門或剎車介入接管,對於駕駛監控也很有趣,駕駛監控的其中一個目標就是人類是否準備好接管。我們可以要求model一個問題是10秒內駕駛有沒有辦法接管方向盤,如果機率是0,那就表示這個人正在分心,為什麼會是0,這裡面就有很多很cool很有趣的科學與數據研究。


14:47
主持人:
你提到很多次你們在訓練model,你們用什麼data訓練model?

Harald答:
是的,所以我們從openpilot使用者那裏得到視訊,而且上傳資料。視訊是輸入,輸出的核心是接下來10秒車子的3D軌跡,捕捉橫向運動與縱向運動,決定接下來10秒要加速還是減速,我的意思是這是e2e的核心,然後我們也添加了一些輸出,像是車道線、領頭車,討論到人可能脫離或接管的機率,或是駛出匝道或是變換車道之類的事情,還有一大堆類似的事情。

15:32
主持人:
根據你說的,訓練資料是來自於駕駛,這是正確的嗎?

Harald答:
是的,人們駕駛使用comma 2或是comma 3時收集的數據,可以上傳到我們的伺服器。所以我們基於視訊,以及裝置內其他感應器,像是溫度計、陀螺儀、方向盤角度感應器。

15:56
主持人:
你們的目標是仿人類的駕駛體驗,但是這取決於你得到什麼樣的資料數據。可能是model內的某種平均值。

Harald答:
是的,這是一個很普遍的問題。你用人類訓練它,它可以比人類更好嗎?對於這一點,我認為這不見得是相關的,目前沒有任何一個自動駕駛系統可以完全像人類一樣的表現。所以基於這點,仿人的駕駛系統仍然非常有用。但是除此之外,它(仿人AI)並不能像一個人一樣獨立開車,我們的模型試圖建立所有資料的共識,在某些特定情況下,絕大多數的駕駛最有可能採取的行動。這並不像是要求一個人自己開車,有點像是一千名駕駛在這個情況會做什麼一致同意的事情。我認為這是比仿人行為,更引人注目的事情,它很容易想像,像是超越神人表現。

16:57
主持人:
有沒有特定的習慣,model顯示駕駛會超越停止線,闖紅燈等行為在你的model裡面,你們需要拿掉?

Harald答:
是,可以這樣說,在縱向控制行為裡面有更多這種不良駕駛,而不是橫向控制。當我們測試e2e model時,它確實有時會超越停止線。我們知道這是一種人類行為,但是我們想要在特定情況調整它,來確定它會在停止線停止,或讓它可以保持更多合理的距離。因為人為駕駛時,通常都會比較靠近前車,我們會想要限制這個距離。

17:36
主持人:
你如何找到你想要訓練的資料,像是大量在停止線停止的視訊,或是其他的感應器資料,讓你可以自動化工具讓你可以找到某些東西。

Harald答:
是的,我們可以建構類似的工具或是過濾器,現在我們在我們的隨機資料裡,可以很簡單地找到某些數據進行訓練。但是我們想要全方位的openpilot駕駛數據來訓練。這就是我們正在訓練的方式,通常在尋找特定資料,只是用在了解model在特定狀況下會有什麼行為。我的意思是這取決與你想要什麼東西。有些過濾器可以找出停止標誌之類的物件,通常只是要檢測如果有人,車子會不會完全停止,或是沒有車有停止號誌或停止燈號,車子是否完全停止。如果你用過濾器,你可以看到大量停止線與停止號誌相關的數據。我們有很多類似的過濾器可以編寫然後撈出資料。


18:45
主持人:
你們有針對不同國家地區最模型做不同的訓練嗎?還是基於所有的國家的狀況

Harald答:
我們現在用我們所有的資料進行訓練,我的意思是我們用所有的國家,模型可以根據不同的場景不同的路況做出不同的決定。我們確實需要告訴模型這是左駕還是右駕,這是重要的訊息,但大多數時間model不會掙扎遲滯,但如果你在完全開放的道路上,沒有任何明顯標示你在澳洲還是在美國,這是個重要的資訊。也許未來我們會提供更多訊息,可能是其他的事情無法從場景立即辨識的訊息。

19:38
主持人:
你們會希望根據GPS,或是類似的環境訊息,讓我知道我在一個左駕還是右駕的國家。

Harald答:
我的意思是如果我們可以從場景判別,那我們就不需要做任何事情。但是有時候我們沒有辦法立即從場景判斷,例如靠GPS判定左右駕,GSP是一個潛在的選擇。但如果我們採用GPS會讓model over fit(過度校正)在特定GPS數據。例如只有一個駕駛在明尼蘇達州,然後模型會變成像那個人一樣開車,或至少model會被激勵那種行為。

20:24
主持人:
就會變成有各州基礎的駕駛風格,變成更聰明的,這台車在紐約就會變成紐約style的司機。這很可能會有用,在很多城市駕駛開車比相向更積極,這可能會有用。

Harald答:
我知道他可能會有用,但我們不想要特定個人的風格,如果我們只有一個駕駛在加拿大艾柏塔省的資料,每個人只要進去艾柏塔省就會變成跟那人完全一樣,這樣太超過了。


20:57
主持人:
我們從很多印度觀眾得到很多評論,特別是有關特斯拉的FSD,它們很關注FSD在明顯不同的駕駛環境中的表現,你覺得comma ai在這種情況下會做什麼?


Harald答:
我自己也在印度駕駛過,毫無疑問地在那裏開車非常困難,跟我們這邊有很大的不同,但我認為這就是我們可以得到e2e系統的優勢,我確實查過我們沒有在印度的使用者,奈及利亞,沙烏地阿拉伯之類的非美國家,有一些用戶,但是還沒有印度的使用者。我知道為什麼,但如果我們可以大量蒐集印度的資料,然後用我們現在訓練的方式訓練model。model有學習那種水平的駕駛能力,我的意思是它可以運作良好。跟人工編碼的區別在於,例如你花很大的時間在跟隨車道線,但是你卻在一個人們都不遵守車道線的地方,這樣的系統就會不起作用。我認為這正好是為什麼你需要用e2e系統,人工智慧在這種情況會更強大,就算是更難的環境。

22:13
主持人:
你提到跟隨車道線,我知道你們正在DEMO Laneless無車道線模式,這系統有什麼好處,以及他如何工作?

Harald答:
我認為這是巨大的成就,他幾乎都在車道中間,除了一些特定的狀況。例如你在高速公路過彎,一般作法是先讓車靠外側一點在回到中線,因為這樣你不需要施加更多的方向盤轉向,而且過彎更舒適,如果你只是完全跟隨中央過彎,車子的打轉會更多較不舒適。所以使用e2e策略,就算是在有車道線狀況下,可以更人性化更平滑的輸出。沒有車道線時,它可以從(其他系統)無法使用變成大部分都能使用。

23:11
主持人:
所以沒有車道線的地方,類似阿拉斯加冬季,你行駛在一個完全被雪覆蓋的路面上只有一點道路邊緣或少量標誌,或是模糊不清的線道。

Harald答:
我們有一些範例,在雪地裡,沒有道路但是你有車子輪胎的痕跡,對任何人來說都是明顯的路徑,你應該跟隨那個輪胎痕跡,這對我們e2e系統來說一樣的明顯。


23:46
主持人:
有些ACC製造商已經在使用雷達,有些廠商則是說他們不會使用雷達或是光達。你有發現那些系統很有用嗎?你如何整合它?

Harald答:
我認為光達是個輔具,它是一個很好可以快速獲得3D深度資訊的工具,更容易用演算法來避開障礙,但卻它跳開(沒有去處理)自動駕駛中真正最困難的問題,你如何更高層次的解釋場景以及相對應的規劃。我的意思是毫無疑問的,我們的影像有非常多的訊息,讓你不要往牆壁撞,相機可以看到牆壁。如果它做不到,那終究是機器學習需要解決的事情。所以我真的不知道光達要如何解決這些有趣的以及自動駕駛中重要的問題,我們如何讓機器學習像人類一樣理解場景。

我看過光達的數據,它解析度太低,對我來說我馬上就覺得沒有那麼重要。我喜歡影像,因為對我來說影像就是我如何理解道路的方式,而且道路本來就是設計來給人類視覺使用,所以在影像中你可以看到號誌的顏色,車道線的顏色,這在光達中毫無意義。因為道路不是設計來給光達使用。而雷達我們有在使用雷達,我認為自動駕駛不見得需要雷達,但它現在在跟隨前車上,可以提供一種簡單的利益,雷達擅長估計前車距離以及前車速度,這對視覺來說相對困難。就算是人類靠視覺也有困難,人類也沒辦法準確判斷前車速度跟距離,跟雷達比起來人類還差得多。
當然我們可以修補程式,讓它達到人類的程度,可以知道前車可能減速,讓自己車減速,我認為我們會到達那個程度,只是從雷達開始會比較容易。我們要到純視覺(Vision only)我們正在做這件事。

26:10
主持人:
我看到你說你有一個純視覺基礎的系統,你可以感知到前面一台或三台前車開始減速,這不一定是你在雷達上看得到的,但是你眼睛看得到,這是你期望你的系統能做到的嗎?

Harald答:
是,我的意思是model一定可以理解,在我們實驗e2e中,你可以看到它完全理解前車減速或是前面有一堵牆或是交通阻塞。它也不關心前面是什麼車或是發生什麼事情,它就是知道前車在減速,無論如何它會要求自己放慢速度。我的意思是我非常希望model可以看清楚每件事情。我們還沒推出純視覺還在使用雷達的原因是,考慮到我們的策略,在有正確的前車速度下運行,我們從來沒有考慮讓用戶不得不使用,還不準確的視覺。

27:14
主持人:
我知道Geroge在comma con說過,讓comma three(口誤)看起來像個小腦袋,並且幫它建造身體。你在前面有兩顆鏡頭,所以有立體視覺。你們在comma con說你們還沒有用第二顆鏡頭。你們打算用這兩顆鏡頭做什麼?

Harald答:
這是技術上的雙眼視覺,但是現在基礎是望遠鏡頭,我的意思是,我不認為人類在路上真的有用到雙眼的景深感知,因為我們知道車子多大,它有多寬,它看起來離我們多遠,我們的系統也是在做這樣的事情。我們有跟人類一樣的基礎線,所以我們也不會真的去執行雙眼景深的工作。但是我們第二顆鏡頭是廣角鏡頭,它解析度跟望遠一樣,但在每個角度有比較低的解析密度,它可以讓我們看到側面發生的事情,有時候我們在望遠鏡頭遇到切車的問題,或是你看不到上方的號誌或是右邊的停車標誌,廣角鏡頭可以讓你擁有背景資訊。

28:20
主持人:
你們現在已經在用它們,還是只用一顆鏡頭?

Harald答:
我們現在只用望遠鏡頭,我們還在訓練入門的縱向控制,他會遇到一些特殊狀況,例如在隧道停止時,他會一直停止,因為他看不到上方的綠燈,或是他看到旁邊的車移動才知道可以開始前進。但如果我們輸入廣角資訊,它就會看到燈號變綠,就會開始移動。

28:52
主持人:
comma three的駕駛側(內鏡頭)可以看到車外,你們打算使用它來感知車輛周遭的環境?

Harald答:
是,我們在這時候還沒有使用它,但這是我們的意圖,當我們做類似變換車道動作時,可以知道是否安全。

29:06
主持人:
你們是否希望使用車輛的鏡頭或是只用你們的鏡頭?

Harald答:
我們只用我們的鏡頭,使用車輛鏡頭會有很多問題,如果技術上允許訪問鏡頭,但是每台車的每個鏡頭(光學呈相規格)會不一樣,因為影像是主要輸入,我們希望可以確保是相同的。

29:32
主持人:
這很有趣,因為我知道很多現在很多車的造型設計,都有比較差的後視野,你是否認為這會是利用第三顆鏡頭感知世界的問題?

Harald答:
這個問題會伴隨我們很長很長的時間,我的意思是這是一個Level2的系統,它應該是一個有人參與操作的循環,你可以把它想成一種共同協作,我們希望系統變得更好,可以處理更多的情況,但是移除駕駛並不是我們的目的。