如何打造基於攝像頭的感知定位解決方案?

在研究和實踐感知定位的時候,你是否遇到以下這些問題:環境感知、高精定位與高精地圖三者之間的關係是什麼?為使得自動駕駛落地更可期,環境感知、高精定位與高精地圖三者應該如何配合?眾包高精地圖的構建條件是什麼?如何平衡高清定位中各傳感器的權重問題?本文為你解答。

本文為DeepMotion聯合創始人兼CEO蔡銳講課的圖文實錄,主題為《自動駕駛的感知定位與高精地圖解決方案》。

主講實錄

蔡銳:大家晚上好,我是DeepMotion的蔡銳。非常高興有機會和大家交流,也非常開心在週末的晚上能有這麼多的朋友來參與公開課,感謝大家。

我今天分享的主題是自動駕駛的感知定位與高精地圖解決方案。

自動駕駛的感知定位和高精地圖,隨便抽取任何一個環節出來都足夠講一天,因此今天在這裡就利用時間和大家主要是分享一下我們對這幾大塊之間的一些想法和認知。

首先介紹一下我們自己,深動科技成立於2017年7月,整個團隊專注於為高級別智能駕駛提供安全可靠、可量產的環境感知、高清地圖構建以及高精定位的解決方案。

創始團隊主要來自微軟研究院,均從事了多年的計算機視覺,包括立體視覺以及深度學習相關的一些工作。微軟的一些核心產品比如必應搜索、Hololens與微軟認知服務也都有我們的貢獻,我們在這塊有著豐富的經驗和積累。

從最早的DARPA智能駕駛比賽到Google在2009年開始做這件事情,再到Waymo以及到目前國內外各種自動駕駛技術的逐漸成熟。我們可以看到,在不計成本的情況下,從技術方面來說,自動駕駛的可行性已經得到了較為充分的驗證。所以目前在整個發展過程中,大家更願意或者更需要花力氣去做一些事情,如何在成本和性能之間達到一個更好的平衡,這也是整個商業發展所必然經歷的一個過程,類似地,從最早的飛機的發明到商用也是這樣的一個過程。深動科技希望在這個過程中,立足於技術創新,推動整個高級別智能駕駛技術的逐步落地和深化。

今天主要和大家分享三個部分的內容:

1,環境感知、高精定位與高精地圖,分享一下我們對高級別智能駕駛中環境感知、高精定位與高精地圖這三個模塊之間的關係的理解;

2,解決方案:眾包高精地圖構建,講解一下在眾包高清地圖構建方面的一些解決方案;

3,基於高精地圖的感知與定位。

首先來談談第一部分,關於環境感知、高精定位和高清地圖之間的關係以及我們的一些思考。

如何打造基於攝像頭的感知定位解決方案?

關於智能駕駛,普通大眾最瞭解以及最能直觀感受的就是環境感知這部分了,環境感知是智能駕駛中相對於現有的汽車工業來說的一個全新模組,因此也得到了最多的關注。

目前在環境感知方面,大家可能有不同的方案,有激光雷達方案,分為高線束和低線束;也會有傳統的視覺方案,使用攝像頭;毫米波雷達的微波反射信號等;對於激光雷達,大家最主要的工作就是從點雲中快速地分辨出障礙物和有語義信息的物體,比如行人、車輛等;在視覺方面,如上圖所示,要判斷圖像中每個像素的類別,從而達到對環境的語義理解;相對而言,毫米波雷達的信號主要是一些微波反射,現在一些可以成像的毫米波雷達技術也在發展之中。目前還有一些多傳感器融合的工作,比如把激光點雲信號和圖像信號對齊,然後在更高維的特徵空間中去做一些事情,這些都是很好的趨勢。這裡我想強調一點,目前的感知技術基本上也只是用了傳感器本身的信息而已,並沒有去考慮別的可能有用的信息。

如何打造基於攝像頭的感知定位解決方案?

高精定位,可能在相應的科技報道里面提的會比較少,但是相信對於智能駕駛的從業者來說,對這一塊都應該是非常熟悉。目前高級別智能駕駛的解決方案,基本上還是採用了最早的測繪級定位手段,主要是依賴專業級的GNSS,再加上一個專業級陀螺儀做的INS來做車輛的姿態估計,為了能達到車道級別的定位準確性,會輔以RTK信號,可以用自建的基站或者是用千尋位置等企業提供的RTK服務。

