CVPR PAMI青年研究員獎Andreas Geiger:自動駕駛中的計算機視覺
機器之心原創,作者:邱陸陸。
在今年 6 月召開的 CVPR2018 上,德國圖賓根大學及馬克斯·普朗克研究所(MPI)自動視覺組負責人 Andreas Geiger 教授摘得了 PAMI Young Researcher Award,該獎項頒發給 7 年內獲得博士學位且早期研究極為有潛力的研究人員。
圖中為 Andreas Geiger,圖右為另一名獲獎者,來自 Facebook 的青年科學家何愷明
Geiger 的研究主要集中在用於自動駕駛系統的三維視覺理解、分割、重建、材質與動作估計等方面。他主導了自動駕駛領域著名數據集 KITTI 及多項自動駕駛計算機視覺任務的基準體系建設,KITTI 是目前最大的用於自動駕駛的計算機視覺公開數據集。
2018 年年初,Geiger 出任了北京衝浪科技有限公司 (Surfingtech) 的首席科學家,衝浪科技是一家致力於為全球自動駕駛公司提供多感測器數據解決方案的公司。7 月,機器之心在衝浪科技對 Geiger 進行了專訪,談了談自動駕駛領域的計算機視覺任務的特點、研究前沿及 KITTI 數據集的最新進展。
機器之心:自動駕駛系統都由哪些模塊組成?它們之間的依賴關係是什麼?
自動駕駛系統通常有一個非常經典的、模塊化的流水線。
首先是感知模塊(perception stack),感知模塊將地圖、三維感測器、二維感測器中的信息給到「世界模型」(world model),世界模型將上述信息,匯總在一張地圖中,理解每一個時刻不同的物體相對於路面、道線等的位置,預測下一刻的可選路徑都有哪些。隨後是一個規劃模塊(planning model),進行決策。決策的內容也是分層級的。粗粒度的決策需要決定如何從 A 點到 B 點,完成的是類似 GPS 的工作。除此之外還有諸多細粒度的決策工作,例如決定走哪一條車道,是否要暫時佔用對向車道完成超車,車速應該設定為多少等。最後是控制模塊(control module),控制模塊操縱所有的控制器,有高層的控制器,比如電子穩定系統 ESP,也有最基層的控制器,比如控制每一個輪子進行加速和剎車的控制器。
機器之心:想要讓一個自動駕駛系統作出正確的決策,首先要完成哪些計算機視覺任務?
首先是車輛定位:衡量車輛的運動並在地圖中進行定位。完成這部分工作的是視覺測距(visual odometry)系統和定位(localization)系統。二者的區別是,視覺測距估計的是車輛相對於前一時間步進行的相對運動,而定位是對車輛在地圖中的運動進行全局的估計。定位是可以精確到厘米級的,車輛相對於一些地圖中固定的物體(例如電線杆)的距離已經是已知的,基於這些信息,車輛已經可以進行相當不錯的路徑規划了。
然後是三維視覺重建,重建範圍通常在 50-80 米,具體需求視行駛速度而定。大部分 STOA 自動駕駛系統會使用激光雷達(LiDAR)進行三維重建。不過也有少部分團隊試圖直接從圖像中恢復三維信息。由於圖像中的數據相比之下更為嘈雜,因此完全基於圖像的重建是一項更具有挑戰性的工作。
基於單張激光雷達點雲與二維圖片的三維視覺重建
除了重建之外,你也需要對車輛正前方正在發生的事有充分的理解。因此,你需要進行物體檢測,也需要在理解物體是什麼的基礎上對其進行進一步的分類,而檢測和分類會幫助預測其未來軌跡。進行檢測和分類的方式是多樣的,你可以給每一個物體畫一個邊界框(bounding box):這是最常見的方式,但是自動駕駛需要在三維的物理世界中進行運動規劃,所以你至少要需要一個三維的邊界框。
更精確的是實例分割(instance segmentation)和語義分割(semantic segmentation)。當物體是形狀為凹或者是隧道之類需要穿行的物體時,邊界框顯然是不夠的。實例分割將圖像里屬於一些特定目標類別的每個實例的所有像素分為一類。實例分割通常在二維圖像上進行,但也有三維版本,三維實例分割基本等同於物體重建。而語義分割為圖像里每一個像素分配一個語義標籤,同一類別的不同實例不做區分。除此之外,全景分割(panoptic segmentation)基本上可以視作實例分割和語義分割的結合。全景分割對那些沒有實例只有整體的類別也進行區分,例如天空和植被。天空無法用一個邊界框框柱,而植被需要在平時避開,但系統也需要知道在緊急情況下汽車衝上草坪並無大礙(相比之下撞上樹或者行人就有很大問題了)。因此語義信息是必要的。
接下來是運動估計。根據之前的一幀或數幀,預估視野里的每一個點,或者說每一個物體,在下一幀的位置。一些物體,例如車輛,它們的移動是比較容易預判的,因此運動模型可以進行準確率較高的預測。而另外一些物體,例如行人,會非常突然地變更其運動軌跡,導致運動模型的建立更為艱難。即便如此,較短時間區間(2-3 秒)的動作預測,在動態物體較多的擁擠場景下的決策過程中也仍然扮演著至關重要的角色。
上述任務都是各自獨立的,但是實際上,收集上述信息的系統並不是各自獨立運轉的。因此情境推理(contextual reasoning)也有助於給出更準確的預測。例如一群行人通常會同時等紅燈、同時過馬路,一輛車試圖併線時另一輛車會剎車讓路,以這些外部信息、先驗知識做約束,理解複雜場景會變得更為容易。
最後,一個我認為十分重要但是並沒有引起較多重視的領域是不確定性推理(reasoning under uncertainty)。人類感官或者車輛感測器拿到的數據中必然包含著不確定性,因此,如何準確地評估不確定性,併兼顧「最小化風險」和「完成任務」,是一個重要的話題。理想情況下,所有上述檢測、分割、重建、定位任務都應該在不確定性約束下進行,系統在行進之前應該知道它可能犯哪些錯誤。
機器之心:如何對與自動駕駛相關的計算機視覺任務進行分類?分類的標準是什麼?
以輸入進行分類是一種常見做法。按照輸入的來源,可以分為來自激光雷達、攝像頭、雷達、乃至車內的其他儀錶的數據。按照輸入表徵也可以進行分類,激光雷達給出的稀疏的點雲和攝像頭給出的密集的二維圖像就是兩種不同的表徵,採取的演算法也有所不同。按照維度也可以進行分類,用於三維輸入的演算法通常更為複雜,因為如果不採取特殊做法,三維輸入會快速耗盡內存資源。
另一種分法是按照線索分類。線索可以分為語義線索(semantic cues)和幾何線索(geometric cues),幾何線索是利用多張圖片通過特徵匹配和三角對齊得到深度信息。但是因為這種估算的誤差與距離呈平方關係,因此有很大的局限性。換言之,人類的視覺系統其實也是不適合開車的,因為我們的視覺系統只是為了在兩手張開的距離內進行操作而設計的。人類在開車的時候利用語義線索彌補了這一缺陷:即使只有一張圖片,理論上其中並不包含距離信息,人類仍然可以根據大量的先驗知識估計其中物體的相對距離。總而言之,自動駕駛系統可以通過安裝多個攝像頭獲得三維信息,也可以通過安裝一個攝像頭,但是通過強先驗來預判會看到什麼。理想情況下,我們希望將二者結合。
還有一種方法是根據物體是否運動以及如何運動進行分類。首先分為靜態部分識別和運動物體識別。對於靜態場景來說,有專門的標準重建演算法,基於「所有的東西都是靜態的」這一假設進行重構。但是事實上,我們需要從多幅拍攝於不同時間的圖像中重建場景,這就需要我們設計專門的演算法來處理場景中的運動物體。運動物體又可以分為剛性物體和非剛性物體。剛性物體的所有部分一起運動,可以用六自由度變化來描述它在三維空間中的運動軌跡。汽車就是一個剛性物體,而行人就屬於非剛性物體,行人有胳膊、腿,彼此之間以關節相連,在運動中,每一個部分的運動軌跡大相徑庭,因此刻畫行人的運動需要額外的自由度。
機器之心:任務之間是否有先後順序?是否存在一個自動駕駛系統通常採用的完成任務的流程?
首先,確實存在一些依賴關係。例如三維物體識別需要以三維信息為基礎。如果你只有普通的圖像,那麼通常就要從三維重建開始。雖然這不是必須要做的,但是大多數研究者選擇採用這個流程。也有人選擇用動作(motion)來輔助識別,但是動作只是一個非常弱的線索。
三維重建也不僅僅對三維識別有幫助,它也有助於運動估計。基於 RGBD 信息的運動估計難度要小於僅基於 RGB 信息的運動估計。
而基於地圖的定位也有助於行人及其他交通參與者的行為預判。例如,人行道的常見位置、紅綠燈的常見位置給出了一個關於行人運動軌跡的強先驗。另外,定位還能幫助你「穿牆透視」:即使路的轉角被高樓大廈遮擋住了,根據地圖定位,你仍然知道樓後面是馬路,而馬路上會有其他交通參與者存在。
機器之心:來自不同感測器的數據如何共同作為輸入服務於同一模型?
總的來說,識別或者檢測類任務是靠著找出物體的形狀和外觀進行的。不同的感測器的長處各不相同,激光雷達給出距離信息,但是很難描述外觀,因為激光雷達捕捉反射率,反射率與外觀並不直接相關。而圖像中雖然包含豐富的外觀信息,但是缺少距離信息。毫米波雷達的視野非常窄,但是可以進行遠距離測距和測速。
理想情況下,你要根據不同感測器的特點去將它們生成的數據組合在一起。例如,如果你同時擁有立體視覺數據和激光雷達數據,你希望利用激光雷達的遠場數據和立體視覺的近場數據。這是因為在 10-15 米範圍內,立體視覺要比激光雷達精確,但是超出了這個範圍,激光雷達反而更為精確。
由於不同感測器之間的校準是非常困難的,因此在每一個點選擇信任哪個感測器的數據是一道世界性的難題。而結合的做法有很多,總得來說就是把不同的數據類型投射到同一個空間內。你可以用立體攝像機找到每個三維點陣里對應的像素值,把它和激光雷達數據結合,也可以把激光雷達中的深度信息投影回圖片里。
將二維色彩信息映射到三維點雲中
當然,這只是研究者通常採用的方法,從很多汽車製造商的角度,他們希望擁有信息冗餘,讓不同的感測器各自為政,作出獨立的決策。這樣一旦某一個感測器失靈了,其餘的感測器仍然能提供決策所必要的信息。
機器之心:研究者所採用的系統和汽車製造商使用的系統有哪些不同?
如今的車輛和駕駛員輔助系統通常都存在算力非常分散化的現狀。用於研究的車輛可以有一個集中的處理器,但是如今的車輛中系統的現狀是,攝像頭的算力只與攝像頭相連,控制系統的計算單元算力也非常小,你只能把物體基本信息提交給它,無法把深度信息全部提交給它。
但是理論上,只有當你集成了所有感測器獲得的信息,才能獲得最佳的性能。因此這也是從當今的駕駛輔助系統到自動駕駛汽車需要完成的一個轉變。
機器之心:現如今,絕大多數自動駕駛公司仍然選用不同類型、數量的感測器,開發自己的系統。不同感測器帶來的差異有多大?
大多數感測器的工作原理還是相似的。例如,對於攝像頭而言,大多數公司都選擇對光線變化儘可能敏感的,或者說動態範圍(dynamic range)儘可能大的攝像頭。這是因為如今攝像頭的動態範圍仍然遠小於人眼,例如,從陽光下駛入隧道後就要求系統迅速更換攝像頭的結構以適應突如其來的黑暗。此外,世界上生產感光元件也只有屈指可數的幾家,因此攝像頭之間的差別並不大。
但是,即使完全相同的攝像頭,安裝的高度、位置不同,視野里看到的東西就會存在很大的差異。比如卡車車頂的攝像頭和普通的小型車車頂的攝像頭,其相對於路面的相對位置的巨大差異就決定了他們的很多配置和演算法無法通用。這是一個有待解決的研究課題。
至於激光雷達,如今的大多數激光雷達都來自 Velodyne。但是現在也有越來越多新牌子湧現。同時,在傳統的旋轉式雷達之外也發展出了更便宜、更容易裝配的固態雷達。從學習的角度,這都是需要適應的部分。
毫米波雷達更為神秘,各家都將其工作原理視為機密,拿到毫米波雷達的原始數據都很困難。
總體來講,如今用於研究的設備配置方法都非常類似:例如把攝像頭放在儘可能高的地方、儘可能在每個方向都設置攝像頭等等。如今也有越來越多功能更為強大的攝像頭問世,有的攝像頭的解析度已經接近人眼,有的致力於更遠的焦距。
機器之心:現在的自動駕駛視覺領域都有哪些前沿問題?
一個非常重要的問題是如何處理那些分布里極少出現的稀有事件、個案。如今行之有效的自動駕駛演算法都是監督演算法,而我們在收集訓練集的時候無法拿到大量的稀有事件標記數據。我認為,我們需要找到好的稀有事件生成模型,現在,稀有事件刻畫的領軍團隊無疑是 Waymo,但是他們採用的方法是搭建一個大實驗室,把各種稀有事件人工演出來。
領域遷移是另一個大問題,我們不希望換了環境/車之後就要重新訓練模型。遷移學習能夠一定程度上通過在一個數據集上訓練、在另一個上面精調來解決這個問題,但是這並不是最終的解決方案。
此外,模擬(simulation)雖然不像前兩項那麼重要,也仍然有進步的空間。尤其是如何跨越從模擬到真實以及從真實到模擬的差距。模擬永遠只是模擬,模擬能夠表達出的維度永遠無法達到真實世界的複雜程度,紋理、幾何關係都過於簡單了。前面談到的稀有事件也是無法通過模擬習得的。
最後,自動駕駛終歸需要作出「主觀判斷」,這是整個人工智慧領域面對的一個挑戰:系統需要在前所未見的場景中進行決策,並且決策時可能需要稍微「違背規則」,這是計算機所不擅長的事情。
機器之心:能否介紹下您在圖賓根大學/馬普所的自動視覺組的工作重點?
上文提到的研究我們大部分都有涉及。
我們進行一些底層的研究,例如三維重建和三維動作預測。我們研究生成模型,我希望能將現有的生成模型擴展到能夠生成整個「世界」的模型:生成內容包括幾何信息、動作信息等等。當然,整個學術界距離實現這一步還有很長的路要走,但是一旦實現,這將對模擬以及自動駕駛的訓練給予極大幫助。
另一方面,我們也在研究小數據學習,因為數據是一個太大的問題。在 KITTI 360 數據集中,我們就做了一些嘗試,例如在三維空間進行標註,然後由此獲得二維的標註。對於動作估計來說更是如此,因為人類甚至不能很好地對動作數據進行標註。
還有模擬與真實世界的連接,例如我們近期的工作在研究如何把虛擬的物體放進真實場景中,這樣我們只需要對我們真正關注的部分建模。
在通過多幀三維點雲建立的三維重構空間里進行一次標註,能夠同時得到多張二維圖像的標註
從模型的角度來看,我們主要研究深度學習模型和概率模型。我們對學術界的貢獻主要在於將深度學習應用在三維數據、稀疏數據等由於存儲或模型能力限制而在現階段無法獲得較好效果的子領域。我們也在思考,分模塊的自動駕駛系統是不是最優的解決方案?不考慮中間輸出的端到端的自動駕駛模型會不會是更優的解決方案?最極端的端到端模型是用一個單獨模型拿到圖像之後直接進行方向盤、油門剎車的控制,但是建立這樣的模型也非常難,我想二者中間某處可能存在更好的解決方案。
我們也致力於提供基準(benchmarking),提供一個比較不同模型的公允基礎。包括 KITTI 等一系列數據集、學術會議上的研討會和挑戰賽。KITTI 數據集本身就提供了超過了 10 項挑戰。
機器之心:您如何選擇研究課題?
研究的終極原則是,不應以「最大化論文數量」為目標,應該以「最大化領域貢獻」為目標。這也是為什麼我們致力於建立基準:自動駕駛研究領域在 KITTI 的影響下發生了很多變化。
另一個原則是「更進一步」,在直接能夠投入業界應用的演算法之外,我們更關心那些高風險,但是也潛在具有高收益的演算法:它們有很大的概率會失敗,但是一旦成功,就會是跨時代的一步。
機器之心:能否簡要介紹一下 KITTI 數據集?
我們一共進行了超過六小時的行駛,並且公開了三小時的行駛數據。這聽起來並不多,但是相比於之前的自動駕駛公開數據集,已經有了一個非常巨大的數量上的提升。
KITTI 的優勢在於我們在車上安裝了各種感測器。第一代數據集包括了激光雷達、攝像頭、GPS、IMU 等不同感測器的信號數據。
KITTI 數據採集車
我們在網上以挑戰賽的形式發布了一系列任務,任務包括立體視覺、光流、場景流、二維物體識別和三維物體識別、鳥瞰圖物體識別、語義分割、實體分割、道路與車道檢測、單圖像深度估計、深度完成(depth completion,把稀疏的激光雷達點雲數據變為密集的圖像)等。當前的自動駕駛系統需要的各類任務我們都有涵蓋。
每個任務的訓練集大小主要取決於標註難度,例如立體視覺和光流有 400 張標記數據,動作估計有超過 10,000 張標記數據,單圖像深度估計有 90,000 張。
我們給出了訓練集和不包含真實標籤的測試集。研究者每個月可以向伺服器上傳他們的結果,我們則給出性能反饋。我們不向研究者提供測試集的真實標籤,這在一定程度上解決了過擬合問題。
機器之心:如何選擇衡量標準(evaluation metrics)?衡量標準與損失函數之間的區別是什麼?
我們通常採用業界已有的衡量標準。例如,在立體視覺和光流任務中,我們計算正確與錯誤的像素數;在物體識別任務中,我們計算平均精度,即預測和真值之間重疊的面積與總面積的比例。
損失函數通常是我們想要實現的目標,在自動駕駛中,的確存在目標和損失函數錯位的問題,我們的一些研究也在致力於彌合這種錯位。例如,在光流任務里,一個左上角的代表天空的像素點真的和代表路面的像素點一樣重要嗎?如果不是的話,如何設置新的衡量標準?這都是我們在思考的問題。
機器之心:在數據集、衡量標準等方面,與自動駕駛相關的計算機視覺任務和通用計算機視覺任務有什麼差異?
首先是多樣性程度不一樣。自動駕駛是一個非常特殊的領域,這甚至讓演算法起步變得更「容易」:車輛不會行駛到下水道里、不會行駛在房頂上,如果你不知道身處何方,那麼預測面前的像素是「道路」,準確率其實很高。
但是另一個角度,自動駕駛和通用計算機視覺對演算法精度的要求也是截然不同的,一個準確率 99% 的人臉識別演算法已經很令人滿意,但是一個準確率 99% 的自動駕駛模型大概每天都要撞翻點什麼。因此自動駕駛需要注意圖片里的細部,注意那些此刻距離我們很遠,但是過一會兒就會出現在我們眼前的物體,通用視覺任務不需要如此。
此外,數據收集的難度也截然不同,通用視覺任務的數據集大部分來自互聯網,但自動駕駛所需的數據不是天然存在的。也很難標註。在業界,僅僅 Mobileye 一家公司每天就有近千人在專門進行數據標註,業界的演算法與學界公開的演算法相比,未必有顯著的優勢,其性能優勢主要來源於數據優勢。
機器之心:KITTI 360 相比於之前的版本有哪些更新?衝浪科技在數據集的建設方面做出了哪些工作?
KITTI 360 仍然沿用了同一輛車,我們增加了一個激光雷達,給出了更多、更加精確的三維信息。我們也增加了 360 度圖像,為數據擴增建立了環境地圖。我們希望這能讓我們更好地標記視野中的物體。
我們和衝浪科技合作開發了 KITTI 360 用到的三維標註工具(文中大部分示例圖片截取自該點雲數據標註平台)。自動駕駛的標註是一項十分複雜的工作,例如像素級別的語義和實例分割,通常情況下一張圖像的標註要耗時 60 - 90 分鐘。而利用我們共同開發的標註工具,標註時間被極大縮短,這對於實驗室而言是至關重要的。
標註工具界面
今年年底我們會公開一些與三維視覺理解相關的新任務,比如圖像中所有物體的識別以及方向估計,我們仍然在探討合適的組織方式。同時我們也很關注時序連貫的分割,因為時序連貫是自動駕駛數據的固有特性。
關於衝浪科技:
衝浪科技致力於為全球自動駕駛公司提供多感測器的數據解決方案,包括:無人車多感測器的融合、自動駕駛數據的採集、導入、及點雲數據的可視化等方案,並且所有通過多感測器採集的自動駕駛數據可以通過衝浪科技自主研發的點雲和彩色數據融合的標註平台進行標註。
衝浪科技和 Andreas Geiger 實驗室有著深入的合作:目前衝浪科技參與共同討論整個標註流程及設計,讓演算法和人工可以高效地結合在一起,共同開發出更完善的標註流程和工具。衝浪科技的每個數據集都由精通演算法的技術專家 Geiger 設計,會針對數據集可能出現的實際問題對數據集進行規劃。數據集的採集、標註、質檢流程更嚴格,對數據集的檢查需要 3 步 100% 的質檢,數據準確率達到 98%。
※Dota 2被攻陷!OpenAI 人工智慧5V5模式擊敗人類玩家
※南科大翁文康NSR論文:「量子霸權」的基礎概念和可行方案
TAG:機器之心 |