機器學習在交通標誌檢測與精細分類中的應用

導讀

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

地圖數據最早是從專業採集來的,採集工具就是車、自行車、飛機和衛星影像等,近兩年有了利用智能硬件的衆包採集。採集以後,就是把數據更新的速度和精準度都無限提高。由於地面上變化太快了,用戶愈來愈依賴於地圖應用。因此數據更新的速度和數據的準確度就是在意用戶體驗的地圖公司的第一要務了。而數據更新的第一步,就是交通標誌檢測。服務器

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

「交通標誌檢測」定義

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

難點與挑戰

交通標誌檢測的主要難點有樣式繁雜,且在拍攝過程當中受天然環境的影響較大。此外,爲知足數據更新的速度和數據準確度的要求,對於算法的性能要求也格外嚴格。機器學習

樣本形態差別大

交通標誌的形態差別主要體如今:工具

類型繁多:國標定義的交通標誌有幾百個類型;佈局

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

顏色分佈普遍:常見的有黃色、紅色、藍色、綠色、黑色、白色等;學習

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

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

天然場景下變化無窮

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

圖2 天然場景下拍攝的交通標誌

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

圖3 相似交通標誌的噪聲示例

性能要求

準召率:咱們的應用場景中對於召回率和準確率的要求極高,任何未召回都會致使數據更新的延遲,而錯召回則會影響做業效率與做業週期,最終對數據的快速更新形成影響;

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

擴展性:交通標誌的類型不是一成不變的(國標會存在調整,不一樣國家和地區之間各有特點),所以須要算法環節具備很是好的擴展性,可以快速適應新增的各類交通標誌類型;

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

當前學術界針對目標檢測任務經常使用的深度學習模型通常都採用End2End的方式進行訓練,以獲得全局最優的檢測效果。這個方案在使用時很是簡單,只須要標註好「幾百類物體的樣本」,而後放到深度學習的框架裏進行迭代訓練,就能夠得到最終模型,主要能夠分爲Two Stage(FasterRCNN[1])和One Stage(YOLO[2],SSD[3])兩大類。

可是在實際使用過程當中,須要應對以下問題:

樣本標註成本高:全部訓練樣本都須要進行全類別標註,當有新增類別時須要將歷史訓練樣本全量補標,成本極高;

沒法單類迭代:因爲交通標誌出現的頻率和重要性不等,業務上對於部分類型(如電子眼、限速牌等)的準召率要求更高。可是End2End的模型必須針對全部類型全量迭代,沒法優化單一類型,致使算法迭代和測試成本極高;

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

結合通用目標檢測技術的發展以及高德地圖對於交通標誌檢測的須要,咱們最終選擇了Faster-RCNN做爲基礎檢測框架,它的檢測效果更好(尤爲是針對小目標),獨立的RPN網路也能夠知足擴展性要求。速度方面,咱們也進行了針對性的優化調整。

在實際使用時,咱們將檢測框架分爲目標檢測與精細分類兩階段:

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

目標檢測階段

目標檢測階段的目的是經過Faster-RCNN在圖片中檢測全部的交通標誌,並進行粗分類,要求極高的召回率和執行速度。在實際使用時,咱們採用了以下策略來提高算法能力:

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

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

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

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

擴展性方面,對於新增類型,理想狀況下只須要新增一個RPN網絡單獨迭代,能夠不對其餘類型的效果形成任何影響(以下圖,RPN1和RPN2徹底獨立);

圖5 多RPN設計示意圖

精細分類階段

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

爲每一個大類配置獨立的精細分類網絡,互相之間不干擾;各個大類的迭代徹底獨立和並行,能夠多人並行研發,有效縮短研發週期;

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

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

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

圖6 精細分類模塊示意圖

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

效果與收益

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

圖7 交通標誌檢測效果圖

小結

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

目前咱們也在把機器學習技術用於數據的自動化製做,進一步減小現實世界和地圖數據之間的差別,作到「鏈接真實世界,讓出行更美好」。



本文做者:高德技術小哥

閱讀原文

本文爲雲棲社區原創內容,未經容許不得轉載。

相關文章
相關標籤/搜索