當前位置︰首頁 > 新聞資訊 > 正文

機器學習在高德起點抓路中的應用實踐2019-07-29 14:54:11 | 編輯︰hely | 查看︰ | 評論︰0

數據對于地圖來說十分重要,沒有數據,就沒有地圖服務。用戶在使用地圖服務時,不太會想到數據就像冰山一樣,用戶可見只是最直接、最顯性的產品功能部分,而支撐顯性部分所需要的根基,往往更龐大。

1 導讀

數據對于地圖來說十分重要,沒有數據,就沒有地圖服務。用戶在使用地圖服務時,不太會想到數據就像冰山一樣,用戶可見只是最直接、最顯性的產品功能部分,而支撐顯性部分所需要的根基,往往更龐大。

地圖數據最先是從專業采集來的,采集工具就是車、自行車、飛機和衛星影像等,近兩年有了利用智能硬件的眾包采集。采集之後,就是把數據更新的速度和精準度都無限提升。因為地面上變化太快了,用戶越來越依賴于地圖應用。所以數據更新的速度和數據的準確度就是在乎用戶體驗的地圖公司的第一要務了。而數據更新的第一步,就是交通標志檢測。

本文將主要介紹機器學習技術在高德的地圖數據生產的具體應用,這些技術方案和設計都已經過驗證,取得了不錯的效果,並且為高德地圖數據的快速更新提供了基礎的技術保證。

2 “交通標志檢測”定義

交通標志檢測,特指在普通街景圖像上通過自動化手段檢測出各種類型的交通標志,如限速、禁止掉頭、人行橫道和電子眼等。這些檢測結果將作為生產數據交付給地圖數據制作流程,最終演變為服務于廣大用戶的地圖數據。

3 難點與挑戰

交通標志檢測的主要難點有樣式繁雜,且在拍攝過程中受自然環境的影響較大。此外,為滿足數據更新的速度和數據準確度的要求,對于算法的性能要求也格外嚴格。

3.1 樣本形態差異大

交通標志的形態差異主要體現在︰

類型繁多︰國標定義的交通標志有幾百個類型;

形狀多樣︰常見交通標志的形狀有三角形、圓形、方形、菱形、八邊形等,還有地面標線、電子眼、信號燈,以及限高桿、柵欄等物理設施;

顏色分布廣泛︰常見的有黃色、紅色、藍色、綠色、黑色、白色等;

圖像內尺寸差異大︰從幾百像素(如方牌、人行橫道等)到十幾像素(如電子眼)不均勻分布;

 

 

圖 1 常見道路交通標志 (標牌類)

3.2 自然場景下變化多端

在自然場景下,交通標志存在樹木或車輛遮擋、磨損等情況;天氣、季節等也會影響到圖像采集過程中,造成圖像模糊、顏色失真等。

 

 

圖 2 自然場景下拍攝的交通標志

一些外形與交通標志相似的標牌,如商戶的招牌、交通公益廣告牌等,對算法的準確率造成極大的挑戰。

 

 

圖 3 類似交通標志的噪聲示例

3.3 性能要求

準召率︰我們的應用場景中對于召回率和準確率的要求極高,任何未召回都會導致數據更新的延遲,而錯召回則會影響作業效率與作業周期,最終對數據的快速更新造成影響;

吞吐量︰高德每天需要處理上億張圖片,這就要求我們的算法不僅效果要好,處理速度也必須夠快,以免造成數據積壓,影響地圖數據的更新時效;

擴展性︰交通標志的類型不是一成不變的 (國標會存在調整,不同國家和地區之間各有特色),因此需要算法環節具有非常好的擴展性,能夠快速適應新增的各種交通標志類型;

4 高德地圖中的交通標志檢測方案

當前學術界針對目標檢測任務常用的深度學習模型一般都采用 End2End 的方式進行訓練,以得到全局最優的檢測效果。這個方案在使用時非常簡單,只需要標注好“幾百類物體的樣本”,然後放到深度學習的框架里進行迭代訓練,就可以獲得最終模型,主要可以分為 Two Stage(FasterRCNN[1]) 和 One Stage(YOLO[2],SSD[3]) 兩大類。

但是在實際使用過程中,需要應對如下問題︰

樣本標注成本高︰所有訓練樣本都需要進行全類別標注,當有新增類別時需要將歷史訓練樣本全量補標,成本極高;

