高精地圖中地面標識識別技術歷程與實踐

amap_tech發表於2019-11-14

導讀:本文將主要介紹高德在高精地圖地面標識識別上的技術演進,這些技術手段在不同時期服務了高精地圖產線需求,為高德地圖構建高精度地圖提供了基礎的技術保證。

 

1.面標識識別

地面標識識別,指在地圖道路中識別出各種型別的地面標識元素,如地面箭頭、地面文字、時間、地面數字、減速帶、車距確認線、減速丘、人行橫道、停止讓行線、減速讓行線等。這些自動化識別結果將作為生產資料交付給地圖生產產線,經過製作後演變成服務於自動駕駛、車載導航、移動導航的地圖。

高精地圖一般對各個地圖要素精度至少有著釐米級的要求,所以相對於普通地圖來說需要更高的位置精度,這也是與普通地圖識別的最大不同,所以探索如何將地面標識識別得又全又準是我們一直努力的方向。

地面標識識別有兩大難點:一是地面標識本身的種類、大小繁多,二是地面標識易被磨損遮擋,清晰度參差不齊,這給高精度識別帶來了巨大的挑戰。

1)地面標識種類繁多:實際場景中地面標識種類繁多,在內容、顏色、形狀、尺寸等方面均有不同分佈。

顏色:比如黃色、紅色、白色等

形狀:箭頭形、各種文字數字形狀、條形、多條形、面狀、丘狀等

尺寸:國標定義的標準箭頭長度為9m,但也存在1m~2m甚至1m以下的地面標識元素,尤其減速帶以及人行道等尺寸差異會更大,反映到影像中畫素個數以及長寬比均會有較大差異。

圖1. 部分地面標識


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維以及更高維識別、從單源識別到多源融合等。

目前,高精地圖多采用人工作業,人工作業質量和效率始終是一個矛盾點,相比之下,機器自動識別有著更高的效率、更低的作業成本以及不亞於人工的作業質量。自動識別的應用必將加速高精地圖構建,推動高精地圖產業發展。高精度地面標識識別技術已經在高德高精地圖內部得到應用,有效提升了資料製作效率與製作質量,為高德構建高精地圖提供堅實的技術支撐。 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69941357/viewspace-2664150/,如需轉載,請註明出處,否則將追究法律責任。

相關文章