導讀:本文將主要介紹高德在高精地圖地面標識識別上的技術演進,這些技術手段在不一樣時期服務了高精地圖產線需求,爲高德地圖構建高精度地圖提供了基礎的技術保證。算法
1.面標識識別網絡
地面標識識別,指在地圖道路中識別出各類類型的地面標識元素,如地面箭頭、地面文字、時間、地面數字、減速帶、車距確認線、減速丘、人行橫道、中止讓行線、減速讓行線等。這些自動化識別結果將做爲生產數據交付給地圖生產產線,通過製做後演變成服務於自動駕駛、車載導航、移動導航的地圖。框架
高精地圖通常對各個地圖要素精度至少有着釐米級的要求,因此相對於普通地圖來講須要更高的位置精度,這也是與普通地圖識別的最大不一樣,因此探索如何將地面標識識別得又全又準是咱們一直努力的方向。機器學習
地面標識識別有兩大難點:一是地面標識自己的種類、大小繁多,二是地面標識易被磨損遮擋,清晰度良莠不齊,這給高精度識別帶來了巨大的挑戰。性能
1)地面標識種類繁多:實際場景中地面標識種類繁多,在內容、顏色、形狀、尺寸等方面均有不一樣分佈。學習
顏色:好比黃色、紅色、白色等大數據
形狀:箭頭形、各類文字數字形狀、條形、多條形、面狀、丘狀等優化
尺寸:國標定義的標準箭頭長度爲9m,但也存在1m~2m甚至1m如下的地面標識元素,尤爲減速帶以及人行道等尺寸差別會更大,反映到圖像中像素個數以及長寬比均會有較大差別。設計
圖1. 部分地面標識orm
2)磨損壓蓋多:地面元素終年累月受車輛、行人等碾壓會形成磨損,以及常常存在的堵車等場景更是加大了地面要素被遮擋的可能。因此從激光雷達獲取的點雲數據和由相機獲取的可見光圖像數據的質量均良莠不齊,對地面標誌識別帶來了極大的挑戰。
常見的問題以下所示,示例如圖2所示。
地面標識磨損:地面標誌因爲磨損褪色、掉漆致使不完整或者嚴重不清晰
採集環境問題:遮擋(施工、車輛)、因爲環境改變引發的材料激光反射率差別以及可見光不清晰(雨天、逆光等)
圖2. 天然場景下拍攝的地面標識
2. 識別起步
地面標識識別須要作的是將地面標識這部分區域提取出來,則最直觀的是對其進行閾值分割、骨架提取、連通域分析等傳統方法。首先獲取點雲中地面點集合,接着獲取集合中高反射率部分的骨架集合,而後對每一個局部骨架區域計算強度截斷閾值,最後對區域進行連通區域搜索以及附加降噪措施等。
另外咱們也嘗試了GrabCut等算法在地面標誌上的提取,GrabCut算法對前景和背景分別聚類,獲得k組相似的像素集合,而後對前景和背景分別進行高斯混合模型(GMM)建模,判斷像素屬於地面標誌仍是背景。在提取疑似地面標識區域後,再通過機器學習模型(SVM等)進行細分類以得到更好的識別效果。
圖3. 傳統提取方法識別結果
由上圖能夠看到,對於一些先後景區分比較好的地面標識提取的比較好,可是針對有磨損、模糊、前景背景類似、背景複雜等狀況均效果欠佳,容易漏召回且位置精度不高,魯棒性不強。
3.深度學習時代
2012年Hinton團隊提出的Alexnet網絡贏得了2012年圖像識別大賽冠軍,相比傳統方法得到顯著提高,CNN在圖像領域有了明顯優點。近幾年,基於深度學習的檢測識別技術也獲得了很大發展。
深度學習時代是數據和硬件驅動的時代,結合部分人工標註以及自動化生成,咱們擁有百萬級的數據,並且各類場景的數據還在不斷豐富,結合算法探索與創新,咱們取得了愈來愈好的技術與業務效果。
目前檢測識別技術主要分爲兩大方向:Two-Stage(如RCNN系列)和One-stage(SSD、YOLO等)。Two-Stage網絡優點在於效果總體較好,識別位置較精確,對小目標檢測也有必定的競爭力。
One-stage檢測識別方法優點在於處理速度較快。高精地圖不只須要較高的識別性能、也須要有足夠高的識別位置精度,因此咱們選擇了準確率較高的Two-stage大方向。
1)R-FCN檢測
結合位置敏感得分圖(position-sensitive score map)和位置敏感降採樣(position-sensitive roi pooling)等操做,R-FCN算法在目標檢測識別上得到了較高的性能和位置精度,咱們選擇了R-FCN檢測算法實現對地面標識的檢測識別。
R-FCN算法基於深度學習的方法,經過學習大量實際場景樣本,因此在泛化性上取得了比較大的提高,自動化識別對於不一樣場景的識別能力有所提升,地面標識召回率獲得了較大的改善。算法示意圖以下所示:
圖4. R-FCN算法示意圖
如下爲一些地面標識檢測識別示例:
圖5. R-FCN算法地面標識識別示例
引入深度學習極大的改善了高精地圖地面標識自動識別的性能,地面標識召回獲得了很大提高,美中不足的是R-FCN存在着一個弊端就是其輸出的最終檢測位置是基於地面標識類別的得分,但每每得分最高的位置並不必定跟實際位置最貼合,因此在位置預測精度上,R-FCN並不完美。
2)級聯檢測器
隨着深度學習的發展以及業界對目標檢測識別位置精度的要求不斷提升,更多高精度檢測識別算法被提了出來,如Iou-Net等。
咱們適時採用了更加先進的識別算法,以期得到更加精準的位置精度來知足產線業務需求,結合級聯檢測,利用Deformable-Conv自適應感覺野等技術提高算法識別精度。
該算法不一樣於傳統算法對roi進行一次預測迴歸獲得最終位置,而是經過級聯的形式不斷修正預測的位置和實際位置的誤差,每通過一個級聯迴歸器,算法識別結果均會更加貼合真值,這很是有利於提升識別精度,契合高精地圖對目標位置精度的高要求,最後在召回和位置精度上都達到更好的效果。
圖6.級聯檢測算法原理圖
如下爲一些算法識別結果示例:
圖7. 級聯檢測算法識別示例
經過引入級聯形式的檢測識別模型令高精產線自動識別能力在識別精度上獲得了不錯的提高,但咱們對自動識別位置精度提高的挖掘是無止盡的,因此有了如下的方案。
3)級聯檢測 + 局部迴歸
設想一下,若是咱們在地面標識區域進行局部的位置迴歸,那麼網絡就可以聚焦到更加細微的地面標識區域,最終獲得更加接近邊界的位置。結合實際在作地面標誌識別時,咱們將容易形成精度問題的部分單獨作位置精修,獲得了更加精細的位置。
如下爲部分算法識別結果示例:
圖8. 算法識別示意圖
採用檢測+迴歸技術方案實現了更加好的位置檢測精度,讓咱們離「真實世界」更進了一步。其缺點是技術方案流程較長,不夠簡潔美觀。
4)基於角點的檢測
基於角點回歸的目標檢測方法,使用單個卷積神經網絡預測兩組熱力圖來表示不一樣物體類別的角的位置,即將目標邊界框檢測爲一對關鍵點(即邊界框的左上角和右下角),以及每一個檢測到的角點的嵌入向量。其中角點用於肯定目標位置,嵌入向量用於對屬於同一目標的一對角點進行分組。
此種方法簡化了網絡的輸出,經過將目標檢測爲成對關鍵點,消除了現有的檢測器設計中對特徵層須要大量anchors的弊端,由於大量anchors形成了大量的重疊以及正負樣本不均衡。同時爲了產生更緊密的邊界框,網絡還預測偏移以精細調整角點的位置。經過預測熱力圖、嵌入向量、以及偏移最終獲得了精確的邊界框。
圖 9 角點檢測示意圖
因爲在檢測任務中須要獲取相同尺寸的特徵圖對目標進行位置迴歸、類別分類等,算法會對其進行量化以及降採樣等操做,不可避免會有精度上的損失。這個弊端帶來的最大影響就是經由檢測迴歸出的位置不夠魯棒,在某些狀況下會出現或多或少的偏移。
5)級聯檢測 + 分割精修
隨着語意分割技術的不斷成熟,基於深度學習的語意分割已經可以將輸入圖像進行像素級的分類,並且其精度也愈來愈高,也就是圖片中要素的輪廓愈來愈精細。
咱們採用以resnet 爲主幹的分割模型,並結合了自適應感覺野、多尺度融合、Coarse-Fine融合、感興趣區域注意力機制等技術實現了對地面標識的像素級分割。
爲了獲取地面標識的實體信息,咱們仍然用檢測來肯定地面標識大體位置,可是不一樣的是最終由對應區域的地面標識分割語義信息獲取最終精確的地面標識位置。
圖10.地面標識分割示意圖
如下爲部分檢測結合精修示例圖:
圖11. 分割精修示例
語義分割的引入使得地面標識的識別位置精度獲得了改善,解決了由檢測帶來的識別位置精度不魯棒的問題,使得高精地圖地面標識自動化效果上了一個新的臺階。
可是這種方法稍顯繁瑣,並且檢測和分割任務都須要耗費大量GPU資源,也就是說一張圖片須要同時屢次GPU運算加上後續的CPU後處理融合纔可以獲得最終的結果,若是可以將這些步驟優化,那麼必然可以簡化流程同時節省大量運算資源。
6)PAnet
基於以上考慮,咱們採用了基於PAnet的檢測識別算法。傳統的實例分割模型各層中的信息傳播不夠充分。PAnet較好的解決了這些問題,充分融合了coarse、fine特徵,不只有自頂向下的特徵融合還結合了自底向上的特徵融合,在高層特徵中充分融合進了底層的強定位特徵,解決了淺層特徵信息丟失的問題。
另外還結合了自適應特徵降採樣將不一樣特徵層進行融合提取roi特徵作預測,以及添加額外mask前景背景分類分支,使得預測mask更加精確,這些手段結合對於目標檢測位置精度有比較大的收益。同時,分割和檢測任務結合可以互相促進取得更好的結果。
圖 12 PAnet 示意圖
如下爲一些算法的識別結果示例。能夠看到算法對部分磨損模糊的地面標識也有了必定的寬容度,其位置精度有了巨大的改善。(圖中地面標識外框爲檢測獲得的大概位置,內框爲根據像素級分割獲得的位置,取內框爲地面標識最終位置)。
圖 13 檢測識別實例
採用上述方案須要將點雲投影爲2D空間,中間有必定的歸一化量化操做,不可避免的會損失一些信息,最直觀的是在一些點雲反射率較低的地方容易形成目標丟失。若是可以在原始3維點雲上提取那麼這些問題就迎刃而解。
7)基於3維點雲的目標檢測
基於上面的考慮,咱們探索原始點雲上的3D物體檢測,3D點雲識別是各類真實世界應用的一個重要組成部分,如自主導航、重建、VR/AR等。與基於圖像的檢測相比,激光雷達提供可靠的深度信息,能夠用於精肯定位物體並表徵它們的形狀。
咱們探索了多種3維點雲識別算法,好比基於bird-view、voxel等的3維點雲識別。因爲PointRCNN在原始3維點雲目標檢測上的良好表現,咱們採用基於PointRCNN的方法提取地面標識,整個檢測框架包括兩個階段:第一階段將整個場景的點雲分割爲前景點和背景點,以自下而上的方式直接從點雲生成少許高質量的3D proposal。
第二階段在規範座標中修改候選區域得到最終的檢測結果,將每一個proposal經池化後轉換爲規範座標,以便更好地學習局部空間特徵,同時與第一階段中全局語義特徵相結合,用於預測Box優化和置信度預測。
圖 14 3維點雲檢測
4. 效果與收益
大數據的支撐使得咱們的算法擁有更好的魯棒性與識別能力。結合算法中各類策略以及多種數據源(點雲、可見光等),咱們在不斷提高地面標識識別精度,其位置精度在Ground Truth 5cm範圍區間內達到99%以上,召回也達到了99.99%以上,各項指標都獲得了穩步提高。
上述方案已經正式上線,並處理了大量數據,準召率都達到了生產做業的要求,同時算法對人工做業產線的效率提高做用日益提升。如下是部分效果圖:
圖15. 地面標識檢測效果圖
5. 寫在最後
高精地圖被稱做自動駕駛系統的「眼睛「,與普通地圖最大的不一樣點在於使用主體不一樣。普通導航地圖的使用者是人,用於導航、搜索,而高精地圖的使用者是計算機,用於高精度定位、輔助環境感知、規劃與決策。於是高精地圖對地圖要素不只須要極高的召回率,還須要很是高的位置精度。
高精地圖中要素的識別對技術提出了比較高的要求,縱觀整個高精地圖產業發展,地圖製做逐漸從純人工過渡到半自動乃至全自動。期間識別技術也不斷獲得發展與完善,從手動構造特徵到自動特徵、從2維識別到3維以及更高維識別、從單源識別到多源融合等。
目前,高精地圖多采用人工做業,人工做業質量和效率始終是一個矛盾點,相比之下,機器自動識別有着更高的效率、更低的做業成本以及不亞於人工的做業質量。自動識別的應用必將加速高精地圖構建,推進高精地圖產業發展。高精度地面標識識別技術已經在高德高精地圖內部獲得應用,有效提高了數據製做效率與製做質量,爲高德構建高精地圖提供堅實的技術支撐。