無法單類迭代︰由于交通標志出現的頻率和重要性不等,業務上對于部分類型 (如電子眼、限速牌等) 的準召率要求更高。但是 End2End 的模型必須針對所有類型全量迭代,無法優化單一類型,導致算法迭代和測試成本極高;

模型訓練難度大︰我們需要處理的交通標志有幾百類,且各自出現頻率差異很大,使用單一目標檢測模型完成如此巨大的分類任務,模型訓練難度太大,收斂緩慢,召回率、準確率上難以平衡;

結合通用目標檢測技術的發展以及高德地圖對于交通標志檢測的需要,我們最終選擇了 Faster-RCNN 作為基礎檢測框架,它的檢測效果更好 (尤其是針對小目標),獨立的 RPN 網路也可以滿足擴展性要求。速度方面,我們也進行了針對性的優化調整。

在實際使用時,我們將檢測框架分為目標檢測與精細分類兩階段︰

 

 

圖 4 交通標志檢測的目標檢測和精細分類階段

4.1 目標檢測階段

目標檢測階段的目的是通過 Faster-RCNN 在圖片中檢測所有的交通標志,並進行粗分類,要求極高的召回率和執行速度。在實際使用時,我們采用了如下策略來提升算法能力︰

效果方面︰將檢測目標根據外形特征分為 N 大類 (如圓形、三角形、方形,以及高寬比異常的人行橫道等),再為每一類配置專屬的 RPN 網絡,各個 RPN 根據對應的尺寸特性設計 Anchor 的 Ratio 和 Scale;不同 RPN 根據需要使用不同層的特征圖,設計更有針對性;

效果方面,針對各個類型樣本分布不均勻問題,使用多種樣本增強手段,並在訓練過程中使用 OHEM 等方式進一步調整樣本分布;

效果方面,還借鑒了 IoU-Net、Soft-NMS 等方案,進一步提升檢測效果;

性能方面,各個大類之間共享基礎卷積層,保證檢測時間不會過分增長;

擴展性方面,對于新增類型,理想情況下只需要新增一個 RPN 網絡單獨迭代,可以不對其他類型的效果造成任何影響 (如下圖,RPN1 和 RPN2 完全獨立);

 

 

圖 5 多 RPN 設計示意圖

4.2 精細分類階段

精細分類階段的目的是對目標檢測階段得到候選框進行精細分類並濾除噪聲,保證極高的召回率和準確率。在實際實現中,還使用以下策略來提升效果︰

為每個大類配置獨立的精細分類網絡,互相之間不干擾;各個大類的迭代完全獨立和並行,可以多人並行研發,有效縮短研發周期;

針對各個大類的難易程度,選擇不同計算復雜度的網絡來完成精細分類和噪聲抑制,避免因為某些類型復雜度過高產生效率瓶頸;

樣本方面,各個大類可以獨立收集樣本,可以針對特定類型進行收集和標注,訓練和測試集合的構建效率大幅提升;

如下圖,針對圓形標牌,其差異比較明確,可以使用簡單網絡;針對方牌,需要根據文字布局和內容來區分正負樣本,分類難度大,因此必須使用較深的網絡︰

 

 

圖 6 精細分類模塊示意圖

由于同時使用了多個模型,上述方案會導致服務器的顯存佔用顯著增加,對計算資源產生額外要求。針對該問題,我們針對深度學習框架進行優化,動態分配並在各模型間共享臨時緩沖區,並裁剪框架的反向傳播功能,最終使得顯存佔用降低 50% 以上。

5 效果與收益

上述方案已經正式上線,準召率都達到了生產作業的要求,日均圖片吞吐量在千萬以上。以下是部分效果圖 (不同框代表不同檢測結果)︰

 

 

 

 

 

 

圖 7 交通標志檢測效果圖

6 小結

交通標志檢測技術已經在高德地圖內部得到應用,有效提升了高德地圖的數據制作效率,達成地圖數據更新速度接近 T+0(時間差為零)的目標。

目前我們也在把機器學習技術用于數據的自動化制作,進一步減少現實世界和地圖數據之間的差異,做到“連接真實世界,讓出行更美好”。

本文轉載自公眾號高德技術

原文鏈接︰

上一篇︰編程進階之路︰用簡單的面向對象編程提升深度學習原型 如何又快又好地搜索代碼?Facebook 提出基于機器學習的新工具!下一篇︰

公眾平台

搜索"raincent"或掃描下面的二維碼

?