這一篇文章是根據Tesla Autopilot 部門主管Andrej Karpathy 在二月份時所
做的一場演講寫的。Andrej Karpathy 專門研究深度學習以及影像識別,他在
史丹佛大學念博士時是李飛飛的學生,畢業後加入OpenAI,2017年時加入Tesla。
他在這場演講時提到很多Tesla 目前正在做的事情,其中最有趣的應該是利用
軟體算法製造出鳥瞰圖,以及如何應用軟體算法來辨識距離,甚至可以做到辨
識每個像素的深度是多少。
演講影片:
https://youtu.be/hx7BXih7zx8
=====================================================================
https://36kr.com/p/708377901357573
特斯拉高管揭秘自動駕駛技術:48種神經網絡上陣,最多可檢測1000種物體
特斯拉是怎麼靠攝像頭,來做到城市自動駕駛的?
編者按:本文來自微信公眾號“車東西”(ID:chedongxi),作者James,36氪經授權發
布。
近日,特斯拉更新了自動駕駛軟件的2020.12版本更新,在這一版更新中,特斯拉加入了
交通信號燈和停車標誌識別的自動駕駛功能。如果特斯拉選配了FSD完全自動駕駛能力套
件,就能通過OTA升級體驗車輛在紅燈前自動停下,綠燈亮起後又自動加速的自動駕駛功
能。
這項功能正式發布,為即將到來的特斯拉城市道路自動駕駛打下基礎,也標誌著特斯拉向
“完全自動駕駛”又邁進了一步。
https://i.imgur.com/rwIbUDd.gif
▲特斯拉交通信號燈識別功能
對交通信號燈和停車標誌的識別實際上並不容易。對於駕駛員來說很容易識別的內容,對
於還不太聰明的機器來說還是個不小的挑戰。例如,不同車道有不同的交通信號燈,停車
標誌也是五花八門,有些還被遮擋,這就非常考驗機器識別的效率和準確性。
今年2月,特斯拉人工智能高級主管Andrej Karpathy發表了一個演講,他在演講中闡述了
特斯拉是如何憑藉視覺系統識別道路環境,並應用於自動駕駛當中的。
https://i.imgur.com/CygIlsj.png
▲Andrej Karpathy的演講視頻
特斯拉利用“影子模式”,在駕駛員駕駛的過程中,自動駕駛電腦進行實時同步計算,但
不參與車輛控制。一旦駕駛員的操作和機器的計算有所出入,特斯拉的自動駕駛電腦就會
記錄下這個案例,並上傳給特斯拉總部。在收集到大量的數據之後,特斯拉將不同場景進
行分類,機器學習之後就能讓整個識別算法更加“聰明”。
在應用於車輛時,特斯拉還會利用機器學習,用二維的圖像計算出三維的場景,就能準確
判斷與障礙物之間的距離,實現更加精準的自動駕駛功能。
特斯拉自動等紅燈,離城市自動駕駛又近一步
4月24日,特斯拉向用戶推出了2020.12軟件更新。在這一更新中,特斯拉正式推出了“識
別交通信號燈和停車標誌並做出反應”功能。
選配有FSD的特斯拉車主在更新軟件之後,車輛就可以自動識別紅綠燈和停車標誌。如果
前方有禁止通行的紅燈或停車標誌,特斯拉會在車機屏幕上提前發出提示信息,告訴駕駛
員距離前方停止線的距離。
如果駕駛員沒有及時採取制動措施,車輛制動系統就會及時介入,並緩緩停在停止線之前
。在綠燈亮起之後,車輛會自動繼續加速前進。如果駕駛員在需要停車的路口確認安全之
後,踩下加速踏板,車輛也會重新加速前進。
https://i.imgur.com/8AG21ZO.gif
▲特斯拉軟件更新後車主的測試
在行駛過程中,車輛可以檢測到前方的綠燈、黃燈閃爍和紅燈,並在車機上顯示。如果檢
測到前方有紅燈或停車標誌,車輛會提前提醒駕駛員停止線的位置,如果駕駛員沒有做出
反應,車輛就會自動減速並停在停止線前。如果駕駛員確認安全後希望前行,只要踩下油
門踏板,車輛就會繼續加速前進。
不過,由於這項功能剛剛發布,運行的邏輯會比較保守,車輛在一些情況下不會嘗試自行
通過交叉路口。隨著使用這一功能車輛數量的增加,特斯拉自動駕駛計算芯片進行機器學
習後會讓這項功能更加完善。
根據此前公佈的特斯拉自動駕駛使用手冊,這項功能實際也有一定的局限性。特斯拉表示
,雖然車輛可以自行監測前方的交通信號燈和停車標誌,但駕駛責任完全由駕駛員負責。
駕駛員需要始終注意行車道上發生的情況,並隨時準備採取緊急措施。
https://i.imgur.com/qioQP0A.png
▲特斯拉交通信號燈和停車標誌識別功能使用手冊(美國版)
值得注意的是,用戶手冊中有這樣一句話:如果在特斯拉汽車行駛較多的路段,停車標誌
和交通信號燈的識別準確度會更高。也就是說,特斯拉確實是依靠深度學習讓算法變得更
加優秀,並且同一場景學習的次數越多,識別準確率也就越高。
此外,信號燈和停車標誌識別功能也不是在所有場景都可以使用。特斯拉在使用手冊中表
示,在美國地區,鐵路道口、禁區、收費站、人行橫道區域、不清晰或臨時的交通信號燈
、複雜信號燈和車道指示燈等環境下都無法啟用這項功能。
這項功能更新是特斯拉FSD自動駕駛系統的一大進步,也讓特斯拉距離城市道路的自動駕
駛更近一步。
今年2月,特斯拉人工智能高級主管Andrej Karpathy在ScaledML會議上的一次演講,就透
露了特斯拉自動駕駛系統的最新進展。利用機器學習的算法,特斯拉就能準確判斷路旁的
信號標誌,同時也能計算出與停止線、障礙物之間的距離信息。
特斯拉強在哪?上百萬車主幫特斯拉測試軟件
在特斯拉人工智能高級主管Andrej Karpathy的演講中,首先對特斯拉自動駕駛系統的工
作原理進行了講解。他表示,當前特斯拉主要依靠視覺系統採集圖像信號,自動駕駛電腦
進行計算之後,就能控制車輛的車速和轉向,從而實現自動駕駛。在這個過程中,自動駕
駛電腦的計算是最重要的一環,需要人工智能算法提供支持。
https://i.imgur.com/Wkir1z6.png
▲Andrej Karpathy演講現場
在今年2月美國加州車管局(DMV)公佈的自動駕駛路側數據可以發現,2019年全年,特斯
拉官方進行的自動駕駛公路測試僅有12.2英里(約合19.6公里)。與百度、Waymo、
Cruise等公司每年動輒數十萬上百萬英里的自動駕駛測試里程相比,可以說特斯拉官方相
當於沒有進行測試。
如果不進行大量的自動駕駛測試,特斯拉又如何進步呢?原來,特斯拉的測試者是百萬量
級的特斯拉車主,依靠“影子模式”進行自動駕駛測試的。
2016年,特斯拉發布了“影子模式”,在駕駛員駕駛過程中,裝有HW1及更新自動駕駛電
腦的特斯拉就能實時進行自動駕駛運算,但不會參與控制車輛的方向和速度。如果駕駛員
的操作和自動駕駛電腦的操作有較大出入,自動駕駛電腦就會自動記錄下這個案例,並上
傳給特斯拉。
從2018年正式啟用至今,影子模式已運算了超過30億英里(約合48.3億公里)的駕駛里程
。每天,特斯拉自動駕駛研發團隊都會收到大量的案例:駕駛員停車,自動駕駛電腦繼續
前進;駕駛員向左微調了方向,自動駕駛電腦直行前進;當然,也會有駕駛員發生碰撞,
但自動駕駛電腦避開危險。
舉例來說,路旁的停止標誌並不全都清晰可見,有些被樹葉擋住,有些屬於臨時標誌,有
些標誌在夜間非常模糊,還有部分停車標誌左轉停車,右轉不用停……這些並不清晰的標
誌就有可能對自動駕駛電腦產生干擾,一旦識別出錯,可能就會造成駕駛事故。
https://i.imgur.com/Sdem0m1.png
▲上圖:不清晰的停車標誌;下圖:有條件的停車標誌
為解決這個問題,特斯拉利用了數據引擎對算法進行訓練。首先,車輛將收集的數據回傳
至特斯拉自動駕駛研發部門,然後特斯拉相似的場景進行分類,同一類的機器學習訓練,
讓特斯拉的算法更強大,也更加“聰明”。
https://i.imgur.com/9ExOLAg.png
▲特斯拉的“數據引擎”機器學習模型
在對算法進行訓練之後,特斯拉會持續關注自動駕駛電腦對類似場景的識別準確率,形成
下面這個表格。
從中可以看出,特斯拉對Stop Sign(停止標識)這一種路牌,竟然給出了至少14種可能
存在的情況,包括大雨、大雪下的路牌、被擋住的路牌、校車上路牌、甚至還有門上的路
牌、手持路牌等。
也就是說,特斯拉的目標是要在各種特殊情況下,都能識別路牌。
https://i.imgur.com/4Vy7IX9.png
▲同一標誌在不同場景下的準確度評估
回到正題,特斯拉在訓練完模型後,會把算法通過影子模式進行測試,對每一個場景的識
別準確率進行重新評估,準確率不斷提高,也就意味著算法正在一點點進步。當識別準確
率提升到了較高水平,特斯拉就可以考慮對所有車輛進行功能更新,增加自動駕駛的功能
和使用場景。
這裡面講一個有趣的小細節。
特斯拉此前推送了識別雪糕筒的更新,有用戶為了弄明白特斯拉能識別哪一些雪糕筒專門
進行了一個堪稱變態的測試。
這裡測試的道具除了大小高低不同的雪糕筒之外,他們竟然還有一個穿著雪糕筒衣服的人
類作為道具。從視頻中看,只要穿著雪糕筒衣服的人類在移動或者站著,特斯拉就能識別
出這是一個人。但如果這個人蹲下不動,就會被識別為雪糕筒。
https://i.imgur.com/MihqYNa.gif
▲外國網友穿著雪糕筒的衣服,但沒有騙過特斯拉
這也就說明,特斯拉在識別雪糕筒這件事兒上,也同時考慮到了大量的特殊情況,才會表
現出這種成績。
從算法的代碼層面來說,特斯拉把它們的深度學習網絡稱為HydraNet。其中,基礎算法代
碼是共享的,整個HydraNet包含48個不同的神經網絡,通過這48個神經網絡,就能輸出
1000個不同的預測張量。理論上來說,特斯拉的這個超級網絡,能同時檢測1000種物體。
完成這些運算並不簡單,特斯拉已經耗費了7萬個GPU小時進行深度學習模型訓練。
https://i.imgur.com/LDGRiA5.png
▲特斯拉HydraNet網絡
雖然工作量很大,但由於大部分工作由機器承擔,特斯拉的人工智能團隊僅由幾十人組成
,與其他自動駕駛公司數百人甚至數千人的規模相比,確實規模不大。
二維圖像秒變3D,算法還能自己改代碼
在經過大量的機器學習訓練之後,特斯拉的算法會逐漸成熟,這套算法也會以OTA升級的
方式分發到每一輛特斯拉汽車當中,在車主實際駕駛過程中還能進一步試錯,讓算法更加
完美。
研發這套算法的最終目的是要實現特斯拉的自動駕駛功能,最終還是需要車上硬件互相配
合才能實現。
特斯拉全車共配備了8個攝像頭,一個毫米波雷達和12個超聲波雷達,監測外部環境,向
自動駕駛電腦實時傳送信息。
https://i.imgur.com/3hADxjC.png
▲特斯拉車外傳感器
簡單來看,特斯拉的攝像頭、毫米波雷達、超聲波雷達以及慣性測量單元記錄下當前車輛
所處的環境數據,並將數據發送給特斯拉的自動駕駛電腦。自動駕駛電腦在進行算法的計
算之後,將速度和方向信息傳遞給轉向舵以及加速、制動踏板,實現對車輛的控制。
不過,在日常行駛過程中,攝像頭作為傳感器捕捉的內容都是二維圖像,並沒有深度信息
。
https://i.imgur.com/UcCwY1u.png
▲特斯拉攝像頭採集的畫面可以確定邊界,但不包含深度信息
也就是說,雖然二維圖像已經可以區分公路和路旁的人行道,但並不知道現在車輛距離“
馬路牙子”還有多遠。由於缺失這樣一個重要信息,自動駕駛的運算可能並不准確,操作
可能出錯。因此,捕捉或者建立一個三維的圖景很有必要。
傳統工程師認為,直接在車頂安裝三維攝像機就能解決這一問題。不過,這既要增加車輛
的製造成本,又影響車輛美觀。此外,由於車頂面積比較大,如果三維攝像頭高度不夠,
盲區將會非常大。
特斯拉的工程師又想到用算法解決這個問題。如果有一種算法能夠將二維圖景的時序、邊
緣對齊,投影形成三維圖景,這個問題就解決了。
https://i.imgur.com/QHlqv0f.png
▲通過算法得出的“鳥瞰視圖”
在計算出三維圖景之後,特斯拉甚至可以計算出車輛的“鳥瞰視圖”。也就是說,雖然車
輛上方沒有攝像頭,但通過計算就能模擬出從車輛上方向下看的圖景。這樣一來,車輛離
障礙物還有多遠的距離,車內都能直觀地看到。
https://i.imgur.com/I39uSbL.gif
▲特斯拉視覺系統預測的馬路邊緣和車道線
實際上,特斯拉還有更厲害的地方,那就是算法可以預測流媒體視頻中每一個像素的深度
信息。也就是說,只要算法足夠好,流媒體視頻更加清晰,特斯拉的視覺傳感器所捕捉的
深度信息甚至可以超過激光雷達。
https://i.imgur.com/r9LorZ1.gif
▲特斯拉採集視覺信息(上),預測每一個像素的深度信息(中)並投影形成鳥瞰視圖(
下)
在實際的自動駕駛應用中,泊車入位和智能召喚兩個使用場景下就能充分利用這套算法。
在停車場行駛時,車輛之間的距離很小,即使是駕駛員駕駛,稍不留神也很容易出現刮蹭
事故。對於機器來說,停車場場景的行駛更加困難。在預測到深度信息之後,車輛可以在
超聲波雷達的輔助之下,快速完成對周圍環境的識別,車輛泊車就會更加順利。
在完成深度信息的預測之後,這部分信息會顯示在車機上,同時也會直接參與控制轉向、
加速、制動等駕駛動作。不過,轉向、加速、制動這些駕駛策略沒有固定的規則,有一定
靈活性。
因此,自動駕駛的駕駛策略沒有最佳,只有更好。
特斯拉基礎的自動駕駛策略由工程師完成,已經寫出了大量的代碼,這相當於是駕駛策略
的1.0版本代碼。不過,由於實際路況更加複雜,1.0版本的駕駛策略代碼實際覆蓋範圍較
小,邏輯也難免出錯。隨著時間推移,必須要不斷升級駕駛策略。
Andrej Karpathy表示,如果在機器學習網絡中不斷升級策略代碼,這樣既節省了人工成
本,自動駕駛能力進步的速度也會明顯加快。
在駕駛員駕駛的過程中,車輛也會收集駕駛員的駕駛習慣。通過對百萬特斯拉車主駕駛習
慣的學習,特斯拉的自動啊及時策略就會不斷提高。
通過對百萬車主駕駛習慣的學習,機器可以編譯出自動駕駛策略的2.0版本代碼。
https://i.imgur.com/XMRxLmU.png
▲機器編譯的2.0版本代碼正在逐漸取代1.0版本代碼
Andrej Karpathy預測,隨著機器的編譯能力提高、採集的數據更加豐富,2.0版本的代碼
會逐漸覆蓋1.0版本的代碼,最終實現所有代碼都由機器編譯完成,這樣的自動駕駛策略
就會更加精確。
結語:自動駕駛之爭正轉變為算法之爭
在自動駕駛不斷發展的今天,特斯拉已經形成自己的一派,完全使用視覺識別就能完成自
動駕駛。自動駕駛技術也從之前的攝像頭、毫米波雷達、超聲波雷達甚至激光雷達的堆料
,逐步轉變為算法之間的競爭。
特斯拉利用百萬輛每天行駛在道路上的汽車進行自動駕駛計算,其數據源、精準度很可能
已經遠遠超過其他的自動駕駛測試公司。未來,算法之爭還將逐步擴大,同時自動駕駛市
場的競爭也將更加激烈。