對於高精定位這種專業級的設備,如果要求在GPS失鎖時的精度能達到足夠高,那麼對慣導本身的要求以及價格成本就會呈指數級增長,市面上大家能用的設備,便宜的可能是數萬塊錢,如果不計成本,那麼價格在30萬以上都會是有的。

大部分無人駕駛系統中,高精定位做為一個獨立運作的功能模塊,主要是通過衛星和慣導信號的組合來得到對車輛位置的獨立估計。這在以尋跡為主,或者一些規定路線駕駛中也能達到很好的效果。但是在一些更廣闊的使用環境裡面,比如城區高樓密集的情況下,也會是有一定的挑戰。

如何打造基於攝像頭的感知定位解決方案?

現在高精地圖領域,主要是以圖商為主在做一些高精地圖的繪製和採集。目前比較成熟的方式還是採用專業測繪的方式,就是用激光和高精定位結合的方式對環境進行三維掃描和重建。

目前一輛專業級的採集設備,價格可能是800萬到1000多萬,稍微便宜一點的,至少也得百萬起步。

在採集的過程中,專業技術人員在每次作業之前都會對車輛和設備進行校準,在需要的情況下,會輔以RTK的基站來規劃採集的路線。因此可以看出人力成本也是不可忽略的。

此外,內外業人員的配比目前也是行業的一個痛點,因為外業採集一公里的數據,內業處理的時間或者處理的人數會達到1:5或者是1:6,甚至是更高的配比。

目前高精地圖的繪製會把更多更精確的信息記錄下來,包括座標的信息,比如坡度、橫坡、曲率等。在有可能的情況下,還會進一步記錄路面的反射率,這主要是為了後期能識別路面的交通標識,以及希望反射率能夠在一定條件下提供一些可能會用到的定位幫助。

如何打造基於攝像頭的感知定位解決方案?

目前來說,對於智能駕駛中的環境感知、高精地圖的繪製以及高精定位這三塊來說,我們認為在絕大多數現有的應用中還是一種比較鬆散的耦合。環境感知就是做好自己的事情,處理好一個或多個傳感器的信號輸入,儘量基於傳感器的輸入信息判斷出周圍環境存在的障礙物以及相關的環境信息;對於圖商來說,就是儘可能地用最好的設備和最好的工藝把所有能記錄下來的信息都記錄下來,並做一個高精度高質量的地圖;對於高精定位來說,就是使用最好的位導加慣導設備,即使是在衛星信號失鎖的情況下,也提供儘可能高的定位精度。

最終這三個模塊的信息都交給決策控制模塊。決策和控制模塊會首先根據高精定位返回的釐米級精度的GPS位置去查詢高精地圖,從而得到前方的道路拓撲結構、所處車道以及車的行走軌跡和相應車道的GPS座標等。環境感知模塊負責在行進的過程中不要撞上別的障礙物。因此,可以看到這三塊都是比較獨立地為決策控制模塊提供輸入信號,讓決策控制模塊做出後續的判斷和操作。

如何打造基於攝像頭的感知定位解決方案?

我們認為這三者應該是以一種更加緊密的方式來進行聯繫。

首先高精地圖和環境感知的關係。上圖是中關村路口的一張照片,我每天都會經過這個路口,我是從東往南走,會在橋上進行左轉,在左轉的時候,司機都會看見三個燈,我發現很多司機都會非常的猶豫應該按照哪一個紅綠燈的指示來操作,當B處的綠燈亮時,很多的司機都會下意識地鬆開剎車向前開,發現不對後又停了下來。

其實細心的同學可以看到左轉的控制燈是在C位置上一個比較小的紅綠燈,因為我經常經過這個地方,所以我在熟悉了環境以後,知道應該在什麼地方去找紅綠燈。這就告訴我們一件事情,在環境感知時,環境的上下文會為環境感知提供很多有用的信息。有了環境上下文以後,我就會直接去C位置看紅綠燈顏色的變化,而不會在AB處找。從機器層面來講,首先計算量會大大減少,同時也有助於提高及機器判斷的準確率。

當然這只是例子,在未來的使用,對於可以通過信號控制的設備,更有可能是使用V2X的方式來處理,這裡只是作為一個例子,告訴大家語義上下文對於環境理解的準確率是很有幫助的,而我們人也是的確是這樣去做的。

