編者按:本文來自微信公眾號“AI前線”(ID:ai-front),作者:Nathan Hayflick,譯者:核子可樂,36氪經授權發布。(原標題:打臉馬斯克!“無人車依賴LiDAR注定失敗”實測為扯淡)
AI 前線導讀:在特斯拉公司的 2019 年無人駕駛日上,埃隆·馬斯克對 LiDAR(光探測與測距)技術發布重要“指示”,預測稱:“任何依賴 LiDAR 技術的人都將注定失敗”。雖然激光雷達已經在過去十多年中得到眾多無人駕駛汽車廠商的肯定,但馬斯克宣稱:?特斯拉只需要安裝在車輛上的現有攝像頭與傳感器套件即可實現無人駕駛功能。在他看來,通往無人駕駛的道路不在于增加更多傳感器,而在于引入大量來自現實世界的訓練數據。很明顯,特斯拉的車隊有能力收集龐大的數據,并與行業領先的計算機視覺技術結合起來。
馬斯克的預測強調了無人駕駛汽車開發領域中愈發嚴重的一大難題:?到底是選擇像人類駕駛者那樣通過視線實現無人駕駛的解決方案,還是利用 LiDAR 類傳感器彌補計算機視覺技術中的一些局限性。目前這場辯論還沒有結束,畢竟這兩種方法都沒有實現大規模無人駕駛車輛部署,而且可用于比較的公開技術數據也非常有限。面對這個挑戰,本文作者 Nathan Hayflick 希望利用自己的工具,利用 Scale 擁有的一套專為無人駕駛開發商構建的數據標記產品,對兩種實現理念進行一番測試。
魔鬼就在數據當中
首先咱先聊點背景信息:感知系統不僅需要學會自行理解高速公路路況,還需要使用由人類驗證數據建立起的龐大訓練數據集。這種方法被歸類為“監督學習”系統。具體訓練數據包括汽車傳感器的部分輸出(例如前方道路的視頻圖像或者車輛周邊環境的 3D LiDAR 點云)。這些輸出被發送給人類操作員,后者負責對其中的各個物體位置及類型做出標注。無人駕駛車輛需要借此學會“觀察”。
由于標記數據被作為汽車訓練中的主要感知輸入內容,因此我們往往通過觀察訓練數據的質量來判斷無人駕駛車輛的感知系統能否良好運作。要建立起一套擁有極高準確度并驅動汽車本體的傳感器感知系統,單單擁有大量數據是不夠的——我們還必須能夠以極高的準確度對數據進行注釋,否則感知系統的性能會發生顯著倒退。
我們的實驗也由此展開!Scale 擁有一整套能夠從任意傳感器組合中生成數據集的工具鏈,我們最近通過 Aptiv 為 nuScenes 提供注釋。nuScenes 是一套 3D 視頻集,由車載攝像頭與 LiDAR 配合 Aptiv 共同創建。我們能否比較各個系統生成的訓練數據,進而將基于攝像頭的系統與基于 LiDAR 的系統進行效能比較?
為了回答這個問題,我們從 3D 數據集當中提取出一系列駕駛場景,但只采用 2D 視頻圖像,而后通過重新標記將其創建為一套不采用 LiDAR 感知系統時的 2D 數據集。此后,我們將這些 2D 注釋投射 [1] 至原始 3D 數據,并逐個比較對象以查看其中是否發生了準確度損失。
對決:攝像頭對 LiDAR
在兩套數據集完成標記與準備之后,我們對結果進行了比較,并發現其中存在一系列重大差異。很多在疊加至視頻上時看起來完全合理的注釋,在被延伸至 3D 環境時會產生明顯的錯誤表達。以下圖為例——如果大家只觀察左側的 2D 圖像,乍看之下兩套數據集似乎都很準確。但在右側的純 3D 場景中,我們會發現純視頻數據集的注釋太長,而且缺少了整整一側的環境觀察結果。
左:來自純視頻結果的標記后車輛;右:LiDAR 生成的俯視圖疊加結果
左:利用 LiDAR 加視頻的組合,同一車輛擁有更好的注釋,能夠更準確地捕捉到車輛的寬度與長度;右:由 LiDAR 注釋生成的俯視圖
為什么 2D 場景下的準確度在延伸至 3D 時會變差?是不是為車輛勾勒邊界框體的操作員犯了什么錯誤?并不是這樣——換言之,利用平面圖像推斷精確的 3D 量化結果本身就極具挑戰。這相當在某個外觀并不規則的物體周圍(汽車擁有各種形狀以及不同配件,而且無人駕駛汽車在行駛過程中可能遇到多種車輛、行人以及野生動物)繪制一個標準的 3D 長方體,這要求系統明確了解所有邊界點的位置。
在 2D 透視圖當中,我們至少可以保證這些邊界點要么融入對象本身,要么被對象本身所遮擋。以圖中的小型貨車為例,車輛的左右邊緣很容易找到,但由于同場景內的背景色調相似,系統很難找到明確的視覺元素,以準確繪制車輛的左后角位置。更糟糕的是,小貨車背面采用傾斜的流線形設計。標注者雖然可以嘗試填補這些空白,但最終卻低估了物體的寬度,導致長方體在旋轉時無法對齊,最終使得 3D 視圖中車輛左側的觀察點被齊齊截斷。
如果我們認真觀察最左側的邊緣,主舉看到 2D 注釋結果同樣低估了對象高度,因為其無法判斷小貨車彎曲的引擎罩會延伸到具體哪個位置。這種狀況來自一頂基本數學特性——深度信息在 2D 圖像中會自然“縮小”。當物體接近垂直于地平線時,只移動遠邊處的幾個像素,就能夠顯著增加感知到的長方體深度。
當將 2D 投射至 3D 時,LiDAR 加攝像頭注釋(白色)中僅為幾個像素的誤差,會被純攝像機注釋(橙色)放大為更嚴重的錯誤
為了解決這個問題,我們可以采取硬編碼方式將車輛尺寸添加到系統當中(錄入所有汽車的設計尺寸)。但很快,又會有大量例外情況產生(包括裝載有貨物的車輛),或者缺少標準尺寸的對象類別(例如建筑區域)。這促使我們利用基于機器學習的解決方案從對象當中提取大小——但這種方法同樣會帶來新的挑戰,我們將在后文中具體解釋。
根據我們的經驗,解決這類問題的最好辦法,就是參考高分辨率 3D 數據——這正是 LiDAR 的專長所在。看看 LiDAR 點云,我們就會意識到它幾乎能夠解決所有難題,因為捕捉到的點會跟蹤車輛左右兩條邊界,確保我們利用這些結果設置長方體邊緣。此外,前文中提到的深度失真問題在 LiDAR 場景下同樣不復存在。
第二局:夜間駕車
考慮到無人駕駛汽車需要面對的種種實際場景,第一輪對決中的案例似乎太過簡單。現在,我們得往測試中引入一點現實世界中的復雜性元素,并讓兩套數據集之間的差異變得更加極端。在這里,我們看到系統捕捉到一輛夜間行駛的汽車,其在無人駕駛車輛面前突轉變。
現場能見度很差,右側交通指示牌發生遮擋,對向車輛的大燈還造成了視覺干擾。在這種情況下,3D 數據能夠為車輛提供更精確的轉向與深度結論——這是因為安裝位點較高的 LiDAR 傳感器能夠幫助車輛越過交通指示牌進行查看,進而測量目標車輛的邊緣與行駛角度。
左:利用純視頻得出的夜間車輛注釋結果;右:投射至 LiDAR 的俯視圖
左:作為比較,從 LiDAR?加視頻組合當中得出的同一車輛注釋結果;右:投射至 LiDAR 的俯視圖
當然,汽車只是我們在行駛途中可能遇到的眾多對象之一。我們還需要識別較小的載具,例如自行車或電動踏板車,并確保能夠在照明條件較差的夜間快速分析路況。下面來看一個簡單的測試——在下圖中,我們一起找找交通參與者藏在哪里:
可以看到,在圖片右側的路燈桿與灌木后面,確實有一位騎著電動車的駕駛者。騎手身著黑色衣物,再加上顆粒感極強的低光圖像,導致我們難以判斷其屬于陰影還是真實對象。純視頻訓練數據中完全忽略了該對象,好在 LiDAR 注釋成功將其記入了捕捉結果。
左:攝像頭看到的電動車與騎手,大部分對象被低矮的灌木所遮擋;右:LiDAR 中的俯視圖,對象點表示存在電動車與騎手
無法識別這類對象會給無人駕駛車輛帶來巨大的風險。由于視頻圖像太過模糊,不具備 LiDAR 的汽車只有兩種選擇:直接忽略這些物體;或者能見度較差或駕駛風格過于謹慎時產生幻覺,把移動的陰影視為另一名騎手(導致汽車緊急制動以避免與假想目標發生碰撞)。這兩種作法,對于行駛在公共道路上的無人駕駛車輛而言顯然都不安全。
感知與預測
可以看到,利用純 2D 傳感器數據預測 3D 標記結果會帶來一系列挑戰,但這些問題是否廣泛存在?我們對數據集中的所有長方體旋轉誤差進行了統計,并發現純視頻注釋與經過 LiDAR 驗證的對應結果之間平均相關 0.19 弧度(10.8 度)。在進一步分析數據后,我們發現夜間注釋的平均誤差為 0.22 弧度,遠高于日間場景中的誤差 0.16 弧度,且誤差會隨著目標與攝像頭間的距離增加而擴大,準確度自然同步降低。
為了進一步量化這種模式,我們將所有 2D 與 3D 注釋結果。利用對象檢測任務的標準質量指標 IOU 評分進行了分級。(IOU 的全稱為 Intersection Over Union,是對象檢測任務中的常用衡量標準,其測量兩個形狀之間的「差異」,同時考慮結果在位置、形態與大小等方面的錯誤。)整體數據集的平均得分為 32.1%,但一般來講,通常要得到 90% 以上的 IOU 得分才會被視為“正確”。
相關啟示
那么,這樣的結論有何意義?簡單來講,這強調了與無人駕駛汽車的軟件相比,人類大腦在感知世界方面采取著完全不同的觀察角度。在涉及物理運動規劃時,我們不需要在頭腦當中進行基于環境的數學運算,而能夠自然而然地快速判斷潛在風險并及時制動。
如果你的感知系統不夠強大或者不夠準確,那么預測能力將大打折扣。
相比之下,無人駕駛汽車必須進行這類計算,且主要通過初始設計實現。利用神經網絡這類預測系統(往往需要大量調試,且結果混淆度很高)直接控制無人駕駛汽車(端到端學習方法)將非常危險;相反,我們應當把無人駕駛汽車的“大腦”拆分成多個較小的系統,例如首先建立感知系統、而后是預測、規劃與最終行動操作系統。
感知是基礎,因為預測與規劃等后期步驟的執行,都將依賴于感知系統能夠正確預測對象位置及其將如何與無人駕駛汽車進行互動。如果你的感知系統不夠強大或者不夠準確,那么預測能力將大打折扣。
在高速公路這類相對簡單的環境下,這些可能不那么重要,畢竟車輛的活動范圍較小;但在全面普及無人駕駛的情況下,仍有大量需要提前預測的安全操縱場景存在(例如判斷何時可以安全地向左側移動,或者繞過靜止不動的汽車)。
此外,幾乎所有無人駕駛堆棧都采取自上而下的視角以進行路線規劃,因此一旦誤判對象汽車的寬度(如我們提出的第一個示例),則可能導致系統錯誤預測前方車輛的行動或者距離。雖然不少反對激光雷達的觀點認為,“我們人類可以在無需旋轉 LiDAR 傳感器的情況下正常開車,所以好的神經網絡應該也行”。但毫無疑問,無人駕駛汽車的軟件架構應該提供更好的預測能力,從而實現比人類更出色的感知準確度。
目前,非 LiDAR 系統開發人員面對的主要挑戰,在于想辦法從 2D 數據當中獲取理想的注釋準確度。正因為如此,特斯拉公司才會在其無人駕駛日活動展示的一系列系統實驗研究當中,努力探索如何預測物體的尺寸與位置。最近引起熱議的方法之一,在于?利用立體攝像頭創建一套點云(類似于人類利用雙眼的視差判斷距離)。
但到目前為止,還沒有證據表明這是個理想的選擇,因為這要求我們使用分辨率極高的攝像頭測量物體距離。演示中的另一種方法,則是利用額外的機器學習層以理解物體的大小與深度。最終,這意味著車輛上的安全系統將更加依賴神經網絡,并帶來更嚴重的不可預測性與極端情況下的可怕后果。
基于 LiDAR 的系統能夠直接測量距離與大小,使得車輛的感知系統以更從容的方式應對神經網絡給出的錯誤結果。特斯拉方面展示了一個利用神經網絡系統進行俯視角深度預測的例子,但即使是在相對簡單的場景(白天、高速公路)中,預測出的車輛尺寸也存在明顯的尺寸與角度扭曲。
特斯拉基于攝像頭數據計算出的車輛邊界框。在從俯視角觀察時,左車道中的車輛在距離攝像頭較遠時顯示出深度扭曲,而右車道中的車輛則存在寬度與旋轉度不準確問題。資料來源:2019 年特斯拉無人駕駛日。
總結陳詞
雖然 2D 注釋看起來可能還算準確,但其中往往隱藏著更深層次的不準確因素。錯誤的數據會操控機器學習模型的可信度,而這些模型的輸出又會進一步影響到車輛的預測與規劃軟件。如果不能在計算機視覺研究領域有所突破,那么此類駕駛系統可能很難實現真正的自主能力——畢竟車輛必須在每一英里的行駛過程中進行數千次預測,且不容有失。
不過,2D 注釋仍然可以作為整體傳感器系統中的重要組成部分,或者用于處理某些簡單的任務——例如在保持本車道行駛或高速公路駕駛時進行對象分類。
擁有多種傳感器模式總會令人更加安心。將攝像頭與激光雷達數據結合起來的主要優勢之一,在于當某一種傳感器類型無法識別路況時(例如前方有汽車被交通指示牌遮擋,或者剛剛駛入橋下攝像頭因調節曝光時間而暫時無法成像),我們還可以依靠另一種傳感器填補缺失的信息。
從更廣泛的角度來看,我們的研究結果也有望給機器學習開發帶來良性循環:利用更強大的傳感器生成準確度更高的訓練數據,這意味著我們的感知模型將表現更好,并反過來降低我們對任一傳感器的依賴程度。但這里也存在著另一種比較糟糕的可能:即使在理論上存在不使用 LiDAR 建立安全無人駕駛系統的可能,單獨利用攝像頭獲取良好訓練數據的難度也必然更高。因此除非機器學習技術發生顛覆性變化,否則大量平庸的訓練數據只會讓我們長期原地踏步。沒有高質量數據作為依托,開發人員將面臨一場艱苦的戰斗——如何將自己的感知系統訓練至真正符合無人駕駛安全要求的準確度水平。
備注
我們利用 Nuscenes 攝像頭的內部數據 將 2D 長方體校準為偽 3D 形式,而后利用外部數據將長方體等比例放大至 3D 環境中的已知參考點處(在我們的示例中,即最接近地面的點),從而獲取可比較的兩測量對象。
原文鏈接:
https://scale.com/blog/is-elon-wrong-about-lidar你也「在看」嗎?