如何打造基於攝像頭的感知定位解決方案?

這張圖表明的是定位的方式,人類對於自己所處位置的定位是標準的三角定位過程,通過比對環境中的一些參照物來確定自己的相對位置,這與GPS的絕對定位是存在著本質差異的。

絕對的GPS定位,可以認為是閉著眼睛的。會有廣播輸入告訴現在所觀察到的衛星的位置,同時會有一個陀螺儀,通過觀察陀螺儀的的運動來判斷自身的瞬時運動。

但是人類在定位的時候,更多依靠的是用眼睛觀察周圍的環境和物體,從而判斷自己的相對位置。我們知道,絕對定位會受GPS信號的影響,比如很長的隧道或者是山區。考慮到這些情況,通過比對參照物的方式來做相對的定位也是很需要的。這也是高精地圖和高精定位應該產生更緊密聯繫的佐證吧。

如何打造基於攝像頭的感知定位解決方案?

基於以上的觀察,我們把前圖重新修正了一下。我們認為在這個過程中,高精地圖、環境感知以及高精定位應該是更緊密的耦合。高精地圖可以為環境感知提供上下文,也能為高精相對定位做一些很好的參照物比對。同時在實操中,基於高精定位和環境感知的結果,也可以實時地對高精地圖中的一些變化部分進行實時修正。因此這三個模塊在自動駕駛車輛中應該是以更緊密耦合的運行方式。

在目前情況下,鬆散地使用高精地圖、高精定位和環境感知模組有助於快速交付可以運行的Demo。但是從長期來說,我們認為這三部分的緊密耦合一定有助於提高環境感知和定位的精度。同時一定程度上也可以降低對設備的要求,從而使自動駕駛的落地更可預期。

如何打造基於攝像頭的感知定位解決方案?

接下來講解一下第二部分,我們對眾包高精地圖構建的一些思考。

如何打造基於攝像頭的感知定位解決方案?

首先我們認為,不管用什麼方式來做高精地圖,都應該滿足以下三個要求:

1、支持國標中所定義的各種車道線、交通標識、道路標牌,道路的彎度曲率等豐富的道路元素及屬性。這些屬性有些是測量一次之後可以長期使用的,比如一條路在修了以後,它的曲率、坡度等物理特徵基本上都是定義好了的。其他的如交通標識、路面施畫以及周圍的路牌都能有可能經常變化,地圖需要很好的體現這些變化。

另外,根據不同的應用需求,我們還會擴展加入一些道路元素,比如道路中間的隔擋、燈杆或者別的參照物等。因此製圖的流程也應該能夠比較好地支持這些定製化的地圖元素。

2、需要滿足高級別自動駕駛對高精地圖精度的需求,也就是達到釐米級。

3、在實際應用中,除了上面第二條提到的對地圖精度的需求以外,為了使得地圖活性得到保證,需要可接受的採集成本和採集週期。在設計地圖製作方案的時候,必須要考慮到這一點。初期階段大家可以不計成本,不計代價地做出第一版底圖。但是在規模化生產應用以後,還是要慮到自動化、更新頻次和採集成本等因素。

如何打造基於攝像頭的感知定位解決方案?

我們設計的可眾包高精地圖構建分成端和雲兩部分。

在端這一部分,我們會通過車載的GNSS以及慣導來做兩方面事情。一方面是估計車輛自運動,得到車輛的6-DOF位姿。從上圖可以看到,在實踐中我們會用一些語義級的特徵,首先對圖像進行地圖元素的識別和分割,再對識別結果進行比對,然後結合慣導和GPS的信息來比較準確地估計車輛6-DOF的姿態。

當有了姿態之後,可以很方便地把剛才圖像識別所得到的一些地圖元素進行矢量化的抽取,其中涉及到一些比較複雜的處理,比如道路平面的估計以及識別結果的規整,使其標準化。結合姿態,可以很自然地把這些元素放在三維空間中。

我們統計了一下相關的一些數據,如果真正要做一個高效的採集系統,目前傳統的內外業方式不一定完全適用,因為大量數據不能夠實時處理,也就不可能眾包。同時大數據的拷貝、遷移等也會對整個地圖的生產過程造成比較大的延時。

因此我們提倡的是把矢量化的地圖元素結合當前採集車輛的6-DOF位姿進行打包後壓縮,然後傳回雲端。我們估計在城區中的數據量大概在40-50KB/Km,城區道路元素相對多一點,而對於高速公路來說,數據量要小很多。

對於眾包車輛來說,我們可以要求它只提供矢量化的元素。如果是希望做從0到1的製圖過程,我們也支持存儲一些關鍵幀,以便後期對製圖的質量進行更好的把控。

在基於眾包的情況下,傳回雲端的數據主要包括車輛姿態以及一些矢量化的道路元素。我們會根據車輛所在的位置(絕對座標)對其進行一些分組。大家都知道在傳統的作圖過程中,是分成小塊一個個進行處理的。類似地,我們也會把地圖分成幾塊,每一塊裡面會做相應的層級空間聚類。

對於每一塊中的軌跡,包括相應幀中的姿態以及關鍵幀中的矢量化地圖元素,如何從不同的軌跡中去找到它們之間的相對關係,比如如何快速地判斷本次採集中的某個路口的某個箭頭和前次採集中的箭頭是不是同一個。

當你能夠很高效準確地做這一點以後,那麼就會在多條軌跡之間建立約束。一方面可以連在一起生成更大的軌跡地圖,另一方面,這些約束會對整個軌跡的幾何結構優化產生相當重要的作用。這整個過程都是在雲端進行的,最後的輸出就是大畫幅、大尺寸、矢量化的高精地圖。

如何打造基於攝像頭的感知定位解決方案?

為能達上述目的,這是我們現在在車端使用的基於NVIDIA TX-2的算力單元。這塊小板上既有CPU也有GPU。CPU主要負責同步GNSS、IMU、Camera的時序信號、負責整個車輛的自運動估計,以及輸出矢量化的地圖元素。另外我們會利用板上的GPU來做道路元素的識別和分割。可以看到,這塊板卡的算力要承擔比較多的任務,因此如何在時間上和不同線程之間合理地分配計算資源,保證在車輛軌跡不丟失的情況下,保證比較高準確率的道路元素抽取,這是一個很大的挑戰。其中會有非常多的研發和調試的工作需要去做。

以目前的技術水平,基於這樣的板卡基本上能做到10fps以上的處理速度,在車速80-90km/h的情況下也能滿足作圖的需求。

如何打造基於攝像頭的感知定位解決方案?

這是一個真正在雲端多軌跡融合的例子,真實情況較為複雜。在不同情況下,採集車輛所處的車道不一樣,所看見的視野也不一樣,在不同視野裡,不同地圖元素的準確精度也是不一樣的,這點做視覺的人都應該知道,所以在多個軌跡中不僅僅有軌跡的拓撲結構,你所看見的元素可能也會有些差異,那麼估計出來的矢量化地圖元素的座標可能也會有不同的精度。其中最核心的算法就是不同軌跡中地圖元素的配準。還有一個難點是基於矢量化的地圖元素和採集車的行進軌跡,推理出道路的拓撲結構,這些事情也是放在雲端來做的。

如何打造基於攝像頭的感知定位解決方案?

接下來講解一下第三部分,我們在基於高精地圖的感知與定位上的一些想法。

如何打造基於攝像頭的感知定位解決方案?

這是我們現在所研發方案的一些功能特點。首先我們還是堅持以視覺為主,因為我們認為視覺的潛能還是很大的。當然我們也不排斥多傳感器,因為要想很快的實用,在現有的情況下還是需要多傳感器冗餘的信號輔助,因此我們的方案會輔以低線束激光雷達來做這件事情。

而我們希望能達到的效果是即使在GPS信號比較弱的區域,仍然能夠提供一個足以支持高級別智能駕駛的定位精度。

另外,我們的方案也會支持多種不同的攝像頭、激光雷達、GNSS/IMU模組,從而提供在未來一定時間內,市場可接受的一種硬件配置。

如何打造基於攝像頭的感知定位解決方案?

這張圖是我們的整個系統架構,實踐中它們的關係比較複雜。我儘量把它呈現出來,希望能給大家解釋清楚。

這裡面主要有兩件事情,分別是高精定位和環境感知。

在高精定位中,整個系統會有IMU和GPS信號輸入。通過攝像頭獲取圖像,進而通過感知模塊把地圖元素給抽取出來。地圖元素和高精地圖做比,再結合GPS和IMU信號,得出高精度的定位座標。

當有了高精定位以後,我們可以把地圖在當前視野裡進行一個反投。可以把地圖的投影看作是一種mask,mask中標記出地圖元素應該出現在當前視野中的哪些位置。之後再結合攝像頭和激光雷達,就能夠做到更好的環境感知。

這裡會出現雞和蛋的問題。環境感知希望地圖投影給它一個mask,能夠讓它做得更準。但為了得到地圖投影,又需要知道當前車輛的位置和姿態。而定位本身又依賴於環境感知部分從當前圖片中抽取的地圖元素。

因此在實操中,這是一個迭代的過程。在t+1的時刻,即使這時還沒有高精定位的位置,也會根據前一時刻t的位置來做一個預測。這個預測的位姿會用來做地圖投影。在有了地圖投影之後,把投影輸入到環境感知模塊中,再進行t+1時刻地圖元素的抽取,進而去改進t+1時刻的高精定位。

在實操中會發現地圖投影並不需要是非常準確的位姿。地圖投影本身只是提供圖像中的一個大概的目標區域,來告知感知模組哪裡有需要識別的環境語義標識。

如何打造基於攝像頭的感知定位解決方案?

高精定位本質上就是一個優化問題,我們有GPS觀測、慣導觀測以及地圖和圖像中地圖元素檢測結果之間匹配狀況的關係。這裡有多重約束,不同約束會對應車輛位姿的不同部分,比如GPS是對position(位置)的約束,IMU會約束車輛的orientation(朝向)和時序上的位置變化。而地圖與圖像的比對會對位置和朝向的6-DOF(自由度)都會有約束。

實操中最難的是如何根據在車輛行進過程中去自適應調整不同的約束在整個優化cost中的權重。舉個例子,在過隧道的時候,我們完全不應該去相信GPS信號,需要直接忽略它了cost。此外在實際上也會考慮到傳感器本身置信度,比如IMU的噪音漂移等情況。這就需要去預測這幾個信號之間可信度的時序變化,並對此進行建模,從而幫助不斷調整不同約束在融合中的權重。

最後,深度學習對圖像處理的幀率可能不夠高。但操控車輛的時候,往往需要更高幀率的位姿輸出。這裡就涉及到在圖像間進行姿態插值,利用IMU信號來得到更高頻的輸出,這些也是實際中所需要考慮的問題。

如何打造基於攝像頭的感知定位解決方案?

對於環境感知來說,毋庸置疑,大家首先會考慮使用RGB的圖像信息,也會把Lidar的空間數據放進感知系統中,同時比較重要的是會把高清地圖在當前幀的投影也輸入到神經網絡中。因此我們神經網絡有三種不同信號的輸入。

對於神經網絡的輸出,一方面是比較標準的像素級圖像的語義分割,同時我們還會恢復一個非常稠密的深度圖。在這個稠密的深度圖恢復過程中,我們用到了高精地圖對路平面的估計,也用到了Lidar點雲以及圖像的信息,使得最終的數據是一個比較稠密的深度圖。神經網絡會同時輸出空間和語義這兩方面的信息。這是一個在比較底層的特徵融合,體現在網絡本身的結構和權重的優化過程中。

每幀數據都有了這兩方面的信息以後,可以建立一個local(本地)的空間座標系。在這個座標系中,路平面、車輛、交通標識等都可以用一種真3D的模式得到表現。這也為後續車輛的控制和決策提供了非常直觀的輸入。

如何打造基於攝像頭的感知定位解決方案?

最後我們總結一下,從DeepMotion出發,有兩個觀點。

1.我們認為應該重新思考高精地圖在整個自動駕駛環節中的地位。就是以高精地圖為核心,提供更好的環境感知與高精定位。

2.在不計傳感器成本和設備成本的情況下,已經證明了智能駕駛的可行性,那麼在當前落地的過程中,我們應該花更多的功夫去充分挖掘算法和和背後大數據的潛力,儘可能地在不損失安全性的情況下,在性能和成本之間達到一個更好的平衡,使量產和落地變得更可期。

我的講解到此結束了,歡迎更多的朋友在線上線下和我們多多討論,大家共同合作推動無人駕駛在整個應用場景下的快速落地。謝謝大家。


分享到:


相關文章: